###############################################################################
# Copyright (c) 2005, 2007 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#

###############################################################################
pluginProvider=Eclipse DLTK
pluginName=Dynamic Languages Toolkit Ruby UI

documentSetupParticipantName=Ruby Document Setup Participant

# Context
RubyEditContext.name = Editing Ruby Source
RubyEditContext.description = Editing Ruby Source Context

# Perspective
RubyPerspective.name = Ruby

# Views
RubyViewsCategory.name = Ruby
RubyDocumentationView.name = Ruby Documentation

# Wizards
RubyWizardsCategory.name = Ruby

NewProjectWizard.name = Ruby Project
NewProjectWizard.description = Create a Ruby project

NewFileWizard.name = Empty Ruby Script
NewFileWizard.description = Create an empty Ruby script

NewClassWizard.name = Ruby Class
NewClassWizard.description = Create a Ruby class

NewModuleWizard.name = Ruby Module
NewModuleWizard.description = Create a Ruby module

RubyActionSet.label= Ruby Navigation
RubyActionSet.description= Ruby Navigation Action Set

OpenTypeAction.label=Open Ruby &Type...
OpenTypeAction.tooltip=Open Ruby Type

OpenMethodAction.label=Open Ruby Method...
OpenMethodAction.tooltip=Open Ruby Method

#--- Navigate menu
ActionDefinition.OpenType.name= Open Ruby Type
ActionDefinition.OpenType.description= Open a class or module in a Ruby editor

ActionDefinition.OpenMethod.name= Open Ruby Method
ActionDefinition.OpenMethod.description= Open a method in a Ruby editor

ActionDefinition.OpenTypeInHierarchy.name= Open Type in Hierarchy
ActionDefinition.OpenTypeInHierarchy.description= Open a type in the type hierarchy view

hierarchyViewName= Type Hierarchy

OpenTypeInHierarchyAction.label=Open Type in Hierarch&y...
OpenTypeInHierarchyAction.tooltip=Opens a Type in a Type Hierarchy

# Search page
RubySearchPage.label = Ruby Search

# Editor
RubyEditor.name = Ruby Source Editor
 
# Templates
RubyTemplateContext.name = ruby

# Property pages
RubyPropertyPage.name = Ruby
RubyBuildPathPropertyPage.name = Build Path
RubyTodoPropertyPage.name = Task Tags

# Preference pages
RubyPreferencePage.name = Ruby
RubyEditorPreferencePage.name = Editor
RubyEditorSyntaxColoringPreferencePage.name = Syntax Coloring
RubyEditorHoversPreferencePage.name = Hovers
RubyEditorFoldingPreferencePage.name = Folding
RubyCodeTemplatesPreferencePage.name = Templates
RubyLibraryPreferencePage.name = Libraries

RubyTaskTagsPreferencePage.name = Task Tags

# Decorators
RubyProjectDecorator.name = Ruby Project Decorator

# Actions
RubySearchActionSet.label = Ruby Search
RubySearchActionSet.description = Ruby Search Actions

OpenRubySearchPageAction.label = Ruby...

SearchMenu.label = Search

RubyBrowsingPerspective.name = Ruby Browsing
RubyProjects.name = Ruby Projects
RubyExtendedClasses.name = Ruby Classes/Modules
RubyMembers.name = Ruby Members

# Hyperlink
hyperlinkDetector.name.rubyRequire=Ruby Require Hyperlink Detector
target.name.rubyEditor=Ruby Editor

# Compare
RubyCompareFontDefiniton.label=Ruby compare text font
RubyCompareFontDefiniton.description=The Ruby compare text font is used by Ruby compare/merge tools.

RubyFormatterPreferencePage.name=Formatter
Formatter.PropertyPage=Formatter
