# To change this template, choose Tools | Templates
# and open the template in the editor.

language=en
direction=LTR
title=Apache jUDDI - Open Source UDDI Discovery Services
description=jUDDI is a free open source implementation of OASIS's UDDI specification. Think of it as a phone book for web services.
navbar.home=Home

navbar.discover=Discover
navbar.businesses=Businesses

navbar.businesses.tooltip=Browse for businesses
navbar.services=Services

navbar.services.tooltip=Browse for Services
navbar.tmodels=tModels

navbar.tmodels.tooltip=Browse for tModels
navbar.publishers=Publishers

navbar.publishers.tooltip=Browse for Publishers

navbar.search=Search
navbar.search.tooltip=Search
navbar.create=Create
navbar.create.business=Business
navbar.create.business.tooltip=Create a Business
navbar.create.service=Service
navbar.create.service.tooltip=Create a Service
navbar.create.tmodel=tModel
navbar.create.tmodel.tooltip=Create a tModel
navbar.create.tmodelkeygen.tooltip=Create a tModel Key Generator
navbar.create.publisher=Publisher
navbar.create.publisher.tooltip=Create a Publisher
navbar.create.tmodelkeygen=tModel Partition (Key Generator)

navbar.subscriptions=Subscriptions
navbar.subscriptions.view=View Subscriptions
navbar.subscriptions.create=Create Subscription
navbar.subscriptions.view.tooltip=View My Subscriptions
navbar.subscriptions.create.tooltip=Create a Subscription

navbar.settings=Settings
navbar.settings.config=Configure
navbar.settings.config.tooltip=Configure this UDDI Browser

navbar.help.userguide=User's Guide
navbar.help.devguide=Developer's Guide
navbar.help.api=API Documentation
navbar.help.wiki=jUDDI Wiki
navbar.help.bugreport=File a Bug Report
navbar.help.website=Official jUDDI Website
navbar.help.mailinglist=Mailing List Archive

navbar.login.username=Username
navbar.login.password=Password
navbar.login.button=Login
navbar.login.logout=Click to logout

index.juddi=jUDDI (pronounced "Judy") is an open source Java implementation of the Universal Description, Discovery, and Integration (UDDI v3) specification for (Web) Services. Think of UDDI as the yellow pages of the phone book for web services.
learnmore=Learn More
viewdetails=View Details
index.learn=Learn all about OASIS's UDDI Technical Specification
index.search=An advanced search capability that allows you search for specific criteria.
index.browse=Flip through the pages of UDDI. Whether you're just curious or you're looking for something specific and don't know what to search for, the browse feature is a good place to start.
index.browse.title=Browse
index.search.title=Search
index.learn.title=About UDDI
footer.apachecopyright=&copy; 2013 The Apache Software Foundation. All Rights Reserved.
modal.digitalsignaturewarning.title=Digital Signature Warning
modal.digitalsignaturewarning.body=This item is digitally signed. This means that when saving your changes, all existing signatures will become invalid and will automatically be excluded from the save process. 
modal.close=Close
modal.savechanges=Save Changes
totals.records=Total records
totals.recordsreturned=Records Returned
totals.offset=Offset
items.lang=Language
items.loading=Loading
pages.businesseditor.title=Business Editor
pages.businesskey=Business Key
pages.businesskey.description=The Business Key is the unique identifier for this business and exists within this registry. 
pages.editor.tabnav.general=General
pages.editor.tabnav.discovery=Discovery
pages.editor.tabnav.contacts=Contacts
pages.editor.tabnav.categories=Categories
pages.editor.tabnav.identifiers=Identifiers
pages.editor.tabnav.services=Services
pages.editor.tabnav.signatures=Signatures
pages.editor.tabnav.opinfo=Operational Info
pages.editor.tabnav.relatedbusinesses=Related Businesses
items.name=Name
items.business.name.description=Businesses are identified by one or more name. Multiple names are useful for different languages, legal names, or abbreviations.
items.value=Value
items.description=Description
items.businesses.description=businesses can have more than one description, such as in a different language
items.discoveryurl=Discovery URLs
items.discoveryurl.description=are typically a link to a simple web page with additional information on it, such as a listing a services. Two reserved values are specified in the specification, 'homepage' and 'businessEntity'.
items.type=Type
items.contacts=Contacts
items.contacts.description=Each business typically has several points of contact for a person or a job role within the business so that someone who finds the information can make human contact for any purpose. Examples for Type: "technical questions", "technical contact", "establish account", "sales contact".
items.email=Email
items.phone=Phone
items.address=Address
items.addressline.add=Add an addline (at least one is required).
items.addressvalue=Address Value
items.keyname.optional=Key Name (optional)
items.keyvalue.optional=Key Value (optional)
items.categories.description=UDDI uses a taxonomy system to categorize businesses and their services. These categories are defined as UDDI tModels and are defined by the administrator(s) of this UDDI node. These categories are appended to business registrations either by adding one or more "Key References" or by adding one or more "Key Reference Groups", which in turn can be a zero or more of Key References as part of it.
items.keyrefcats=Keyed Reference Categories
items.keyrefcat.add=Add Key Reference
items.keyrefgroup=Keyed Reference Groups
items.keyrefgroup.add=Add Key Reference Group
items.key=Key
items.identifiers=Identifiers
items.identifiers.description=optionally, you can attach identifiers that uniquely identify this item from other systems, such as a tax ID or a <a href="http://www.whitehouse.gov/sites/default/files/omb/grants/duns_num_guide.pdf">DUNS Number</a>.
items.signed.not=This item is not digitally signed.
item.signed=This item is digitally signed. Signature Count: 
items.signed.viewcert=View Certificate
actions.save=Save
actions.delete=Delete
actions.sign=Digitally Sign
actions.transfer=Transfer Ownership
actions.subscribe=Subscribe
errors.unknownentity=Error, Unrecongized entity type.
errors.nodatareturned=No data returned.
items.business=Business
error.generic=Error 
errors.tmodel.prefix=A tModel partition key generator must have a name that starts with uddi: 
errors.tmodel.postfix=A tModel partition key generator must have a name that ends with :keyGenerator
messages.success=Success
errors.norecordsfound=No records were found.
#just a prefix
errors.uddi=UDDI Error 
errors.nocertavaiable=Error, no certificate was available.
items.nodeid=Node ID
items.authorizedname=Authorized Name
items.created=Created
items.modified=Modified
items.modifiedwithchildren=Modified include children
items.signed=This item is digitally signed. Count:
errors.nobusinessid=No business ID was specified.
errors.noservicesdefined=No services are defined.
actions.save.bindingtemplate=Binding Template saved successfully!
actions.save.service=Service saved successfully!
errors.noinput.businesskey=Error, no input was provided for the business key.
items.pubisher.name=Publisher Name
items.publisher.authname=Authorized Name
items.publisher.admin=Administrator
errors.noinput=No input was provided.
actions.save.tmodel=tModel saved successfully!
actions.delete.tmodel=tModel deleted successfully.
actions.delete.business=Business deleted successfully.
actions.delete.service=Service deleted successfully.
search.wrylf=What are you looking for?
items.tmodel=tModel
items.bindingtemplate=Binding Template
search.criteria=Search Criteria
search.criteria.byname=By Name
search.criteria.bycategory=By Category
search.criteria.bykey=By Unique Identifier
search.criteria.bytmodel=By tModel
search.tip=*Tip: use '%' for any number of wild card characters and '_' for a single wild card character and click on 'approximateMatch' find qualifier.
search.results=Search Results
search.searchfirst=Try searching first
items.publisher=Publisher
items.dsigs=Digital Signatures
items.service.browser=Service Browser
items.tmodel.browser=tModel Browser
items.dsigs.description=This page will enable you to digitally sign a UDDI entity using a Java Applet and an X509 Digital Certificate. Windows and MacOS are supported.
items.settings.description=Administrators can use this page to change the way this UDDI browser is configured, such as endpoint URLs, SSL stores, authentication mechanisms and more. Note: not all settings are editable. The "save" function may not be available in all deployments.
pages.tmodelpart.title=tModel Key Generators (Partitions)
pages.tmodelpart.content=TModel Key Generators are a special kind of tModel that enables you to define new tModels with any arbitrary tModel prefix that you want. For example, if you wanted a tModel defined as "uddi:www.mycompany.com:ServiceAuthenticationMethod", you would first have to create a tModel key generator with the value of "uddi:www.mycompany.com:keyGenerator". This is part of the UDDI specification and acts as a governance mechanism. You can also create a tModel Key Generator by using the Creat tModel menu option and by adding the appropriate settings.
pages.tmodelpart.juddinote=For jUDDI implementations of UDDI, the "root" account cannot be used to create a keyGenerator.
pages.tmodelpart.key=The UDDI tModel key
pages.thmodepart.name=A name describing the key
pages.viewsubscriptions.content=UDDI offers the ability for users to subscribe for notification to changes in most entities within a UDDI registry. However, the notification part is a bit strange. Users of strict UDDIv3 registries have only one option, periodically poll the UDDI registry for changes via the Subscription API. Although there's data types defined within the UDDI v3 specification, there's no API method for setting up a callback style of subscription, where the registry user hosts a web service that waits for notifications. In a callback subscription, those that need the information are notified immediately.
pages.serviceeditor.title=Service Editor
errors.generic=Error
pages.businesseditor.businesslist=Business Services
pages.businesseditor.businesslist2=are defined for this business.
items.service=Service
errors.notsignedin=Either an error occured, or you're not signed in.
pages.viewsubscriptions.listingheader=UDDI Subscriptions
pages.viewsubscriptions.nosubs=No subscriptions are currently defined.
errors.juddiapi.without.juddi=You're not connected to a jUDDI registry. Contact the administrator or check the configuration file.
items.services.name.descriptions=Services are identified by one or more name. Multiple names are useful for different languages, legal names, or abbreviations.
items.services.description=services can have more than one description, such as in a different language.
items.bindingtemplate.keyrefgrp=Binding Template Keyed Reference Groups
items.bindingtemplate.keyrefcat=Binding Template Keyed Reference Categories
items.overviewurl=Overview Documents
items.overviewurl.description=These are typically URLs to web pages that describe this tModel's details and usage scenarios.
items.tmodelinstance.description=tModel Instance Description
items.tmodelinstance.description2=tModel instance infos can have more than one description, such as in a different language.
items.tmodelinstance.parameters=tModel Instance Parameters
items.service.key=Service Key
items.service.key.description=The Service Key is the unique identifier for this service. If you specify a service key, it must be prefixed with an existing partition (key generator).
items.bindingtemplate.description=A service in UDDI really defines a specific type of service, not necessarily an implementation of a service. Binding templates define specifically an implementation of a service and normally includes an access point describing how to use the service. Each service may have 0 or more binding templates. Some registries impose limits on the number of binding templates per service.
items.bindingtemplate.add=Add a Binding Template
items.bindingtemplate.key=Binding Template Key
items.bindingtemplate.description.add=Add a Binding Template Description - binding templates can have more than one description, such as in a different language.
items.accesspoint=Access Point
items.accesspoint.description=UDDI allows for a choice of either a Hosting Redirector OR an Access Point. Access Point is recommend. The access point is usually a URL for the service endpoint.
items.accesspoint.type=Access Point Type
items.accesspoint.value=Access Point Value
items.hostingredirector=Hosting Redirector
items.tmodelinstance.info=tModel Instance Information
items.tmodelinstance.info.desc=a binding template can have additional information attached to it using the tModel Instance.
items.overviewurl.add=Add an Overview Document
items.overviewurl.description.add=Add an Overview Document Description
items.tmodelinstance.add=Add a tModel Instance
items.tmodelinstance.description.add=Add a tModel Instance Description
items.tmodel.key=tModel Key
items.overviewdocument.description=Overview Document Descriptions
navbar.help=Help
pages.tmodeleditor.title=tModel Editor
pages.editor.tabnav.overview=Overview Documents
pages.editor.tabnav.overview.description=These are typically URLs to web pages that describe this tModel's details and usage scenarios.
items.tmodel.description=tModels can have more than one description, such as in a different language.
items.tmodel.key.description=\ The tModel Key is the unique identifier. If you specify a tModel key, it must be prefixed with an existing partition (key generator), otherwise the key will be generated for you.
items.tmodel.name=Name - The name describes this tModel. It is a required field.
items.clicktoedit=Click to edit
pleasewait=Please wait
items.description.add=Add a Description
items.name.add=Add a Name
items.contact.primary=Primary Contact
#suggestion
items.phone.types=(Extension, Domestic, International, DSN)
items.sortcode=Sort Code
items.contact.type=Contact Type
items.contact.default=(Job Title, Role)
items.addresstype.default=(headquarters. sales office, billing)
items.welcome=Welcome
items.expires=Expires
items.actions=Actions
actions.asxml=View as XML
items.name.description=UDDI entities can have more than one name, such as abbreviations or in another language.
items.signatures.invalid=Signature is invalid! Reason: 
items.signatures.valid=Digital Signature is valid.
items.unknown=Error, unable to identify which type of object you wanted.
items.service.add=Add a Service
items.publisherassertion.add=Add a Business Relationship (Publisher Assertion)
actions.saved=Saved!
items.details=Details
navbar.publisherassertions=Publisher Assertions
navbar.publisherassertions.tooltip=Allows you to configure relationships between businesses.
navbar.create.mybiz=My Businesses
navbar.create.mybiz.tooltip=A list of all businesses that you can alter.
navbar.create.mybiz.content=My Businesses contains a list of all the UDDI business elements that you have access to. This typically means that you can make changes to it, however this may vary between vendors.
actions.transfer.description=Transfer this entity to another UDDI node or publisher.
actions.subscribe.description=Alert me when this entity changes.
items.publisherassertions.from=This Business
items.publisherassertions.to=Is related to business
items.publisherassertions.relationship=Relationship
items.status=Status
actions.deleted=Deleted
navbar.subscriptions.feed=News Feed
items.picker=Picker
navbar.subscriptions.feed.tooltip=A new feed based on your subscription settings.
items.tmodel.chooser=tModel Chooser
actions.select=Select
actions.cancel=Cancel
navbar.transfer=Transfer Custody
navbar.transfer.tooltip=Transfer Ownership to another Publisher
items.subscriptions.assertion=Assertion Status Report Changed
items.subscriptions.bindings=Bindings Changed
items.subscriptions.business=Businesses Changed
items.subscriptions.assertion2=Business Relationships (Publisher Assertions)
items.subscriptions.services=Services Changed
items.subscriptions.servicelist=Service Listing
items.subscriptions.tmodels=tModels Changed
items.subscriptions.tmodels2=tModel Listing
actions.canceled=Canceled
actions.success=Success!
items.transfertoken=Transfer Token
items.transferkeys=Keys to Transfer (KeyBag)
error.ohno=Oh no!
error.occurred=Unfortunately, an error occurred. 
error.pleasereport=Please do us a favor and report to your jUDDI administrator.
error.timeofevent=Time the event occurred
error.reportadmin=If you are the administrator, please review the server logs and report the findings to the following URL.
error.filereport=File a Bug Report
navbar.help.about=About
navbar.help.about.tooltip=About this site
pages.about.content=This website is part of the <a href\="http\://juddi.apache.org">Apache jUDDI</a> project and provides end user functionality for\n            interacting with a UDDI version 3 registry as defined by the OASIS standard located here\: <a href\="http\://uddi.org/pubs/uddi-v3.0.2-20041019.htm">http\://uddi.org/pubs/uddi-v3.0.2-20041019.htm</a>.\n            <br><br>\n            This user interface should work with any UDDI v3 implementation but was designed and tested with the Apache jUDDI server and communicates via \n            web service transactions.\n            <br><br>\n            This user interface is open source and uses a number of other open source libraries and capabilities which are listed below.
items.binding.chooser=Binding Chooser
items.service.chooser=Service Chooser
items.business.chooser=Business Chooser
items.assertion.chooser=Publisher Assertion Status
items.subscription.CompletionStatus.STATUS_COMPLETE=This means that there is a visible relationship between two businesses.
items.subscription.CompletionStatus.STATUS_FROM_KEY_INCOMPLETE=This indicates that a business has has asserted a relationship with one of your businesses, but you have not reciprocated the relationship.
items.subscription.CompletionStatus.STATUS_TO_KEY_INCOMPLETE=This indicates that the owner of the business has asserted a relationship with another business, but it has not be reciprocated.
items.subscription.CompletionStatus.STATUS_BOTH_INCOMPLETE=This indicates that the publisher assertion embedded in the assertion Status Item has been deleted from both ends of the business relationship.
pages.subscription.content=UDDI has a feature that allows you to be alerted of updates to either specific UDDI entries or to search results. This page will help you setup a subscription to meet your needs. Note: only one type of subscription filter can be defined per subscription. Normally, users can make as many subscriptions as they want, however it may be effectively limited by the registry implementation.
pages.subscription.step1=Step 1) What do you type of information to you want alerts on?
pages.subscription.step2=Step 2) Which items do you want alerts on?
pages.subscription.step1.specific=Changes to a specific item
pages.subscription.step1.search=Changes to search results, such as a new item
items.publisherassertion.status=Publisher Assertion Status
actions.add=Add
actions.remove=Remove
items.findqualifiers=Find Qualifiers
pages.subscription.step3=Step 3) How do you want to receive the alerts?
pages.subscription.step3.direct=Send me alerts directly
pages.subscription.step3.direct.tooltip=Either via a UDDI Subscription Client API, Email or some other notifier
pages.subscription.step3.pickup=I'll pick them up
pages.subscription.step3.pickup.tooltip=Either via this website or from your own software that periodically checks for updates
pages.subscription.step3.content=In order for a UDDI server to notify you of updates asynchronously, you first have to define a business, with a service, with a binding template that tells UDDI where to send the notification (Access Point value). Some UDDI servers (such as Apache jUDDI) require you to also add a tModel Instance defining the transport parameter, such as 
pages.subscription.step4=Step 4) Options
items.notificationinterval=Notification Interval (hh:mm:ss)
items.expiration=Expiration
items.subscriptionbrief=Brief Subscription
items.maxrecords.callback=Max records per callback
navbar.subscriptions.feed.content=The news feed provides you a list of all updated content per your subscription settings
pages.transfer.content=\ UDDI supports the transfer the ownership of Businesses (and all their child objects including services, binding templates) and tModel entities to another publisher. Publishers represent one or more logins or usernames.<br><Br>Transfers can occur within a UDDI registry node (intra-node) and between multiple registries nodes (inter-node). This utility will help you setup intra-node transfers only. No known UDDI implementations support inter-node transfers (replication API's are not implemented.<br><br>The process is straightforward, select what entities you want to transfer, then click OK. A token will be presented to you which then need to give to the other publisher. The other publisher then needs to accept the token and transfer the ownership to the publisher. Finally, the token is then destroyed to prevent any inadvertent transfers.<br>Transfers can be aborted (token invalidated) before the other publisher transfers the ownership over. Once it's been transfered and you want to undo the transfer, contact the registry administrator and the other publisher.
pages.transfer.createtoken=Create a new Token
pages.transfer.discardtoken=Discard a transfer token (abort the transfer)
pages.transfer.accepttransfer=Accept a Transfer
actions.refresh=Refresh
pages.transfer.gettoken=Get a Transfer Token
items.token=Token
actions.accept=Accept
pages.transfer.createtoken.content=This tab will help you create a transfer token. Once you have created it, copy the entire contents of the token and give it to the person you're transfering ownership to.
pages.transfer.discardtoken.content=Made a mistake? No problem. Enter the token below along with the keys to be transfered and it will be removed from the system, preventing any future transfer. It must match exactly. Note: both fields require XML content.
pages.transfer.accepttransfer.content=If another UDDI publisher gave you a transfer token and you all agreed to transfer ownership of a business or tModel, it can be done here. Enter the transfer token. It must match exactly.
actions.savethis=Copy and save this information to your computer. There's no way to retrieve this information again! 
navbar.help.source=Source Code
actions.approve=Approve
navbar.create.serviceimport=Register Services from WSDL
navbar.create.serviceimport.tooltip=Based on the UDDI TC, Using WSDL in a UDDI Registry
warning.ssl=Warning, you're not using SSL and your password could be exposed!
navbar.create.serviceimport.wadl=Register Services from WADL
pages.serviceimport.content.wadl=A Web Service WADL can be mapped to UDDI data structures. The mapping is loosely based on the OASIS <a href="https://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm">Technical Note</a> for WSDL. Create these standard UDDI entries by providing the URL to the WADL of the service you want to map into the UDDI registry.
pages.serviceimport.content=A Web Service WSDL can be mapped to UDDI data structures. The OASIS <a href="https://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm">Technical Note</a> details this. Create these standard UDDI entries by providing the URL to the WSDL of the service you want to map into the UDDI registry.
pages.serviceimport.content.step1=Step 1)    WSDL Location and Credentials
pages.serviceimport.content.step1a=The first step is to tell us where we can find the Web Service Description Language (WSDL) document that                             describes your services' operations, inputs and outputs and execution URLs. If you don't know where to find it                             you can usually add a '?wsdl' to the end of the URL to the service. WSDLs are XML documents.
pages.serviceimport.content.step1b=Sometimes, access to the description file is restricted by a username and password, if this is the case, enter                             your credentials here. It won't be saved anywhere.
pages.serviceimport.content.usessl=Please consider switching to a secure connection such as SSL or TLS (the address bar starts with https://),                                  otherwise your password may be exposed.
pages.serviceimport.content.sslwarning=Warning!
pages.serviceimport.content.step2=Step 2)  Key Domain
pages.serviceimport.content.step2a=Enter a key domain or select an existing tModel Key Generator. We'll make one if it doesn't exist.
pages.serviceimport.content.step3=Step 3)   Business Selection
pages.serviceimport.content.step4=Step 4) Review and Approve
actions.preview=Preview
pages.serviceimport.content.step4a=Preview the new items, then click save. Don't worry, you can always change these values later.
pages.serviceimport.content.step1.wadl=Step 1)    WADL Location and Credentials
pages.serviceimport.content.step1a.wadl=The first step is to tell us where we can find the Web Application Description Language (WADL) document that                             describes your services' operations, inputs and outputs and execution URLs. If you don't know where to find it                             you can usually add a '?_wadl' to the end of the URL to the service. WADLs are XML documents.
items.optional=(Optional)
items.ignoresslerror=Ignore SSL Errors
items.businesskeyorname=Business Key or Name
pages.serviceimport.content.step3a=Newly registered services need to be attached to a business. Either enter a new business name.
navbar.create.serviceimport.tooltip.wadl=Based on the UDDI TC, Using WSDL in a UDDI Registry, but adapted for WADL
navbar.advanced=Advanced
actions.submit=Submit
pages.advanced.content=The Advanced page let's users proficient in XML and UDDI manually enter data to send to the UDDI server. Authentication credentials will be handled automatically.
pages.uddikeys=The keys in UDDI v3 must start with the prefix "uddi:" followed by one or more key domains (also known as a key partition). Example: uddi:mybusiness.com:salesunit:service1 or uddi:mybusiness.com:service2. If you do not specify a key, one will usually be generated for you. UDDI v2 keys follow different rules and can also be used in a v3 registry if necessary, but it's not recommended. Keys must be unique across UDDI nodes.
items.publisherassertion.add.description=Adding a business relationship is simple. It starts off by one party asserting its relationship with another. Once completed, the other business entity can then be notified of the pending request and then decide to either confirm it, or ignore it. Click to edit the fields to make any changes.
items.publisherassertion.add.tokey=To Key
items.publisherassertion.add.fromkey=From Key
items.publisherassertion.add.keyname=Key Name
items.publisherassertion.add.keyvalue=Key Value
pages.settings.loading=Loading from 
pages.session.expire=Hey! You've been inactive for a while and are about to be kicked out!
pages.editor.tmodel.instances=Instances
pages.editor.tmodel.deleted=Is this tModel Deleted? (not available for future use).
pages.signatures.signedby=Signed By
pages.signatures.status=Signature Status
pages.editor.tmodel.instances.content=Use this to search for other entities in this registery that reference this tModel
pages.editor.tmodel.search.business=Find Businesses
pages.editor.tmodel.search.binding=Find binding
pages.editor.tmodel.search.services=Find services
pages.settings.accessdenied.remote=This is only accessible from the server hosting juddi-gui. sorry!
errors.nobindingtemplates=No binding templates
actions.show=Show
errors.parsing=Unexpected parsing error
errors.invaliddata=Invalid form data posted
items.active=active
items.token.xml=Token XML
items.kegbag.xml=Key Bag XML
actions.ok=OK
items.import.bizname=Business Key or a new Business Name
items.import.autofill=autofilled from the URL
actions.add.subscription=Add a subscription
actions.add.subscription.desc=You can setup a subscription for this business to automatically alert you when there is a change
actions.copy=Copy
pages.subscription.specificitem=A specific item
words.explanation=Explanation
items.maxrecords.callback.tooltip=This value must be a whole number greater than 0. If left blank, the UDDI server should decide it for you.
items.subscriptionbrief.tooltip=If checked, the UDDI server should only notify you that something has changed, but not the contents of the change.
navbar.login.required=Login Required
pages.settings.debuginfo=Debugging Information
items.settings.add=Add a new setting
items.settings.note=Note: the key must start with either 
pages.subscription.aboutkeys=About Subscription Keys: You can optionally specify a subscription key. If you do, it must follow the rules for UDDI keys (uniqueness, prefixes, tModel Partitions, etc).  If you do not define one, the UDDI server should generate one for you. 
errors.subscriptionfeed.nosubs=No subscriptions are defined.
items.maxitems=Maximum Items
items.deliverymech=Delivery Mechanism
