# 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.ldapservers

View_Category_id=org.apache.directory.studio.ldapservers.category
View_Category_name=LDAP Servers

View_ServersView_id=org.apache.directory.studio.apacheds.serversView
View_ServersView_name=Servers

Prop_ServerPropertyPage_id=org.apache.directory.studio.apacheds.properties.serverProperties
Prop_ServerPropertyPage_name=Info

Cmd_Category_id=org.apache.directory.studio.ldapservers.commands
Cmd_Category_name=LDAP Servers

Cmd_NewServer_id=org.apache.directory.studio.ldapservers.commands.newServer
Cmd_NewServer_name=New Server
Cmd_NewServer_description=Creates a new server

Cmd_Delete_id=org.apache.directory.studio.ldapservers.commands.delete
Cmd_Delete_name=Delete
Cmd_Delete_description=Deletes a server

Cmd_Rename_id=org.apache.directory.studio.ldapservers.commands.rename
Cmd_Rename_name=Rename
Cmd_Rename_description=Renames the server

Cmd_Start_id=org.apache.directory.studio.ldapservers.commands.start
Cmd_Start_name=Start
Cmd_Start_description=Starts the server

Cmd_Stop_id=org.apache.directory.studio.ldapservers.commands.stop
Cmd_Stop_name=Stop
Cmd_Stop_description=Stops the server

Cmd_Properties_id=org.apache.directory.studio.ldapservers.commands.properties
Cmd_Properties_name=Properties
Cmd_Properties_description=Shows the properties of the server

Cmd_OpenConfiguration_id=org.apache.directory.studio.ldapservers.commands.openConfiguration
Cmd_OpenConfiguration_name=Open Configuration
Cmd_OpenConfiguration_description=Open Configuration

Ctx_ServersView_id=org.apache.directory.studio.ldapservers.contexts.serversView
Ctx_ServersView_name=In LDAP Servers View
Ctx_ServersView_description=In LDAP Servers View

Plugin_ConnectionCore_id=org.apache.directory.studio.connection.core
Plugin_ConnectionUi_id=org.apache.directory.studio.connection.ui
Plugin_LdapBrowserCommon_id=org.apache.directory.studio.ldapbrowser.common
Plugin_LdapBrowserCore_id=org.apache.directory.studio.ldapbrowser.core
Plugin_LdapBrowserUi_id=org.apache.directory.studio.ldapbrowser.ui
Plugin_LdifEditor_id=org.apache.directory.studio.ldifeditor
Plugin_LdifParser_id=org.apache.directory.studio.ldifparser

Perspective_LdapBrowserPerspective_id=org.apache.directory.studio.ldapbrowser.ui.perspective.BrowserPerspective
