Code

Backports from trunk
[gosa.git] / gosa-core / include / class_core.inc
index 282c0047aa78ecf557c5996043c8e98ba5b23bf4..61e48653345a096f9c2d87e31dd42a9fc47dd2aa 100644 (file)
@@ -159,12 +159,12 @@ class core extends plugin {
                 break;
             case 'timezone': 
                 $tmp = timezone::_get_tz_zones();
-                foreach($tmp['TIMEZONES'] as $name => $offset){
+                foreach($tmp['TIMEZONES'] as $tzname => $offset){
                     if($offset >= 0){
-                        $list[$name] = $name." ( + ".sprintf("%0.2f",$offset/(60*60))." "._("hours").")";
+                        $list[$tzname] = $tzname." ( + ".sprintf("%0.2f",$offset/(60*60))." "._("hours").")";
                     }else{
                         $offset = $offset * -1;
-                        $list[$name] = $name." ( - ".sprintf("%0.2f",($offset/(60*60)))." "._("hours").")";
+                        $list[$tzname] = $tzname." ( - ".sprintf("%0.2f",($offset/(60*60)))." "._("hours").")";
                     }
                 }
                 break;
@@ -177,9 +177,9 @@ class core extends plugin {
                     $tmp = mailMethod::get_methods();
                 }
                 $list =array();
-                foreach($tmp as $name => $value){
-                    $name = preg_replace('/^mailMethod/','', $name);
-                    $list[$name] = $value;
+                foreach($tmp as $vName => $vValue){
+                    $vName = preg_replace('/^mailMethod/','', $vName);
+                    $list[$vName] = $vValue;
                 }
                 $list[''] = _("None");
                 break;
@@ -265,7 +265,7 @@ class core extends plugin {
                             "name"          => "logging",
                             "type"          => "bool",
                             "default"       => "true",
-                            "description"   => _("Enables event logging in GOsa. Setting it to 'On' make GOsa log every action a user performs via syslog. If you use this in combination with rsyslog and configure it to mysql logging, you can browse all events in GOsa."),
+                            "description"   => _("Enables event logging in GOsa. Setting it to 'On' make GOsa log every action a user performs via syslog. If you use this in combination with rsyslog and configure it to MySQL logging, you can browse all events in GOsa."),
 
                             "check"         => "gosaProperty::isBool",
                             "migrate"       => "",
@@ -495,12 +495,22 @@ class core extends plugin {
                                 "group"         => "core",
                                 "mandatory"     => FALSE),
 
+                        array(
+                                "name"          => "allowUidProposalModification",
+                                "type"          => "bool",
+                                "default"       => "false",
+                                "description"   => _("Allows to modify uid-proposals when creating a new user from a user-template."),
+                                "check"         => "gosaProperty::isBool",
+                                "migrate"       => "",
+                                "group"         => "core",
+                                "mandatory"     => FALSE),
+
                         array(
                                 "name"          => "modificationDetectionAttribute",
                                 "type"          => "switch",
                                 "default"       => "entryCSN",
                                 "defaults"      => "core::getPropertyValues",
-                                "description"   => _("Specifies the LDAP attribute which is used to detect changes."),
+                                "description"   => _("LDAP attribute which is used to detect changes."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "core",
@@ -522,7 +532,7 @@ class core extends plugin {
                                 "type"          => "switch",
                                 "default"       => "default",
                                 "defaults"      => "core::getPropertyValues",
-                                "description"   => _("Specifies the web theme to be used."),
+                                "description"   => _("CSS and template theme to be used."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "visual",
@@ -542,7 +552,7 @@ class core extends plugin {
                                 "name"          => "templateCompileDirectory",
                                 "type"          => "path",
                                 "default"       => "/var/spool/gosa",
-                                "description"   => _("Specifies the template engine compile directory."),
+                                "description"   => _("Template engine compile directory."),
                                 "check"         => "gosaProperty::isWriteablePath",
                                 "migrate"       => "",
                                 "group"         => "core",
@@ -552,8 +562,9 @@ class core extends plugin {
                                 "name"          => "debugLevel",
                                 "type"          => "integer",
                                 "default"       => 0,
-                                "description"   => sprintf(_("The 'debugLevel' value tells GOsa to display certain information on each page load. Value is an AND combination of the following byte values: %s"),
+                                "description"   => sprintf(_("Logical AND of the integer values below that controls the debug output on every page load: %s"),
 "
+
 DEBUG_TRACE   = 1
 DEBUG_LDAP    = 2
 DEBUG_MYSQL   = 4
@@ -571,8 +582,8 @@ DEBUG_SI      = 256"),
                         array(
                                 "name"          => "sambaHashHook",
                                 "type"          => "command",
-                                "default"       => "perl -MCrypt::SmbHash -e \"print join(q[:], ntlmgen \\\$ARGV[0]), $/;\"",
-                                "description"   => sprintf(_("The 'sambaHashHook' statement contains an executable to generate samba hash values. This is required for password synchronization, but not required if you apply gosa-si services. If you don't have mkntpasswd from the samba distribution installed, you can use perl to generate the hash: %s"),"perl -MCrypt::SmbHash -e \"print join(q[:], ntlmgen \\\$ARGV[0]), $/;\""),
+                                "default"       => "perl -MCrypt::SmbHash -e \"print join(q[:], ntlmgen %password), $/;\"",
+                                "description"   => _("Command to create Samba NT/LM hashes. Required for password synchronization if you don't use supplementary services."),
                                 "check"         => "gosaProperty::isCommand",
                                 "migrate"       => "",
                                 "group"         => "samba",
@@ -583,7 +594,7 @@ DEBUG_SI      = 256"),
                                 "type"          => "switch",
                                 "default"       => "crypt/md5",
                                 "defaults"      => "core::getPropertyValues",
-                                "description"   => _("The 'passwordDefaultHash' statement defines the default password hash to choose for new accounts."),
+                                "description"   => _("Default hash to be used for newly created user passwords."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "password",
@@ -592,7 +603,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "strictPasswordRules",
                                 "type"          => "bool",
                                 "default"       => "true",
-                                "description"   => _("The 'strictPasswordRules' tells GOsa to check for UTF-8 characters in the supplied password. These Characters can lead to non working authentications if UTF-8 and none UTF-8 systems locales get mixed. The default is 'true'."),
+                                "description"   => _("Enable checking for the presence of problematic unicode characters in passwords."),
                                 "check"         => "gosaProperty::isBool",
                                 "migrate"       => "",
                                 "group"         => "password",
@@ -603,7 +614,7 @@ DEBUG_SI      = 256"),
                                 "type"          => "switch",
                                 "default"       => "cn",
                                 "defaults"      => "core::getPropertyValues",
-                                "description"   => _("The 'accountPrimaryAttribute' option tells GOsa how to create new accounts. Possible values are 'uid' and 'cn'. In the first case GOsa creates uid style DN entries: 'uid=superuser,ou=staff,dc=example,dc=net'. In the second case, GOsa creates cn style DN entries: 'cn=Foo Bar,ou=staff,dc=example,dc=net'. If you choose \"cn\" to be your 'accountPrimaryAttribute' you can decide whether to include the personal title in your dn by selecting 'personalTitleInDN'."),
+                                "description"   => _("Specify whether 'cn' or 'uid' style user DNs are generated. For more sophisticated control use the 'accountRDN' setting."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "security",
@@ -613,7 +624,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "userRDN",
                                 "type"          => "rdn",
                                 "default"       => "ou=people,",
-                                "description"   => _("The 'userRDN' statement defines the location where new accounts will be created inside of defined departments. The default is 'ou=people'."),
+                                "description"   => _("Location component for user storage inside of departments."),
                                 "check"         => "gosaProperty::isRdn",
                                 "migrate"       => "migrate_userRDN", 
                                 "group"         => "user",
@@ -623,7 +634,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "groupRDN",
                                 "type"          => "rdn",
                                 "default"       => "ou=groups,",
-                                "description"   => _("The 'groupsRDN' statement defines the location where new groups will be created inside of defined departments. The default is 'ou=groups'."),
+                                "description"   => _("Location component for group storage inside of departments."),
                                 "check"         => "gosaProperty::isRdn",
                                 "migrate"       => "migrate_groupRDN",
                                 "group"         => "group",
@@ -633,7 +644,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "gidNumberBase",
                                 "type"          => "integer",
                                 "default"       => "1000",
-                                "description"   => _("The 'gidNumberBase' statement defines where to start looking for a new free group id. This should be synced with your 'adduser.conf' to avoid overlapping gidNumber values between local and LDAP based lookups. The gidNumberBase can even be dynamic. Take a look at the 'nextIdHook' definition."),
+                                "description"   => _("Count base for group IDs. For dynamic ID assignment use the 'nextIdHook' setting."),
                                 "check"         => "gosaProperty::isInteger",
                                 "migrate"       => "",
                                 "group"         => "id",
@@ -643,7 +654,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "baseIdHook",
                                 "type"          => "command",
                                 "default"       => "",
-                                "description"   => _("The 'baseIdHook' statement allows to hook into the id generation method (traditional mode), to define the starting range for new generated ids"), 
+                                "description"   => _("Count base for user IDs. For dynamic ID assignment use the 'nextIdHook' setting."),
                                 "check"         => "gosaProperty::isCommand",
                                 "migrate"       => "",
                                 "group"         => "id",
@@ -653,7 +664,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "gidNumberPoolMin",
                                 "type"          => "integer",
                                 "default"       => 10000,
-                                "description"   => _("The 'uidNumberPoolMin/gidNumberPoolMin' statement defines the lowest assignable user/group id for use with the 'idAllocationMethod = pool'."),
+                                "description"   => _("Lowest assignable group ID for use with the idAllocationMethod set to 'pool'."),
                                 "check"         => "gosaProperty::isInteger",
                                 "migrate"       => "",
                                 "group"         => "id",
@@ -663,7 +674,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "gidNumberPoolMax",
                                 "type"          => "integer",
                                 "default"       => 40000,
-                                "description"   => _("The 'uidNumberPoolMax/gidNumberPoolMax' statement defines the highest assignable user/group id for use with the 'idAllocationMethod = pool'."),
+                                "description"   => _("Highest assignable group ID for use with the idAllocationMethod set to 'pool'."),
                                 "check"         => "gosaProperty::isInteger",
                                 "migrate"       => "",
                                 "group"         => "id",
@@ -673,7 +684,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "uidNumberPoolMin",
                                 "type"          => "integer",
                                 "default"       => 10000,
-                                "description"   => _("The 'uidNumberPoolMin/gidNumberPoolMin' statement defines the lowest assignable user/group id for use with the 'idAllocationMethod = pool'."),
+                                "description"   => _("Lowest assignable user ID for use with the idAllocationMethod set to 'pool'."),
                                 "check"         => "gosaProperty::isInteger",
                                 "migrate"       => "",
                                 "group"         => "id",
@@ -683,7 +694,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "uidNumberPoolMax",
                                 "type"          => "integer",
                                 "default"       => 40000,
-                                "description"   => _("The 'uidNumberPoolMax/gidNumberPoolMax' statement defines the highest assignable user/group id for use with the 'idAllocationMethod = pool'."),
+                                "description"   => _("Highest assignable user ID for use with the idAllocationMethod set to 'pool'."),
                                 "check"         => "gosaProperty::isInteger",
                                 "migrate"       => "",
                                 "group"         => "id",
@@ -693,7 +704,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "uidNumberBase",
                                 "type"          => "integer",
                                 "default"       => "1000",
-                                "description"   => _("The 'uidNumberBase' statement defines where to start looking for a new free user id. This should be synced with your 'adduser.conf' to avoid overlapping uidNumber values between local and LDAP based lookups. The uidNumberBase can even be dynamic. Take a look at the 'baseIdHook' definition."),
+                                "description"   => _("Count base for user IDs. For dynamic ID assignment use the 'baseIdHook' setting."),
                                 "check"         => "gosaProperty::isInteger",
                                 "migrate"       => "",
                                 "group"         => "id",
@@ -703,7 +714,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "gosaRpcServer",
                                 "type"          => "string",
                                 "default"       => "",
-                                "description"   => "The server to use for RPC connections! (http://localhost:8080/rpc), Future GOsa-ng service! If this value is set and not empty GOsa will try to establish a connection!",
+                                "description"   => _("Connection URL for use with the gosa-ng service."),
                                 "check"         => "jsonRPC::testConnectionProperties",
                                 "migrate"       => "",
                                 "group"         => "rpc",
@@ -713,7 +724,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "gosaRpcUser",
                                 "type"          => "string",
                                 "default"       => "admin",
-                                "description"   => "Ther username to use for RPC connections! Future GOsa-ng service!",
+                                "description"   => _("User name used to connect to the 'gosaRpcServer'."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "rpc",
@@ -723,7 +734,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "gosaRpcPassword",
                                 "type"          => "string",
                                 "default"       => "tester",
-                                "description"   => "Ther password to use for RPC connections! Future GOsa-ng service!",
+                                "description"   => _("Password used to connect to the 'gosaRpcServer'."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "rpc",
@@ -733,7 +744,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "gosaSupportURI",
                                 "type"          => "string",
                                 "default"       => "",
-                                "description"   => _("The 'gosaSupportURI' defines the major gosa-si server host and the password for GOsa to connect to it. It can be used if you want to use i.e. kerberos to authenticate the users. The format is: credentials@host:port"),
+                                "description"   => _("Connection URI for use with the gosa-si service (obsolete)."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "gosa-si",
@@ -743,7 +754,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "gosaSupportTimeout",
                                 "type"          => "integer",
                                 "default"       => 15,
-                                "description"   => _("The 'gosaSupportTimeout' sets a connection timeout for all gosa-si actions. See 'gosaSupportURI' for details."),
+                                "description"   => _("Number of seconds after a gosa-si connection is considered 'dead'."),
                                 "check"         => "gosaProperty::isInteger",
                                 "migrate"       => "",
                                 "group"         => "gosa-si",
@@ -754,7 +765,7 @@ DEBUG_SI      = 256"),
                                 "type"          => "switch",
                                 "default"       => "uid",
                                 "defaults"      => "core::getPropertyValues",
-                                "description"   => _("The 'loginAttribute' statement tells GOsa which LDAP attribute is used as the login name during login. It can be set to 'uid', 'mail' or 'both'"),
+                                "description"   => _("User attribute which is used for log in."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "security",
@@ -765,7 +776,7 @@ DEBUG_SI      = 256"),
                                 "type"          => "switch",
                                 "default"       => "",
                                 "defaults"      => "core::getPropertyValues",
-                                "description"   => _("The 'timezone' statements defines the timezone used inside of GOsa to handle date related tasks, such as password expiery, vacation messages, etc. The 'timezone' value should be a unix conform timezone value like in /etc/timezone."),
+                                "description"   => _("Local time zone."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "core",
@@ -775,7 +786,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "honourUnitTags",
                                 "type"          => "bool",
                                 "default"       => "false",
-                                "description"   => _("The 'honourUnitTags' statement enables checking of 'unitTag' attributes when using administrative units. If this is set to 'true' GOsa can only see objects inside the administrative unit a user is logged into."),
+                                "description"   => _("Enable tagging of administrative units. This can be used in conjunction with ACLs (obsolete)."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "core",
@@ -784,8 +795,8 @@ DEBUG_SI      = 256"),
                         array(
                                 "name"          => "useSaslForKerberos",
                                 "type"          => "bool",
-                                "default"       => "false",
-                                "description"   => _("The 'useSaslForKerberos' statement defines the way the kerberos realm is stored in the #userPassword' attribute. Set it to 'true' in order to get {sasl}user@REALM.NET, or to 'false' to get {kerberos}user@REALM.NET. The latter is outdated, but may be needed from time to time."),
+                                "default"       => "true",
+                                "description"   => _("Enable the use of {sasl} instead of {kerberos} for user realms."),
                                 "check"         => "gosaProperty::isBool",
                                 "migrate"       => "",
                                 "group"         => "password",
@@ -795,7 +806,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "rfc2307bis",
                                 "type"          => "bool",
                                 "default"       => "false",
-                                "description"   => _("The 'rfc2307bis' statement enables rfc2307bis style groups in GOsa. You can use 'member' attributes instead of memberUid in this case. To make it work on unix systems, you've to adjust your NSS configuration to use rfc2307bis style groups, too"),
+                                "description"   => _("Enable RFC 2307bis style groups. This combines the use of 'member' and 'memberUid' attributes."),
                                 "check"         => "gosaProperty::isBool",
                                 "migrate"       => "",
                                 "group"         => "core",
@@ -805,7 +816,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "personalTitleInDN",
                                 "type"          => "bool",
                                 "default"       => "false",
-                                "description"   => _("The 'personalTitleInDN' option tells GOsa to include the personal title in user DNs when #accountPrimaryAttribute' is set to \"cn\"."),
+                                "description"   => _("Adjusts the user DN generation to include the users personal title (only in conjunction with accountPrimaryAttribute)."),
                                 "check"         => "gosaProperty::isBool",
                                 "migrate"       => "",
                                 "group"         => "storage location",
@@ -815,47 +826,16 @@ DEBUG_SI      = 256"),
                                 "name"          => "nextIdHook",
                                 "type"          => "command",
                                 "default"       => "",
-                                "description"   => _("The 'nextIdHook' statement defines a script to be called for finding the next free id for users or groups externaly. It gets called with the current entry \"dn\" and the attribute to be ID'd. It should return an integer value."),
+                                "description"   => _("Script to be called for finding the next free id for groups or users."),
                                 "check"         => "gosaProperty::isCommand",
                                 "migrate"       => "",
                                 "group"         => "id",
                                 "mandatory"     => FALSE),
-
                         array(
                                 "name"          => "idGenerator",
                                 "type"          => "string",
                                 "default"       => "{%sn}-{%givenName[2-4]}",
-                                "description"   => _("The 'idGenerator' statement describes an automatic way to generate new user ids. There are two basic functions supported - which can be combined: 
-
- a) using attributes
-
-    You can specify LDAP attributes (currently only sn and givenName) in
-    braces {} and add a percent sign befor it. Optionally you can strip it
-    down to a number of characters, specified in []. I.e.
-
-      idGenerator=\"{%sn}-{%givenName[2-4]}\"
-
-    will generate an ID using the full surname, adding a dash, and adding at
-    least the first two characters of givenName. If this ID is used, it'll
-    use up to four characters. If no automatic generation is possible, a
-    input box is shown.
-
- b) using automatic id's
-
-    I.e. specifying
-
-      idGenerator=\"acct{id:3}\"
-
-    will generate a three digits id with the next free entry appended to \"acct\".
-
-      idGenerator=\"acct{id!1}\"
-
-    will generate a one digit id with the next free entry appended to \"acct\" - if needed.
-
-      idGenerator=\"ext{id#3}\"
-
-    will generate a three digits random number appended to \"ext\".
-"),
+                                "description"   => _("Descriptive string for the automatic ID generator. Please read the FAQ file for more information."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "core",
@@ -865,7 +845,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "strictNamingRules",
                                 "type"          => "bool",
                                 "default"       => "true",
-                                "description"   => _("The 'strictNamingRules' statement enables strict checking of uids and group names. If you need   characters like . or - inside of your accounts, set this to 'false'."),
+                                "description"   => _("Enable strict checking for user IDs and group names."),
                                 "check"         => "gosaProperty::isBool",
                                 "migrate"       => "",
                                 "group"         => "core",
@@ -875,7 +855,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "minId",
                                 "type"          => "integer",
                                 "default"       => 40,
-                                "description"   => _("The 'minId' statement defines the minimum assignable user or group id to avoid security leaks with uid 0 accounts. This is used for the 'traditional' method."),
+                                "description"   => _("Lowest assignable user or group ID. Only active if idAllocationMethod is set to 'traditional'."),
                                 "check"         => "gosaProperty::isInteger",
                                 "migrate"       => "",
                                 "group"         => "id",
@@ -886,7 +866,7 @@ DEBUG_SI      = 256"),
                                 "type"          => "switch",
                                 "default"       => "mail",
                                 "defaults"      => "core::getPropertyValues",
-                                "description"   => _("The 'mailAttribute' statement determines which attribute GOsa will use to create accounts. Valid values are 'mail' and 'uid'."),
+                                "description"   => _("Attribute to be used for primary mail addresses."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "mail",
@@ -896,7 +876,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "gosaSharedPrefix",
                                 "type"          => "string",
                                 "default"       => "",
-                                "description"   => _("This attribute allows to override the prefix used to create shared folders."),
+                                "description"   => _("Namespace used for shared folders."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "mail",
@@ -906,12 +886,7 @@ DEBUG_SI      = 256"),
                                 "name"          => "mailUserCreation",
                                 "type"          => "string",
                                 "default"       => "",
-                                "description"   => _("This attribute allows to override the user account creation syntax, see the 'mailFolderCreation' description for more details.
-
-Examples
- mailUserCreation=\"%prefix%%uid%\"           => \"user.foobar\"
- mailUserCreation=\"my-prefix.%uid%%domain%\"  => \"my-prefix.foobar@example.com\"
-"),
+                                "description"   => _("Namespace rule to create user folders. Please read the FAQ file for more information."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "mail",
@@ -921,23 +896,7 @@ Examples
                                 "name"          => "mailFolderCreation",
                                 "type"          => "string",
                                 "default"       => "",
-                                "description"   => _("Every mail method has its own way to create mail accounts like 'share/development' or 'shared.development@example.com' which is used to identify the accounts, set quotas or add acls.
-
-To override the methods default account creation syntax, you can set the 'mailFolderCreation' option.
-
-Examples
-
- mailFolderCreation=\"%prefix%%cn%\"              => \"shared.development\"
- mailFolderCreation=\"my-prefix.%cn%%domain%\"    => \"my-prefix.development@example.com\"
-
- %prefix%    The methods default prefix. (Depends on cyrusUseSlashes=FALSE/TRUE)
- %cn%        The groups/users cn.
- %uid%       The users uid.
- %mail%      The objects mail attribute.
- %domain%    The domain part of the objects mail attribute.
- %mailpart%  The user address part of the mail address.
- %uattrib%   Depends on mailAttribute=\"uid/mail\".
-"),
+                                "description"   => _("Namespace rule to create folders. Please read the FAQ file for more information."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "mail",
@@ -947,7 +906,7 @@ Examples
                                 "name"          => "imapTimeout",
                                 "type"          => "integer",
                                 "default"       => 10,
-                                "description"   => _("The 'imapTimeout' statement sets the connection timeout for imap actions."),
+                                "description"   => _("Seconds after an IMAP connection is considered dead."),
                                 "check"         => "gosaProperty::isInteger",
                                 "migrate"       => "",
                                 "group"         => "mail",
@@ -958,7 +917,7 @@ Examples
                                 "type"          => "switch",
                                 "default"       => "",
                                 "defaults"      => "core::getPropertyValues",
-                                "description"   => _("The 'mailMethod' statement tells GOsa which mail method the setup should use to communicate with a possible mail server. Leave this undefined if your mail method does not match the predefined ones."),
+                                "description"   => _("Class name of the mail method to be used."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "mail",
@@ -968,7 +927,7 @@ Examples
                                 "name"          => "cyrusUseSlashes",
                                 "type"          => "bool",
                                 "default"       => "true",
-                                "description"   => _("The 'cyrusUseSlashes' statement determines if GOsa should use \"foo/bar\" or \"foo.bar\" namespaces in IMAP. Unix style is with slashes."),
+                                "description"   => _("Enable slashes instead of dots as a name space separator for Cyrus IMAP."),
                                 "check"         => "gosaProperty::isBool",
                                 "migrate"       => "",
                                 "group"         => "mail",
@@ -978,18 +937,7 @@ Examples
                                 "name"          => "vacationTemplateDirectory",
                                 "type"          => "path",
                                 "default"       => "/etc/gosa/vacation",
-                                "description"   => _("The 'vacationTemplateDirectory' statement sets the path where GOsa will look for vacation message templates. Default is /etc/gosa/vacation. 
-
-Example template /etc/gosa/vacation/business.txt:
-
-   DESC:Away from desk
-   Hi, I'm currently away from my desk. You can contact me on
-   my cell phone via %mobile.
-
-   Greetings,
-   %givenName %sn
-
-"),
+                                "description"   => _("Directory to store vacation templates. Please read the FAQ file for more information."),
                                 "check"         => "gosaProperty::isWriteablePath",
                                 "migrate"       => "",
                                 "group"         => "mail",
@@ -999,7 +947,7 @@ Example template /etc/gosa/vacation/business.txt:
                                 "name"          => "ldapTLS",
                                 "type"          => "bool",
                                 "default"       => "false",
-                                "description"   => _("The 'ldapTLS' statement enables or disables TLS operating on LDAP connections."),
+                                "description"   => _("Enable TLS for LDAP connections."),
                                 "check"         => "gosaProperty::isBool",
                                 "migrate"       => "",
                                 "group"         => "security",
@@ -1009,7 +957,7 @@ Example template /etc/gosa/vacation/business.txt:
                                 "name"          => "honourIvbbAttributes",
                                 "type"          => "bool",
                                 "default"       => "false",
-                                "description"   => _("The 'honourIvbbAttributes' statement enables the IVBB mode inside of GOsa. You need the ivbb.schema file from used by german authorities."),
+                                "description"   => _("Enable IVBB used by german authorities."),
                                 "check"         => "gosaProperty::isBool",
                                 "migrate"       => "",
                                 "group"         => "core",
@@ -1019,7 +967,7 @@ Example template /etc/gosa/vacation/business.txt:
                                 "name"          => "sambaIdMapping",
                                 "type"          => "bool",
                                 "default"       => "false",
-                                "description"   => _("The 'sambaIdMapping' statement tells GOsa to maintain sambaIdmapEntry objects. Depending on your setup this can drastically improve the windows login performance."),
+                                "description"   => _("Maintain sambaIdmapEntry objects to improve performance on some Samba versions."),
                                 "check"         => "gosaProperty::isBool",
                                 "migrate"       => "",
                                 "group"         => "samba",
@@ -1029,7 +977,7 @@ Example template /etc/gosa/vacation/business.txt:
                                 "name"          => "handleExpiredAccounts",
                                 "type"          => "bool",
                                 "default"       => "true",
-                                "description"   => _("The 'handleExpiredAccounts' statement enables shadow attribute tests during the login to the GOsa web interface and forces password renewal or account lockout."),
+                                "description"   => _("Enable checks to determine whether an account is expired or not."),
                                 "check"         => "gosaProperty::isBool",
                                 "migrate"       => "",
                                 "group"         => "core",
@@ -1039,7 +987,7 @@ Example template /etc/gosa/vacation/business.txt:
                                 "name"          => "sambaSID",
                                 "type"          => "string",
                                 "default"       => "",
-                                "description"   => _("The 'sambaSID' statement defines a samba SID if not available inside of the LDAP. You can retrieve the current sid by net getlocalsid."),
+                                "description"   => _("String containing the SID for Samba setups without the Domain object in LDAP."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "samba",
@@ -1049,7 +997,7 @@ Example template /etc/gosa/vacation/business.txt:
                                 "name"          => "sambaRidBase",
                                 "type"          => "integer",
                                 "default"       => "",
-                                "description"   => _("The 'sambaRidBase' statement defines the base id to add to ordinary sid calculations - if not available inside of the LDAP."),
+                                "description"   => _("String containing the RID base for Samba setups without the Domain object in LDAP."),
                                 "check"         => "gosaProperty::isInteger",
                                 "migrate"       => "",
                                 "group"         => "samba",
@@ -1059,7 +1007,7 @@ Example template /etc/gosa/vacation/business.txt:
                                 "name"          => "enableSnapshots",
                                 "type"          => "bool",
                                 "default"       => "false",
-                                "description"   => _("The 'enableSnapshots' statement enables a snapshot mechaism in GOsa. This enables you to save certain states of entries and restore them later on."),
+                                "description"   => _("Enable manual object snapshots."),
                                 "check"         => "gosaProperty::isBool",
                                 "migrate"       => "",
                                 "group"         => "snapshot",
@@ -1069,7 +1017,7 @@ Example template /etc/gosa/vacation/business.txt:
                                 "name"          => "snapshotBase",
                                 "type"          => "dn",
                                 "default"       => "ou=snapshots,dc=localhost,dc=de",
-                                "description"   => _("The 'snapshotBase' statement defines the base where snapshots should be stored inside of the LDAP."),
+                                "description"   => _("Base DN for snapshot storage."),
                                 "check"         => "gosaProperty::isDn",
                                 "migrate"       => "",
                                 "group"         => "snapshot",
@@ -1079,7 +1027,7 @@ Example template /etc/gosa/vacation/business.txt:
                                 "name"          => "snapshotAdminDn",
                                 "type"          => "dn",
                                 "default"       => "cn=admin,dc=localhost,dc=de",
-                                "description"   => _("The 'snapshotAdminDn' variable defines the user which is used to authenticate when connecting to 'snapshotURI'."),
+                                "description"   => _("DN of the snapshot administrator."),
                                 "check"         => "gosaProperty::isDn",
                                 "migrate"       => "",
                                 "group"         => "snapshot",
@@ -1089,7 +1037,7 @@ Example template /etc/gosa/vacation/business.txt:
                                 "name"          => "snapshotAdminPassword",
                                 "type"          => "string",
                                 "default"       => "secret",
-                                "description"   => _("The 'snapshotAdminPassword' variable defines the credentials which are used in combination with 'snapshotAdminDn' and 'snapshotURI' in order to authenticate."),
+                                "description"   => _("Password of the snapshot administrator."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "snapshot",
@@ -1100,7 +1048,7 @@ Example template /etc/gosa/vacation/business.txt:
                                 "type"          => "switch",
                                 "default"       => "traditional",
                                 "defaults"      => "core::getPropertyValues",
-                                "description"   => _("The 'idAllocationMethod' statement defines how GOsa generates numeric user and group id values. If it is set to 'traditional' GOsa will do create a lock and perform a search for the next free ID. The lock will be removed after the procedure completes. 'pool' will use the sambaUnixIdPool objectclass settings inside your LDAP. This one is unsafe, because it does not check for concurrent LDAP access and already used IDs in this range. On the other hand it is much faster."),
+                                "description"   => _("Method for user and group ID generation. Note: only the 'traditional' method is safe due to PHP limitations."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "id",
@@ -1109,11 +1057,20 @@ Example template /etc/gosa/vacation/business.txt:
                                 "name"          => "snapshotURI",
                                 "type"          => "uri",
                                 "default"       => "ldap://localhost:389",
-                                "description"   => _("The 'snapshotURI' variable defines the LDAP URI for the server which is used to do object snapshots."),
+                                "description"   => _("URI of server to be used for snapshots."),
                                 "check"         => "",
                                 "migrate"       => "",
                                 "group"         => "snapshot",
-                                "mandatory"     => FALSE)
+                                "mandatory"     => FALSE),
+                        array(
+                                "name"          => "forceTranslit",
+                                "type"          => "bool",
+                                "default"       => "false",
+                                "description"   => _("Enable transliteration of cyrillic characters for UID generation."),
+                                "check"         => "gosaProperty::isBool",
+                                "migrate"       => "",
+                                "group"         => "core",
+                                "mandatory"     => TRUE)
                             )));
     }
 }