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

#title for wizard server location panel
TITLE_ServerLocation=Server Location
TITLE_Properties=Instance Properties
TITLE_DomainLocation=Domain Location
STEP_ServerLocation=Server Location
STEP_Properties=Instance Properties
STEP_Domain=Domain Name/Location
#LBL_PreludeInstallLocation=GlassFish v3 Prelude Installation &Location:
LBL_BrowseButton=Br&owse...
#MSG_InvalidPreludeServerLocation=Provide a valid GlassFish v3 Prelude Home Location
LBL_ChooserName=Choose Installation Location
LBL_DirType=GlassFish Server Install Locations
LBL_ChooseButton=Choose
MSG_InstanceRegistrationFailed=Registration Failed

# Download button labels
LBL_DownloadNow=Download Now...
LBL_CancelDownload=Cancel Download
LBL_DownloadComplete=Download Complete

# Download messages
MSG_DownloadComplete=Download & Install completed in {0}.
MSG_DownloadCancelled=Download cancelled.

# Add server properties panel
LBL_USER=&User:
LBL_PASSWORD=&Password:
LBL_ADMIN_PORT=&Admin Port:
LBL_HTTP_PORT=H&TTP Port:

A11Y_NAME_PANEL=Add server
A11Y_DESC_PANEL=Add server specific data
A11Y_PASSWD_TXT=Admin user password
A11Y_ADMIN_PORT_TXT=Administration port
A11Y_HTTP_PORT_TXT=HTTP port

LBL_InitializationTitle=Initialize
LBL_ReadLicenseText=<html><body><span style="text-decoration: underline;">I have read and accept the license agreement... (click)</span></body></html>
LBL_NewInstallDirCanBeUsed=<html><body>{0} does not exist but server can be downloaded and installed there.</body></html>

ERR_BlankInstallDir=Install location cannot be empty.
ERR_CannotCreate=Cannot be created.
ERR_InstallDirDoesNotExist=Does not exist.
ERR_InstallDirInvalid=Not an acceptable folder name.
ERR_PreludeInstallationInvalid=Not a valid GlassFish v3 Prelude installation.
ERR_InstallationInvalid=Not a valid GlassFish Server installation.
ERR_EE6WCInstallationInvalid={0} is not a valid GlassFish Server 3.1 installation.
ERR_DefaultDomainInvalid=No usable default domain. Use Next to create a personal domain.
ERR_DomainExists=The server at {0} is already present on the server tab.
MSG_DefaultDomainExists=<html>{1} is already registered for this installation.<br/>\
Choose a different domain on the next page.</html>
ERR_WrongPort=HTTP port or Admin port is being used or is wrong.
ERR_MissingData=User or password should be entered.

ERR_DomainAlreadyRegistered=Domain {0} is already registered for this installation.
MSG_RegisterExistingEmbedded=Register existing embedded domain: {0}
MSG_CreateEmbedded=Create new embedded domain: {0}
WRN_CreateEmbedded=<html>Default Java platform is not supported by selected \
server.<br/>Please create {0} manually using asadmin command line utility<br/> \
and open this wizard again.</html>
MSG_RegisterExisting=Register existing domain: {0}
MSG_CreateDomain=Create domain at {0}
ERR_CannotCreateDomain=Cannot create domain at {0}
ERR_UnusableDomain=Unsupported domain at {0}; Admin-listener is disabled or no enabled http-listener
MSG_MustHaveName=The domain name cannot be blank.
MSG_EnterDomainDirectory=Enter the path to a directory that will contain a new domain.

ERR_TargetExists=Target {0} already exists.  Terminating archive installation.
ERR_FolderCreationFailed=Failed to create folder: {0}.  Terminating archive installation.
ERR_FolderMoveFailed=Unable to move existing folder {0} out of the way.
ERR_FileMoveFailed=Unable to move existing file {0} out of the way.
ERR_TooManyPreludeBackups=Unable to backup {0}.  Too many backups already.
ERR_ChmodFailed=Could not run {0} : Exit value={1}
ERR_ChmodNotFound=Unable to locate the chmod program.\n\nYou will need to \
ensure the scripts in the following directories have execute permissions or \
some tools such as Update Center may not run properly\n

# MSG_Installing - {0} = path, {1} = size string, from MSG_SizeXX below
# example: Installing glassfish/bin/updatetool.bat (798 bytes))
MSG_Installing=Installing {0} ({1})
MSG_Installing2={1} of {2} : Installing {0}
MSG_SizeBytes={0} bytes
MSG_SizeKb={0}k
MSG_SizeMb={0}.{1}m

STATUS_Ready=Ready.
STATUS_Connecting=Connecting...
STATUS_Downloading=Downloading...
STATUS_Complete=
STATUS_Failed={0}: {1}
STATUS_Terminated=
STATUS_InvalidWsdl=Response from this URL is not a valid WSDL file.

TIME_ETERNITY=an eternity
TIME_NO_TIME=no time at all
TIME_HOURS={0,choice, 1#{0} hour|2#{0} hours}
TIME_MINUTES={0,choice, 1#{0} minute|2#{0} minutes}
TIME_SECONDS={0,choice, 1#{0} second|2#{0} seconds}
TIME_MILISECONDS={0} ms
TIME_SEPARATOR=,\ 
LBL_InstallLocation=Installation &Location:
V3_PRELUDE_NAME=GlassFish v3 Prelude
V3_EE6_NAME=GlassFish Server 3

MSG_CheckNetworkConfig=Check network configuration
MSG_InvalidUrl=Invalid URL: {0}
MSG_FileProblem=File format issue: {0}
AddServerLocationVisualPanel.downloadStatusLabel.text=<html>[download status] and more and more and more and more</html>

#ERR_BrokenGF3_1_2=<html>{0} is known to have serious bug in JAX-WS.<br>This bug may cause NetBeans to stop responding.<br>Click Next if you really want to register remote or custom local domains with broken server.</html>
ERR_BrokenGF3_1_2=<html>{0} includes libraries that can cause NetBeans to become<br/>\
unstable when working on web services. Use the View Domain Update Center<br/>\
action on server node to upgrade your 3.1.2 installation to 3.1.2.2.</html>

MSG_NextForSpecial=Detected a {0} install. Click Next to register remote or custom local domains.
ERR_InvalidDomainData=The domain ({0}) has invalid data in domain.xml

TIP_No_file_to_download=No file available to download
AddDomainLocationVisualPanel.useDefaultPortsCB.text=&Default
AddDomainLocationVisualPanel.useDefaultPortsCB.text2=Use default ports (disabled due to port conflicts)
AddDomainLocationVisualPanel.useDefaultPortsCB.toolTipText=4848, 8080, etc.


TIP_ADMIN_IN_USE=Default admin port (4848) in use
TIP_HTTP_IN_USE=Default http port (8080) in use

STR_V3_FAMILY_NAME=GlassFish Server
STR_3_SERVER_NAME=GlassFish Server 3.0
STR_31_SERVER_NAME=GlassFish Server 3.1

STR_V4_FAMILY_NAME=GlassFish Server
STR_4_SERVER_NAME=GlassFish Server 4.0
STR_41_SERVER_NAME=GlassFish Server 4.1

STR_V5_FAMILY_NAME=GlassFish Server
STR_5_SERVER_NAME=GlassFish Server 5.0
STR_501_SERVER_NAME=GlassFish Server 5.0.1
STR_510_SERVER_NAME=GlassFish Server 5.1.0

STR_V6_FAMILY_NAME=GlassFish Server
STR_6_SERVER_NAME=GlassFish Server 6.0.0
STR_610_SERVER_NAME=GlassFish Server 6.1.0
STR_620_SERVER_NAME=GlassFish Server 6.2.0
STR_621_SERVER_NAME=GlassFish Server 6.2.1
STR_622_SERVER_NAME=GlassFish Server 6.2.2
STR_623_SERVER_NAME=GlassFish Server 6.2.3
STR_624_SERVER_NAME=GlassFish Server 6.2.4
STR_625_SERVER_NAME=GlassFish Server 6.2.5

LBL_SELECT_BITS=Select
LBL_ChooseOne=Choose server to download:

AddDomainLocationPanel.invalidDasPort=Invalid DAS port value: {0}
AddDomainLocationPanel.invalidHttpPort=Invalid HTTP port value: {0}
AddDomainLocationPanel.remoteInstance=Remote host: {0} DAS: {1} HTTP: {2}
AddDomainLocationVisualPanel.useDefaultPortsCB.AccessibleContext.accessibleDescription=Use the standard ports if a domain is created
AddServerLocationVisualPanel.readlicenseButton.AccessibleContext.accessibleDescription=Press to open license file in window
AddServerLocationVisualPanel.browseButton.AccessibleContext.accessibleDescription=Open a file chooser to select GlassFish server installation location
AddServerLocationVisualPanel.hk2HomeTextField.AccessibleContext.accessibleDescription=Enter GlassFish server installation location
AddServerLocationVisualPanel.agreeCheckBox.AccessibleContext.accessibleDescription=Select to acknowledge that you have read the license
AddServerLocationVisualPanel.remoteDomainRadioButton=Remote Domain
AddServerLocationVisualPanel.localDomainRadioButton=Local Domain
AddDomainLocationVisualPanel.targetValueLabel.text=&Target:
AddDomainLocationVisualPanel.targetValueField.text=\ \ \ \ \ \ \ \ \ \ \ \ \ \ 
AddDomainLocationVisualPanel.userNameLabel.text=&User Name:
AddDomainLocationVisualPanel.passwordLabel.text=Pass&word:
AddDomainLocationVisualPanel.httpPortFieldLabel.text=HTTP Port:
AddDomainLocationVisualPanel.dasPortFieldLabel.text=DAS &Port:
AddDomainLocationVisualPanel.dasPortField.AccessibleContext.accessibleDescription=Enter the value of the admin listener port
AddDomainLocationVisualPanel.hostRemoteField.AccessibleContext.accessibleDescription=enter the host name or IP address of the remote server
AddDomainLocationVisualPanel.hostRemoteField.text=
AddDomainLocationVisualPanel.domainLocalField.AccessibleContext.accessibleDescription=enter the name of the domain that you want to register or create
AddDomainLocationVisualPanel.domainLocalLabel.text=&Domain:
AddDomainLocationVisualPanel.domainRemoteLabel.text=&Domain:
AddDomainLocationVisualPanel.domainRemoteField.text=
AddDomainLocationVisualPanel.hostLocalLabel.text=Host:
AddDomainLocationVisualPanel.hostRemoteLabel.text=&Host:
AddDomainLocationVisualPanel.localIpCB.text=Loopback
AddDomainLocationVisualPanel.remoteLink.text=<html><a href="#">Note the remote administration needs to be enabled before registering the remote domain.</a></html>
