# WizardMessages_en_US_CA.properties
# Californian
#/*******************************************************************************
# * Copyright (c) 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
# *******************************************************************************/

NSTEMProWiz.creating_directories = Creating some knarley project directories, Dude!
NSTEMProWiz.creating_project = Creating a totally awesome STEM project, Dude!
NSTEMProWiz.page_title = Like, what's the name of the new STEM Project
NSTEMProWiz.title = Create one totally awesome STEM project!
NSTEMProWiz.page_description = Create a new STEM project in the workspace or in an external location.

NSTEMProWiz.graph_folder = Graphs
NSTEMProWiz.model_folder = Models
NSTEMProWiz.scenario_folder = Scenarios
NSTEMProWiz.decorator_folder = Decorators
