diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/AbstractMvcAuthoringStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/AbstractMvcAuthoringStep.java index 3a808966d..fba6cf546 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/AbstractMvcAuthoringStep.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/AbstractMvcAuthoringStep.java @@ -326,6 +326,7 @@ public abstract class AbstractMvcAuthoringStep implements MvcAuthoringStep { ); final String docPath = Optional .ofNullable(documentPath) + .map(path -> path.substring(1)) .orElseThrow( () -> new WebApplicationException( String.format( diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/AttachmentListDetailsModel.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/AttachmentListDetailsModel.java index 0eea84eac..9b4733bdc 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/AttachmentListDetailsModel.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/AttachmentListDetailsModel.java @@ -22,7 +22,9 @@ import org.libreccm.l10n.GlobalizationHelper; import org.libreccm.l10n.LocalizedString; import org.librecms.contentsection.AttachmentList; +import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; @@ -55,6 +57,8 @@ public class AttachmentListDetailsModel { @Inject private GlobalizationHelper globalizationHelper; + private boolean canEdit; + /** * UUID of the {@link AttachmentList} shown. */ @@ -100,82 +104,59 @@ public class AttachmentListDetailsModel { return uuid; } + public void setUuid(final String uuid) { + this.uuid = uuid; + } + public String getName() { return name; } + public void setName(final String name) { + this.name = name; + } + public Map getTitles() { return Collections.unmodifiableMap(titles); } + public void setTitles(final Map titles) { + this.titles = new HashMap<>(titles); + } + public Map getDescriptions() { return Collections.unmodifiableMap(descriptions); } + public void setDescriptions(final Map descriptions) { + this.descriptions = new HashMap<>(descriptions); + } + public List getUnusedTitleLocales() { return Collections.unmodifiableList(unusedTitleLocales); } + public void setUnusedTitleLocales(final List unusedTitleLocales) { + this.unusedTitleLocales = new ArrayList<>(unusedTitleLocales); + } + public List getUnusedDescriptionLocales() { return Collections.unmodifiableList(unusedDescriptionLocales); } - /** - * Used by - * {@link RelatedInfoStep#showAttachmentListDetails(java.lang.String)} to - * provide the {@link AttachmentList} to show. This method takes care of - * process the relevant properties the {@link AttachmentList} to display for - * the view. The result of the processing is stored in the properties of - * this model. - * - * @param list The {@link AttachmentList} to show in the details view. - */ - protected void setAttachmentList(final AttachmentList list) { - Objects.requireNonNull(list); - uuid = list.getUuid(); - name = list.getName(); - titles = list - .getTitle() - .getValues() - .entrySet() - .stream() - .collect( - Collectors.toMap( - entry -> entry.getKey().toString(), - entry -> entry.getValue() - ) - ); - descriptions = list - .getDescription() - .getValues() - .entrySet() - .stream() - .collect( - Collectors.toMap( - entry -> entry.getKey().toString(), - entry -> entry.getValue() - ) - ); + public void setUnusedDescriptionLocales( + final List unusedDescriptionLocales + ) { + this.unusedDescriptionLocales + = new ArrayList<>(unusedDescriptionLocales); + } - final Set titleLocales = list - .getTitle() - .getAvailableLocales(); - unusedTitleLocales = globalizationHelper - .getAvailableLocales() - .stream() - .filter(locale -> !titleLocales.contains(locale)) - .map(Locale::toString) - .collect(Collectors.toList()); + public boolean getCanEdit() { + return canEdit; + } - final Set descriptionLocales = list - .getDescription() - .getAvailableLocales(); - unusedDescriptionLocales = globalizationHelper - .getAvailableLocales() - .stream() - .filter(locale -> !descriptionLocales.contains(locale)) - .map(Locale::toString) - .collect(Collectors.toList()); + public void setCanEdit(final boolean canEdit) { + this.canEdit = canEdit; } } diff --git a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/RelatedInfoStep.java b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/RelatedInfoStep.java index a91206718..0a7bc8c44 100644 --- a/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/RelatedInfoStep.java +++ b/ccm-cms/src/main/java/org/librecms/ui/contentsections/documents/relatedinfo/RelatedInfoStep.java @@ -57,6 +57,7 @@ import org.librecms.ui.contentsections.DocumentFolderRowModel; import org.librecms.ui.contentsections.DocumentFolderTree; import org.librecms.ui.contentsections.DocumentFolderTreeNode; import org.librecms.ui.contentsections.DocumentPermissions; +import org.librecms.ui.contentsections.ItemPermissionChecker; import java.time.LocalDate; import java.time.ZoneId; @@ -72,7 +73,6 @@ import java.util.stream.Collectors; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; -import javax.inject.Named; import javax.mvc.Controller; import javax.mvc.Models; import javax.transaction.Transactional; @@ -96,6 +96,8 @@ import org.librecms.ui.contentsections.documents.ItemAttachmentDto; import org.librecms.ui.contentsections.documents.MvcAuthoringStepDef; import org.librecms.ui.contentsections.documents.MvcAuthoringSteps; +import java.util.Set; + /** * Authoring step for managing the {@link AttachmentList} and * {@link ItemAttachment}s assigned to a {@link ContentItem}. @@ -246,6 +248,9 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { @Inject private ItemAttachmentManager attachmentManager; + @Inject + private ItemPermissionChecker itemPermissionChecker; + /** * Used to provide data for the views without a named bean. */ @@ -731,8 +736,64 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { return showAttachmentListNotFound(listIdentifierParam); } - listDetailsModel.setAttachmentList(listResult.get()); + final AttachmentList list = listResult.get(); + listDetailsModel.setUuid(list.getUuid()); + listDetailsModel.setName(list.getName()); + listDetailsModel.setTitles( + list + .getTitle() + .getValues() + .entrySet() + .stream() + .collect( + Collectors.toMap( + entry -> entry.getKey().toString(), + entry -> entry.getValue() + ) + ) + ); + listDetailsModel.setDescriptions( + list + .getDescription() + .getValues() + .entrySet() + .stream() + .collect( + Collectors.toMap( + entry -> entry.getKey().toString(), + entry -> entry.getValue() + ) + ) + ); + + final Set titleLocales = list + .getTitle() + .getAvailableLocales(); + listDetailsModel.setUnusedTitleLocales(globalizationHelper + .getAvailableLocales() + .stream() + .filter(locale -> !titleLocales.contains(locale)) + .map(Locale::toString) + .collect(Collectors.toList()) + ); + + final Set descriptionLocales = list + .getDescription() + .getAvailableLocales(); + listDetailsModel.setUnusedDescriptionLocales( + globalizationHelper + .getAvailableLocales() + .stream() + .filter(locale -> !descriptionLocales.contains(locale)) + .map(Locale::toString) + .collect(Collectors.toList()) + ); + + listDetailsModel.setCanEdit( + itemPermissionChecker.canEditItem(getDocument()) + ); + return "org/librecms/ui/contentsection/documents/relatedinfo-attachmentlist-details.xhtml"; } else { return documentUi.showAccessDenied( @@ -789,7 +850,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { listRepo.save(list); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -906,7 +967,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { listRepo.save(list); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -966,7 +1027,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { listRepo.save(list); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -1024,7 +1085,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { listRepo.save(list); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -1084,7 +1145,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { listRepo.save(list); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -1145,7 +1206,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { listRepo.save(list); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -1203,7 +1264,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { listRepo.save(list); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -1397,7 +1458,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { attachmentManager.attachAsset(relatedLink, list); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -1561,7 +1622,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { assetRepo.save(link); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -1644,7 +1705,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { assetRepo.save(link); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -1727,7 +1788,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { assetRepo.save(link); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -1808,7 +1869,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { assetRepo.save(link); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -1886,7 +1947,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { } return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -1940,7 +2001,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { listManager.moveUp(list); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -1993,7 +2054,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { listManager.moveDown(list); return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -2061,7 +2122,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { } return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( @@ -2129,7 +2190,7 @@ public class RelatedInfoStep extends AbstractMvcAuthoringStep { } return buildRedirectPathForStep( - String.format("/attachmentlists/%s", list.getName()) + String.format("/attachmentlists/%s/@details", list.getName()) ); } else { return documentUi.showAccessDenied( diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/relatedinfo-attachmentlist-details.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/relatedinfo-attachmentlist-details.xhtml index 41e7908d9..41010ab0c 100644 --- a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/relatedinfo-attachmentlist-details.xhtml +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/relatedinfo-attachmentlist-details.xhtml @@ -4,22 +4,29 @@ xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" xmlns:libreccm="http://xmlns.jcp.org/jsf/composite/components/libreccm" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> - + - - - - - - - + -

- #{CmsDefaultStepsMessageBundle.getMessage('relatedinfo.attachmentlist.details.title', [CmsAttachmentListDetailsModel.name])} -

+
+ + + #{CmsDefaultStepsMessageBundle['contentsection.documents.relatedinfo.attachmentlist.back']} + +

+ #{CmsDefaultStepsMessageBundle.getMessage('relatedinfo.attachmentlist.details.title', [CmsAttachmentListDetailsModel.name])} +

+

#{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlist.details.name.label']}: @@ -28,7 +35,8 @@ data-toggle="modal" data-target="#name-edit-dialog" type="button"> - + + #{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlist.details.name.edit']}

- + - +
diff --git a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/relatedinfo.xhtml b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/relatedinfo.xhtml index 0be32fa53..cc0f4a3f2 100644 --- a/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/relatedinfo.xhtml +++ b/ccm-cms/src/main/resources/WEB-INF/views/org/librecms/ui/contentsection/documents/relatedinfo.xhtml @@ -82,270 +82,270 @@ - + -->
- +
+ + + + + + #{CmsDefaultStepsMessageBundle['relatedinfo.attachmentlists.edit.button']}" - + @@ -410,25 +450,25 @@
#{attachment.name}
- - - + type="button"> + + #{CmsDefaultStepsMessageBundle['relatedinfo.attachments.move.button']}" + + + +
diff --git a/ccm-cms/src/main/resources/org/librecms/ui/DefaultAuthoringStepsBundle.properties b/ccm-cms/src/main/resources/org/librecms/ui/DefaultAuthoringStepsBundle.properties index d511fdbe8..fc25cb08a 100644 --- a/ccm-cms/src/main/resources/org/librecms/ui/DefaultAuthoringStepsBundle.properties +++ b/ccm-cms/src/main/resources/org/librecms/ui/DefaultAuthoringStepsBundle.properties @@ -120,3 +120,49 @@ relatedinfo.attachments.delete.button=Remove attachment relatedinfo.attachmentlists.attachment.add.label=Add attachment relatedinfo.attachmentlists.internal_link.add.label=Add internal link relatedinfo.attachmentlists.link.add.label=Add link +contentsection.documents.relatedinfo.attachmentlist.back=Back +relatedinfo.attachmentlist.details.title_editor.title=Title of attachment list +relatedinfo.attachmentlist.details.description_editor.title=Description of the attachment list +relatedinfo.attachmentlist.details.name.edit=Edit name of attachment list +relatedinfo.attachmentlist.details.title.add_button.label=Add localized title +relatedinfo.attachmentlist.details.title.add.cancel=Cancel +relatedinfo.attachmentlist.details.title.add.locale.help=The locale of the title value. +relatedinfo.attachmentlist.details.title.add.locale.label=Locale +relatedinfo.attachmentlist.details.title.add.submit=Add title +relatedinfo.attachmentlist.details.title.add.title=Add localized title +relatedinfo.attachmentlist.details.title.add.value.help=The localized title. +relatedinfo.attachmentlist.details.title.edit_button.label=Edit title +relatedinfo.attachmentlist.details.title.edit.cancel=Cancel +relatedinfo.attachmentlist.details.title.edit.submit=Save +relatedinfo.attachmentlist.details.title.edit.title=Edit localized title +relatedinfo.attachmentlist.details.title.edit.value.help=The loccalized title. +relatedinfo.attachmentlist.details.title.edit.value.label=Title +relatedinfo.attachmentlist.details.title.remove_button.label=Remove +relatedinfo.attachmentlist.details.title.remove.cancel=Cancel +relatedinfo.attachmentlist.details.title.remove.submit=Remove +relatedinfo.attachmentlist.details.title.remove.text=Are you sure to remove the following localized title: +relatedinfo.attachmentlist.details.title.remove.title=Confirm removal of localized title +relatedinfo.attachmentlist.details.description.add_button.label=Add localized description +relatedinfo.attachmentlist.details.description.add.cancel=Cancel +relatedinfo.attachmentlist.details.description.add.locale.help=The locale of the description. +relatedinfo.attachmentlist.details.description.add.locale.label=Locale +relatedinfo.attachmentlist.details.description.add.submit=Add description +relatedinfo.attachmentlist.details.description.add.title=Add localized description +relatedinfo.attachmentlist.details.description.add.value.help=The localized description. +relatedinfo.attachmentlist.details.description.add.value.label=Description +relatedinfo.attachmentlist.details.description.edit.cancel=Cancel +relatedinfo.attachmentlist.details.description.edit.submit=Save +relatedinfo.attachmentlist.details.description.edit.title=Edit localized description +relatedinfo.attachmentlist.details.description.edit_button.label=Add localized description +relatedinfo.attachmentlist.details.description.edit.value.help=The localized description. +relatedinfo.attachmentlist.details.description.edit.value.label=Description +relatedinfo.attachmentlist.details.description.remove_button.label=Remove +relatedinfo.attachmentlist.details.description.remove.cancel=Cancel +relatedinfo.attachmentlist.details.description.remove.submit=Remove +relatedinfo.attachmentlist.details.description.remove.text=Are you sure to remove the following localized description: +relatedinfo.attachmentlist.details.description.remove.title=Confirm removal of localized description +relatedinfo.attachmentlist.details.title.add.value.label=Title +relatedinfo.attachmentlists.info.dialog.title=Attachment List {0} Info +relatedinfo.attachmentlists.info.dialog.title.label=Title +relatedinfo.attachmentlists.info.dialog.description.label=Description +relatedinfo.attachmentlists.info.dialog.close=Close diff --git a/ccm-cms/src/main/resources/org/librecms/ui/DefaultAuthoringStepsBundle_de.properties b/ccm-cms/src/main/resources/org/librecms/ui/DefaultAuthoringStepsBundle_de.properties index 25195d14e..29d728ee3 100644 --- a/ccm-cms/src/main/resources/org/librecms/ui/DefaultAuthoringStepsBundle_de.properties +++ b/ccm-cms/src/main/resources/org/librecms/ui/DefaultAuthoringStepsBundle_de.properties @@ -120,3 +120,49 @@ relatedinfo.attachments.delete.button=Anhang entfernen relatedinfo.attachmentlists.attachment.add.label=Anhang hinzuf\u00fcgen relatedinfo.attachmentlists.internal_link.add.label=Internen Link hinzuf\u00fcgen relatedinfo.attachmentlists.link.add.label=Link hinzuf\u00fcgen +contentsection.documents.relatedinfo.attachmentlist.back=Zur\u00fcck +relatedinfo.attachmentlist.details.title_editor.title=Titel der Anhangliste +relatedinfo.attachmentlist.details.description_editor.title=Beschreibung der Anhangliste +relatedinfo.attachmentlist.details.name.edit=Name der Anhangliste bearbeiten +relatedinfo.attachmentlist.details.title.add_button.label=Lokalisierten Titel hinzuf\u00fcgen +relatedinfo.attachmentlist.details.title.add.cancel=Abbrechen +relatedinfo.attachmentlist.details.title.add.locale.help=Die Sprache des Titels. +relatedinfo.attachmentlist.details.title.add.locale.label=Sprache +relatedinfo.attachmentlist.details.title.add.submit=Titel hinzuf\u00fcgen +relatedinfo.attachmentlist.details.title.add.title=Lokalisierten Titel hinzuf\u00fcgen +relatedinfo.attachmentlist.details.title.add.value.help=Der lokalisierte Titel. +relatedinfo.attachmentlist.details.title.edit_button.label=Titel bearbeiten +relatedinfo.attachmentlist.details.title.edit.cancel=Abbrechen +relatedinfo.attachmentlist.details.title.edit.submit=Speichern +relatedinfo.attachmentlist.details.title.edit.title=Lokalisierten Titel bearbeiten +relatedinfo.attachmentlist.details.title.edit.value.help=Der lokalisierte Titel. +relatedinfo.attachmentlist.details.title.edit.value.label=Titel +relatedinfo.attachmentlist.details.title.remove_button.label=Entfernen +relatedinfo.attachmentlist.details.title.remove.cancel=Abbrechen +relatedinfo.attachmentlist.details.title.remove.submit=Entfernen +relatedinfo.attachmentlist.details.title.remove.text=Sind Sie sicher, dass Sie den folgenden lokalisierten Titel entfernen wollen: +relatedinfo.attachmentlist.details.title.remove.title=Entfernen eines lokalisierten Titels best\u00e4tigen +relatedinfo.attachmentlist.details.description.add_button.label=Lokalisierte Beschreibung hinzuf\u00fcgen +relatedinfo.attachmentlist.details.description.add.cancel=Abbrechen +relatedinfo.attachmentlist.details.description.add.locale.help=Die Sprache der Beschreibung. +relatedinfo.attachmentlist.details.description.add.locale.label=Sprache +relatedinfo.attachmentlist.details.description.add.submit=Beschreibung hinzuf\u00fcgen +relatedinfo.attachmentlist.details.description.add.title=Lokalisierte Beschreibung hinzuf\u00fcgen +relatedinfo.attachmentlist.details.description.add.value.help=Die lokalisierte Beschreibung. +relatedinfo.attachmentlist.details.description.add.value.label=Beschreibung +relatedinfo.attachmentlist.details.description.edit.cancel=Abbrechen +relatedinfo.attachmentlist.details.description.edit.submit=Speichern +relatedinfo.attachmentlist.details.description.edit.title=Lokalisierte Beschreibung bearbeiten +relatedinfo.attachmentlist.details.description.edit_button.label=Lokaliserte Beschreibung hinzuf\u00fcgen +relatedinfo.attachmentlist.details.description.edit.value.help=Die lokalisierte Beschreibung. +relatedinfo.attachmentlist.details.description.edit.value.label=Beschreibung +relatedinfo.attachmentlist.details.description.remove_button.label=Entfernen +relatedinfo.attachmentlist.details.description.remove.cancel=Abbrechen +relatedinfo.attachmentlist.details.description.remove.submit=Entfernen +relatedinfo.attachmentlist.details.description.remove.text=Sind Sie sicher, dass Sie die folgende lokalisierte Beschreibung entfernen wollen: +relatedinfo.attachmentlist.details.description.remove.title=Entfernen einer lokalisierten Beschreibung best\u00e4tigen +relatedinfo.attachmentlist.details.title.add.value.label=Titel +relatedinfo.attachmentlists.info.dialog.title=Anhangliste {0} Info +relatedinfo.attachmentlists.info.dialog.title.label=Titel +relatedinfo.attachmentlists.info.dialog.description.label=Beschreibung +relatedinfo.attachmentlists.info.dialog.close=Schlie\u00dfen