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

ActionMappings.cbRecursively.text=&Build Recursively (with modules)
ActionMappings.lblProfiles.text=Activate &Profiles :
ActionMappings.btnAdd.text=&Add Custom...
ActionMappings.btnAdd.text2=&Add...
ActionMappings.btnRemove.text=&Remove/Reset
ActionMappings.btnRemove.text2=&Remove
ActionMappings.lblProperties.text=&Set Properties :
ActionMappings.lblGoals.text=&Execute Goals :
COM_Build_project=Build project
COM_Clean_project=Clean project
COM_Compile_file=Compile file
COM_Debug_project=Debug project
COM_Debug_file_main=Debug file via main()
COM_Debug_file_deploy=Debug file via deploy
COM_Debug_test=Debug test
COM_ReBuild_project=Clean and Build project
COM_Run_project=Run project
COM_Profile_project=Profile project
COM_Profile_file_main=Profile file via main()
COM_Profile_file_deploy=Profile file via deploy
COM_Profile_test=Profile test
COM_Javadoc_project=Generate Javadoc
COM_Build_WithDeps_project=Build with Dependencies
COM_Run_file_main=Run file via main()
COM_Run_file_deploy=Run file via deploy
COM_Test_project=Test project
COM_Test_file=Test file
COM_Integration_Test_file=Integration test file
COM_Debug_Integration_test=Debug integration test
ActionMappings.txtGoals.hint=<html>A space-separated list of goals or phases to execute.</html>
ActinMappings.txtProfiles.hint=<html>A space- or comma-separated list of profiles to activate during execution.</html>
ActinMappings.txtProperties.hint=<html>A space-separated list of properties to set during execution in the form &lt;key&gt;=\"&lt;value&gt;\".<br>\
 If value does not contain whitespace, \" can be omitted.<br>\
 Additional supported variables include (useful mainly for Run/Debug/Test Single) :\
 <ul><li><b>className</b> name of selected class eg. String</li>\
 <li><b>classNameWithExtension</b> name of selected class with extension, eg. String.java</li>\
 <li><b>packageClassName</b> name of selected class with package name, eg. java.lang.String</li>\
 <li><b>webpagePath</b> relative path of selected webpage document within src/main/webapp </li>\
 </ul></html>
ActinMappings.txtPackagings.hint=<html>A space- or comma-separated list of packagings applicable to the action</html>
LBL_GroupId=&Group Id\:
LBL_ArtifactId=&Artifact Id\:
LBL_Version=&Version\:
LBL_Packaging=&Packaging\:
LBL_Name=&Name\:
LBL_Description=&Description\:
LBL_MainClass=&Main Class\:
LBL_Arguments=&Arguments\:
LBL_WorkDir=Working &Directory\:
LBL_VMOptions=&VM Options\:
LBL_VMHint=(e.g. -Xms10m)
BTN_Browse=&Browse...
TIT_SelectWorkingDirectory=Select Working Directory
Err_CannotCreate=Cannot create assembly file at {0}
TIT_ReactorDir=Select reactor project directory
BTN_ReactorDir=Select


#MainClassChooser
CTL_AvaialableMainClasses=&Main classes\:
LBL_ChooseMainClass_OK=Select Main Class
AD_ChooseMainClass_OK=Ok
LBL_ChooseMainClass_Title=Browse Main Classes
AD_MainClassChooser=N/A
AD_jMainClassList=N/A


CTL_ProjectFolder=Project &Folder:
TXT_SourceLevel=Source/&Binary Format:
TXT_Encoding=&Encoding:
TIT_Add_action=Action Name\:
LBL_AddAction=Enter action name
LBL_Actions=Ac&tions:
ActionMappings.lblConfiguration.text=Confi&guration:
ActionMappings.btnAddProps.text=A&dd >
ActionMappings.debugMaven=Debug Maven build
ActionMappings.envVar=New Environment Variable
ActionMappings.skipTests=Skip Tests
CompilePanel.lblHint1.text=If selected, files are compiled when you save them.
CompilePanel.lblHint2.text=This option saves you time when you run or debug your application or tests in the IDE.

COS_ALL=For both application and test execution
COS_APP=For application execution only
COS_TESTS=For test execution only
COS_NONE=Disable
CompilePanel.cbDebug.text=&Generate Debugging Info
CompilePanel.cbDeprecate.text=Report Uses of &Deprecated APIs
CompilePanel.lblJavaPlatform.text=Java &Platform:
CompilePanel.btnMngPlatform.text=&Manage Java Platforms...
AddPropertyDialog.lblPropertyExpressions.text=Property Expressions :
AN_SourceLevel=Source level combo box
SourcesPanel.lblSrc.text=&Source Folder:
SourcesPanel.lblTestSrc.text=&Test Source Folder:
SourcesPanel.lblGenerated.text=<html><h3>Please Note:</h3>\nAny source roots generated by Maven plugins will be generated \ninto the ${basedir}/target/generated-sources/FOOBAR folder, where FOOBAR is typically the name of the plugin. \nMost Maven plugins adhere to the above-mentioned folder structure convention by default. If your plugin does not, please configure it to do so and the generated sources will be recognized by the IDE.\n
ActionMappings.cbBuildWithDeps.text=Build &With Dependencies
WarnPanel.cbNextTime.text=&Show this warning next time
WarnPanel.lblText.text=jLabel1
BTN_OK=OK
SourcesPanel.txtProjectFolder.AccessibleContext.accessibleDescription=Project Folder
SourcesPanel.txtSrc.AccessibleContext.accessibleDescription=Source Folder
SourcesPanel.txtTestSrc.AccessibleContext.accessibleDescription=Test Source Folder
SourcesPanel.comSourceLevel.AccessibleContext.accessibleDescription=Source level
SourcesPanel.comEncoding.AccessibleContext.accessibleDescription=Encoding
CompilePanel.btnMngPlatform.AccessibleContext.accessibleDescription=Manage Java Platforms
BTN_Browse_Main=&Browse...
BTN_Browse_WorkingDir=Bro&wse...
ActionMappings.btnAddProps.AccessibleContext.accessibleDescription=Add property
ActionMappings.btnAdd.AccessibleContext.accessibleDescription=Add custom action
ActionMappings.btnRemove.AccessibleContext.accessibleDescription=Remove/Reset action
ActionMappings.cbBuildWithDeps.AccessibleContext.accessibleDescription=Build with Dependencies
ActionMappings.comConfiguration.AccessibleContext.accessibleDescription=Configuration
ActionMappings.lstMappings.AccessibleContext.accessibleDescription=Actions
ActionMappings.taProperties.AccessibleContext.accessibleDescription=Properties
ActionMappings.txtGoals.AccessibleContext.accessibleDescription=Execute goals
ActionMappings.txtProfiles.AccessibleContext.accessibleDescription=Activate profiles
ActionMappings.txtDirectory.AccessibleContext.accessibleDescription=Reactor root
ActionMappings.btnDirectory.AccessibleContext.accessibleDescription=Select Reactor Root Folder...
WarnPanel.cbNextTime.AccessibleContext.accessibleDescription=Check to see this warning next time again
WarnPanel.AccessibleContext.accessibleDescription=Warning message dialog


TXT_PLUGIN_EXPRESSION=Plugin Expression Property

HINT_ApplicationCoS=<html>Classes compiled with the Compile on Save feature in the IDE are not identical to classes compiled with JDK's javac. <br>When building your <b>binaries for redistribution</b>, please make sure to always perform a <b>clean build</b>.</html>.
RunJarPanel.lblConfiguration.text=&Configuration:
ActionMappings.txtPackagings.text=
ActionMappings.lblPackagings.text=Supported Packagings:
CompilePanel.cbCompileOnSave.text=Compile on &Save (requires nb-javac plugin)
CompilePanel.btnLearnMore.text=<html><a href="">Learn More about Compile On Save feature in Maven projects</a></html>
ActionMappings.jButton1.text=Show in Toolbar
RunJarPanel.txtVMOptions.AccessibleContext.accessibleDescription=VM options
RunJarPanel.customizeOptionsButton.text=C&ustomize...
RunJarPanel.wrapCheckBox.text=Wrap text
