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

#############################################################################
################### Property file for the Axis2 Code generator ##############
#############################################################################
##
#General
general.Error=Error
general.Error.prefix=An error occurred while completing process -
general.name=Axis2 Codegen Wizard
general.browse=Browse...
general.search=Search..
general.invalid.state=Invalid state!
general.useraborted.state=User aborted!
general.empty=
############################################################################
# Initial tool selection page - Page0
# Tool selection
page0.name=Axis2 Code generation wizard
page0.title=Select the wizard
page0.desc=Welcome to the Axis2 code generator wizard. 
#
page0.options.desc=Please specify what you want to do. 
page0.hint.desc=Hint : You can generate java code from a WSDL or WSDL from a Java source file.
page0.java2wsdl.desc=Select this option if you already have a java source file and need to generate a WSDL 
page0.java2wsdl.caption=Generate a WSDL from a Java source file
#
page0.wsdl2java.desc=Select this option if you need to generate stubs/skeletons from a WSDL 
page0.wsdl2java.caption=Generate Java source code from a WSDL file
############################################################################
#WSDL selection page - Page1
#WSDL selection page name
page1.name=page1
page1.title=WSDL selection page
page1.desc=Please Select the WSDL file location
#labels
page1.fileselection.label=WSDL file location :
page1.fileselection.browse=Browse...
page1.hint.desc=Hint : You can select only *.wsdl/*.xml file location 

#Errors
page1.error.filemissingerror=File name should be specified
page1.error.wrongextension=File extension must be wsdl
#
####################################################################### 
#Options - page3
page2.name=page3
page2.title=Options
page2.desc=Set the options for the code generator. If you wish to edit the codegen options, Select custom option from Codegen Option drop down list.
#labels
page2.language.caption=Output language
page2.syncAsync.caption=Generate both sync and async
page2.sync.caption=Generate sync style only
page2.async.caption=Generate async style only
page2.package.caption=Custom package name
page2.namespace.caption=Namespace
page2.namespace2Pkg.caption=Namespace to package mappings
page2.serverside.caption=Generate server side code
page2.clientside.caption=Generate client side code
page2.serviceXML.caption=Generate a default services.xml
page2.testcase.caption=Generate test case
page2.databindingCheck.caption=Databinding Name
page2.serviceName.caption=Service Name
page2.portName.caption=Port Name
page2.genAll.caption=Generate Both with all classes for every elements on Shemas 
page2.ssInterface.caption=Generate an Interface for Skeleton
page2.wsdlNotFound.message=Specified WSDL is not found!, Please Check whether you have entered the correct path to a *.wsdl on previous page.
page2.wsdlInvalid.message=Specified WSDL is invalid!, Please select a validated *.wsdl/*.xml file on previous page.
page2.noports.message=No ports found in the specified service
#
page2.options.desc=Codegen option
page2.default.desc=Select this to codegen by accepting the default options
page2.default.caption=Default Codegen Options
#
page2.custom.desc=Select this option if you need to customize the codegen options
page2.custom.caption=Custom Codegen Options
#errors
page2.pachage.error.nolocation=Invalid package name. Please enter a valid package name.
####################################################################### 
#Output location selection - page4  
page3.name=page4
page3.title=Output
page3.desc=Set the output location for the generated code
#lables
page3.result.decs=Select one of below to save the codegen output either on eclipse workspace project or \n on file system and then browse to enter the output path
page3.output.caption=Output path
page3.axishome.caption=Axis Home
page3.jarname.caption=Jar File Name
page3.outselection.browse=Browse...
page3.loadlibs.browse=Check Libs...
page3.containerbox.title=Select new file container
page3.workspace.caption=Browse and select a project on current eclipse workspace
page3.workspace.desc=Select this to add the codegen results under a project on current eclipse workspace
page3.filesystem.caption=Browse and select location on local file system
page3.filesystem.desc=Select this to save the results of the codegen on local file system
page3.addaxislib.caption=Add Axis2 libraries to the codegen result project
page3.addaxislib.desc=Click this to Copy the Axis2 Libraries to the created project library
page3.jarcreation.caption=Create a jar file of codegen result project and add to resulted project lib folder (Default : CodegenResults.jar)
page3.jarcreation.desc=Click this to create a jar file of the codegen results and put that in output location
page3.copypluginlib.caption=Add the Axis2 codegen jars to the codegen resulted project
page3.copypluginlib.desc=Click this to add all the Axis2 libs in to the generated project as the result of codegen
page3.hint.caption=Hint : If you have Axis2 binary distribution or Axis source, then you can add those libs also to the\n resulted codegen project by checking the \"Add Axis2 Libraries to the codegen resulted project\"\n check box and specifying the Axis2 home. Another option you have is to compile the codegen \n result project and add it as a jar file in the lib directory of the resulted project, for that you can \n check the \"Create a jar file of codegen result project and add to resulted project lib folder\" \n checkbox and then give the jar file name that you prefer. \n If you are adding the codegen result to a eclipse project on current eclipse workspace, \n please make sure to refresh that particular eclipse project. \n Also if you select the options to add libs to the project, make sure to add those libs to the \n project library path.
page3.loadlib.success.caption=Axis libs loaded successfully !!
page3.loadlib.fail.caption=Axis libs are not available!! Please verify the entered path!!
page3.loadlib.fail.message=Axis libs are not available!! Please verify the entered path, If you point to source try maven goal create-lib !!
page3.hint.on=Page Hint >>
page3.hint.off=Page Hint <<
#errors
page3.error.nolocation=output location needs to be specified
#
##########################################################################
#java source file selection = page5
page4.name=page5
page4.title=Java source/classpath selection
page4.desc=Select the classes and the libraries
#labels
page4.classpath.label=Java Class path Entries. Select either folders or jar files
page4.classname.label=Fully Qualified Class name
page4.addDir.label=Add Folder
page4.addJar.label=Add Jar
page4.removeEntry.label=Remove
page4.error.invalidClassName=Fully qualified class name needs to be specified!
page4.error.ClassNameNotTerminated=Class name is not properly terminated!
page4.tryLoad.label=Test Class Loading..
page4.unknownError.label=Unknown error!
page4.successLoading.label=Class file loaded successfully
page4.hint.caption=Hint : Please give the fully qualified class name, example :com.foo.BarService\n         Then add the folder or the jar file which contains that class file. \n         Finally check whether the class file can be loaded from the plugin. \n\n         If the class that you are going to load contains any dependencies \n         on other axis2 libraries ( for example like axiom*.jar), please add those \n         libraries as well and try to load the class.

###############################################################
#java2wsdl options = page6
page5.name=page6
page5.title=Java to WSDL Options
page5.desc=Set the Options for the generator
page5.targetNamespace.label=Target Namespace
page5.targetNamespacePrefix.label=Target Namespace Prefix
page5.schemaTargetNs.label=Schema target namespace
page5.schemaTargetNsPrefix.label=Schema target namespace Prefix
page5.serviceName.label=Service Name
page5.error.filemissingerror=Service name should be specified

###############################################################
#java2wsdl output location - page7
page6.name=page7
page6.title=WSDL file output location
page6.desc=Select the location for the generated WSDL.
####
page6.output.label=Output location
page6.outputname.label=Output File Name
page6.workspace.caption=Browse and add the WSDL to a project on current eclipse workspace
page6.workspace.desc=Select this to add the WSDL file under a project on current eclipse workspace
page6.filesystem.caption=Browse and save the WSDL file on local file system
page6.filesystem.desc=Select this to save the resulted WSDL on local file system
#Wizard
generator.generating=Generating code...
generator.readingWOM=Reading WSDL file...
#Success message
wizard.success=All operations completed successfully !

##############################################################

