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: db8725c222
pull/2/head
baka 2017-02-15 15:52:01 +00:00
parent 897b014792
commit 2c5afa14bc
8 changed files with 241 additions and 209 deletions

View File

@ -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"));
}
}
}
}
}

View File

@ -27,7 +27,6 @@ import java.util.Iterator;
* A {@link ListModel} that iterates over categories via an iterator
*
* @author <a href="mailto:yannick.buelter@yabue.de">Yannick Bülter</a>
* @version $Id: CategoryIteratorListModel.java 2090 2010-04-17 08:04:14Z pboy $
*/
public class CategoryIteratorListModel implements ListModel {

View File

@ -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 <a href="mailto:yannick.buelter@yabue.de">Yannick Bülter</a>
*/
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 {

View File

@ -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 <quasi@quasiweb.de>
* @version $Id: CategoryLocalizationAddForm.java 287 2005-02-22 00:29:02Z sskracic $
* @author <a href="mailto:yannick.buelter@yabue.de">Yannick Bülter</a>
*/
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<String> 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.

View File

@ -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 <quasi@quasiweb.de>
* @version $Id: $
* @author <a href="mailto:yannick.buelter@yabue.de">Yannick Bülter</a>
*/
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<Category> 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"));
}
}

View File

@ -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&nbsp;Purposes:
cms.ui.category.available_purposes=Available&nbsp;Purposes:
cms.ui.category.back=&nbsp;(back)&nbsp;
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

View File

@ -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&nbsp;Purposes:
cms.ui.category.available_purposes=Available&nbsp;Purposes:
cms.ui.category.back=&nbsp;(zur\u00fcck)&nbsp;
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

View File

@ -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=&nbsp;(retour)&nbsp;
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