Merge branch 'next' of https://github.com/WoltLab/WCF into next
[GitHub/WoltLab/WCF.git] / wcfsetup / install / lang / en.xml
index 72378f75f47b753a5518ea7f222ebd4c82337c4f..fe153c1fd87b0f6916f1da8b17de39e1131d7b7a 100644 (file)
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <language xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com http://www.woltlab.com/XSD/vortex/language.xsd" languagecode="en" languagename="English" countrycode="gb">
        <category name="wcf.acl">
-               <item name="wcf.acl.tests"><![CDATA[Restricted Access]]></item>
                <item name="wcf.acl.access"><![CDATA[Restricted Access]]></item>
                <item name="wcf.acl.access.grant"><![CDATA[Allow Access]]></item>
                <item name="wcf.acl.access.granted"><![CDATA[Granted Access for Users and User-Groups]]></item>
                <item name="wcf.acp.box.copy"><![CDATA[Copy Box]]></item>
                <item name="wcf.acp.box.copy.description"><![CDATA[The values entered for this box will be used as a preset to create a new box. Only values editable in this form are included.<br><br>You’ll need to submit the form to save the new box. You can make changes to the new box by editing the values in that form, please bear in mind that new boxes are disabled by default.]]></item>
                <item name="wcf.acp.box.boxController.com.woltlab.wcf.trophyCategories"><![CDATA[Trophy Categories]]></item>
+               <item name="wcf.acp.box.controller.sortField"><![CDATA[Sort By]]></item>
+               <item name="wcf.acp.box.controller.sortField.description"><![CDATA[The selected object property is used for sorting.]]></item>
+               <item name="wcf.acp.box.controller.limit"><![CDATA[Maximum Number of Items]]></item>
        </category>
        <category name="wcf.acp.cache">
                <item name="wcf.acp.cache.button.clear"><![CDATA[Clear Cache]]></item>
                <item name="wcf.acp.devtools.project.instruction.value"><![CDATA[File(s)]]></item>
                <item name="wcf.acp.devtools.project.instruction.value.description"><![CDATA[The entered file will be processed during the installation/update.]]></item>
                <item name="wcf.acp.devtools.project.instructions.description"><![CDATA[The instructions tell the installation and update routine what needs to be done to successfully install/update the package.]]></item>
-               <item name="wcf.acp.devtools.project.packageIdentifier.description"><![CDATA[The package identifier uniquely identifies the package. The identifier consists of at least three segments that are separated by dots. Each segment may only contain the following characters: <kbd>[A-z0-9-_]</kbd>.]]></item>
-               <item name="wcf.acp.devtools.project.isApplication.description"><![CDATA[(TODO) The last segment of the package identifier is used as the abbreviation of the application within the system. App abbreviations have to be unique within an installation.]]></item>
+               <item name="wcf.acp.devtools.project.packageIdentifier.description"><![CDATA[The package identifier uniquely identifies the package. The identifier consists of at least three segments that are separated by dots. Each segment must not be empty and may only contain the following characters: <kbd>[A-z0-9-_]</kbd>.]]></item>
+               <item name="wcf.acp.devtools.project.isApplication.description"><![CDATA[An app has its own frontend with a dedicated namespace, database table prefix and template locations. It offers a logical (and to some extent physical) separation from other parts of Core and other installed apps. The last segment of the package identifier is used as the abbreviation of the application within the system. App abbreviations have to be unique within an installation.]]></item>
                <item name="wcf.acp.devtools.project.packageDate.description"><![CDATA[The package creation date refers to when this version of the package was published. Format: <kbd>YYYY-MM-DD</kbd>.]]></item>
                <item name="wcf.acp.devtools.project.packageUrl.description"><![CDATA[The package website provides detailed information on the package.]]></item>
                <item name="wcf.acp.devtools.project.packageUrl"><![CDATA[Package Website]]></item>
                <item name="wcf.acp.devtools.project.add.info"><![CDATA[Conflicting packages, installation instructions, and update instructions can only be added when editing an existing project.]]></item>
                <item name="wcf.acp.devtools.project.optionalPackage.error.missingFiles"><![CDATA[The following package files are missing: {implode from=$missingFiles item=missingFile}<kbd>{$missingFile}</kbd>{/implode}.]]></item>
                <item name="wcf.acp.devtools.project.requiredPackage.error.missingFiles"><![CDATA[The following package files are missing: {implode from=$missingFiles item=missingFile}<kbd>{$missingFile}</kbd>{/implode}.]]></item>
+               <item name="wcf.acp.devtools.project.pip.entry.delete.confirmMessage"><![CDATA[Do you really want to delete the entry?]]></item>
+               <item name="wcf.acp.devtools.project.pip.entry.delete.addDeleteInstruction"><![CDATA[Add delete instruction]]></item>
+               <item name="wcf.acp.devtools.project.pip.entry.delete.addDeleteInstruction.description"><![CDATA[The entry will not only be deleted from database and its installation instruction removed, but a delete instruction will also be explicitly added.]]></item>
        </category>
        <category name="wcf.acp.email">
                <item name="wcf.acp.email.smtp.test"><![CDATA[SMTP Connection Test]]></item>
                <item name="wcf.acp.group.option.category.user.profile.trophy"><![CDATA[Trophies]]></item>
                <item name="wcf.acp.group.option.user.profile.trophy.canSeeTrophies"><![CDATA[Can see trophies]]></item>
                <item name="wcf.acp.group.option.user.profile.trophy.maxUserSpecialTrophies"><![CDATA[Maximum number of special trophies]]></item>
-               <!-- @TODO: find a better name? -->
                <item name="wcf.acp.group.option.user.profile.trophy.maxUserSpecialTrophies.description"><![CDATA[Special trophies can be individually selected by the user and displayed in the message sidebar and the user profile.]]></item>
                <item name="wcf.acp.group.option.category.user.profile.coverPhoto"><![CDATA[Cover Photos]]></item>
                <item name="wcf.acp.group.option.user.profile.coverPhoto.canSeeCoverPhotos"><![CDATA[Can view  users’ cover photos]]></item>
                <item name="wcf.acp.group.option.user.profile.coverPhoto.maxSize"><![CDATA[Maximum Image File Size]]></item>
                <item name="wcf.acp.group.option.admin.content.reaction.canManageReactionType"><![CDATA[Can manage reaction types]]></item>
                <item name="wcf.acp.group.option.user.signature.canEditSignature"><![CDATA[Can edit own signature]]></item>
+               <item name="wcf.acp.group.option.category.user.message.contactForm"><![CDATA[Contact Form]]></item>
+               <item name="wcf.acp.group.option.user.contactForm.attachment.maxSize"><![CDATA[Maximum Attachment File Size]]></item>
+               <item name="wcf.acp.group.option.user.contactForm.attachment.allowedExtensions"><![CDATA[Allowed Attachment File Extensions]]></item>
+               <item name="wcf.acp.group.option.user.contactForm.attachment.allowedExtensions.description"><![CDATA[Enter one extension per line.]]></item>
+               <item name="wcf.acp.group.option.user.contactForm.attachment.maxCount"><![CDATA[Maximum Attachments per Message]]></item>
        </category>
        <category name="wcf.acp.index">
                <item name="wcf.acp.index.credits"><![CDATA[About WoltLab Suite&trade;]]></item>
                <item name="wcf.acp.language.item.languageCategoryID.mode.selection"><![CDATA[Manual Selection]]></item>
                <item name="wcf.acp.language.item.languageCategoryID.description"><![CDATA[The phrase will be added to the selected language category.]]></item>
                <item name="wcf.acp.language.item.languageItem"><![CDATA[Phrase Identifier]]></item>
-               <item name="wcf.acp.language.item.languageItem.description"><![CDATA[The phrase identifier consists of at least three segments that are separated by dots. Each segment may only contain the following characters: <kbd>[A-z0-9-_]</kbd>.]]></item>
+               <item name="wcf.acp.language.item.languageItem.description"><![CDATA[The phrase identifier consists of at least three segments that are separated by dots. Each segment must not be empty and may only contain the following characters: <kbd>[A-z0-9-_]</kbd>.]]></item>
                <item name="wcf.acp.language.item.languageItem.error.format"><![CDATA[The entered identifier is invalid.]]></item>
                <item name="wcf.acp.language.item.languageCategoryID.mode.error.automaticImpossible"><![CDATA[The language category cannot be determined automatically for the entered phrase identifier. You have to either change the phrase identifier or manually select a language category.]]></item>
                <item name="wcf.acp.language.item.languageItem.error.prefixMismatch"><![CDATA[The entered identifier does not begin with the selected language category.]]></item>
                <item name="wcf.acp.language.item.delete.confirmMessage"><![CDATA[Do you really want to the delete the phrase? It will be deleted for all languages.]]></item>
                <item name="wcf.acp.language.item.languageCategory"><![CDATA[Language Category Identifier]]></item>
                <item name="wcf.acp.language.item.languageCategory.description"><![CDATA[The entered language category identifier is used to group phrases.]]></item>
-               <item name="wcf.acp.language.item.languageCategory.error.notUnique"><![CDATA[This language category identifier is already used by an existing language category.]]></item>
+               <item name="wcf.acp.language.item.languageCategory.error.notUnique"><![CDATA[The entered identifier is already used by an existing language category.]]></item>
                <item name="wcf.acp.language.item.languageCategory.error.tooFewSegments"><![CDATA[The entered category contains {#$segmentCount} segment{if $segmentCount > 1}s{/if}.]]></item>
        </category>
        <category name="wcf.acp.masterPassword">
@@ -1620,12 +1629,19 @@ When prompted for the notification URL for the instant payment notifications, pl
                <item name="wcf.acp.option.search_enable_articles"><![CDATA[Articles are searchable]]></item>
                <item name="wcf.acp.option.search_enable_pages"><![CDATA[Pages are searchable]]></item>
                <item name="wcf.acp.option.message_sidebar_enable_articles"><![CDATA[Display author’s article count]]></item>
+               <item name="wcf.acp.option.message_public_highlighters"><![CDATA[Selectable Syntax Highlighters]]></item>
+               <item name="wcf.acp.option.message_public_highlighters.description"><![CDATA[The chosen syntax highlighters can easily be selected by the user using the editor. The other highlighters are still available, but their name needs to be known by the user.]]></item>
                <item name="wcf.acp.option.log_missing_language_items"><![CDATA[Log Missing Language Items]]></item>
                <item name="wcf.acp.option.log_missing_language_items.description"><![CDATA[The missing language items are logged in the log file <kbd>{'WCF_DIR'|constant}log/missingLanguageItems.txt</kbd>.]]></item>
                <item name="wcf.acp.option.category.general.system.ipAddress"><![CDATA[IP Addresses]]></item>
                <item name="wcf.acp.option.category.general.system.ipAddress"><![CDATA[IP-Adressen]]></item>
                <item name="wcf.acp.option.prune_ip_address"><![CDATA[Storage Time Period for IP Addresses]]></item>
                <item name="wcf.acp.option.prune_ip_address.description"><![CDATA[Stored IP addresses will be removed after the following days. Use 0 to disable.]]></item>
+               <item name="wcf.acp.option.breadcrumbs_home_use_page_title"><![CDATA[Use the page title for the home page in the breadcrumbs]]></item>
+               <item name="wcf.acp.option.category.message.contactForm"><![CDATA[Contact Form]]></item>
+               <item name="wcf.acp.option.contact_form_enable_attachments"><![CDATA[Enable attachments for contact messages]]></item>
+               <item name="wcf.acp.option.contact_form_prune_attachments"><![CDATA[Prune old attachments]]></item>
+               <item name="wcf.acp.option.contact_form_prune_attachments.description"><![CDATA[Older attachments are automatically removed to recover disk space. Use 0 to disable.]]></item>
        </category>
        <category name="wcf.acp.customOption">
                <item name="wcf.acp.customOption.list"><![CDATA[Option Fields]]></item>
@@ -1869,10 +1885,10 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
        <category name="wcf.acp.pip">
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.adLocation.data.title"><![CDATA[Ad Location Data]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.adLocation.categoryName"><![CDATA[Category]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.adLocation.categoryName.description"><![CDATA[Ad locations are grouped by their category in the ad location selection when creating and editing ads. The category consists of at least four segments that are separated by dots. Each segment may only contain the following characters: <kbd>[A-z0-9-_]</kbd>.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.adLocation.categoryName.description"><![CDATA[Ad locations are grouped by their category in the ad location selection when creating and editing ads. The category consists of at least four segments that are separated by dots. Each segment must not be empty and may only contain the following characters: <kbd>[A-z0-9-_]</kbd>.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.adLocation.categoryName.error.tooFewSegments"><![CDATA[The entered category only contains {#$segmentCount} segment{if $segmentCount > 1}s{/if}.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.adLocation.cssClassName"><![CDATA[CSS Classes]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.adLocation.cssClassName.description"><![CDATA[The entered comma-separated CSS classes are assigned to the element that wraps all ads at the specific location. ]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.adLocation.cssClassName.description"><![CDATA[The entered CSS classes are assigned to the element that wraps all ads at the specific location.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.adLocation.cssClassName.error.invalid"><![CDATA[The following CSS classes are invalid: {implode from=$invalidClasses item=invalidClass}<kbd>{$invalidClass}</kbd>{/implode}.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.adLocation.page"><![CDATA[Page]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.adLocation.page.description"><![CDATA[Page on which the ad location is positioned.]]></item>
@@ -1899,22 +1915,22 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.condition.userSearch.data.title"><![CDATA[User Search Condition Data]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.content.userContentProvider.data.title"><![CDATA[User Content Provider Data]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.content.userContentProvider.niceValue"><![CDATA[Nice Value]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.content.userContentProvider.niceValue.description"><![CDATA[The nice value is used to determine the order in which the remove content worker are execute the provider. Workers with lower nice value are shown first.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.content.userContentProvider.niceValue.description"><![CDATA[The nice value is used to determine the order in which the remove content worker are execute the provider. Workers with lower nice value are shown first.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.content.userContentProvider.hidden"><![CDATA[Hidden]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.content.userContentProvider.hidden.description"><![CDATA[If "Yes" is selected, the content provider cannot be actively selected or deselected in the Content Remove dialog.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.content.userContentProvider.hidden.description"><![CDATA[If selected, the content provider will not be shown in the dialog to remove user content.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.content.userContentProvider.requiredObjectType"><![CDATA[Required Object Types]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.content.userContentProvider.requiredObjectType.description"><![CDATA[These object types are automatically executed when the User Content Remove Worker is executed and this object type is processed. Heads up: If a special order must be kept, nicevalue should be specified.]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.content.userContentProvider.error.unknownObjectType"><![CDATA[The object type <kbd>{$objectType}</kbd> is unknown.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.content.userContentProvider.requiredObjectType.description"><![CDATA[The user contents represented by the entered object types will also be removed when the user contents provided by <strong>this</strong> provider are removed. If a specific order must be kept, nice values have to be set.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.content.userContentProvider.error.unknownObjectType"><![CDATA[The user content object type <kbd>{$objectType}</kbd> does not exist.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.notification.objectType.data.title"><![CDATA[Notification Object Type Data]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.notification.objectType.category"><![CDATA[Category]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.notification.objectType.category.description"><![CDATA[The category is used to group events on the notification settings page. The category consists of at least three segments that are separated by dots. Each segment may only contain the following characters: [A-z0-9-_].]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.notification.objectType.category.description"><![CDATA[The category is used to group events on the notification settings page. The category consists of at least three segments that are separated by dots. Each segment must not be empty and may only contain the following characters: <kbd>[A-z0-9-_]</kbd>.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.notification.objectType.category.error.tooFewSegments"><![CDATA[The category only contains {#$segmentCount} segment{if $segmentCount > 1}s{/if}.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.rebuildData.data.title"><![CDATA[Rebuild Data Worker Data]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.rebuildData.niceValue"><![CDATA[Nice Value]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.rebuildData.niceValue.description"><![CDATA[The nice value is used to determine the order in which the rebuild data workers are shown and thus in which order they should be executed. Workers with lower nice value are shown first.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.rebuildData.niceValue.description"><![CDATA[The nice value is used to determine the order in which the rebuild data workers are shown and thus in which order they should be executed. Workers with a lower nice value are listed first.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.searchableObjectType.data.title"><![CDATA[Searchable Object Type Data]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.searchableObjectType.searchIndex"><![CDATA[Search Index Database Table]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.searchableObjectType.searchIndex.description"><![CDATA[Name of the database table containing the search index. The database table will be automatically created by the system. For all applications, <kbd>app1_</kbd> will be replaced with <kbd>appN_</kbd> in which <kbd>app</kbd> is the abbreviation of the relevant application and <kbd>N</kbd> is the value of <kbd>WCF_N</kbd>.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.searchableObjectType.searchIndex.description"><![CDATA[Name of the database table containing the search index. The database table will be automatically created by the system. For all installed apps, <kbd>app1_</kbd> will be replaced with <kbd>appN_</kbd> in which <kbd>app</kbd> is the abbreviation of the relevant application and <kbd>N</kbd> is the value of <kbd>WCF_N</kbd>.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.searchableObjectType.searchIndex.error.invalid"><![CDATA[The entered database table name is invalid.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.searchableObjectType.searchIndex.error.unknownApp"><![CDATA[No app with the abbreviation <kbd>{@$app}</kbd> is installed.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.sitemap.object.data.title"><![CDATA[Sitemap Object Data]]></item>
@@ -1924,113 +1940,110 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.sitemap.object.changeFreq.description"><![CDATA[The change frequency tells crawlers how often a page changes on average.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.sitemap.object.rebuildTime"><![CDATA[Rebuild Time]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.sitemap.object.rebuildTime.description"><![CDATA[After the entered time interval, the sitemap will be rebuilt by the system.]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.statDailyHandler.data.title"><![CDATA[Daily Statistics Handler Data]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.statDailyHandler.data.title"><![CDATA[Statistics Entry Data]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.statDailyHandler.categoryName"><![CDATA[Category]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.statDailyHandler.categoryName.description"><![CDATA[Daily statistics handler are grouped by their category on the stats page. The category consists of at least three segments that are separated by dots. Each segment may only contain the following characters: <kbd>[A-z0-9-_]</kbd>.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.statDailyHandler.categoryName.description"><![CDATA[Statistics entries are grouped by their category on the stats page. The category consists of at least three segments that are separated by dots. Each segment must not be empty and may only contain the following characters: <kbd>[A-z0-9-_]</kbd>.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.statDailyHandler.categoryName.error.tooFewSegments"><![CDATA[The entered category only contains {#$segmentCount} segment{if $segmentCount > 1}s{/if}.]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.statDailyHandler.isDefault"><![CDATA[Default Daily Statistics Handler]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.statDailyHandler.isDefault.description"><![CDATA[Default daily statistics handler are pre-selected when loading the stats page.]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.tagging.taggableObject.data.title"><![CDATA[Taggable Object Data]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.tagging.taggableObject.options.description"><![CDATA[At least one of the entered options has to be enabled the list of all objects of this type with a specific tag to be available. Options of non-required packages will be reported as non-existing.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.statDailyHandler.isDefault"><![CDATA[Is Default Statistics Entry]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.statDailyHandler.isDefault.description"><![CDATA[Default statistics entries are pre-selected when loading the stats page.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.tagging.taggableObject.data.title"><![CDATA[Taggable Object Type Data]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.tagging.taggableObject.options.description"><![CDATA[At least one of the entered options has to be enabled for the list of all objects of this type with a specific tag to be available. Options of non-required packages will be reported as non-existing.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.tagging.taggableObject.permissions.description"><![CDATA[The active user must be granted at least one of the entered permissions in order to see the list of all objects of this type with a specific tag. Permissions of non-required packages will be reported as non-existing.]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.user.activityPointEvent.data.title"><![CDATA[User Activity Event Points Data]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.user.activityPointEvent.data.title"><![CDATA[User Activity Event Points Type Data]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.user.activityPointEvent.points"><![CDATA[Points]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.user.activityPointEvent.points.description"><![CDATA[Number of points the user is awarded for the event.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.user.activityPointEvent.points.description"><![CDATA[Number of points the user is awarded for an activity of this type.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.versionTracker.objectType.data.title"><![CDATA[Version Tracker Object Type Data]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.versionTracker.objectType.tableName"><![CDATA[Database Table With Original Data]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.versionTracker.objectType.tableName.description"><![CDATA[Name of the database table containg the original data whose different version will be tracked. For all applications, <kbd>app1_</kbd> will be replaced with <kbd>appN_</kbd> in which <kbd>app</kbd> is the abbreviation of the relevant application and <kbd>N</kbd> is the value of <kbd>WCF_N</kbd>.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.versionTracker.objectType.tableName.description"><![CDATA[Name of the database table containg the original data whose different version will be tracked. For all installed apps, <kbd>app1_</kbd> will be replaced with <kbd>appN_</kbd> in which <kbd>app</kbd> is the abbreviation of the relevant application and <kbd>N</kbd> is the value of <kbd>WCF_N</kbd>.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.versionTracker.objectType.tableName.error.nonExistent"><![CDATA[The database table <kbd>{$tableName}</kbd> does not exist.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.versionTracker.objectType.tablePrimaryKey"><![CDATA[Database Table Primary Key Column]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.versionTracker.objectType.tablePrimaryKey.description"><![CDATA[Name of the column containing the primary key of the database table containg the original data whose different version will be tracked.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.versionTracker.objectType.tablePrimaryKey.error.nonExistent"><![CDATA[The entered column does not exist in the database table entered above.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.versionTracker.objectType.tablePrimaryKey.error.noPrimaryColumn"><![CDATA[The entered column has no primary key.]]></item>
                <item name="wcf.acp.pip.objectType.condition.conditionObject"><![CDATA[Conditioned Object Identifier]]></item>
-               <item name="wcf.acp.pip.objectType.condition.conditionObject.description"><![CDATA[The object type-alike identifier of the object this condition is related with is used to group large lists of conditions into logical groups.]]></item>
+               <item name="wcf.acp.pip.objectType.condition.conditionObject.description"><![CDATA[The object type-alike identifier of the object this condition is related with is used to split large lists of conditions into similar group.]]></item>
                <item name="wcf.acp.pip.objectType.condition.conditionObject.error.tooFewSegments"><![CDATA[The entered identifier only contains {#$segmentCount} segment{if $segmentCount > 1}s{/if}.]]></item>
                <item name="wcf.acp.pip.objectType.condition.conditionGroup"><![CDATA[Condition Group]]></item>
                <item name="wcf.acp.pip.objectType.condition.conditionGroup.description"><![CDATA[The condition group is used to group conditions with the same group identifier together into, generally, one tab. The condition group may only consist of letters and must begin with a lowercase letter.]]></item>
                <item name="wcf.acp.pip.objectType.condition.conditionGroup.error.format"><![CDATA[The entered condition group is invalid.]]></item>
                <item name="wcf.acp.pip.objectType.condition.integer.maxValue"><![CDATA[Maximum Value]]></item>
-               <item name="wcf.acp.pip.objectType.condition.integer.maxValue.description"><![CDATA[When setting up the condition, the value for this condition may not be greater than the entered value.]]></item>
+               <item name="wcf.acp.pip.objectType.condition.integer.maxValue.description"><![CDATA[When setting up conditions, the value for this condition may not be greater than the entered value.]]></item>
                <item name="wcf.acp.pip.objectType.condition.integer.minValue"><![CDATA[Minimum Value]]></item>
-               <item name="wcf.acp.pip.objectType.condition.integer.minValue.description"><![CDATA[When setting up the condition, the value for this condition may not be less than the entered value.]]></item>
-               <item name="wcf.acp.pip.objectType.condition.userGroup.includeGuests"><![CDATA[Include Guest User Group]]></item>
-               <item name="wcf.acp.pip.objectType.condition.userGroup.includeGuests.description"><![CDATA[When setting up the condition, the guest user group can also be selected.]]></item>
+               <item name="wcf.acp.pip.objectType.condition.integer.minValue.description"><![CDATA[When setting up conditions, the value for this condition may not be less than the entered value.]]></item>
+               <item name="wcf.acp.pip.objectType.condition.userGroup.includeGuests"><![CDATA[Offer Guest User Group as Option]]></item>
+               <item name="wcf.acp.pip.objectType.condition.userGroup.includeGuests.description"><![CDATA[When setting up conditions, the guest user group can also be selected for this condition.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName"><![CDATA[Object Type Definition]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.acl.description"><![CDATA[This object type definition is used to register types of objects for which ACL is available. ACL (Access control list) is used to set up (multiple) user and user group permissions for a specific object.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.acl.simple.description"><![CDATA[This object type definition is used to register types of objects for which simple ACL is available. Simple ACL (Access control list) is used to set up <strong>one</strong> yes/no permission user and user group permissions for a specific object.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.acl.description"><![CDATA[This object type definition is used to register types of objects for which ACL is available. ACL (<em>access control list</em>) is used to set up (multiple) user and user group permissions for a specific object.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.acl.simple.description"><![CDATA[This object type definition is used to register types of objects for which simple ACL is available. Simple ACL (<em>access control list</em>) is used to set up <strong>one</strong> yes/no permission user and user group permissions for a specific object.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.adLocation.description"><![CDATA[This object type definition is used to register locations at which ads can be displayed.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.attachment.objectType.description"><![CDATA[This object type definition is used to register types of objects that support attaching files to them.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.box.articleList.condition.description"><![CDATA[This object type definition is used to register available conditions/settings for boxes listing articles to determine which articles are shown in the box.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.box.recentActivityList.condition.description"><![CDATA[This object type definition is used to register available conditions/settings for boxes listing recent activities to determine which recent activities are shown in the box.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.box.userTrophyList.condition.description"><![CDATA[This object type definition is used to register available conditions/settings for boxes listing user trophies to determine which user trophies are shown in the box.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.boxController.description"><![CDATA[This object type definition is used to register box controllers that provide dynamic content based on the specific settings of the box.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.bulkProcessableObject.description"><![CDATA[This object type definition is used to register types of objects that support the bulk processing API with which a specific action can be executed on a list of object that fulfill certain conditions.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.bulkProcessableObject.description"><![CDATA[This object type definition is used to register types of objects that support the bulk processing API with which a specific action can be executed on objects that fulfill certain conditions.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.bulkProcessing.user.action.description"><![CDATA[This object type definition is used to register actions that can be executed when processing users in bulk.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.bulkProcessing.user.condition.description"><![CDATA[This object type definition is used to register conditions for users that are processed in bulk.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.captcha.description"><![CDATA[This object type definition is used to register captcha types that administrators are able to select to protect their sites.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.category.description"><![CDATA[This object type definition is used to register types of objects that can/must be categorized.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.clipboardItem.description"><![CDATA[This object type definition is used to register clipboard items that enable users to execute actions on multiple objects that were selected via checkboxes.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.collapsibleContent.description"><![CDATA[This object type definition is used to register content that users are able to collapse persistently.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.comment.commentableContent.description"><![CDATA[This object type definition is used to register objects that can be commented.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.clipboardItem.description"><![CDATA[This object type definition is used to register types of objects which users can select and then execute actions on the selected objects.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.collapsibleContent.description"><![CDATA[This object type definition is used to register content that users are able to expand and collapse persistently.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.comment.commentableContent.description"><![CDATA[This object type definition is used to register types of objects that can be commented.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.condition.ad.description"><![CDATA[This object type definition is used to register available conditions/settings for ads used to determine whether a specific ad is shown.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.condition.notice.description"><![CDATA[This object type definition is used to register available conditions/settings for notices used to determine whether a specific notice is shown.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.condition.trophy.description"><![CDATA[This object type definition is used to register available conditions/settings for trophies used to determine whether a specific trophy is awarded.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.condition.userGroupAssignment.description"><![CDATA[This object type definition is used to register conditions/settings for user group assignments used to determine whether a specific user is assigned to the user group.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.condition.userSearch.description"><![CDATA[This object type definition is used to register conditions/settings used when searching for users.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.content.userContentProvider.description"><![CDATA[This object type definition is used to register user content with a provider to provide specific user content from users.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.deletedContent.description"><![CDATA[This object type definition is used to register types of objects that can be deleted and whose deleted objects will be shown in a specific list of deleted contents accessible for moderators.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.edit.historySavingObject.description"><![CDATA[This object type definition is used to register messages of which different versions can be tracked using the edit history API.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.content.userContentProvider.description"><![CDATA[This object type definition is used to register user content with a provider to provide specific content from users.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.deletedContent.description"><![CDATA[This object type definition is used to register types of objects that can be deleted and whose deleted objects will be shown in a specific list of deleted contents accessible only for moderators.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.edit.historySavingObject.description"><![CDATA[This object type definition is used to register types of messages of which different versions can be tracked using the edit history API.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.exporter.description"><![CDATA[This object type definition is used to register exporters that export data from other software and import it into WoltLab Suite Core.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.importer.description"><![CDATA[This object type definition is used to register importers for specific types of objects.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.label.object.description"><![CDATA[This object type definition is used to register types of objects to which labels can be assigned.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.label.objectType.description"><![CDATA[This object type definition is used to register types of objects for which labels can be set up in the ACP.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.like.likeableObject.description"><![CDATA[This object type definition is used to register types of objects that can be liked (and disliked).]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.message.description"><![CDATA[This object type definition is used to register messages that support the WYSIWYG editor.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.like.likeableObject.description"><![CDATA[This object type definition is used to register types of objects that can be reacted to.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.message.description"><![CDATA[This object type definition is used to register types of messages that support the WYSIWYG editor.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.message.embeddedObject.description"><![CDATA[This object type definition is used to register types of messages in that other objects like media can be embedded.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.message.quote.description"><![CDATA[This object type definition is used to register types of messages that can be quoted.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.moderation.activation.description"><![CDATA[This object type definition is used to register types of objects that be enabled and disabled. For disabled objects, a moderation queue entry is created.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.moderation.report.description"><![CDATA[This object type definition is used to register types of objects that can be reported. For reported objects, a moderation queue entry is created.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.moderation.type.description"><![CDATA[This object type definition is used to register “states” of objects so that for objects in that state, a moderation queue entry is created.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.modifiableContent.description"><![CDATA[This object type definition is used to register types of objects for which modifications can be logged and accessed via a chronological modification list.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.moderation.type.description"><![CDATA[This object type definition is used to register “states” of objects so that for objects in a relevant state, a moderation queue entry is created.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.modifiableContent.description"><![CDATA[This object type definition is used to register types of objects for which modifications are logged. These logs can be viewed via a chronological modification list.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.notification.objectType.description"><![CDATA[This object type definition is used to register types of objects for which notifications can be sent.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.payment.method.description"><![CDATA[This object type definition is used to register payment methods used, for example, for subscriptions to user groups.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.payment.method.description"><![CDATA[This object type definition is used to register payment providers used, for example, for subscriptions to user groups.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.payment.type.description"><![CDATA[This object type definition is used to register types of objects for which payment is possible like subscriptions to user groups.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.poll.description"><![CDATA[This object type definition is used to register types of objects that support polls.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.rebuildData.description"><![CDATA[This object type definition is used to register workers used to rebuild a specific type of data, for example, after a data import.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.searchableObjectType.description"><![CDATA[This object type definition is used to register objects that be searched.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.searchableObjectType.description"><![CDATA[This object type definition is used to register types of objects that be searched.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.sitemap.object.description"><![CDATA[This object type definition is used to register types of objects for which a sitemap will be created.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.statDailyHandler.description"><![CDATA[This object type definition is used to register handlers that create specific daily stats.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.statDailyHandler.description"><![CDATA[This object type definition is used to register types of statistics entries shown in the ACP statistics.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.tagging.taggableObject.description"><![CDATA[This object type definition is used to register types of objects that can be tagged.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.user.activityPointEvent.description"><![CDATA[This object type definition is used to register events for which users are awarded activity points.]]></item>
-               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.user.objectWatch.description"><![CDATA[This object type definition is used to register types of objects that can be watched/subscribed to resulting in notifications for updates of the watched/subscribed object.]]></item>
+               <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.user.objectWatch.description"><![CDATA[This object type definition is used to register types of objects that can be watched/subscribed to resulting in notifications for updates of the watched/subscribed objects.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.user.recentActivityEvent.description"><![CDATA[This object type definition is used to register events for which a recent activity entry can be created.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.versionTracker.objectType.description"><![CDATA[This object type definition is used to register types of objects of which different versions can be tracked using the version tracker API.]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.visitTracker.objectType.description"><![CDATA[This object type definition is used to register types of objects for which it can be tracked if and when users have already seen or accessed them (the last time).]]></item>
                <item name="wcf.acp.pip.objectType.definitionName.com.woltlab.wcf.article.discussionProvider.description"><![CDATA[This object type definition is used to register different providers for where discussions on articles take place.]]></item>
                <item name="wcf.acp.pip.objectType.objectType"><![CDATA[Object Type Identifier]]></item>
-               <item name="wcf.acp.pip.objectType.objectType.description"><![CDATA[Textual identifier of the object type that is primarily used in PHP code. The identifier consists of at least four segments that are separated by dots. Each segment may only contain the following characters: <kbd>[A-z0-9-_]</kbd>.]]></item>
+               <item name="wcf.acp.pip.objectType.objectType.description"><![CDATA[Textual identifier of the object type that is primarily used in PHP code. The identifier consists of at least four segments that are separated by dots. Each segment must not be empty and may only contain the following characters: <kbd>[A-z0-9-_]</kbd>.]]></item>
                <item name="wcf.acp.pip.objectType.objectType.error.notUnique"><![CDATA[The entered name is already used by another object type of the same object type definition.]]></item>
                <item name="wcf.acp.pip.objectType.objectType.error.tooFewSegments"><![CDATA[The entered identifier only contains {#$segmentCount} segment{if $segmentCount > 1}s{/if}.]]></item>
                <item name="wcf.acp.pip.objectTypeDefinition.definitionName"><![CDATA[Definition Name]]></item>
-               <item name="wcf.acp.pip.objectTypeDefinition.definitionName.description"><![CDATA[The name of an object type definitions consists of least four segments separated by dots. Each segment must not be empty and may only contain letters, numbers, underscores, and dashes. In general, the first part of the definition name matches the package identifier. Example: <kbd>{$project->getPackage()->package}.type</kbd>]]></item>
+               <item name="wcf.acp.pip.objectTypeDefinition.definitionName.description"><![CDATA[The name of an object type definitions consists of least four segments separated by dots. Each segment must not be empty and may only contain the following characters: <kbd>[A-z0-9-_]</kbd>. In general, the first part of the definition name matches the package identifier. Example: <kbd>{$project->getPackage()->package}.type</kbd>]]></item>
                <item name="wcf.acp.pip.objectTypeDefinition.definitionName.error.notUnique"><![CDATA[The entered name is already used by another definition.]]></item>
                <item name="wcf.acp.pip.objectTypeDefinition.definitionName.error.tooFewSegments"><![CDATA[The entered name only contains {#$segmentCount} segment{if $segmentCount > 1}s{/if}.]]></item>
                <item name="wcf.acp.pip.objectTypeDefinition.interfaceName"><![CDATA[PHP Interface]]></item>
                <item name="wcf.acp.pip.objectTypeDefinition.interfaceName.description"><![CDATA[If a PHP interface is entered, every object type of this definition must provide the name of a PHP class that implements the interface.]]></item>
                <item name="wcf.acp.pip.objectTypeDefinition.interfaceName.error.nonExistent"><![CDATA[The entered interface does not exist.]]></item>
                <item name="wcf.acp.pip.pip.pluginName"><![CDATA[Package Installation Plugin Name]]></item>
-               <item name="wcf.acp.pip.pip.pluginName.description"><![CDATA[The name of the package installation plugin is used as the value of the <kbd>type</kbd> attribute of an <kbd>instruction</kbd> element in a <kbd>package.xml</kbd> file. The name may only consist of letters and must begin with a lowercase letter.]]></item>
+               <item name="wcf.acp.pip.pip.pluginName.description"><![CDATA[The name of the package installation plugin is used as the value of the <kbd>type</kbd> attribute of <kbd>instruction</kbd> elements in a <kbd>package.xml</kbd> file. The name may only consist of letters and must begin with a lowercase letter.]]></item>
                <item name="wcf.acp.pip.pip.pluginName.error.format"><![CDATA[The entered name is invalid.]]></item>
                <item name="wcf.acp.pip.pip.pluginName.error.notUnique"><![CDATA[The entered name is already used by another package installation plugin.]]></item>
                <item name="wcf.acp.pip.userProfileMenu.menuItem"><![CDATA[Menu Item Name]]></item>
                <item name="wcf.acp.pip.userProfileMenu.menuItem.description"><![CDATA[The name of the user profile may only contain letters and must begin with a lowercase letter.]]></item>
                <item name="wcf.acp.pip.userProfileMenu.menuItem.error.format"><![CDATA[The entered name is invalid.]]></item>
                <item name="wcf.acp.pip.userProfileMenu.menuItem.error.notUnique"><![CDATA[The entered name is already used by another user profile menu item.]]></item>
-               <item name="wcf.acp.pip.userProfileMenu.showOrder"><![CDATA[Position]]></item>
                <item name="wcf.acp.pip.userProfileMenu.showOrder.description"><![CDATA[The entered value determines in which order the user profile menu items are shown.]]></item>
-               <item name="wcf.acp.pip.userProfileMenu.options.description"><![CDATA[At least one of the entered options has to be enabled for the menu item to be available. Options of non-required packages will be reported as non-existing.]]></item>
-               <item name="wcf.acp.pip.userProfileMenu.permissions.description"><![CDATA[The active user must be granted at least one of the entered permissions in order to see the menu item. Permissions of non-required packages will be reported as non-existing.]]></item>
                <item name="wcf.acp.pip.userNotificationEvent.eventName"><![CDATA[Event Name]]></item>
                <item name="wcf.acp.pip.userNotificationEvent.eventName.description"><![CDATA[The name of the event may only contain letters and must begin with a lowercase letter.]]></item>
                <item name="wcf.acp.pip.userNotificationEvent.eventName.error.format"><![CDATA[The entered name is invalid.]]></item>
@@ -2048,19 +2061,18 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.templateListener.eventName"><![CDATA[Event]]></item>
                <item name="wcf.acp.pip.templateListener.eventName.description"><![CDATA[The selected event determines at which location in the template the template listeners’ code is inserted.]]></item>
                <item name="wcf.acp.pip.templateListener.name"><![CDATA[Template Listener Name]]></item>
-               <item name="wcf.acp.pip.templateListener.name.description"><![CDATA[The name of the event may only contain letters and must begin with a lowercase letter.]]></item>
+               <item name="wcf.acp.pip.templateListener.name.description"><![CDATA[The name of the template listener may only contain letters and must begin with a lowercase letter.]]></item>
                <item name="wcf.acp.pip.templateListener.name.error.format"><![CDATA[The entered name is invalid.]]></item>
                <item name="wcf.acp.pip.templateListener.name.error.notUnique"><![CDATA[The entered name is already used by another template listener for the same event.]]></item>
                <item name="wcf.acp.pip.templateListener.templateCode"><![CDATA[Template Code]]></item>
-               <item name="wcf.acp.pip.templateListener.templateCode.description"><![CDATA[The entered template code is inserted at the location of the specified template event.]]></item>
+               <item name="wcf.acp.pip.templateListener.templateCode.description"><![CDATA[The entered template code is inserted at the location of the selected event into the template.]]></item>
                <item name="wcf.acp.pip.templateListener.templateName"><![CDATA[Template]]></item>
                <item name="wcf.acp.pip.templateListener.templateName.description"><![CDATA[The template listeners’ code will be inserted into the selected template.]]></item>
                <item name="wcf.acp.pip.coreObject.objectName.error.notUnique"><![CDATA[The entered class is already registered as a core object.]]></item>
                <item name="wcf.acp.pip.acpSearchProvider.providerName"><![CDATA[Provider Name]]></item>
-               <item name="wcf.acp.pip.acpSearchProvider.providerName.description"><![CDATA[The name of an ACP search result provider consists of least four segments separated by dots. Each segment must not be empty and may only contain letters, numbers, underscores, and dashes. In general, the first part of the definition name matches the package identifier. Example: <kbd>{$project->getPackage()->package}.searchedObject</kbd>]]></item>
+               <item name="wcf.acp.pip.acpSearchProvider.providerName.description"><![CDATA[The name of an ACP search result provider consists of least four segments separated by dots. Each segment must not be empty and may only contain the following characters: <kbd>[A-z0-9-_]</kbd>. In general, the first part of the definition name matches the package identifier. Example: <kbd>{$project->getPackage()->package}.searchedObject</kbd>]]></item>
                <item name="wcf.acp.pip.acpSearchProvider.providerName.error.notUnique"><![CDATA[The entered name is already used by another acp search result provider.]]></item>
                <item name="wcf.acp.pip.acpSearchProvider.providerName.error.tooFewSegments"><![CDATA[The entered provider name only contains {#$segmentCount} segment{if $segmentCount > 1}s{/if}.]]></item>
-               <item name="wcf.acp.pip.acpSearchProvider.showOrder"><![CDATA[Position]]></item>
                <item name="wcf.acp.pip.acpSearchProvider.showOrder.description"><![CDATA[The entered value determines in which order the different types of search results are shown.]]></item>
                <item name="wcf.acp.pip.mediaProvider.name"><![CDATA[Provider Name]]></item>
                <item name="wcf.acp.pip.mediaProvider.name.description"><![CDATA[The name of the media provider may only contain letters, numbers and dashes and must begin with a lowercase letter.]]></item>
@@ -2069,21 +2081,21 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.mediaProvider.regex.description"><![CDATA[The entered regular expressions (without delimiters) are used to check if this media provider is responsible for a given link. Each line is treated as its own regular expression.]]></item>
                <item name="wcf.acp.pip.mediaProvider.html"><![CDATA[HTML Code]]></item>
                <item name="wcf.acp.pip.mediaProvider.html.description"><![CDATA[The html code is used to produce the rendered output of the linked media content. Every named group of the regular expression is accessible as <kbd>{literal}{$name}{/literal}</kbd> where <kbd>name</kbd> is the name of the group.]]></item>
-               <item name="wcf.acp.pip.mediaProvider.html.error.className"><![CDATA[You cannot enter HTML code if you have already provided a class that handles the output.]]></item>
-               <item name="wcf.acp.pip.mediaProvider.html.error.noClassName"><![CDATA[You have to provide either HTML code or a class that handles the output.]]></item>
+               <item name="wcf.acp.pip.mediaProvider.html.error.className"><![CDATA[You cannot enter HTML code if you have already provided a PHP class that handles the output.]]></item>
+               <item name="wcf.acp.pip.mediaProvider.html.error.noClassName"><![CDATA[You have to provide either HTML code or a PHP class that handles the output.]]></item>
                <item name="wcf.acp.pip.aclOption.categories.name"><![CDATA[Category Name]]></item>
-               <item name="wcf.acp.pip.aclOption.categories.name.description"><![CDATA[The name of an ACL option category consists of least two segments separated by dots. Each segment must not be empty and may only contain letters, numbers, underscores, and dashes.]]></item>
+               <item name="wcf.acp.pip.aclOption.categories.name.description"><![CDATA[The name of an ACL option category consists of least two segments separated by dots. Each segment must not be empty and may only contain the following characters: <kbd>[A-z0-9-_]</kbd>.]]></item>
                <item name="wcf.acp.pip.aclOption.categories.name.error.tooFewSegments"><![CDATA[The entered category name only contains {#$segmentCount} segment{if $segmentCount > 1}s{/if}.]]></item>
                <item name="wcf.acp.pip.aclOption.options.categoryName"><![CDATA[Category]]></item>
                <item name="wcf.acp.pip.aclOption.options.categoryName.description"><![CDATA[The ACL option is listed in the selected category.]]></item>
                <item name="wcf.acp.pip.aclOption.options.name"><![CDATA[Option Name]]></item>
                <item name="wcf.acp.pip.aclOption.options.name.description"><![CDATA[The name of the ACL option may only contain letters and must begin with a lowercase letter.]]></item>
-               <item name="wcf.acp.pip.aclOption.options.name.error.format"><![CDATA[The entered option name is invalid]]></item>
+               <item name="wcf.acp.pip.aclOption.options.name.error.format"><![CDATA[The entered option name is invalid.]]></item>
                <item name="wcf.acp.pip.aclOption.objectType"><![CDATA[ACL Object Type]]></item>
                <item name="wcf.acp.pip.aclOption.objectType.categories.description"><![CDATA[The ACL object type determines to which type of objects the category belongs to. Note that only ACL object types of the package itself or its required packages are available.]]></item>
-               <item name="wcf.acp.pip.aclOption.objectType.categories.error.notUnique"><![CDATA[The entered name is already used by another ACL option category for the same ACL object type.]]></item>
+               <item name="wcf.acp.pip.aclOption.categories.name.error.notUnique"><![CDATA[The entered name is already used by another ACL option category for the same ACL object type.]]></item>
                <item name="wcf.acp.pip.aclOption.objectType.options.description"><![CDATA[The ACL object type determines to which type of objects the option belongs to. Note that only ACL object types of the package itself or its required packages are available.]]></item>
-               <item name="wcf.acp.pip.aclOption.objectType.options.error.notUnique"><![CDATA[The entered name is already used by another ACL option for the same ACL object type.]]></item>
+               <item name="wcf.acp.pip.aclOption.options.name.error.notUnique"><![CDATA[The entered name is already used by another ACL option for the same ACL object type.]]></item>
                <item name="wcf.acp.pip.abstractMenu.menuItem"><![CDATA[Menu Item Identifier]]></item>
                <item name="wcf.acp.pip.abstractMenu.menuItem.error.notUnique"><![CDATA[The entered identifier is already used by another menu item.]]></item>
                <item name="wcf.acp.pip.abstractMenu.parentMenuItem"><![CDATA[Parent Menu Item]]></item>
@@ -2096,19 +2108,18 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.abstractMenu.menuItemLink.error.noLinkSpecified"><![CDATA[You either have to enter a menu item controller or a menu item link.]]></item>
                <item name="wcf.acp.pip.abstractMenu.options.description"><![CDATA[At least one of the entered options has to be enabled for the menu item to be visible. Options of non-required packages will be reported as non-existing.]]></item>
                <item name="wcf.acp.pip.abstractMenu.permissions.description"><![CDATA[The active user must be granted at least one of the entered permissions in order to see the menu item. Permissions of non-required packages will be reported as non-existing.]]></item>
-               <item name="wcf.acp.pip.abstractMenu.showOrder"><![CDATA[Position]]></item>
                <item name="wcf.acp.pip.abstractMenu.showOrder.description"><![CDATA[The entered value determines in which order the menu items with the same parent are shown.]]></item>
                <item name="wcf.acp.pip.acpMenu.icon"><![CDATA[Menu Item Icon]]></item>
-               <item name="wcf.acp.pip.acpMenu.icon.description"><![CDATA[The menu item icon is only available for menu items on the first level (without any parent) and for menu items on the fourth level. For first level menu items, the icon is shown in addition to the menu item title while for fourth level menu items, only the icon is shown and the menu item title becomes a tooltip.]]></item>
+               <item name="wcf.acp.pip.acpMenu.icon.description"><![CDATA[The menu item icon is only available for menu items on the first level and for menu items on the fourth (and lowest) level. For first level menu items, the icon is shown in addition to the menu item title while for fourth level menu items, only the icon is shown and the menu item title becomes a tooltip.]]></item>
                <item name="wcf.acp.pip.acpMenu.menuItem.description"><![CDATA[The menu item identifier must have the format <kbd>{literal}{app}.acp.menu.link.{additionalIdentifiers}{/literal}</kbd> where <kbd>{literal}{app}{/literal}</kbd> and <kbd>{literal}{additionalIdentifiers}{/literal}</kbd> have to be replaced with the appropriate values. <kbd>{literal}{additionalIdentifiers}{/literal}</kbd> may only contain letters, numbers, and dots.]]></item>
                <item name="wcf.acp.pip.acpMenu.menuItem.error.format"><![CDATA[The entered identifier is invalid.]]></item>
                <item name="wcf.acp.pip.acpMenu.menuItemController.error.noAcpController"><![CDATA[The entered controller is no ACP controller. An ACP controller begins with <kbd>{literal}{app}{/literal}\acp\</kbd> where <kbd>{literal}{app}{/literal}</kbd> is the abbreviation of the relevant app.]]></item>
                <item name="wcf.acp.pip.userMenu.iconClassName"><![CDATA[Menu Item Icon]]></item>
-               <item name="wcf.acp.pip.userMenu.iconClassName.description"><![CDATA[The menu item icon is only available for menu items on the first level.]]></item>
+               <item name="wcf.acp.pip.userMenu.iconClassName.description"><![CDATA[Menu item icons is only available for menu items on the first level.]]></item>
                <item name="wcf.acp.pip.userMenu.menuItem.description"><![CDATA[The menu item identifier must have the format <kbd>{literal}{app}.user.menu.{additionalIdentifiers}{/literal}</kbd> where <kbd>{literal}{app}{/literal}</kbd> and <kbd>{literal}{additionalIdentifiers}{/literal}</kbd> have to be replaced with the appropriate values. <kbd>{literal}{additionalIdentifiers}{/literal}</kbd> may only contain letters, numbers, and dots.]]></item>
                <item name="wcf.acp.pip.userMenu.menuItem.error.format"><![CDATA[The entered identifier is invalid.]]></item>
-               <item name="wcf.acp.pip.cronjob.cronjobName"><![CDATA[Cronjob Identifier]]></item>
-               <item name="wcf.acp.pip.cronjob.cronjobName.description"><![CDATA[The cronjob identifier generally consists of the package identifier and the unqualified class name beginning with a lowercase letter and without the “Cronjob” suffix (example: <kbd>com.woltlab.wcf.example.doStuff</kbd> is the identifier for the cronjob <kbd>wcf\system\cronjob\DoStuffCronjob</kbd> from the <kbd>com.woltlab.wcf.example</kbd> package).]]></item>
+               <item name="wcf.acp.pip.cronjob.cronjobName"><![CDATA[Cronjob Name]]></item>
+               <item name="wcf.acp.pip.cronjob.cronjobName.description"><![CDATA[The cronjob name generally consists of the package identifier and the unqualified class name beginning with a lowercase letter and without the “Cronjob” suffix (example: <kbd>com.woltlab.wcf.example.doStuff</kbd> is the name for the cronjob <kbd>wcf\system\cronjob\DoStuffCronjob</kbd> from the <kbd>com.woltlab.wcf.example</kbd> package).]]></item>
                <item name="wcf.acp.pip.cronjob.description.description"><![CDATA[The description explains the functionality of the cronjob.]]></item>
                <item name="wcf.acp.pip.cronjob.options.description"><![CDATA[At least one of the entered options has to be enabled for the cronjob to be executed. Options of non-required packages will be reported as non-existing.]]></item>
                <item name="wcf.acp.pip.cronjob.isDisabled"><![CDATA[Disable Cronjob]]></item>
@@ -2123,22 +2134,21 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.cronjob.startMinute.error.format"><![CDATA[The entered format is invalid. You have to entered a valid minute or a list of valid minutes.]]></item>
                <item name="wcf.acp.pip.cronjob.startMonth.error.format"><![CDATA[The entered format is invalid. You have to entered a valid month or a list of valid months.]]></item>
                <item name="wcf.acp.pip.menu.identifier"><![CDATA[Menu Identifier]]></item>
-               <item name="wcf.acp.pip.menu.identifier.description"><![CDATA[The menu identifier is used to update menus and for menu-related language item names. The identifier consists of least four segments separated by dots. Each segment must not be empty and may only contain letters, numbers, underscores, and dashes. In general, the first part of the menu identifier is the package identifier. Example: <kbd>com.foo.bar.menu</kbd>]]></item>
+               <item name="wcf.acp.pip.menu.identifier.description"><![CDATA[The menu identifier is used to update menus and for menu-related language item names. The identifier consists of least four segments separated by dots. Each segment must not be empty and may only contain the following characters: <kbd>[A-z0-9-_]</kbd>. In general, the first part of the menu identifier is the package identifier. Example: <kbd>com.foo.bar.package.menu</kbd>]]></item>
                <item name="wcf.acp.pip.menu.identifier.error.notUnique"><![CDATA[The entered identifier is already used by another menu.]]></item>
                <item name="wcf.acp.pip.menu.identifier.error.tooFewSegments"><![CDATA[The entered menu identifier only contains {#$segmentCount} segment{if $segmentCount > 1}s{/if}.]]></item>
                <item name="wcf.acp.pip.menu.createBox"><![CDATA[Automatically Create Box for Menu]]></item>
-               <item name="wcf.acp.pip.menu.createBox.description"><![CDATA[If this option is selected, after creating the menu, a box for the menu will also be created.]]></item>
+               <item name="wcf.acp.pip.menu.createBox.description"><![CDATA[If selected, after creating the menu, a box for the menu will also be created.]]></item>
                <item name="wcf.acp.pip.menu.boxPosition"><![CDATA[Box Position]]></item>
                <item name="wcf.acp.pip.menu.boxPosition.description"><![CDATA[Determines the position at which the box containing the menu will be shown.]]></item>
                <item name="wcf.acp.pip.menu.boxShowHeader"><![CDATA[Show Box Header]]></item>
-               <item name="wcf.acp.pip.menu.boxShowHeader.description"><![CDATA[The title in the box header is the title of the menu.]]></item>
                <item name="wcf.acp.pip.menu.boxVisibleEverywhere"><![CDATA[Box Visible Everywhere]]></item>
                <item name="wcf.acp.pip.menu.boxVisibilityExceptions.hiddenEverywhere"><![CDATA[Pages on Which the Box Will be Explicitly <strong>Visible</strong>]]></item>
                <item name="wcf.acp.pip.menu.boxVisibilityExceptions.visibleEverywhere"><![CDATA[Pages on Which the Box Will be Explicitly <strong>Hidden</strong>]]></item>
                <item name="wcf.acp.pip.menu.boxCssClassName"><![CDATA[Box CSS Classes]]></item>
                <item name="wcf.acp.pip.menu.boxCssClassName.description"><![CDATA[The entered comma-separated CSS classes are assigned to the box containing the menu.]]></item>
                <item name="wcf.acp.pip.menuItem.identifier"><![CDATA[Menu Item Identifier]]></item>
-               <item name="wcf.acp.pip.menuItem.identifier.description"><![CDATA[The menu item identifier is used to update menu items and for menu item-related language item names. The identifier consists of least four segments separated by dots. Each segment must not be empty and may only contain letters, numbers, underscores, and dashes. In general, the first part of the menu identifier is the package identifier. Example: <kbd>com.foo.bar.menu</kbd>]]></item>
+               <item name="wcf.acp.pip.menuItem.identifier.description"><![CDATA[The menu item identifier is used to update menu items and for menu item-related language item names. The identifier consists of least four segments separated by dots. Each segment must not be empty and may only contain the following characters: <kbd>[A-z0-9-_]</kbd>. In general, the first part of the menu identifier is the package identifier. Example: <kbd>com.foo.bar.package.menuItem</kbd>]]></item>
                <item name="wcf.acp.pip.menuItem.identifier.error.notUnique"><![CDATA[The entered identifier is already used by another menu item.]]></item>
                <item name="wcf.acp.pip.menuItem.identifier.error.tooFewSegments"><![CDATA[The identifier only contains {#$segmentCount} segment{if $segmentCount > 1}s{/if}.]]></item>
                <item name="wcf.acp.pip.menuItem.menu"><![CDATA[Menu]]></item>
@@ -2149,12 +2159,11 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.menuItem.page"><![CDATA[Page]]></item>
                <item name="wcf.acp.pip.menuItem.page.description"><![CDATA[The menu item will link to the selected page.]]></item>
                <item name="wcf.acp.pip.menuItem.parentMenuItem"><![CDATA[Parent Menu Item]]></item>
-               <item name="wcf.acp.pip.menuItem.showOrder"><![CDATA[Position]]></item>
                <item name="wcf.acp.pip.menuItem.showOrder.description"><![CDATA[The entered value determines in which order the menu items with the same parent are shown.]]></item>
                <item name="wcf.acp.pip.menuItem.externalURL"><![CDATA[External URL]]></item>
                <item name="wcf.acp.pip.menuItem.externalURL.description"><![CDATA[When clicking on the menu item, the user is redirected to the entered website.]]></item>
                <item name="wcf.acp.pip.page.identifier"><![CDATA[Page Identifier]]></item>
-               <item name="wcf.acp.pip.page.identifier.description"><![CDATA[The identifier consists of least four segments separated by dots. Each segment must not be empty and may only contain letters, numbers, underscores, and dashes. In general, the first part of the menu identifier is the package identifier and the second part is the unqualified controller class without the controller type suffixes <kbd>Form</kbd> and <kbd>Page</kbd>. Example: <kbd>com.foo.bar.Baz</kbd>]]></item>
+               <item name="wcf.acp.pip.page.identifier.description"><![CDATA[The identifier consists of least four segments separated by dots. Each segment must not be empty and may only contain the following characters: <kbd>[A-z0-9-_]</kbd>. In general, the first part of the menu identifier is the package identifier and the second part is the unqualified controller class without the controller type suffixes <kbd>Form</kbd> and <kbd>Page</kbd>. Example: <kbd>com.foo.bar.package.Baz</kbd>]]></item>
                <item name="wcf.acp.pip.page.identifier.error.notUnique"><![CDATA[The entered identifier is already used by another page.]]></item>
                <item name="wcf.acp.pip.page.identifier.error.tooFewSegments"><![CDATA[The identifier only contains {#$segmentCount} segment{if $segmentCount > 1}s{/if}.]]></item>
                <item name="wcf.acp.pip.page.pageType"><![CDATA[Page Type]]></item>
@@ -2168,11 +2177,11 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.page.requireObjectID"><![CDATA[Requires Object ID]]></item>
                <item name="wcf.acp.pip.page.requireObjectID.description"><![CDATA[The page requires an object id to be displayed.]]></item>
                <item name="wcf.acp.pip.page.hasFixedParent"><![CDATA[Has Fixed Parent]]></item>
-               <item name="wcf.acp.pip.page.hasFixedParent.description"><![CDATA[Users are unable to change the page's parent page.]]></item>
+               <item name="wcf.acp.pip.page.hasFixedParent.description"><![CDATA[Administrators are unable to change the page's parent page.]]></item>
                <item name="wcf.acp.pip.page.parent"><![CDATA[Parent Page]]></item>
                <item name="wcf.acp.pip.page.parent.error.selfParent"><![CDATA[You have selected the page itself as its parent page.]]></item>
                <item name="wcf.acp.pip.page.options.description"><![CDATA[At least one of the entered options has to be enabled for <strong>menu items</strong> linking to this page to be visible. This option does control the accessibility of the page itself. Options of non-required packages will be reported as non-existing.]]></item>
-               <item name="wcf.acp.pip.page.permissions.description"><![CDATA[The active user must be granted at least one of the entered permissions in order to see <strong>menu items</strong> linking to this page. This option does control the accessibility of the page itself. Permissions of non-required packages will be reported as non-existing.]]></item>
+               <item name="wcf.acp.pip.page.permissions.description"><![CDATA[The active user must be granted at least one of the entered permissions in order to see <strong>menu items</strong> linking to this page. This option does not control the accessibility of the page itself. Permissions of non-required packages will be reported as non-existing.]]></item>
                <item name="wcf.acp.pip.page.cssClassName"><![CDATA[CSS Classes]]></item>
                <item name="wcf.acp.pip.page.cssClassName.description"><![CDATA[The entered comma-separated CSS classes are assigned to the <kbd>body</kbd> element.]]></item>
                <item name="wcf.acp.pip.page.allowSpidersToIndex"><![CDATA[Allow search spiders to index this page]]></item>
@@ -2195,50 +2204,45 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.eventListener.listenerClassName"><![CDATA[PHP Event Listener Class]]></item>
                <item name="wcf.acp.pip.eventListener.environment"><![CDATA[Environment]]></item>
                <item name="wcf.acp.pip.eventListener.environment.description"><![CDATA[The environment determines whether the event listener is executed in the frontend (<kbd>user</kbd>) or the ACP (<kbd>admin</kbd>).]]></item>
-               <item name="wcf.acp.pip.eventListener.inherit"><![CDATA[Inherit Event Listener]]></item>
-               <item name="wcf.acp.pip.eventListener.inherit.description"><![CDATA[If an event listener is inherited, it is not only triggered if the event is fired by the class entered above, but it is also fired by classes inheriting from the entered class.]]></item>
+               <item name="wcf.acp.pip.eventListener.inherit"><![CDATA[Support Inheritance]]></item>
+               <item name="wcf.acp.pip.eventListener.inherit.description"><![CDATA[If inheritance is supported, the event listener is not only triggered if the event is fired by the class entered above, but it is also fired by classes inheriting from the entered class.]]></item>
                <item name="wcf.acp.pip.eventListener.niceValue"><![CDATA[Nice Value]]></item>
-               <item name="wcf.acp.pip.eventListener.niceValue.description"><![CDATA[The nice value is used to determine the order in which event listeners for the same event are executed. Event listeners with lower nice value are executed first.]]></item>
+               <item name="wcf.acp.pip.eventListener.niceValue.description"><![CDATA[The nice value is used to determine the order in which event listeners for the same event are executed. Event listeners with lower nice value are executed first.]]></item>
                <item name="wcf.acp.pip.eventListener.options.description"><![CDATA[At least one of the entered options has to be enabled for the event listener to be executed. Options of non-required packages will be reported as non-existing.]]></item>
                <item name="wcf.acp.pip.eventListener.permissions.description"><![CDATA[The active user must be granted at least one of the entered permissions for the event listener to be executed. Permissions of non-required packages will be reported as non-existing.]]></item>
                <item name="wcf.acp.pip.clipboardAction.actionName"><![CDATA[Clipboard Action Name]]></item>
-               <item name="wcf.acp.pip.clipboardAction.actionName.description"><![CDATA[Unique textual identifier (per clipboard action class name) of the clipboard action that may only contain letters and must start with a lowercase letter.]]></item>
+               <item name="wcf.acp.pip.clipboardAction.actionName.description"><![CDATA[Unique textual identifier (per clipboard action class) of the clipboard action that may only contain letters and must start with a lowercase letter.]]></item>
                <item name="wcf.acp.pip.clipboardAction.actionName.error.format"><![CDATA[The entered name is invalid.]]></item>
                <item name="wcf.acp.pip.clipboardAction.actionClassName"><![CDATA[Clipboard Action Class Name]]></item>
-               <item name="wcf.acp.pip.clipboardAction.actionClassName.error.notUnique"><![CDATA[There is already a clipboard action for the entered action class with this action name.]]></item>
-               <item name="wcf.acp.pip.clipboardAction.showOrder"><![CDATA[Position]]></item>
+               <item name="wcf.acp.pip.clipboardAction.actionClassName.error.notUnique"><![CDATA[There is already a clipboard action with this action name for the entered action class.]]></item>
                <item name="wcf.acp.pip.clipboardAction.showOrder.description"><![CDATA[The entered value determines in which order the clipboard actions for the same clipboard action class are shown.]]></item>
                <item name="wcf.acp.pip.clipboardAction.pages"><![CDATA[Pages]]></item>
                <item name="wcf.acp.pip.clipboardAction.pages.description"><![CDATA[The clipboard action is available on the entered pages.]]></item>
                <item name="wcf.acp.pip.box.position"><![CDATA[Position]]></item>
                <item name="wcf.acp.pip.box.boxType"><![CDATA[Box Type]]></item>
                <item name="wcf.acp.pip.box.boxType.description"><![CDATA[The content of “text” boxes can be edited by administrators using the built-in WYSIWYG editor. “html” boxes addditionally allow HTML code and “tpl” boxes also template scripting. The content of “system” boxes cannot be edited by administrators as their content is provided by the boxes' controller.]]></item>
-               <item name="wcf.acp.pip.box.objectType"><![CDATA[Box Controller]]></item>
+               <item name="wcf.acp.pip.box.objectType"><![CDATA[Controller]]></item>
                <item name="wcf.acp.pip.box.objectType.description"><![CDATA[The box controller provides the content of the box.]]></item>
                <item name="wcf.acp.pip.box.identifier"><![CDATA[Box Identifier]]></item>
-               <item name="wcf.acp.pip.box.identifier.description"><![CDATA[The box identifier is used to update boxes. The identifier consists of least four segments separated by dots. Each segment must not be empty and may only contain letters, numbers, underscores, and dashes. In general, the first part of the menu identifier is the package identifier. Example: <kbd>com.foo.bar.Box</kbd>]]></item>
+               <item name="wcf.acp.pip.box.identifier.description"><![CDATA[The box identifier is used to update boxes. The identifier consists of least four segments separated by dots. Each segment must not be empty and may only contain the following characters: <kbd>[A-z0-9-_]</kbd>. In general, the first part of the menu identifier is the package identifier. Example: <kbd>com.foo.bar.package.Box</kbd>]]></item>
                <item name="wcf.acp.pip.box.identifier.error.notUnique"><![CDATA[The entered identifier is already used by another box.]]></item>
                <item name="wcf.acp.pip.box.identifier.error.tooFewSegments"><![CDATA[The identifier only contains {#$segmentCount} segment{if $segmentCount > 1}s{/if}.]]></item>
                <item name="wcf.acp.pip.box.name"><![CDATA[Name]]></item>
-               <item name="wcf.acp.pip.box.name.description"><![CDATA[The box name is displayed in the ACP on the box list.]]></item>
+               <item name="wcf.acp.pip.box.name.description"><![CDATA[The box name is displayed in the box list in the ACP.]]></item>
                <item name="wcf.acp.pip.box.showHeader"><![CDATA[Show Header]]></item>
                <item name="wcf.acp.pip.box.visibleEverywhere"><![CDATA[Box Visible Everywhere]]></item>
                <item name="wcf.acp.pip.box.visibilityExceptions.hiddenEverywhere"><![CDATA[Pages on Which the Box Will be Explicitly <strong>Visible</strong>]]></item>
                <item name="wcf.acp.pip.box.visibilityExceptions.visibleEverywhere"><![CDATA[Pages on Which the Box Will be Explicitly <strong>Hidden</strong>]]></item>
-               <item name="wcf.acp.pip.box.cssClassName"><![CDATA[Box CSS Classes]]></item>
+               <item name="wcf.acp.pip.box.cssClassName"><![CDATA[CSS Classes]]></item>
                <item name="wcf.acp.pip.box.cssClassName.description"><![CDATA[The entered comma-separated CSS classes are assigned to the box element.]]></item>
-               <item name="wcf.acp.pip.box.content"><![CDATA[Box Contents]]></item>
-               <item name="wcf.acp.pip.box.content.title"><![CDATA[Box Title]]></item>
+               <item name="wcf.acp.pip.box.content"><![CDATA[Contents]]></item>
+               <item name="wcf.acp.pip.box.content.title"><![CDATA[Title]]></item>
                <item name="wcf.acp.pip.box.content.content"><![CDATA[Box Content]]></item>
-               <item name="wcf.acp.box.controller.sortField"><![CDATA[Sort By]]></item>
-               <item name="wcf.acp.box.controller.sortField.description"><![CDATA[The selected object property is used for sorting.]]></item>
-               <item name="wcf.acp.box.controller.limit"><![CDATA[Maximum Number of Items]]></item>
                <item name="wcf.acp.pip.abstractOption.options.optionName"><![CDATA[Option Name]]></item>
                <item name="wcf.acp.pip.abstractOption.options.categoryName"><![CDATA[Category]]></item>
                <item name="wcf.acp.pip.abstractOption.options.optionType"><![CDATA[Option Type]]></item>
                <item name="wcf.acp.pip.abstractOption.categories.categoryName"><![CDATA[Category Name]]></item>
                <item name="wcf.acp.pip.abstractOption.categories.parentCategoryName"><![CDATA[Parent Category]]></item>
-               <item name="wcf.acp.pip.abstractOption.categories.showOrder"><![CDATA[Position]]></item>
                <item name="wcf.acp.pip.abstractOption.categories.showOrder.description"><![CDATA[The entered value determines in which order the categories with the same parent category are shown.]]></item>
                <item name="wcf.acp.pip.abstractOption.categories.options.description"><![CDATA[At least one of the entered options has to be enabled for the options in the category to be editable. Options of non-required packages will be reported as non-existing.]]></item>
                <item name="wcf.acp.pip.abstractOption.categories.permissions.description"><![CDATA[The active user must be granted at least one of the entered permissions for the options in the category to be editable. Permissions of non-required packages will be reported as non-existing.]]></item>
@@ -2252,8 +2256,7 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.abstractOption.options.selectOptions"><![CDATA[Selectable Options]]></item>
                <item name="wcf.acp.pip.abstractOption.options.selectOptions.description"><![CDATA[Each option has to be written in a new line using the format <kbd>value:description</kbd> where <kbd>description</kbd> may be the identifier of a phrase.]]></item>
                <item name="wcf.acp.pip.abstractOption.options.enableOptions"><![CDATA[Enabled Options]]></item>
-               <item name="wcf.acp.pip.abstractOption.options.enableOptions.description"><![CDATA[Each enable options setting has to be written in a new line using the format <kbd>key:otherOptions</kbd> where <kbd>key:</kbd> is optional. If a key is present, the setting is only relevant if this option has the specified key as value. <kbd>otherOptions</kbd> is a comma-separated list refering to the other options that will either be enabled or disabled depending on this option’s value. If an exclamation mark is in front of an option name, the logic is inversed: If this option has the specified key as value, the referenced option will be disabled instead of enabled.]]></item>
-               <item name="wcf.acp.pip.abstractOption.options.showOrder"><![CDATA[Position]]></item>
+               <item name="wcf.acp.pip.abstractOption.options.enableOptions.description"><![CDATA[Each enabled options setting has to be written in a new line using the format <kbd>key:otherOptions</kbd> where <kbd>key:</kbd> is optional. If a key is present, the setting is only relevant if this option has the specified key as value. <kbd>otherOptions</kbd> is a comma-separated list refering to the other options that will either be enabled or disabled depending on this option’s value. If an exclamation mark is in front of an option name, the logic is inversed: If this option has the specified key as value, the referenced option will be <strong>disabled</strong> instead of enabled.]]></item>
                <item name="wcf.acp.pip.abstractOption.options.showOrder.description"><![CDATA[The entered value determines in which order the options in the same category are shown.]]></item>
                <item name="wcf.acp.pip.option.optionName.error.notUnique"><![CDATA[The entered option name is already used by another option.]]></item>
                <item name="wcf.acp.pip.option.options.hidden"><![CDATA[Hidden Option]]></item>
@@ -2263,10 +2266,10 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.option.options.requireI18n"><![CDATA[Require Multilingual Input]]></item>
                <item name="wcf.acp.pip.option.options.requireI18n.description"><![CDATA[If selected, the option’s value must be explicitly set for each available language.]]></item>
                <item name="wcf.acp.pip.option.options.optionType.description"><![CDATA[The option type determines the interface with which the value of the option is set and which (types of) values the option may have.]]></item>
-               <item name="wcf.acp.pip.abstractOption.options.optionType.select.allowEmptyValue"><![CDATA[Allow Empty Value]]></item>
-               <item name="wcf.acp.pip.abstractOption.options.optionType.select.allowEmptyValue.description"><![CDATA[If selected, the value of the option may be empty.]]></item>
-               <item name="wcf.acp.pip.abstractOption.options.optionType.useroptions.isSortable"><![CDATA[User Options Are Sortable]]></item>
-               <item name="wcf.acp.pip.abstractOption.options.optionType.useroptions.isSortable.description"><![CDATA[If selected, the user option cannot only be selected but also sorted.]]></item>
+               <item name="wcf.acp.pip.abstractOption.options.optionType.select.allowEmptyValue"><![CDATA[“(No Selection)” shown as option]]></item>
+               <item name="wcf.acp.pip.abstractOption.options.optionType.select.allowEmptyValue.description"><![CDATA[In addition to the specified options, “(No Selection)” can be selected.]]></item>
+               <item name="wcf.acp.pip.abstractOption.options.optionType.useroptions.isSortable"><![CDATA[Custom User Fields Are Sortable]]></item>
+               <item name="wcf.acp.pip.abstractOption.options.optionType.useroptions.isSortable.description"><![CDATA[Makes custom user fields not only selectable but also sortable.]]></item>
                <item name="wcf.acp.pip.abstractOption.options.optionType.integer.maxValue"><![CDATA[Maximum Value]]></item>
                <item name="wcf.acp.pip.abstractOption.options.optionType.integer.minValue"><![CDATA[Minimum Value]]></item>
                <item name="wcf.acp.pip.abstractOption.options.optionType.integer.suffix"><![CDATA[Suffix]]></item>
@@ -2302,11 +2305,10 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.bbcode.wysiwygIcon"><![CDATA[Icon]]></item>
                <item name="wcf.acp.pip.smiley.smileyCode"><![CDATA[Primary Smiley Code]]></item>
                <item name="wcf.acp.pip.smiley.smileyCode.description"><![CDATA[Primary code that is converted into this smiley.]]></item>
-               <item name="wcf.acp.pip.smiley.smileyCode.error.notUnique"><![CDATA[The entered identifier is already used by another smiley.]]></item>
+               <item name="wcf.acp.pip.smiley.smileyCode.error.notUnique"><![CDATA[The entered smiley code is already used by another smiley.]]></item>
                <item name="wcf.acp.pip.smiley.aliases"><![CDATA[Secondary Smiley Codes]]></item>
-               <item name="wcf.acp.pip.smiley.aliases.description"><![CDATA[Secondary codes that are converted into this smiley.]]></item>
+               <item name="wcf.acp.pip.smiley.aliases.description"><![CDATA[The secondary codes are also converted into this smiley.]]></item>
                <item name="wcf.acp.pip.smiley.aliases.error.notUnique"><![CDATA[The following aliases are already used by another smiley: {implode from=$notUniqueCodes item=notUniqueCode}<kbd>{$notUniqueCode}</kbd>{/implode}.]]></item>
-               <item name="wcf.acp.pip.smiley.showOrder"><![CDATA[Display Order]]></item>
                <item name="wcf.acp.pip.smiley.showOrder.description"><![CDATA[The entered value determines in which order the smilies are shown.]]></item>
                <item name="wcf.acp.pip.smiley.smileyPath"><![CDATA[Smiley Path]]></item>
                <item name="wcf.acp.pip.smiley.smileyPath.description"><![CDATA[The entered path has to be relative to <kbd>{'WCF_DIR'|constant}</kbd>.]]></item>
@@ -2322,7 +2324,7 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.userGroupOption.options.modDefaultValue"><![CDATA[Moderator Default Value]]></item>
                <item name="wcf.acp.pip.userGroupOption.options.modDefaultValue.description"><![CDATA[The moderator default value is used for moderator user groups. Moderator user groups are user groups that can access the moderation.]]></item>
                <item name="wcf.acp.pip.userGroupOption.options.userDefaultValue"><![CDATA[User Default Value]]></item>
-               <item name="wcf.acp.pip.userGroupOption.options.userDefaultValue.description"><![CDATA[The user default value is used for the user groups containing all registered users.]]></item>
+               <item name="wcf.acp.pip.userGroupOption.options.userDefaultValue.description"><![CDATA[The user default value is used for the user group containing all registered users.]]></item>
                <item name="wcf.acp.pip.userGroupOption.options.excludedInTinyBuild"><![CDATA[Disable for Accelerated Guest View]]></item>
                <item name="wcf.acp.pip.userGroupOption.options.excludedInTinyBuild.description"><![CDATA[If the accelared guest view is enabled, the user group option’s value is “Never” for guests regardless of the actual value set for the guests user group.]]></item>
                <item name="wcf.acp.pip.userGroupOption.options.wildcard"><![CDATA[Wildcard]]></item>
@@ -2331,7 +2333,7 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.userOption.options.required.description"><![CDATA[Users must provide a value for this user option.]]></item>
                <item name="wcf.acp.pip.userOption.options.askDuringRegistration"><![CDATA[Available During Registration]]></item>
                <item name="wcf.acp.pip.userOption.options.askDuringRegistration.description"><![CDATA[The user option is available during registration.]]></item>
-               <item name="wcf.acp.pip.userOption.options.editable"><![CDATA[Editability]]></item>
+               <item name="wcf.acp.pip.userOption.options.editable"><![CDATA[Editable by]]></item>
                <item name="wcf.acp.pip.userOption.options.editable.description"><![CDATA[The user option value can only be edited by the selected group of users.]]></item>
                <item name="wcf.acp.pip.userOption.options.visible"><![CDATA[Visibility]]></item>
                <item name="wcf.acp.pip.userOption.options.visible.description"><![CDATA[The user option value is only visible for the selected group of users.]]></item>
@@ -2340,30 +2342,55 @@ If you have <strong>already bought the licenses for the listed apps</strong>, th
                <item name="wcf.acp.pip.userOption.options.searchable.description"><![CDATA[Users can search this user option in the member search.]]></item>
                <item name="wcf.acp.pip.userOption.options.isDisabled"><![CDATA[Disable User Option]]></item>
                <item name="wcf.acp.pip.userOption.options.isDisabled.description"><![CDATA[The user option is not visible for users and its value cannot be set.]]></item>
-               <item name="wcf.acp.pip.userOption.options.optionType.description"><![CDATA[The option type determines the interface with which the value of the user group option is set and which (types of) values the option may have.]]></item>
+               <item name="wcf.acp.pip.userOption.options.optionType.description"><![CDATA[The option type determines the interface with which the value of the user option is set and which (types of) values the option may have.]]></item>
                <item name="wcf.acp.pip.userOption.options.messageObjectType"><![CDATA[Message Object Type]]></item>
                <item name="wcf.acp.pip.userOption.options.messageObjectType.description"><![CDATA[The message object type is passed to the <kbd>wcf\system\html\input\HtmlInputProcessor</kbd> object used to process the user option value.]]></item>
                <item name="wcf.acp.pip.userOption.options.contentPattern"><![CDATA[Content Pattern]]></item>
                <item name="wcf.acp.pip.userOption.options.contentPattern.description"><![CDATA[The entered content pattern is used to extract specific parts of the user-entered value to be stored as the option value.]]></item>
                <item name="wcf.acp.pip.userOption.options.contentPattern.error.invalid"><![CDATA[The entered regular expression is invalid.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.notification.objectType.supportsReactions"><![CDATA[Supports Reactions]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.notification.objectType.supportsReactions.description"><![CDATA[Specifies whether the notification has support for the reaction system. If "No" is selected here, WoltLab Suite Core 3.2 (or higher) will not send notifications about reactions.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.notification.objectType.supportsReactions.description"><![CDATA[Specifies whether the notification has support for the reaction system. WoltLab Suite Core 3.2 (or higher) will only send notifications about reactions if selected.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.user.recentActivityEvent.supportsReactions"><![CDATA[Supports Reactions]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.user.recentActivityEvent.supportsReactions.description"><![CDATA[Specifies whether the recent activity event has support for the reaction system. If "No" is selected here, WoltLab Suite Core 3.2 (or higher) will not create recent activity events about reactions.]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.user.recentActivityEvent.supportsReactions.description"><![CDATA[Specifies whether the recent activity event supports the reaction system. WoltLab Suite Core 3.2 (or higher) will only create recent activity events about reactions if selected.]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.user.recentActivityEvent.data.title"><![CDATA[Recent Activity Event Data]]></item>
                <item name="wcf.acp.pip.abstractOption.options.optionType.text.disableAutocomplete"><![CDATA[Disable Autocomplete]]></item>
                <item name="wcf.acp.pip.abstractOption.options.optionType.text.disableAutocomplete.description"><![CDATA[Disables the browser’s autocomplete support for the input field.]]></item>
-               <item name="wcf.acp.pip.objectType.integerCondition.propertyName.error.noIntegerColumn"><![CDATA[The entered column name of the <kbd>{$tableName}</kbd> database table is no <kbd>INT</kbd> column.]]></item>
+               <item name="wcf.acp.pip.objectType.integerCondition.propertyName.error.noIntegerColumn"><![CDATA[The entered column of the <kbd>{$tableName}</kbd> database table is no <kbd>INT</kbd> column.]]></item>
                <item name="wcf.acp.pip.objectType.integerCondition.propertyName.error.nonExistent"><![CDATA[The entered column does not exist in the <kbd>{$tableName}</kbd> database table.]]></item>
-               <item name="wcf.acp.pip.objectType.integerCondition.propertyName.description"><![CDATA[Name of the property and column of <kbd>{$tableName}</kbd> database table used for the condition.]]></item>
-               <item name="wcf.acp.pip.objectType.integerCondition.propertyName"><![CDATA[Property Name]]></item>
-               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.message.data.title"><![CDATA[Message Data]]></item>
+               <item name="wcf.acp.pip.objectType.integerCondition.propertyName.description"><![CDATA[Name of the object property and column of <kbd>{$tableName}</kbd> database table used for this condition.]]></item>
+               <item name="wcf.acp.pip.objectType.integerCondition.propertyName"><![CDATA[Object Property Name]]></item>
+               <item name="wcf.acp.pip.objectType.com.woltlab.wcf.message.data.title"><![CDATA[Message Type Data]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.message.enableToc"><![CDATA[Generate Table of Contents]]></item>
                <item name="wcf.acp.pip.objectType.com.woltlab.wcf.message.enableToc.description"><![CDATA[If selected, a table of contents is created for each message of this type.]]></item>
                <item name="wcf.acp.pip.templateListener.niceValue"><![CDATA[Nice Value]]></item>
-               <item name="wcf.acp.pip.templateListener.niceValue.description"><![CDATA[The nice value is used to determine the order in which template listeners for the same event are executed. Template listeners with lower nice value are executed first.]]></item>
+               <item name="wcf.acp.pip.templateListener.niceValue.description"><![CDATA[The nice value is used to determine the order in which template listeners for the same event are executed. Template listeners with lower nice value are executed first.]]></item>
                <item name="wcf.acp.pip.templateListener.options.description"><![CDATA[At least one of the entered options has to be enabled for the template listener’ code to be executed. The options are checked in the template by wrapping the template code in an if statement checking the options. Options of non-required packages will be reported as non-existing.]]></item>
                <item name="wcf.acp.pip.templateListener.permissions.description"><![CDATA[The active user must be granted at least one of the entered permissions for the template listener’ code to be executed. The permissions are checked in the template by wrapping the template code in an if statement checking the permissions. Permissions of non-required packages will be reported as non-existing.]]></item>
+               <item name="wcf.acp.pip.aclOption.info"><![CDATA[The <kbd>aclOption</kbd> package installation plugin allows setting up permissions for individual objects. You can find more information in the <a href="https://docs.woltlab.com/package_pip_acl-option.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.acpMenu.info"><![CDATA[The <kbd>acpMenu</kbd> package installation plugin installs new ACP menu items. You can find more information in the <a href="https://docs.woltlab.com/package_pip_acp-menu.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.acpSearchProvider.info"><![CDATA[The <kbd>acpSearchProvider</kbd> package installation plugin installs new data provider for the admin panel search. You can find more information in the <a href="https://docs.woltlab.com/package_pip_acp-search-provider.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.bbcode.info"><![CDATA[The <kbd>bbcode</kbd> package installation plugin installs new BBCodes. You can find more information in the <a href="https://docs.woltlab.com/package_pip_bbcode.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.box.info"><![CDATA[The <kbd>box</kbd> package installation plugin installs new pre-configured boxes. You can find more information in the <a href="https://docs.woltlab.com/package_pip_box.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.clipboardAction.info"><![CDATA[The <kbd>clipboardAction</kbd> package installation plugin installs new clipboard actions that can be executed for multiple objects at once. You can find more information in the <a href="https://docs.woltlab.com/package_pip_clipboard_action.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.coreObject.info"><![CDATA[The <kbd>coreObject</kbd> package installation plugin installs new <kbd>wcf\system\SingletonFactory</kbd> objects that can be accessed in templates. You can find more information in the <a href="https://docs.woltlab.com/package_pip_core-object.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.cronjob.info"><![CDATA[The <kbd>cronjob</kbd> package installation plugin installs new cronjobs that are executed regularly in the background. You can find more information in the <a href="https://docs.woltlab.com/package_pip_cronjob.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.eventListener.info"><![CDATA[The <kbd>eventListener</kbd> package installation plugin installs new event listeners. You can find more information in the <a href="https://docs.woltlab.com/package_pip_event-listener.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.language.info"><![CDATA[The <kbd>language</kbd> package installation plugin installs new language items. You can find more information in the <a href="https://docs.woltlab.com/package_pip_language.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.mediaProvider.info"><![CDATA[The <kbd>mediaProvider</kbd> package installation plugin installs new media providers that automatically convert links to media websites. You can find more information in the <a href="https://docs.woltlab.com/package_pip_media-provider.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.menu.info"><![CDATA[The <kbd>menu</kbd> package installation plugin installs new menus. You can find more information in the <a href="https://docs.woltlab.com/package_pip_menu.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.menuItem.info"><![CDATA[The <kbd>menuItem</kbd> package installation plugin installs new menu items for existing menus. You can find more information in the <a href="https://docs.woltlab.com/package_pip_menu-item.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.objectType.info"><![CDATA[The <kbd>objectType</kbd> package installation plugin installs new object types. You can find more information in the <a href="https://docs.woltlab.com/package_pip_object-type.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.objectTypeDefinition.info"><![CDATA[The <kbd>acpSearchProvider</kbd> package installation plugin installs new object type definitions. You can find more information in the <a href="https://docs.woltlab.com/package_pip_object-type-definition.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.option.info"><![CDATA[The <kbd>option</kbd> package installation plugin installs new options. You can find more information in the <a href="https://docs.woltlab.com/package_pip_option.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.packageInstallationPlugin.info"><![CDATA[The <kbd>acpSearchProvider</kbd> package installation plugin installs new package installation plugins. You can find more information in the <a href="https://docs.woltlab.com/package_pip_pip.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.page.info"><![CDATA[The <kbd>page</kbd> package installation plugin installs new pages. You can find more information in the <a href="https://docs.woltlab.com/package_pip_page.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.smiley.info"><![CDATA[The <kbd>smiley</kbd> package installation plugin installs new smileys. You can find more information in the <a href="https://docs.woltlab.com/package_pip_smiley.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.templateListener.info"><![CDATA[The <kbd>templateListener</kbd> package installation plugin installs new template listeners. You can find more information in the <a href="https://docs.woltlab.com/package_pip_template-listener.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.userGroupOption.info"><![CDATA[The <kbd>userGroupOption</kbd> package installation plugin installs new user group options. You can find more information in the <a href="https://docs.woltlab.com/package_pip_user-group-option.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.userMenu.info"><![CDATA[The <kbd>userMenu</kbd> package installation plugin installs new menu items for the user menu. You can find more information in the <a href="https://docs.woltlab.com/package_pip_user-menu.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.userNotificationEvent.info"><![CDATA[The <kbd>userNotificationEvent</kbd> package installation plugin installs new user notification events. You can find more information in the <a href="https://docs.woltlab.com/package_pip_user-notification-event.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.userOption.info"><![CDATA[The <kbd>userOption</kbd> package installation plugin installs new user options and profile fields. You can find more information in the <a href="https://docs.woltlab.com/package_pip_user-option.html" class="externalURL">developer documentation</a>.]]></item>
+               <item name="wcf.acp.pip.userProfileMenu.info"><![CDATA[The <kbd>userProfileMenu</kbd> package installation plugin installs new menu items for the user profile menu. You can find more information in the <a href="https://docs.woltlab.com/package_pip_user-profile-menu.html" class="externalURL">developer documentation</a>.]]></item>
        </category>
        <category name="wcf.acp.reactionType">
                <item name="wcf.acp.reactionType.delete.confirmMessage"><![CDATA[Do you really want to delete the reaction type <span class="confirmationObject">{$reactionType->getTitle()}</span>?]]></item>
@@ -3007,21 +3034,6 @@ Allowed extensions: {', '|implode:$attachmentHandler->getFormattedAllowedExtensi
                <item name="wcf.bbcode.button.collapse"><![CDATA[Display Less]]></item>
                <item name="wcf.bbcode.button.showAll"><![CDATA[Display More]]></item>
                <item name="wcf.bbcode.code"><![CDATA[Code]]></item>
-               <item name="wcf.bbcode.code.bash.title"><![CDATA[Shell-Script]]></item>
-               <item name="wcf.bbcode.code.c.title"><![CDATA[C]]></item>
-               <item name="wcf.bbcode.code.css.title"><![CDATA[CSS]]></item>
-               <item name="wcf.bbcode.code.diff.title"><![CDATA[Diff]]></item>
-               <item name="wcf.bbcode.code.html.title"><![CDATA[HTML]]></item>
-               <item name="wcf.bbcode.code.java.title"><![CDATA[Java]]></item>
-               <item name="wcf.bbcode.code.js.title"><![CDATA[JavaScript]]></item>
-               <item name="wcf.bbcode.code.perl.title"><![CDATA[Perl]]></item>
-               <item name="wcf.bbcode.code.php.title"><![CDATA[PHP]]></item>
-               <item name="wcf.bbcode.code.plain.title"><![CDATA[Code]]></item>
-               <item name="wcf.bbcode.code.python.title"><![CDATA[Python]]></item>
-               <item name="wcf.bbcode.code.sql.title"><![CDATA[SQL]]></item>
-               <item name="wcf.bbcode.code.tex.title"><![CDATA[TeX]]></item>
-               <item name="wcf.bbcode.code.tpl.title"><![CDATA[Smarty]]></item>
-               <item name="wcf.bbcode.code.xml.title"><![CDATA[XML]]></item>
                <item name="wcf.bbcode.code.simplified"><![CDATA[(Code, {#$lines} line{if $lines != 1}s{/if})]]></item>
                <item name="wcf.bbcode.image.blocked"><![CDATA[Blocked Image]]></item>
                <item name="wcf.bbcode.image.source"><![CDATA[Image Link]]></item>
@@ -3163,9 +3175,17 @@ Errors are:
 
 Email: {@$emailAddress} {* this line ends with a space *}
 {foreach from=$options item=option}
-{@$option['title']}: {if !$option['isMessage']}{@$option['value']}{else}
-{@$option['value']}{/if}
-{/foreach}]]></item>
+{@$option['title']}: {if !$option['isMessage']}{@$option['value']}{else} {* this line ends with a space *}
+{@$option['value']}{/if} {* this line ends with a space *}
+{/foreach}
+{if !$attachments|empty}
+
+Attachments:
+{foreach from=$attachments item=attachment}
+- {@$attachment->getTitle()} [URL: {@$attachment->getLink()} ]
+{/foreach}
+{if CONTACT_FORM_PRUNE_ATTACHMENTS}(Attachments are removed after {if CONTACT_FORM_PRUNE_ATTACHMENTS == 1}one day{else}{CONTACT_FORM_PRUNE_ATTACHMENTS} days{/if}.){/if} {* this line ends with a space *}
+{/if}]]></item>
                <item name="wcf.contact.mail.html"><![CDATA[<h2>Hello,</h2>
 
 <p>„{$name}“ sent you a message on <a href="{link isEmail=true}{/link}">{PAGE_TITLE|language}</a> via the contact form:</p>
@@ -3174,7 +3194,19 @@ Email: {@$emailAddress} {* this line ends with a space *}
 {foreach from=$options item=option}
 <p><strong>{@$option['title']}:</strong> {if !$option['isMessage']}{@$option['value']}{else}
 {@$option['value']|newlineToBreak}{/if}</p>
-{/foreach}]]></item>
+{/foreach}
+{if !$attachments|empty}
+<p><br></p>
+<p>Attachments:</p>
+<ul>
+{foreach from=$attachments item=attachment}
+<li><a href="{$attachment->getLink()}">{$attachment->getTitle()}</a></li>
+{/foreach}
+</ul>
+{if CONTACT_FORM_PRUNE_ATTACHMENTS}
+<p><small>(Attachments are removed after {if CONTACT_FORM_PRUNE_ATTACHMENTS == 1}one day{else}{CONTACT_FORM_PRUNE_ATTACHMENTS} days{/if}.)</small></p>
+{/if}
+{/if}]]></item>
                <item name="wcf.contact.option1"><![CDATA[Subject]]></item>
                <item name="wcf.contact.optionDescription1"><![CDATA[Short and precise description of your inquiry.]]></item>
                <item name="wcf.contact.option2"><![CDATA[Message]]></item>
@@ -3464,6 +3496,7 @@ Email: {@$emailAddress} {* this line ends with a space *}
                <item name="wcf.editor.code.highlighter"><![CDATA[Syntax Highlighting]]></item>
                <item name="wcf.editor.code.highlighter.description"><![CDATA[Highlighting is not displayed within the editor.]]></item>
                <item name="wcf.editor.code.highlighter.detect"><![CDATA[(Automatically Detect)]]></item>
+               <item name="wcf.editor.code.highlighter.plain"><![CDATA[(None)]]></item>
                <item name="wcf.editor.code.line"><![CDATA[Start Line Number]]></item>
                <item name="wcf.editor.code.line.description"><![CDATA[Optional: Specify the start for line enumeration.]]></item>
                <item name="wcf.editor.code.title"><![CDATA[{if $highlighter}{$highlighter}{else}Code{/if}{if $file} - {$file}{/if}]]></item>
@@ -3544,6 +3577,7 @@ Email: {@$emailAddress} {* this line ends with a space *}
                <item name="wcf.global.button.trash"><![CDATA[Move to Trash]]></item>
                <item name="wcf.global.button.upload"><![CDATA[Upload]]></item>
                <item name="wcf.global.button.readMore"><![CDATA[Read More]]></item>
+               <item name="wcf.global.button.resetFilter"><![CDATA[Reset Filter]]></item>
                <item name="wcf.global.comments"><![CDATA[Comments]]></item>
                <item name="wcf.global.confirmation.cancel"><![CDATA[Cancel]]></item>
                <item name="wcf.global.confirmation.confirm"><![CDATA[OK]]></item>
@@ -3618,6 +3652,8 @@ Email: {@$emailAddress} {* this line ends with a space *}
                <item name="wcf.global.button.showNavigation"><![CDATA[Show Navigation]]></item>
                <item name="wcf.global.button.hideSidebar"><![CDATA[Hide Sidebar]]></item>
                <item name="wcf.global.button.showSidebar"><![CDATA[Show Sidebar]]></item>
+               <item name="wcf.global.button.showSidebarLeft"><![CDATA[Sidebar Left]]></item>
+               <item name="wcf.global.button.showSidebarRight"><![CDATA[Sidebar Right]]></item>
                <item name="wcf.global.button.showMenu"><![CDATA[Show Menu]]></item>
                <item name="wcf.global.button.hideMenu"><![CDATA[Hide Menu]]></item>
        </category>
@@ -3637,7 +3673,8 @@ Email: {@$emailAddress} {* this line ends with a space *}
                <item name="wcf.global.form.error.greaterThan.javaScript"><![CDATA[{literal}The entered value has to be greater than {#$greaterThan}.{/literal}]]></item>
                <item name="wcf.global.form.error.lessThan.javaScript"><![CDATA[{literal}The entered value has to be less than {#$lessThan}.{/literal}]]></item>
                <!-- /deprecated since 2.1 -->
-</category>
+               <item name="wcf.global.form.required"><![CDATA[Required fields]]></item>
+       </category>
        <category name="wcf.form">
                <item name="wcf.form.field.className"><![CDATA[Class]]></item>
                <item name="wcf.form.field.className.description.interface"><![CDATA[The entered class (without leading backslash) must implement the interface <kbd>{$interface}</kbd>.]]></item>
@@ -3789,6 +3826,7 @@ Email: {@$emailAddress} {* this line ends with a space *}
                <item name="wcf.message.autosave.restored.version"><![CDATA[Draft as of {@$date}]]></item>
                <item name="wcf.message.autosave.saved"><![CDATA[Draft saved]]></item>
                <item name="wcf.message.bbcode.code.copy"><![CDATA[Copy Contents]]></item>
+               <item name="wcf.message.bbcode.code.copy.success"><![CDATA[The contents have been successfully copied.]]></item>
                <item name="wcf.message.quote.insertAllQuotes"><![CDATA[Insert All Quotes]]></item>
                <item name="wcf.message.quote.insertQuote"><![CDATA[Insert Quote]]></item>
                <item name="wcf.message.quote.insertSelectedQuotes"><![CDATA[Insert Marked Quotes]]></item>
@@ -4930,6 +4968,7 @@ your notifications on <a href="{link isEmail=true}{/link}">{PAGE_TITLE|language}
                <item name="wcf.user.option.editorPastePreserveFormatting.description"><![CDATA[Disabling this option will force any content to be pasted from clipboard as plain text, stripping all formatting.]]></item>
                <item name="wcf.user.option.searchRadioButtonOption"><![CDATA[User’s selection for “{lang}wcf.user.option.{$option->optionName}{/lang}”:]]></item>
                <item name="wcf.user.option.searchTextOption"><![CDATA[“{lang}wcf.user.option.{$option->optionName}{/lang}” contains:]]></item>
+               <item name="wcf.user.option.searchBooleanOption"><![CDATA[User’s selection for “{lang}wcf.user.option.{$option->optionName}{/lang}”:]]></item>
        </category>
        <category name="wcf.user.mail">
                <item name="wcf.user.mail.information"><![CDATA[Details]]></item>