###############################################################################
# Copyright (c) 2000, 2006 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
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

# --- string from plugin.xml ----

pluginName=AspectJ Examples
providerName=Eclipse AspectJ Development Tools
projectSetup=Project setup

AspectJExamplesCreationWizard.categoryName=AspectJ Examples
AspectJExamplesCreationWizard.pluginCategoryName=AspectJ Plug-in Examples
AspectJExamplesCreationWizard.label=&Project Name:

AspectJExamplesTJP.title=TJP Example
AspectJExamplesTJP.description=Join Points and thisJoinPoint
AspectJExamplesTJP.pagetitle=TJP Example
AspectJExamplesTJP.pagedescription=Create an AspectJ project containing the TJP example source

AspectJExamplesIntroduction.title=Introduction Example
AspectJExamplesIntroduction.description=Roles and Views
AspectJExamplesIntroduction.pagetitle=Introduction Example
AspectJExamplesIntroduction.pagedescription=Create an AspectJ project containing the Introduction example source

AspectJExamplesTracing.title=Tracing Example
AspectJExamplesTracing.description=Tracing using aspects
AspectJExamplesTracing.pagetitle=Tracing Example
AspectJExamplesTracing.pagedescription=Create an AspectJ project containing the Tracing example source

AspectJExamplesBean.title=Bean Example
AspectJExamplesBean.description=A Bean Aspect
AspectJExamplesBean.pagetitle=Bean Example
AspectJExamplesBean.pagedescription=Create an AspectJ project containing the Bean example source

AspectJExamplesObserver.title=Observer Example
AspectJExamplesObserver.description=The Subject/Observer Protocol
AspectJExamplesObserver.pagetitle=Observer Example
AspectJExamplesObserver.pagedescription=Create an AspectJ project containing the Observer example source

AspectJExamplesTelecom.title=Telecom Example
AspectJExamplesTelecom.description=A Simple Telecom Simulation
AspectJExamplesTelecom.pagetitle=Telecom Example
AspectJExamplesTelecom.pagedescription=Create an AspectJ project containing the Telcom example source

AspectJExamplesCoordination.title=Coordination Example
AspectJExamplesCoordination.description=Coordination Example
AspectJExamplesCoordination.pagetitle=Coordination Example
AspectJExamplesCoordination.pagedescription=Create an AspectJ project containing the Coordination example source

AspectJExamplesSpacewar.title=Spacewar Example
AspectJExamplesSpacewar.description=Spacewar Example
AspectJExamplesSpacewar.pagetitle=Spacewar Example
AspectJExamplesSpacewar.pagedescription=Create an AspectJ project containing the Spacewar example source

AspectJPluginExamplesProgressMon.title=Progress Monitor Checker
AspectJPluginExamplesProgressMon.description=Validate IProgressMonitor usage
AspectJPluginExamplesProgressMon.pagetitle=Progress Monitor Checker
AspectJPluginExamplesProgressMon.pagedescription=Create an AspectJ project containing the Progress Monitor Checker plug-in example
