# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

Plugin_id=org.apache.directory.studio.ldapbrowser.common

ExtensionPoint_ValueEditors_id=org.apache.directory.studio.valueeditors
ExtensionPoint_ValueEditors_name=Value Editors

ValueEditors_InPlaceTextValueEditor_name=In-Place Text Editor

ValueEditors_TextValueEditor_name=Text Editor

ValueEditors_HexValueEditor_name=Hex Editor

NewWizards_Category_id=org.apache.directory.studio.ldapbrowser.newWizards
NewWizards_Category_name=LDAP Browser

PrefPage_StudioPage_id=org.apache.directory.studio.StudioPreferencePage
PrefPage_EntryEditorsPreferencePage_id=org.apache.directory.studio.ldapbrowser.preferences.EntryEditorsPreferencePage

PrefPage_MainPreferencePage_id=org.apache.directory.studio.ldapbrowser.preferences.MainPreferencePage
PrefPage_MainPreferencePage_name=LDAP Browser

PrefPage_AttributesPreferencePage_id=org.apache.directory.studio.ldapbrowser.preferences.AttributesPreferencePage
PrefPage_AttributesPreferencePage_name=Attributes

PrefPage_BinaryAttributesAndSyntaxesPreferencePage_id=org.apache.directory.studio.ldapbrowser.preferences.BinaryAttributesAndSyntaxesPreferencePage
PrefPage_BinaryAttributesAndSyntaxesPreferencePage_name=Binary Attributes

PrefPage_ValueEditorsPreferencePage_id=org.apache.directory.studio.ldapbrowser.preferences.ValueEditorsPreferencePage
PrefPage_ValueEditorsPreferencePage_name=Value Editors

PrefPage_BrowserPreferencePage_id=org.apache.directory.studio.ldapbrowser.preferences.BrowserPreferencePage
PrefPage_BrowserPreferencePage_name=Browser View

PrefPage_EntryEditorPreferencePage_id=org.apache.directory.studio.ldapbrowser.preferences.EntryEditorPreferencePage
PrefPage_EntryEditorPreferencePage_name=Table Entry Editor

PrefPage_TextFormatsPreferencePage_id=org.apache.directory.studio.ldapbrowser.preferences.TextFormatsPreferencePage
PrefPage_TextFormatsPreferencePage_name=Text Formats

PrefPage_ViewsPreferencePage_id=org.apache.directory.studio.ldapbrowser.preferences.ViewsPreferencePage
PrefPage_ViewsPreferencePage_name=Views


CtxType_LdapFilter_Template_id=org.apache.directory.studio.ldapbrowser.common.templates.filter
CtxType_LdapFilter_Template_name=LDAP Filter



Keyword_Colors_id=org.apache.directory.studio.ldapbrowser.keyword.colors
Keyword_Colors_label=Colors

Keyword_Fonts_id=org.apache.directory.studio.ldapbrowser.keyword.fonts
Keyword_Fonts_label=Fonts

Keyword_LDAP_id=org.apache.directory.studio.ldapbrowser.keyword.ldap
Keyword_LDAP_label=LDAP

Keyword_LDIF_id=org.apache.directory.studio.ldapbrowser.keyword.ldif
Keyword_LDIF_label=LDIF

Cmd_Category_id=org.apache.directory.studio.ldapbrowser.commands
Cmd_Category_name=LDAP Browser

Cmd_AddValue_id=org.apache.directory.studio.ldapbrowser.action.addValue
Cmd_AddValue_name=Add Value
Cmd_AddValue_description=Add a value to an existing attribute

Cmd_AddAttribute_id=org.apache.directory.studio.ldapbrowser.action.addAttribute
Cmd_AddAttribute_name=Add Attribute
Cmd_AddAttribute_description=Add an attribute to an existing entry

Cmd_EditAttributeDescription_id=org.apache.directory.studio.ldapbrowser.action.editAttributeDescription
Cmd_EditAttributeDescription_name=Edit Attribute Description
Cmd_EditAttributeDescription_description=Edit an attribute description

Cmd_EditValue_id=org.apache.directory.studio.ldapbrowser.action.editValue
Cmd_EditValue_name=Edit Value
Cmd_EditValue_description=Edit a value

Cmd_EditRecord_id=org.apache.directory.studio.ldapbrowser.action.editRecord
Cmd_EditRecord_name=Edit Record
Cmd_EditRecord_description=Edit a record

Cmd_Delete_id=org.apache.directory.studio.ldapbrowser.action.delete
Cmd_Delete_name=Delete
Cmd_Delete_description=Delete an element

Cmd_Copy_id=org.apache.directory.studio.ldapbrowser.action.copy
Cmd_Copy_name=Copy
Cmd_Copy_description=Copy an element

Cmd_Paste_id=org.apache.directory.studio.ldapbrowser.action.paste
Cmd_Paste_name=Paste
Cmd_Paste_description=Paste an element

Cmd_Find_id=org.apache.directory.studio.ldapbrowser.action.find
Cmd_Find_name=Find
Cmd_Find_description=Find an element

Cmd_Properties_id=org.apache.directory.studio.ldapbrowser.action.properties
Cmd_Properties_name=Properties
Cmd_Properties_description=Properties of an element

Cmd_LocateInDit_id=org.apache.directory.studio.ldapbrowser.action.locateInDit
Cmd_LocateInDit_name=Locate in DIT
Cmd_LocateInDit_description=Locate a DN or search result in DIT

Cmd_OpenSearchResult_id=org.apache.directory.studio.ldapbrowser.action.openSearchResult
Cmd_OpenSearchResult_name=Open Search Result
Cmd_OpenSearchResult_description=Open a search result

Ctx_LdapBrowserWindows_id=org.apache.directory.studio.ldapbrowser.contexts.window
Ctx_LdapBrowserWindows_name=In LDAP Browser Windows
Ctx_LdapBrowserWindows_description=In LDAP Browser Windows

Ctx_LdapBrowserDialogs_id=org.apache.directory.studio.ldapbrowser.contexts.dialog
Ctx_LdapBrowserDialogs_name=In LDAP Browser Dialogs
Ctx_LdapBrowserDialogs_description=In LDAP Browser Dialogs

ConnectionParameterPage_BrowserParameterPage_id=org.apache.directory.studio.ldapbrowser.common.widgets.connection.BrowserParameterPage
ConnectionParameterPage_BrowserParameterPage_name=Browser Options
ConnectionParameterPage_BrowserParameterPage_description=You can specify additional parameters for browsing the directory.

ConnectionParameterPage_EditorParameterPage_id=org.apache.directory.studio.ldapbrowser.common.widgets.connection.EditorParameterPage
ConnectionParameterPage_EditorParameterPage_name=Edit Options
ConnectionParameterPage_EditorParameterPage_description=You can specify additional parameters for editing entries.

ConnectionParameterPage_AuthenticationParameterPage_id=org.apache.directory.studio.connection.ui.widgets.AuthenticationParameterPage

PropPage_Search_id=org.apache.directory.studio.ldapbrowser.ui.dialogs.properties.SearchPropertyPage
PropPage_Entry_id=org.apache.directory.studio.ldapbrowser.ui.dialogs.properties.EntryPropertyPage
PropPage_Attribute_id=org.apache.directory.studio.ldapbrowser.ui.dialogs.properties.AttributePropertyPage
PropPage_Value_id=org.apache.directory.studio.ldapbrowser.ui.dialogs.properties.ValuePropertyPage
PropPage_Bookmark_id=org.apache.directory.studio.ldapbrowser.ui.dialogs.properties.BookmarkPropertyPage

DnD_EntryTransfer=org.apache.directory.studio.ldapbrowser.entry
DnD_SearchTransfer=org.apache.directory.studio.ldapbrowser.search
DnD_ValuesTransfer=org.apache.directory.studio.ldapbrowser.value

Wizard_AttributeWizard_id=org.apache.directory.studio.ldapbrowser.common.wizards.AttributeWizard
NewWizard_NewEntryWizard_id=org.apache.directory.studio.ldapbrowser.common.wizards.NewEntryWizard
NewWizard_NewContextEntryWizard_id=org.apache.directory.studio.ldapbrowser.common.wizards.NewContextEntryWizard