From 2c5afa14bc80985b81a85166dd8ed1b579beeca9 Mon Sep 17 00:00:00 2001 From: baka Date: Wed, 15 Feb 2017 15:52:01 +0000 Subject: [PATCH] Begin of reimplementation of CategoryLocalization Also adds a lot of key/value pairs to the CmsResources git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4572 8810af33-2d31-482b-a856-94f89814c4df Former-commit-id: db8725c2220e053ba8600439cbd5e130aff4e6b4 --- .../cms/ui/category/CategoryBaseForm.java.off | 131 ------------------ .../category/CategoryIteratorListModel.java | 1 - .../cms/ui/category/CategoryLinks.java | 4 +- ...a.off => CategoryLocalizationAddForm.java} | 77 +++++----- ...java.off => CategoryLocalizationForm.java} | 66 ++++----- .../org/librecms/CmsResources.properties | 66 +++++++++ .../org/librecms/CmsResources_de.properties | 68 ++++++++- .../org/librecms/CmsResources_fr.properties | 37 ++++- 8 files changed, 241 insertions(+), 209 deletions(-) delete mode 100755 ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryBaseForm.java.off rename ccm-cms/src/main/java/com/arsdigita/cms/ui/category/{CategoryLocalizationAddForm.java.off => CategoryLocalizationAddForm.java} (60%) rename ccm-cms/src/main/java/com/arsdigita/cms/ui/category/{CategoryLocalizationForm.java.off => CategoryLocalizationForm.java} (82%) diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryBaseForm.java.off b/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryBaseForm.java.off deleted file mode 100755 index fc7a4b60b..000000000 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryBaseForm.java.off +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 2003-2004 Red Hat Inc. All Rights Reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ -package com.arsdigita.cms.ui.category; - -import com.arsdigita.bebop.FormProcessException; -import com.arsdigita.bebop.GridPanel; -import com.arsdigita.bebop.Label; -import com.arsdigita.bebop.PageState; -import com.arsdigita.bebop.SaveCancelSection; -import com.arsdigita.bebop.event.ParameterEvent; -import com.arsdigita.bebop.event.ParameterListener; -import com.arsdigita.bebop.form.FormErrorDisplay; -import com.arsdigita.bebop.form.TextArea; -import com.arsdigita.bebop.form.TextField; -import com.arsdigita.bebop.parameters.NotNullValidationListener; -import com.arsdigita.bebop.parameters.TrimmedStringParameter; -import com.arsdigita.categorization.Category; -import com.arsdigita.categorization.CategoryCollection; -import com.arsdigita.cms.ui.CMSForm; -import com.arsdigita.cms.util.GlobalizationUtil; -import com.arsdigita.globalization.GlobalizedMessage; - -import org.apache.log4j.Logger; - -/** - * A form which creates a new category. Extends the edit form for - * convenience. - * - * @author Michael Pih - * @author Stanislav Freidin <sfreidin@redhat.com> - * @version $Id: CategoryBaseForm.java 287 2005-02-22 00:29:02Z sskracic $ - */ -class CategoryBaseForm extends CMSForm { - private static final Logger s_log = - Logger.getLogger(CategoryBaseForm.class); - - final CategoryRequestLocal m_parent; - - final FormErrorDisplay m_errors; - final TextField m_title; - final TextArea m_description; - final SaveCancelSection m_saveCancelSection; - - /** - * Constructor. - */ - CategoryBaseForm(final String string, final CategoryRequestLocal parent) { - super("AddSubcategories"); - - m_parent = parent; - - // Form header - Label header = new Label(gz("cms.ui.category.add")); - add(header, GridPanel.FULL_WIDTH); - - // Form errors - m_errors = new FormErrorDisplay(this); - add(m_errors, GridPanel.FULL_WIDTH); - - // Name - m_title = new TextField(new TrimmedStringParameter("name")); - m_title.setSize(30); - m_title.setMaxLength(30); - m_title.addValidationListener(new NotNullValidationListener()); - m_title.addValidationListener(new TitleUniqueListener()); - add(new Label(gz("cms.ui.name"))); - add(m_title); - - // Description - m_description = new TextArea(new TrimmedStringParameter("description")); - m_description.setWrap(TextArea.SOFT); - m_description.setRows(5); - m_description.setCols(40); - m_description.addValidationListener(new NotNullValidationListener()); - add(new Label(gz("cms.ui.description"))); - add(m_description); - - // Save and cancel buttons - m_saveCancelSection = new SaveCancelSection(); - add(m_saveCancelSection, GridPanel.FULL_WIDTH | GridPanel.LEFT); - } - - public final boolean isCancelled(final PageState state) { - return m_saveCancelSection.getCancelButton().isSelected(state); - } - - static GlobalizedMessage gz(final String key) { - return GlobalizationUtil.globalize(key); - } - - static String lz(final String key) { - return (String) gz(key).localize(); - } - - class TitleUniqueListener implements ParameterListener { - public final void validate(final ParameterEvent e) - throws FormProcessException { - - final PageState state = e.getPageState(); - final String title = (String) m_title.getValue(state); - - final Category parent = m_parent.getCategory(state); - final CategoryCollection children = parent.getChildren(); - - while (children.next()) { - final Category child = children.getCategory(); - - if (child.getName().equalsIgnoreCase(title)) { - throw new FormProcessException - (GlobalizationUtil.globalize("cms.ui.category.name_not_unique")); - } - } - } - } -} diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryIteratorListModel.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryIteratorListModel.java index 9f28f91b3..f51c86ec3 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryIteratorListModel.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryIteratorListModel.java @@ -27,7 +27,6 @@ import java.util.Iterator; * A {@link ListModel} that iterates over categories via an iterator * * @author Yannick Bülter - * @version $Id: CategoryIteratorListModel.java 2090 2010-04-17 08:04:14Z pboy $ */ public class CategoryIteratorListModel implements ListModel { diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLinks.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLinks.java index d8d69c0bc..a3ef60230 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLinks.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLinks.java @@ -40,7 +40,7 @@ import java.util.HashSet; * * @author Stanislav Freidin (stas@arsdigita.com) * @author Michael Pih (pihman@arsdigita.com) - * @version $Id: CategoryLinks.java 2140 2011-01-16 12:04:20Z pboy $ + * @author Yannick Bülter */ public class CategoryLinks extends List { public final static String SUB_CATEGORY = "sc"; @@ -78,7 +78,7 @@ public class CategoryLinks extends List { setEmptyView(label); } - // Since this part is for non default parents, but the is only one... this is not needed anymore, i guess + // Since this part is for non default parents, but there is only one... this is not needed anymore, i guess /* private class LinkedCategoryModelBuilder extends LockableImpl implements ListModelBuilder { diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLocalizationAddForm.java.off b/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLocalizationAddForm.java similarity index 60% rename from ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLocalizationAddForm.java.off rename to ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLocalizationAddForm.java index 21199feff..869e99e9b 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLocalizationAddForm.java.off +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLocalizationAddForm.java @@ -18,22 +18,25 @@ */ package com.arsdigita.cms.ui.category; -import com.arsdigita.bebop.FormProcessException; -import com.arsdigita.bebop.Label; -import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.*; import com.arsdigita.bebop.event.FormInitListener; import com.arsdigita.bebop.event.FormProcessListener; import com.arsdigita.bebop.event.FormSectionEvent; import com.arsdigita.bebop.form.Option; -import com.arsdigita.categorization.Category; +import com.arsdigita.bebop.util.GlobalizationUtil; import com.arsdigita.dispatcher.AccessDeniedException; -import com.arsdigita.cms.util.GlobalizationUtil; -import com.arsdigita.kernel.Kernel; import com.arsdigita.kernel.KernelConfig; -import java.util.Locale; -import java.util.StringTokenizer; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.libreccm.categorization.Category; +import org.libreccm.categorization.CategoryRepository; +import org.libreccm.cdi.utils.CdiUtil; +import org.libreccm.configuration.ConfigurationManager; +import org.libreccm.security.PermissionChecker; +import org.librecms.contentsection.privileges.AdminPrivileges; -import org.apache.log4j.Logger; +import java.util.Collection; +import java.util.Locale; /** * Generates a form for creating new localisations for the given category. @@ -42,11 +45,12 @@ import org.apache.log4j.Logger; * in order to present forms for managing the multi-language categories. * * @author Sören Bernstein - * @version $Id: CategoryLocalizationAddForm.java 287 2005-02-22 00:29:02Z sskracic $ + * @author Yannick Bülter */ public class CategoryLocalizationAddForm extends CategoryLocalizationForm { - private static final Logger s_log = Logger.getLogger(CategoryAddForm.class); + private static final Logger LOGGER = LogManager.getLogger( + CategoryLocalizationAddForm.class); /** Creates a new instance of CategoryLocalizationAddForm */ public CategoryLocalizationAddForm(final CategoryRequestLocal category) { @@ -68,6 +72,12 @@ public class CategoryLocalizationAddForm extends CategoryLocalizationForm { public final void init(final FormSectionEvent e) throws FormProcessException { + final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); + final ConfigurationManager manager = cdiUtil.findBean( + ConfigurationManager.class); + final KernelConfig config = manager.findConfiguration( + KernelConfig.class); + final PageState state = e.getPageState(); final Category category = m_category.getCategory(state); @@ -75,20 +85,11 @@ public class CategoryLocalizationAddForm extends CategoryLocalizationForm { m_locale.addOption(new Option("", new Label(GlobalizationUtil.globalize( "cms.ui.select_one"))), state); - - // all supported languages (by registry entry) - KernelConfig kernelConfig = Kernel.getConfig(); - StringTokenizer strTok = kernelConfig.getSupportedLanguagesTokenizer(); - - while (strTok.hasMoreTokens()) { - - String code = strTok.nextToken(); - - // If lanuage exists, remove it from the selection list - if (!category.getCategoryLocalizationCollection(). - localizationExists(code)) { - m_locale.addOption(new Option(code, - new Locale(code).getDisplayLanguage()), state); + final Collection locales = config.getSupportedLanguages(); + if (locales != null) { + for (String locale : locales) { + m_locale.addOption(new Option(locale, + new Text(new Locale(locale).getDisplayLanguage())), state); } } } @@ -98,29 +99,31 @@ public class CategoryLocalizationAddForm extends CategoryLocalizationForm { public final void process(final FormSectionEvent e) throws FormProcessException { - s_log.debug("Adding a categoryLocalization to category " + m_category); + LOGGER.debug("Adding a categoryLocalization to category " + m_category); + + final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); + final PermissionChecker permissionChecker = cdiUtil.findBean(PermissionChecker.class); + final CategoryRepository categoryRepository = cdiUtil.findBean(CategoryRepository.class); final PageState state = e.getPageState(); final Category category = m_category.getCategory(state); - final String locale = (String) m_locale.getValue(state); - final String name = (String) m_name.getValue(state); + final Locale locale = new Locale((String) m_locale.getValue(state)); + final String title = (String) m_title.getValue(state); final String description = (String) m_description.getValue(state); final String url = (String) m_url.getValue(state); final String isEnabled = (String) m_isEnabled.getValue(state); - // Was soll das?? - //Assert.assertNotNull(parent, "Category parent"); - - if (s_log.isDebugEnabled()) { - s_log.debug("Adding localization for locale " + locale + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Adding localization for locale " + locale + " to category " + category); } - if (category.canEdit()) { - category.addLanguage(locale, name, description, url); - category.setEnabled("yes".equals(isEnabled), locale); - category.save(); + if (permissionChecker.isPermitted(AdminPrivileges.ADMINISTER_CATEGORIES, category)) { + category.getTitle().addValue(locale, title); + category.getDescription().addValue(locale, description); + category.setEnabled(isEnabled.equals("yes")); + categoryRepository.save(category); } else { // XXX user a better exception here. diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLocalizationForm.java.off b/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLocalizationForm.java similarity index 82% rename from ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLocalizationForm.java.off rename to ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLocalizationForm.java index 69de7d718..1c206ce0f 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLocalizationForm.java.off +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/category/CategoryLocalizationForm.java @@ -39,13 +39,14 @@ import com.arsdigita.bebop.parameters.ParameterModel; import com.arsdigita.bebop.parameters.StringInRangeValidationListener; import com.arsdigita.bebop.parameters.StringParameter; import com.arsdigita.bebop.parameters.TrimmedStringParameter; -import com.arsdigita.categorization.Category; -import com.arsdigita.categorization.CategoryCollection; +import com.arsdigita.bebop.util.GlobalizationUtil; import com.arsdigita.cms.ui.BaseForm; -import com.arsdigita.cms.util.GlobalizationUtil; import com.arsdigita.globalization.GlobalizedMessage; import com.arsdigita.web.Web; import com.arsdigita.xml.Element; +import org.libreccm.categorization.Category; + +import java.util.List; import java.util.TooManyListenersException; import java.util.logging.Level; import java.util.logging.Logger; @@ -57,13 +58,13 @@ import java.util.logging.Logger; * forms for managing the multi-language categories. * * @author Sören Bernstein - * @version $Id: $ + * @author Yannick Bülter */ public class CategoryLocalizationForm extends BaseForm { final CategoryRequestLocal m_category; final SingleSelect m_locale; - final TextField m_name; + final TextField m_title; final TextArea m_description; //final TextField m_url; final Hidden m_url; @@ -74,7 +75,7 @@ public class CategoryLocalizationForm extends BaseForm { false); private final static String LOCALE = "locale"; - private final static String NAME = "name"; + private final static String TITLE = "title"; private final static String DESCRIPTION = "description"; private final static String URL = "url"; private final static String IS_ENABLED = "isEnabled"; @@ -99,35 +100,30 @@ public class CategoryLocalizationForm extends BaseForm { localeParam.addParameterListener(new StringInRangeValidationListener(0, 2)); m_locale = new SingleSelect(localeParam); - m_locale.addValidationListener(new ParameterListener() { + m_locale.addValidationListener(e -> { - @Override - public void validate(ParameterEvent e) throws FormProcessException { - - // the --select one-- option is not allowed - ParameterData data = e.getParameterData(); - String code = (String) data.getValue(); - if (code == null || code.length() == 0) { - data.addError( - GlobalizationUtil.globalize( - "cms.ui.category.localization_error_locale")); - } + // the --select one-- option is not allowed + ParameterData data = e.getParameterData(); + String code = (String) data.getValue(); + if (code == null || code.length() == 0) { + data.addError( + GlobalizationUtil.globalize( + "cms.ui.category.localization_error_locale")); } - }); addField(gz("cms.ui.category.localization_locale"), m_locale); - m_name = new TextField(new TrimmedStringParameter(NAME)); - addField(gz("cms.ui.name"), m_name); + m_title = new TextField(new TrimmedStringParameter(TITLE)); + addField(gz("cms.ui.name"), m_title); - m_name.setSize(30); - m_name.setMaxLength(200); - m_name.addValidationListener(new NotNullValidationListener()); - m_name.setOnFocus("if (this.form." + URL + ".value == '') { " + m_title.setSize(30); + m_title.setMaxLength(200); + m_title.addValidationListener(new NotNullValidationListener()); + m_title.setOnFocus("if (this.form." + URL + ".value == '') { " + " defaulting = true; this.form." + URL + ".value = urlize(this.value); }"); - m_name.setOnKeyUp("if (defaulting) { this.form." + URL + ".value = urlize(this.value) }"); + m_title.setOnKeyUp("if (defaulting) { this.form." + URL + ".value = urlize(this.value) }"); // is enabled? m_isEnabled = new RadioGroup(IS_ENABLED); @@ -160,7 +156,7 @@ public class CategoryLocalizationForm extends BaseForm { // m_url.addValidationListener(new NotNullValidationListener()); // m_url.setOnFocus("defaulting = false"); // m_url.setOnBlur("if (this.value == '') " -// + "{ defaulting = true; this.value = urlize(this.form." + NAME +// + "{ defaulting = true; this.value = urlize(this.form." + TITLE // + ".value) } " + "else { this.value = urlize(this.value); }"); // addField(gz("cms.ui.category.url"), m_url); //jensp 2014-09-16: Localisation of URLs is not useful but causes problems when resolving @@ -178,7 +174,7 @@ public class CategoryLocalizationForm extends BaseForm { final Category cat = m_category.getCategory(state); - target.setValue(state, cat.getURL()); + target.setValue(state, cat.getName()); } }); @@ -211,11 +207,11 @@ public class CategoryLocalizationForm extends BaseForm { private final CategoryRequestLocal m_category; private final Widget m_widget; private final int m_type; - public final static int NAME_FIELD = 1; + final static int NAME_FIELD = 1; public final static int URL_FIELD = 2; NameUniqueListener(final CategoryRequestLocal category) { - this(category, m_name, NAME_FIELD); + this(category, m_title, NAME_FIELD); } NameUniqueListener(final CategoryRequestLocal category, @@ -242,14 +238,12 @@ public class CategoryLocalizationForm extends BaseForm { final Category category = m_category.getCategory(state); - final CategoryCollection children = category.getChildren(); + final List children = category.getSubCategories(); - while (children.next()) { - final Category child = children.getCategory(); - String compField = (m_type == URL_FIELD) ? child.getURL() : child.getName(); + for (Category child : children) { + String compField = child.getName(); if (compField.equalsIgnoreCase(title) - && (m_category == null - || !m_category.getCategory(state).equals(child))) { + || !m_category.getCategory(state).equals(child)) { throw new FormProcessException(GlobalizationUtil.globalize("cms.ui.category.name_not_unique")); } } diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources.properties index 0ccc980e1..8a65ceaf2 100644 --- a/ccm-cms/src/main/resources/org/librecms/CmsResources.properties +++ b/ccm-cms/src/main/resources/org/librecms/CmsResources.properties @@ -45,6 +45,72 @@ cms.ui.permissions.table.remove_all.header=Remove all cms.ui.category.select_index_item=Select index item for category cms.ui.category.non_option=None cms.ui.category.inherit_parent=Inherit Index from Parent Category +cms.ui.category.localization_add=Add localization +cms.ui.category.add=Add category +cms.ui.category.add_index_item=Set index item +cms.ui.category.add_use_context=Add Use Context +cms.ui.category.assigned_purposes=Assigned Purposes: +cms.ui.category.available_purposes=Available Purposes: +cms.ui.category.back= (back)  +cms.ui.category.batch_categorized_objects=Batch Order Items in This Category +cms.ui.category.batch_order_objects_order=Priority +cms.ui.category.batch_order_objects_title=Title +cms.ui.category.categorized_objects=Order Live Objects in This Category +cms.ui.category.category_current=Current category +cms.ui.category.change_index_item=Change index item +cms.ui.category.content_item=Content Item +cms.ui.category.delete=Delete category +cms.ui.category.delete_prompt=Are you sure you want to delete this category? +cms.ui.category.descriptionn=Description:\n +cms.ui.category.details=Category details +cms.ui.category.edit=Edit category +cms.ui.category.edit_index_item=Edit index item +cms.ui.category.edit_a_category=Edit a Category +cms.ui.category.edit_purposes=Edit purposes +cms.ui.category.index_item.select=Select an index item for this category +cms.ui.category.index_item=Index item +cms.ui.category.intro=Select a category +cms.ui.category.is_abstract=Is abstract? +cms.ui.category.is_enabled=Is enabled? +cms.ui.category.is_not_abstract=Can you place objects in this category? +cms.ui.category.item.none=There are no items in this category +cms.ui.category.item=Categorized item +cms.ui.category.labeln=Label:\n +cms.ui.category.linked=Linked categories +cms.ui.category.linked_add=Add or remove linked categories +cms.ui.category.linked_none=This category has no linked categories +cms.ui.category.localizations=Category Localizations +cms.ui.category.localization_action=Action +cms.ui.category.localization_confirm_delete=Delete this localization? +cms.ui.category.localization_description=Description +cms.ui.category.localization_edit=Edit +cms.ui.category.localization_error_locale=Please select a locale +cms.ui.category.localization_locale=Language +cms.ui.category.localization_name=Name +cms.ui.category.localization_none=This category has no localizations +cms.ui.category.localization_url=URL +cms.ui.category.name_not_unique=There is already a category with this name +cms.ui.category.no_categorized_objects=There are no categorized objects +cms.ui.category.no_category_purposes=No Category Purposes +cms.ui.category.no_linked_categories=No linked categories +cms.ui.category.no_subcategories=No subcategories +cms.ui.category.purpose_add=Add or remove category purposes +cms.ui.category.purpose_assigned=Assigned purposes +cms.ui.category.purpose_available=Available purposes +cms.ui.category.purpose_none=This category has no assigned purposes +cms.ui.category.purposes=Category purposes +cms.ui.category.return=Return +cms.ui.category.subcategories=Subcategories +cms.ui.category.subcategory.none=This category has no subcategories +cms.ui.category.templates=Category templates +cms.ui.category.templates.assigned=Assigned templates +cms.ui.category.there_are_no_items_in_this_category=There are no items in this category +cms.ui.category.url=URL +cms.ui.category.use_context=Use Context +cms.ui.category.use_contexts=Use Contexts +cms.ui.category.use_context_must_be_unique=Use context must be unique within a Content Section. +cms.ui.category.view_index_item=View index item + cms.ui.authoring.no_types_registered=No types registered cms.ui.contents_of=Contents of cms.ui.new_folder=Create new folder diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties index 12dec9783..4b190b1cd 100644 --- a/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties +++ b/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties @@ -42,8 +42,74 @@ cms.ui.permissions.table.actions.remove_all=Alle Berechtigungen entfernen cms.ui.permissions.table.actions.remove_all.confirm=Sind Sie sicher, dass Sie alle Berechtigungen f\u00fcr diese Rolle von dem aktuellen Objekt entfernen wollen? cms.ui.permissions.table.remove_all.header=Alle entfernen -cms.ui.category.select_index_item=Index Element f\u00fcr diese Kategorie ausw\u00e4hlen cms.ui.category.inherit_parent=Inherit Index from Parent Category +cms.ui.category.add=Kategorie hinzuf\u00fcgen +cms.ui.category.add_index_item=Setze Index Element +cms.ui.category.add_use_context=Add Use Context +cms.ui.category.assigned_purposes=Assigned Purposes: +cms.ui.category.available_purposes=Available Purposes: +cms.ui.category.back= (zur\u00fcck)  +cms.ui.category.batch_categorized_objects=Batch Order Items in This Category +cms.ui.category.batch_order_objects_order=Priorit\u00e4t +cms.ui.category.batch_order_objects_title=Titel +cms.ui.category.categorized_objects=Objekte in dieser Kategorie anordnen +cms.ui.category.category_current=Aktuelle Kategorie +cms.ui.category.change_index_item=\u00c4ndere Index Element +cms.ui.category.content_item=Content Item +cms.ui.category.delete=Kategorie l\u00f6schen +cms.ui.category.delete_prompt=Wollen Sie wirklich diese Kategorie l\u00f6schen? +cms.ui.category.descriptionn=Beschreibung:\n +cms.ui.category.details=Kategorie Einzelheiten +cms.ui.category.edit=Kategorie bearbeiten +cms.ui.category.edit_index_item=Index Element bearbeiten +cms.ui.category.edit_a_category=Eine Kategorie bearbeiten +cms.ui.category.edit_purposes=Edit purposes +cms.ui.category.index_item.select=Index Element f\u00fcr diese Kategorie ausw\u00e4hlen +cms.ui.category.index_item=Index Element +cms.ui.category.intro=Kategory ausw\u00e4hlen +cms.ui.category.is_abstract=Is abstract? +cms.ui.category.is_enabled=Aktiviert? +cms.ui.category.is_not_abstract=K\u00f6nnen Sie Objekte dieser Kategory zuordnen? +cms.ui.category.item.none=Es gibt keine Elemente in dieser Kategory +cms.ui.category.item=Kategorisierte Elemente +cms.ui.category.labeln=Label:\n +cms.ui.category.linked=Verkn\u00fcpfte Kategorien +cms.ui.category.linked_add=Verkn\u00fcpfte Kategorien hinzuf\u00fcgen oder entfernen +cms.ui.category.linked_none=Diese Kategorie hat keine verkn\u00fcpften Kategorien +cms.ui.category.localizations=Sprachversionen +cms.ui.category.localization_action=Aktion +cms.ui.category.localization_add=Sprachversion hinzuf\u00fcgen +cms.ui.category.localization_confirm_delete=Soll diese Sprachversion gel\u00f6scht werden? +cms.ui.category.localization_description=Beschreibung +cms.ui.category.localization_edit=Bearbeiten +cms.ui.category.localization_error_locale=Bitte w\u00e4hlen Sie eine Sprache aus +cms.ui.category.localization_locale=Sprache +cms.ui.category.localization_name=Name +cms.ui.category.localization_none=Diese Kategorie hat keine Sprachversionen +cms.ui.category.localization_url=URL +cms.ui.category.name_not_unique=Es gibt bereits eine Kategorie mit diesem Namen. +cms.ui.category.no_categorized_objects=Es gibt keine kategorisierten Objekte +cms.ui.category.no_category_purposes=No Category Purposes +cms.ui.category.no_linked_categories=Kein verkn\u00fcpften Kategorien +cms.ui.category.no_subcategories=Keine Unterkategorie vorhanden +cms.ui.category.purpose_add=Add or remove category purposes +cms.ui.category.purpose_assigned=Assigned purposes +cms.ui.category.purpose_available=Available purposes +cms.ui.category.purpose_none=This category has no assigned purposes +cms.ui.category.purposes=Category purposes +cms.ui.category.return=Zur\u00fcck +cms.ui.category.select_index_item=Index Element f\u00fcr diese Kategorie ausw\u00e4hlen +cms.ui.category.subcategories=Unterkategorie +cms.ui.category.subcategory.none=Diese Kategorie hat keine Unterkategorien +cms.ui.category.templates=Kategorievorlage +cms.ui.category.templates.assigned=Zugewiesene Vorlagen +cms.ui.category.there_are_no_items_in_this_category=Es gibt keine Elemente in dieser Kategorie +cms.ui.category.url=URL +cms.ui.category.use_context=Use Context +cms.ui.category.use_contexts=Use Contexts +cms.ui.category.use_context_must_be_unique=Use Context muss innerhalb einer Content Section unique sein. +cms.ui.category.view_index_item=Index Element anzeigen + cms.ui.authoring.no_types_registered=Keine Typen registiert cms.ui.contents_of=Inhalt von cms.ui.new_folder=Neuen Ordner erstellen diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties index d441f3ada..c0c16d0c4 100644 --- a/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties +++ b/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties @@ -16,9 +16,44 @@ cms.ui.admin_center=Admin Center cms.ui.contentcenter.section_hint=All documents are organized in one or more contect sections. Each content section may have its own system of permission and its own administrators, independent from each other. Select a section where you will edit a document or create a new one. cms.ui.contentcenter.location=Location cms.ui.contentcenter.location_hint=In Legacy mode links to public pages. -cms.ui.category.select_index_item=S\u00e9lectionnez la page d'accueil de la rubrique + cms.ui.category.non_option=Aucun cms.ui.category.inherit_parent=Inherit Index from Parent Category +cms.ui.category.add_a_subcategory=Ajouter une sous-rubrique +cms.ui.category.add_index_item=Mettre la page d'accueil +cms.ui.category.assigned_purposes=Objectifs assign\u00e9s +cms.ui.category.available_purposes=Objectifs disponibles +cms.ui.category.back= (retour)  +cms.ui.category.batch_categorized_objects=Groupe d'ordre des objets de cette rubrique +cms.ui.category.batch_order_objects_order=Priorit\u00e9 +cms.ui.category.batch_order_objects_title=Titre +cms.ui.category.categorized_objects=Ordonner les objets de cette rubrique +cms.ui.category.category_information=Rubrique d'information +cms.ui.category.category_purposes=Objectifs de la rubrique +cms.ui.category.change_index_item=Changer la page d'accueil +cms.ui.category.content_item=El\u00e9ment de contenu +cms.ui.category.current_category=Rubrique en cours +cms.ui.category.delete_category=Effacer la rubrique +cms.ui.category.descriptionn=Description:\n +cms.ui.category.edit=Modifier +cms.ui.category.edit_a_category=Modifier une rubrique +cms.ui.category.edit_links=Modifier les liens +cms.ui.category.edit_purposes=Modifier les objectifs +cms.ui.category.extreme_actions=Actoins extr\u00eames +cms.ui.category.is_abstract=TRANSLATE THIS: Can you place objects in this category? (cms.ui.category.is_abstract) +cms.ui.category.labeln=Etiquette:\n +cms.ui.category.linked_categories=Rubriques li\u00e9es +cms.ui.category.no_categorized_objects=Il n'y a pas d'objet class\u00e9 +cms.ui.category.no_category_purposes=Pas d'objectif +cms.ui.category.no_linked_categories=Pas de rubrique li\u00e9e +cms.ui.category.no_subcategories=Pas de sous-rubrique +cms.ui.category.restore_default_permissions=Remettre les droits par d\u00e9faut +cms.ui.category.return_to_category_info=Retourner \u00e0 la rubrique d'information +cms.ui.category.select_index_item=S\u00e9lectionnez la page d'accueil de la rubrique +cms.ui.category.subcategories=Sous-rubriques +cms.ui.category.there_are_no_items_in_this_category=Il n'y a pas d'\u00e9l\u00e9ment dans cette rubrique +cms.ui.category.url=URL + cms.ui.browse=Documents cms.ui.search=Search cms.ui.roles=Roles