/*******************************************************************************
 * Copyright (c) 2015 Red Hat, Inc. 
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * 	Contributors:
 * 		 Red Hat Inc. - initial API and implementation and/or initial documentation
 *******************************************************************************/
package org.eclipse.wst.jsdt.js.npm.internal;

import org.eclipse.osgi.util.NLS;

/**
 * @author "Ilya Buziuk (ibuziuk)"
 */
public class Messages extends NLS {
	private static final String BUNDLE_NAME = Messages.class.getName().toString().toLowerCase();
	
	public static String NpmInitWizard_WindowTitle;
	public static String NpmInitWizard_LaunchMainTabName;
	public static String NpmInitWizard_UseDefaulConfiguration;
	public static String NpmInitWizard_RootFolderSelection;
	public static String NpmInitWizard_BaseDirectory;
	public static String NpmInitWizard_BrowseWorkspace;
	
	public static String NpmInitWizard_ButtonAdd;
	public static String NpmInitWizard_ButtonEdit;
	public static String NpmInitWizard_ButtonRemove;
	
	public static String NpmInitWizard_Name;
	public static String NpmInitWizard_Version;
	public static String NpmInitWizard_License;
	public static String NpmInitWizard_Description;
	public static String NpmInitWizard_Main;
	public static String NpmInitWizard_Author;
	public static String NpmInitWizard_Properties;
	public static String NpmInitWizard_PageName;
	public static String NpmInitWizard_PageTitle;
	public static String NpmInitWizard_PageDescription;
	
	public static String NpmInitWizard_Scripts;
	public static String NpmInitWizard_ScriptName;
	public static String NpmInitWizard_ScriptValue;
	public static String NpmInitWizard_ScriptPopUpName;
	public static String NpmInitWizard_ScriptPopUpValue;
	public static String NpmInitWizard_AddScript;
	public static String NpmInitWizard_EditScript;
	
	public static String NpmInitWizard_ErrorDirNotDefiened;
	public static String NpmInitWizard_ErrorDirNotExist;
	public static String NpmInitWizard_ErrorPackageJsonAlreadyExist;
	
	public static String NpmLaunchError_Title;
	public static String NpmLaunchError_Message;

	
	static {
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
	}

	private Messages() {
	}
	
}
