###############################################################################
# Copyright (c) 2001, 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################

title=UDDI

# Nodes
NODE_NAME_UDDI_MAIN=UDDI - Principal
NODE_NAME_QUERIES_FOLDER=Consultas ejecutadas
NODE_NAME_PUBLISHED_BUSINESSES_FOLDER=Empresas publicadas
NODE_NAME_PUBLISHED_SERVICES_FOLDER=Servicios publicados
NODE_NAME_PUBLISHED_SERVICE_INTERFACES_FOLDER=Interfaces de servicio publicadas

# OpenRegistryAction
ALT_OPEN_REGISTRY=Abrir registro
FORM_LABEL_OPEN_REGISTRY_DESC=Especifique le nombre y el URL de consulta del registro que desea abrir. Si selecciona un registro de favoritos se cumplimentar\u00e1 autom\u00e1ticamente la informaci\u00f3n necesaria. Pulse <strong>Ir</strong> para abrir el registro.
FORM_LABEL_FAVORITE_REGISTRY=Registro de favoritos
FORM_LABEL_REGISTRY_NAME=Nombre de registro
FORM_LABEL_INQUIRY_URL=URL de consulta
FORM_LABEL_CHECK_USER_DEFINED_CATEGORIES=Comprobar categor\u00edas definidas por el usuario
DEFAULT_REGISTRY_NAME=Registro de prueba UDDI de IBM
MSG_ERROR_INVALID_REGISTRY_NAME=IWAB0136E Entre un nombre de registro v\u00e1lido.
MSG_ERROR_INVALID_INQUIRY_URL=IWAB0138E Entre un URL de consulta v\u00e1lido.
MSG_INFO_REGISTRY_OPENED=IWAB0139I El registro llamado %1 y ubicado en %2 se ha abierto satisfactoriamente.
FORM_LABEL_IS_WEBSPHERE_UDDI_REGISTRY=\u00bfEs un registro UDDI de WebSphere?
DEFAULT_REGISTRY_NAME_WEBSPHERE=Registro UDDI privado de IBM WebSphere
FORM_LABEL_REGISTRY_HOST=Sistema principal
FORM_LABEL_REGISTRY_PORT=Puerto

# User-defined Categories
FORM_LABEL_ADD_CATEGORY_DATA=<a href="%1">Pulse aqu\u00ed</a> para cargar los datos de esta categor\u00eda.
FORM_CONTROL_TITLE_CATEGORY_FILE=Nombre de archivo de datos de categor\u00eda
MSG_INFO_NO_USER_DEFINED_CATEGORIES_FOUND=IWAB0371I No se han detectado categor\u00edas definidas por el usuario.
MSG_INFO_NO_CATEGORY_DATA=IWAB0372I Los datos de categor\u00eda para %1 no est\u00e1n disponibles o no son v\u00e1lidos.
MSG_INFO_USER_DEFINED_CATEGORY_DATA_LOADED=IWAB0373I Los datos para la categor\u00eda %1 definida por el usuario se han cargado satisfactoriamente.
MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_KEY=IWAB0374E Archivo de datos no v\u00e1lido para la categor\u00eda %1 definida por el usuario. Se ha encontrado una clave de categor\u00eda '%2' pero se esperaba '%3'.
MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE_FORMAT=IWAB0473E Formato desconocido en l\u00ednea: %1 del archivo de datos para la categor\u00eda %2 definida por el usuario. La l\u00ednea es: "%3"
MSG_ERROR_INVALID_USER_DEFINED_CATEGORY_DATA_FILE=IWAB0375E Archivo de datos no v\u00e1lido para la categor\u00eda %1 definida por el usuario.
MSG_ERROR_SAVING_CATEGORY_DATA=IWAB0474E Se ha producido un error al guardar datos para la categor\u00eda %1. Texto de excepci\u00f3n: %2

# UDDI Category Browser
TITLE_CATEGORY_BROWSER=Navegador de categor\u00edas
ALT_CATEGORIES=Categor\u00edas

# Details
ALT_REGISTRY_DETAILS=Detalles de registro
ALT_BUSINESS_DETAILS=Detalles de empresa
ALT_SERVICE_DETAILS=Detalles de servicio
ALT_SERVICE_INTERFACE_DETAILS=Detalles de interfaz de servicio
FORM_LABEL_DETAILS_EDITABLE=Los detalles de <strong>%1</strong> se muestran m\u00e1s abajo. Algunos elementos pueden a\u00f1adirse, eliminarse o cambiarse. Puede ser necesaria la autenticaci\u00f3n para los cambios. En la parte inferior de esta p\u00e1gina se indican otras acciones.

# Get
ALT_GET=Obtener

# Common Form Control Title
FORM_CONTROL_TITLE_NAME_TEXT_VALUE=Nombre de valor
FORM_CONTROL_TITLE_DESCRIPTION_TEXT_VALUE=Valor de descripci\u00f3n
FORM_CONTROL_TITLE_CATEGORY_KEY_NAME=Nombre de clave de categor\u00eda
FORM_CONTROL_TITLE_CATEGORY_KEY_VALUE=Valor de clave de categor\u00eda
FORM_CONTROL_TITLE_IDENTIFIER_KEY_NAME=Nombre de clave de identificador
FORM_CONTROL_TITLE_IDENTIFIER_KEY_VALUE=Valor de clave de identificador
FORM_CONTROL_TITLE_DISCOVERY_URL=URL de descubrimiento

# Find actions
ALT_FIND=Buscar
ALT_SUBQUERY=Subconsulta de b\u00fasqueda de %1
FORM_LABEL_QUERY_NAME=Nombre de esta consulta
DEFAULT_QUERY_NAME=resultados de la consulta
DEFAULT_SUBQUERY_NAME=%1 - subconsulta de %2
FORM_LABEL_SEARCH_FOR=Buscar
FORM_OPTION_BUSINESSES=Empresas
FORM_OPTION_SERVICES=Servicios
FORM_OPTION_SERVICE_INTERFACES=Interfaces de servicio
FORM_LABEL_SEARCH_TYPE=Tipo de b\u00fasqueda
FORM_RADIO_SIMPLE=Simple
FORM_RADIO_ADVANCED=Avanzada
FORM_RADIO_UUID=UUID
FORM_LABEL_FIND_BUSINESSES_SIMPLE_DESC=Entre el nombre parcial o completo de una empresa que desee buscar. Se puede utilizar el s\u00edmbolo '%' a modo de comod\u00edn para que haga las veces de cualquier car\u00e1cter. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
FORM_LABEL_FIND_ADVANCED_DESC=Entre valores para uno o varios de los par\u00e1metros que figuran a continuaci\u00f3n. Se puede utilizar el s\u00edmbolo '%' a modo de comod\u00edn para que haga las veces de cualquier car\u00e1cter en el campo Nombre de la tabla de nombres. Puede ser necesaria la autenticaci\u00f3n. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
FORM_LABEL_FIND_BUSINESS_UUID_DESC=Entre el UUID de la empresa que desea buscar. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
FORM_LABEL_NAMES=Nombres
FORM_LINK_ADD=A\u00f1adir
FORM_LINK_GET=Obtener
FORM_LINK_FIND=Buscar
FORM_LINK_REMOVE=Eliminar
FORM_LABEL_OWNED=Con propietario
FORM_LABEL_PUBLISH_URL=URL de publicaci\u00f3n
FORM_LABEL_USERID=ID de usuario:
FORM_LABEL_PASSWORD=Contrase\u00f1a:
FORM_LABEL_LANGUAGE=Idioma
FORM_LABEL_NAME=Nombre
FORM_LABEL_DESCRIPTION=Descripci\u00f3n
FORM_OPTION_LANGUAGE_EN=Ingl\u00e9s
FORM_OPTION_LANGUAGE_AA=Afar
FORM_OPTION_LANGUAGE_AB=Abkhaziano
FORM_OPTION_LANGUAGE_AF=Afrikaans
FORM_OPTION_LANGUAGE_AM=Am\u00e1rico
FORM_OPTION_LANGUAGE_AR=\u00c1rabe
FORM_OPTION_LANGUAGE_AS=Asam\u00e9s
FORM_OPTION_LANGUAGE_AY=Aymara
FORM_OPTION_LANGUAGE_AZ=Azer\u00ed
FORM_OPTION_LANGUAGE_BA=Bashkir
FORM_OPTION_LANGUAGE_BE=Bielorruso
FORM_OPTION_LANGUAGE_BG=B\u00falgaro
FORM_OPTION_LANGUAGE_BH=Bihari
FORM_OPTION_LANGUAGE_BI=Bislama
FORM_OPTION_LANGUAGE_BN=Bengal\u00ed
FORM_OPTION_LANGUAGE_BO=Tibetano
FORM_OPTION_LANGUAGE_BR=Bret\u00f3n
FORM_OPTION_LANGUAGE_CA=Catal\u00e1n
FORM_OPTION_LANGUAGE_CO=Corso
FORM_OPTION_LANGUAGE_CZ=Checo
FORM_OPTION_LANGUAGE_CY=Gal\u00e9s
FORM_OPTION_LANGUAGE_DA=Dan\u00e9s
FORM_OPTION_LANGUAGE_DE=Alem\u00e1n
FORM_OPTION_LANGUAGE_DZ=Bhutan\u00ed
FORM_OPTION_LANGUAGE_EL=Griego
FORM_OPTION_LANGUAGE_EO=Esperanto
FORM_OPTION_LANGUAGE_ES=Espa\u00f1ol
FORM_OPTION_LANGUAGE_ET=Estonio
FORM_OPTION_LANGUAGE_EU=Vasco
FORM_OPTION_LANGUAGE_FA=Farsi
FORM_OPTION_LANGUAGE_FI=Finland\u00e9s
FORM_OPTION_LANGUAGE_FJ=Fidji
FORM_OPTION_LANGUAGE_FO=Fero\u00e9s
FORM_OPTION_LANGUAGE_FR=Franc\u00e9s
FORM_OPTION_LANGUAGE_FY=Fris\u00f3n
FORM_OPTION_LANGUAGE_GA=Irland\u00e9s
FORM_OPTION_LANGUAGE_GD=Ga\u00e9lico
FORM_OPTION_LANGUAGE_GL=Gallego
FORM_OPTION_LANGUAGE_GN=Guaran\u00ed
FORM_OPTION_LANGUAGE_GU=Gujarati
FORM_OPTION_LANGUAGE_HA=Hausa
FORM_OPTION_LANGUAGE_HI=Hindi
FORM_OPTION_LANGUAGE_HR=Croata
FORM_OPTION_LANGUAGE_HU=H\u00fangaro
FORM_OPTION_LANGUAGE_HY=Armenio
FORM_OPTION_LANGUAGE_IA=Interlingua
FORM_OPTION_LANGUAGE_IE=Interlingue
FORM_OPTION_LANGUAGE_IK=Inupiak
FORM_OPTION_LANGUAGE_IN=Indonesio
FORM_OPTION_LANGUAGE_IS=Island\u00e9s
FORM_OPTION_LANGUAGE_IT=Italiano
FORM_OPTION_LANGUAGE_IW=Hebreo
FORM_OPTION_LANGUAGE_JA=Japon\u00e9s
FORM_OPTION_LANGUAGE_JI=Yiddish
FORM_OPTION_LANGUAGE_JW=Javan\u00e9s
FORM_OPTION_LANGUAGE_KA=Georgiano
FORM_OPTION_LANGUAGE_KK=Kazaj
FORM_OPTION_LANGUAGE_KL=Groenland\u00e9s
FORM_OPTION_LANGUAGE_KM=Camboyano
FORM_OPTION_LANGUAGE_KN=Kannada
FORM_OPTION_LANGUAGE_KO=Koreano
FORM_OPTION_LANGUAGE_KS=Cachemir
FORM_OPTION_LANGUAGE_KU=Kurdo
FORM_OPTION_LANGUAGE_KY=Kirghiz
FORM_OPTION_LANGUAGE_LA=Lat\u00edn
FORM_OPTION_LANGUAGE_LN=Lingala
FORM_OPTION_LANGUAGE_LO=Laosiano
FORM_OPTION_LANGUAGE_LT=Lituano
FORM_OPTION_LANGUAGE_LV=Let\u00f3n
FORM_OPTION_LANGUAGE_MG=Malgache
FORM_OPTION_LANGUAGE_MI=Maori
FORM_OPTION_LANGUAGE_MK=Macedonio
FORM_OPTION_LANGUAGE_ML=Malayalam
FORM_OPTION_LANGUAGE_MN=Mongol
FORM_OPTION_LANGUAGE_MO=Moldavo
FORM_OPTION_LANGUAGE_MR=Marathi
FORM_OPTION_LANGUAGE_MS=Malayo
FORM_OPTION_LANGUAGE_MT=Malt\u00e9s
FORM_OPTION_LANGUAGE_MY=Birmano
FORM_OPTION_LANGUAGE_NA=Nauri
FORM_OPTION_LANGUAGE_NE=Nepal\u00ed
FORM_OPTION_LANGUAGE_NL=Holand\u00e9s
FORM_OPTION_LANGUAGE_NO=Noruego
FORM_OPTION_LANGUAGE_OC=Occitano
FORM_OPTION_LANGUAGE_OM=(Afan) Oromo
FORM_OPTION_LANGUAGE_OR=Oriya
FORM_OPTION_LANGUAGE_PA=Panjab\u00ed
FORM_OPTION_LANGUAGE_PL=Polaco
FORM_OPTION_LANGUAGE_PS=Past\u00fan
FORM_OPTION_LANGUAGE_PT=Portugu\u00e9s
FORM_OPTION_LANGUAGE_QU=Quechua
FORM_OPTION_LANGUAGE_RM=Reto-romance
FORM_OPTION_LANGUAGE_RN=Kirundi
FORM_OPTION_LANGUAGE_RO=Rumano
FORM_OPTION_LANGUAGE_RU=Ruso
FORM_OPTION_LANGUAGE_RW=Kinyarwanda
FORM_OPTION_LANGUAGE_SA=S\u00e1nscrito
FORM_OPTION_LANGUAGE_SD=Sindhi
FORM_OPTION_LANGUAGE_SG=Sangro
FORM_OPTION_LANGUAGE_SH=Serbocroata
FORM_OPTION_LANGUAGE_SI=Cingal\u00e9s
FORM_OPTION_LANGUAGE_SK=Eslovaco
FORM_OPTION_LANGUAGE_SL=Esloveno
FORM_OPTION_LANGUAGE_SM=Samoano
FORM_OPTION_LANGUAGE_SN=Shona
FORM_OPTION_LANGUAGE_SO=Somal\u00ed
FORM_OPTION_LANGUAGE_SQ=Alban\u00e9s
FORM_OPTION_LANGUAGE_SR=Serbio
FORM_OPTION_LANGUAGE_SS=Siswati
FORM_OPTION_LANGUAGE_ST=Sesotho
FORM_OPTION_LANGUAGE_SU=Sudan\u00e9s
FORM_OPTION_LANGUAGE_SV=Sueco
FORM_OPTION_LANGUAGE_SW=Swahili
FORM_OPTION_LANGUAGE_TA=Tamil
FORM_OPTION_LANGUAGE_TE=Tegulu
FORM_OPTION_LANGUAGE_TG=Tayico
FORM_OPTION_LANGUAGE_TH=Tailand\u00e9s
FORM_OPTION_LANGUAGE_TI=Tigrinya
FORM_OPTION_LANGUAGE_TK=Turcomano
FORM_OPTION_LANGUAGE_TL=Tagalo
FORM_OPTION_LANGUAGE_TN=Setswana
FORM_OPTION_LANGUAGE_TO=Tongano
FORM_OPTION_LANGUAGE_TR=Turco
FORM_OPTION_LANGUAGE_TS=Tsonga
FORM_OPTION_LANGUAGE_TT=Tatar
FORM_OPTION_LANGUAGE_TW=Twi
FORM_OPTION_LANGUAGE_UK=Ucraniano
FORM_OPTION_LANGUAGE_UR=Urdu
FORM_OPTION_LANGUAGE_UZ=Uzbeco
FORM_OPTION_LANGUAGE_VI=Vietnamita
FORM_OPTION_LANGUAGE_VO=Volapuk
FORM_OPTION_LANGUAGE_WO=Uolof
FORM_OPTION_LANGUAGE_XH=Xhosa
FORM_OPTION_LANGUAGE_YO=Yoruba
FORM_OPTION_LANGUAGE_ZH=Chino
FORM_OPTION_LANGUAGE_ZU=Zul\u00fa
FORM_LABEL_EXACT_NAME_MATCH=Coincidencia exacta
FORM_LABEL_CASE_SENSITIVE_MATCH=Sensible a las may\u00fasculas/min\u00fasculas
FORM_LABEL_SOUNDEX=Suena parecido
FORM_LABEL_IDENTIFIERS=Identificadores
FORM_LABEL_IDENTIFIER_TYPE=Tipo

# Do not translate the two items below.
FORM_OPTION_IDENTIFIER_DUNS=D-U-N-S
FORM_OPTION_IDENTIFIER_THOMAS_REGISTRY=Thomas Registry

FORM_LABEL_KEY_NAME=Nombre de clave
FORM_LABEL_KEY_VALUE=Valor de clave
FORM_LABEL_CATEGORIES=Categor\u00edas
FORM_LABEL_CATEGORY_TYPE=Tipo
FORM_OPTION_CATEGORY_NAICS=NAICS
FORM_OPTION_CATEGORY_UNSPSC_73=UNSPSC 7.3
FORM_OPTION_CATEGORY_GEO=GEO
FORM_OPTION_CATEGORY_DWCOMMUNITY=dW Community
FORM_LABEL_BUSINESS_CATEGORIES=Comparar con:
FORM_OPTION_BUSINESSES_ONLY=Solo empresas
FORM_OPTION_SERVICES_ONLY=Solo servicios
FORM_OPTION_BOTH=Empresas y servicios
FORM_LABEL_DISCOVERYURLS=URL de descubrimiento
FORM_LABEL_DISCOVERYURL=URL de descubrimiento
FORM_LABEL_FINDQUALIFIERS=Buscar calificadores
FORM_LABEL_COMBINE_KEYS=Combinar claves:
FORM_OPTION_ANDALLKEYS=And
FORM_OPTION_ORALLKEYS=Or
FORM_OPTION_ORLIKEKEYS=Or Like
FORM_LABEL_SORT_BY_NAME=Ordenar por nombre:
FORM_RADIO_SORT_ASC=Ascendente
FORM_RADIO_SORT_DESC=Descendente
FORM_LABEL_SORT_BY_DATE=Ordenar por fecha:
FORM_LABEL_MAX_SEARCH_SET=Tama\u00f1o m\u00e1ximo del conjunto de b\u00fasqueda:
FORM_LABEL_MAX_RESULTS=N\u00famero m\u00e1ximo de resultados:
FORM_LABEL_FIND_SERVICES_SIMPLE_DESC=Entre el nombre parcial o completo de un servicio que desee buscar. Se puede utilizar el s\u00edmbolo '%' a modo de comod\u00edn para que haga las veces de cualquier car\u00e1cter. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
FORM_LABEL_FIND_SERVICE_UUID_DESC=Entre el UUID del servicio que desea buscar. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
FORM_LABEL_FIND_SERVICE_INTERFACES_SIMPLE_DESC=Entre el nombre parcial o completo de una interfaz de servicio que desee buscar. Se puede utilizar el s\u00edmbolo '%' a modo de comod\u00edn para que haga las veces de cualquier car\u00e1cter. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
FORM_LABEL_FIND_SERVICE_INTERFACE_UUID_DESC=Entre el UUID de la interfaz servicio que desea buscar. Pulse <strong>Ir</strong> para ejecutar la b\u00fasqueda.
FORM_LABEL_SERVICE_INTERFACES=Interfaces de servicio
FORM_LABEL_UUID_KEY=Clave de UUID:
FORM_LABEL_USE_SERVICE=Utilizar servicio
FORM_LABEL_SERVICE=Servicio
FORM_LABEL_BUSINESS=Empresa
FORM_LABEL_PUBLISH_ASSERTIONS=Aserciones de publicador
FORM_LABEL_DIRECTION=Direcci\u00f3n
FORM_LABEL_FROM_KEY=Desde clave
FORM_LABEL_TO_KEY=A clave
FORM_LABEL_STATUS=Estado
FORM_LABEL_ASSERTION_TYPE=Tipo de aserci\u00f3n
FORM_OPTION_ASSERTION_TYPE_PARENT_CHILD=Padre-Hijo
FORM_OPTION_ASSERTION_TYPE_PEER_TO_PEER=Similar-Similar
FORM_OPTION_ASSERTION_TYPE_IDENTITY=Identidad
FORM_LABEL_ASSERTION_DIRETION_DESC=La direcci\u00f3n <strong>Desde</strong> crear\u00e1 una aserci\u00f3n de publicador desde esta empresa a las empresas anteriores.  La direcci\u00f3n <strong>A</strong> crear\u00e1 una aserci\u00f3n desde las empresas anteriores a esta empresa.
FORM_OPTION_ASSERTION_DIRECTION_FROM=--->
FORM_OPTION_ASSERTION_DIRECTION_TO=<---
FORM_LABEL_THIS_BUSINESS=Esta
MSG_ERROR_INVALID_QUERY_NAME=IWAB0140E Entre un nombre v\u00e1lido para la consulta.
MSG_ERROR_INVALID_NAMES=IWAB0141E Entre una serie de nombres v\u00e1lidos.
MSG_ERROR_INVALID_PUBLISH_URL=IWAB0142E Entre un URL de publicaci\u00f3n v\u00e1lido.
MSG_ERROR_INVALID_USERID=IWAB0143E Entre un ID de usuario v\u00e1lido.
MSG_ERROR_INVALID_MAX_SEARCH_SET=IWAB0145E Entre un tama\u00f1o v\u00e1lido para el conjunto de b\u00fasqueda m\u00e1ximo.
MSG_ERROR_INVALID_MAX_RESULTS=IWAB0146E Entre un tama\u00f1o v\u00e1lido para el n\u00famero m\u00e1ximo de resultados.
MSG_INFO_BUSINESSES_FOUND=IWAB0147I N\u00famero de empresas encontradas: %1
MSG_ERROR_NO_BUSINESSES_FOUND=IWAB0148E No se ha encontrado ninguna empresa.
MSG_INFO_SERVICES_FOUND=IWAB0149I N\u00famero de servicios encontrados: %1
MSG_ERROR_NO_SERVICES_FOUND=IWAB0150E No se ha encontrado ning\u00fan servicio.
MSG_ERROR_SINGLE_ITEM=IWAB0151E Seleccione tan solo un elemento.
MSG_QUESTION_ITEM_REPLACEMENT=La selecci\u00f3n sustituir\u00e1 a un elemento que ya est\u00e1 en el destino. \u00bfDesea continuar?
MSG_INFO_SERVICE_INTERFACES_FOUND=IWAB0152I N\u00famero de interfaces de servicio encontradas: %1
MSG_ERROR_NO_SERVICE_INTERFACES_FOUND=IWAB0153E No se ha encontrado ninguna interfaz de servicio.
MSG_ERROR_NOTHING_SELECTED=IWAB0154E Seleccione como m\u00ednimo un elemento.
MSG_ERROR_INVALID_UUID_KEY=IWAB0155E Entre una clave UUID v\u00e1lida.
MSG_ERROR_QUERY_NAME_CONFLICT=IWAB0156E El nombre de consulta de la subconsulta no puede ser igual que el originador.
MSG_ERROR_NO_ITEMS_TO_GET=IWAB0157E Todav\u00eda no se ha publicado ni descubierto ning\u00fan elemento del tipo especificado.

# Results
ALT_QUERY_RESULTS=Resultados de la consulta
FORM_LABEL_SUBQUERY=Los resultados pueden utilizarse como entradas de otra operaci\u00f3n. Para ver la operaci\u00f3n pulse el enlace <strong>destino</strong> situado en la parte superior. Los resultados seleccionados pueden utilizarse en la operaci\u00f3n pulsando el bot\u00f3n <strong>Transferir</strong>.
FORM_LABEL_QUERY=Seleccione un resultado para ver m\u00e1s detalles o seleccione un conjunto de resultados y pulse un bot\u00f3n para realizar una operaci\u00f3n.
FORM_LINK_TARGET=destino
FORM_BUTTON_TRANSFER=Transferir
FORM_BUTTON_REFRESH=Renovar
FORM_BUTTON_ADD_TO_FAVORITES=A\u00f1adir a favoritos
FORM_BUTTON_UNPUBLISH=Despublicar
FORM_BUTTON_CLEAR=Borrar

# Publish actions
ALT_PUBLISH=Publicar
FORM_LABEL_PUBLISH=Publicar:
FORM_OPTION_BUSINESS=Empresa
FORM_OPTION_SERVICE=Servicio
FORM_OPTION_SERVICE_INTERFACE=Interfaz de servicio
FORM_LABEL_PUBLISH_BUSINESS_SIMPLE_DESC=Especifique un nombre y, opcionalmente, una descripci\u00f3n para la empresa que debe publicarse. Puede ser necesaria la autenticaci\u00f3n.
FORM_LABEL_PUBLISH_BUSINESS_ADVANCED_DESC=Proporcione un nombre para la empresa que debe publicarse. Tambi\u00e9n pueden especificarse otros par\u00e1metros. Puede ser necesaria la autenticaci\u00f3n.
FORM_LABEL_PUBLISH_SERVICE_SIMPLE_DESC=Obtenga o localice una empresa y despu\u00e9s proporcione el URL WSDL, el nombre y, opcionalmente, una descripci\u00f3n para el servicio que debe publicarse. Puede ser necesaria la autenticaci\u00f3n.
FORM_LABEL_PUBLISH_SERVICE_ADVANCED_DESC=Obtenga o localice una empresa y despu\u00e9s proporcione el URL WSDL y un nombre para el servicio que debe publicarse. Tambi\u00e9n pueden especificarse otros par\u00e1metros. Puede ser necesaria la autenticaci\u00f3n.
FORM_LABEL_BUSINESS_PUBLISH_SERVICE_SIMPLE_DESC=Proporcione el URL WSDL, el nombre y, opcionalmente, una descripci\u00f3n para el servicio que debe publicarse. Puede ser necesaria la autenticaci\u00f3n.
FORM_LABEL_BUSINESS_PUBLISH_SERVICE_ADVANCED_DESC=Proporcione el URL WSDL y un nombre para el servicio que debe publicarse. Tambi\u00e9n pueden especificarse otros par\u00e1metros. Puede ser necesaria la autenticaci\u00f3n.
FORM_LABEL_PUBLISH_SERVICE_INTERFACE_SIMPLE_DESC=Entre un URL WSDL, el nombre y, opcionalmente, una descripci\u00f3n para la interfaz de servicio que debe publicarse. Puede ser necesaria la autenticaci\u00f3n.
FORM_LABEL_PUBLISH_SERVICE_INTERFACE_ADVANCED_DESC=Proporcione el URL WSDL y el nombre para la interfaz de servicio que debe publicarse. Tambi\u00e9n pueden especificarse otros par\u00e1metros. Puede ser necesaria la autenticaci\u00f3n.
FORM_LABEL_PUBLISH_FORM=Formato de publicaci\u00f3n
FORM_LABEL_DESCRIPTION=Descripci\u00f3n
FORM_LABEL_DESCRIPTIONS=Descripciones
MSG_INFO_BUSINESS_PUBLISHED=IWAB0158I La empresa %1 se ha publicado satisfactoriamente.
MSG_INFO_SERVICE_PUBLISHED=IWAB0159I El servicio %1 se ha publicado satisfactoriamente.
MSG_INFO_SERVICE_INTERFACE_PUBLISHED=IWAB0160I La interfaz de servicio %1 se ha publicado satisfactoriamente.
MSG_ERROR_INVALID_NAME=IWAB0161E Entre un nombre v\u00e1lido.
MSG_ERROR_ROW_BLANK_LANGUAGE=IWAB0250E Seleccione un idioma que no est\u00e9 en blanco para %1 de la fila %2. Solo la primera fila puede tener un idioma en blanco.
MSG_ERROR_ROW_DUPLICATE_LANGUAGE=IWAB0251E Cambie el idioma para %1 en la fila %2. El actual ya se est\u00e1 utilizando.
MSG_ERROR_ROW_INVALID_TEXT=IWAB0252E Entre un %1 en la fila %2
MSG_ERROR_INVALID_WSDL_URL=IWAB0253E Entre un URL WSDL v\u00e1lido.
MSG_ERROR_NO_NAMES=IWAB0254E A\u00f1ada como m\u00ednimo un nombre.
MSG_ERROR_INVALID_SERVICE=IWAB0255E Proporcione un servicio v\u00e1lido.
MSG_ERROR_INVALID_BUSINESS=IWAB0256E Proporcione una empresa v\u00e1lida.

# Business Publish Service action
ALT_PUBLISH_SERVICE=Publicar servicio

# WSDL Browser
TITLE_WSDL_BROWSER=Navegador WSDL - %1
FORM_LABEL_WSDL_SOURCE=Seleccione un origen WSDL:
FORM_LABEL_WSDL_SOURCE_WEBPROJECTS=Proyectos Web
FORM_LABEL_WSDL_SOURCE_FAVORITES=Favoritos
FORM_LABEL_WEB_PROJECT=Proyecto Web
FORM_LABEL_WSDL_URL=URL WSDL
ALT_WSDL_BROWSER=Navegador WSDL

# Details
FORM_LINK_EDIT=Editar
FORM_LINK_CANCEL=Cancelar
FORM_LABEL_BUSINESS_KEY=Clave de empresa
FORM_LABEL_SERVICE_KEY=Clave de servicio
FORM_LABEL_SERVICE_INTERFACE_KEY=Clave de TModel
FORM_LABEL_USER_DEFINED_CATEGORIES=Categor\u00edas definidas por usuario
FORM_LABEL_CHECKED=Marcado
FORM_LABEL_FILE=Archivo
MSG_QUESTION_PUBLISH_ITEM=No se ha podido encontrar el elemento en el registro. \u00bfDesea publicarlo?
MSG_QUESTION_SERVICE_PUBLISH_BUSINESS=No se han podido encontrar el servicio y su empresa en el registro. \u00bfDesea publicarlos?
MSG_INFO_BUSINESS_UPDATED=IWAB0257I La empresa %1 se ha actualizado satisfactoriamente.
MSG_INFO_SERVICE_UPDATED=IWAB0258I El servicio %1 se ha actualizado satisfactoriamente.
MSG_INFO_SERVICE_INTERFACE_UPDATED=IWAB0259I La interfaz de servicio %1 se ha actualizado satisfactoriamente.
MSG_INFO_REGISTRY_UPDATED=IWAB0323I El registro %1 se ha actualizado satisfactoriamente.

# UnpublishAction
ALT_UNPUBLISH_BUSINESS=Despublicar empresa
ALT_UNPUBLISH_SERVICE=Despublicar servicio
ALT_UNPUBLISH_SERVICE_INTERFACE=Despublicar interfaz de servicio
FORM_LABEL_UNPUBLISH_DESC=Pulse <strong>Ir</strong> para despublicar este objeto. Puede ser necesaria la autenticaci\u00f3n.
MSG_INFO_BUSINESS_UNPUBLISHED=IWAB0260I La empresa %1 se ha despublicado satisfactoriamente.
MSG_INFO_SERVICE_UNPUBLISHED=IWAB0261I El servicio %1 se ha despublicado satisfactoriamente.
MSG_INFO_SERVICE_INTERFACE_UNPUBLISHED=IWAB0262I La interfaz de servicio %1 se ha despublicado satisfactoriamente.

# Add to WSDL Perspective
ALT_ADD_TO_WSDL_PERSPECTIVE=A\u00f1adir a p\u00e1gina WSDL
MSG_INFO_WSDL_ADDED_TO_WSDL_PERSPECTIVE=IWAB0376I %1 se ha a\u00f1adido satisfactoriamente a la p\u00e1gina WSDL.
MSG_ERROR_WSDL_NOT_ADDED_TO_WSDL_PERSPECTIVE=IWAB0377E %1 no se ha podido a\u00f1adir a la p\u00e1gina WSDL.

# Add to Favorites
ALT_ADD_TO_FAVORITES=A\u00f1adir a favoritos
MSG_INFO_FAVORITE_ADDED=IWAB0263I %1 se ha a\u00f1adido satisfactoriamente a los favoritos.
MSG_ERROR_FAVORITE_NOT_ADDED=IWAB0264E %1 no se ha podido a\u00f1adir a los favoritos.
MSG_ERROR_FAVORITE_ALREADY_EXISTS=IWAB0324E %1 ya existe en los favoritos.
MSG_QUESTION_OVERWRITE_FAVORITES=El favorito ya existe.  \u00bfDesea sobrescribirlo?

# Refresh
MSG_INFO_NODE_REFRESHED=IWAB0265I %1 se ha renovado.
MSG_QUESTION_REMOVE_NODE=%1 no se ha podido encontrar en el registro. \u00bfDesea borrarlo?

# ManageReferencedServices
ALT_MANAGE_REFERENCED_SERVICES=Gestionar servicios referidos
FORM_LABEL_MANAGE_REFERENCED_SERVICES_DESC=A\u00f1ada servicios descubiertos o publicados a la lista de servicios a los que se hace referencia pulsando el bot\u00f3n <strong>A\u00f1adir servicios</strong>. Elimine las referencias seleccionadas pulsando el bot\u00f3n <strong>Eliminar referencias</strong>. Puede ser necesaria la autenticaci\u00f3n para los cambios.
FORM_LABEL_REFERENCED_SERVICES=Servicios a los que se hace referencia
FORM_BUTTON_ADD_SERVICES=A\u00f1adir servicios
FORM_BUTTON_REMOVE_REFERENCES=Eliminar referencias
MSG_ERROR_NO_REFERENCE_SELECTED=IWAB0266E Antes de continuar, seleccione como m\u00ednimo un servicio al que se haga referencia.
MSG_ERROR_NO_SERVICES=IWAB0267E Antes de continuar, obtenga o localice como m\u00ednimo un servicio
MSG_ERROR_SERVICE_NOT_REFERENCED=IWAB0268E No se ha podido hacer referencia al servicio %1.
MSG_ERROR_REFERENCE_NOT_REMOVED=IWAB0269E No se ha podido eliminar la referencia al servicio %1.
MSG_INFO_SERVICE_REFERENCED=IWAB0270I Se ha realizado satisfactoriamente una referencia al servicio %1.
MSG_INFO_SERVICE_REFERENCE_REMOVED=IWAB0271I La referencia al servicio %1 se ha eliminado satisfactoriamente.

# ManagePublisherAssertions
ALT_MANAGE_PUBLISHER_ASSERTIONS=Gestionar aserciones de publicador
FORM_LABEL_MANAGE_PUBLISHER_ASSERTIONS_DESC=A\u00f1ada empresas descubiertas o publicadas a la lista de aserciones de publicador pulsando <strong>A\u00f1adir aserciones</strong>. Elimine las aserciones seleccionadas pulsando <strong>Eliminar aserciones</strong>. Complete las aserciones seleccionadas pulsando <strong>Completar aserciones</strong>. Pulse <strong>Renovar aserciones</strong> para renovar la lista de aserciones.
FORM_LABEL_INCOMPLETE_ASSERTIONS_VISIBILITY_DESC=Tenga en cuenta que las aserciones de publicador incompletas solo son visibles para el propietario de la empresa.
FORM_LABEL_BUSINESSES=Empresas
FORM_BUTTON_SHOW_ALL_PUBLISHER_ASSERTIONS=Renovar aserciones
FORM_BUTTON_COMPLETE_PUBLISHER_ASSERTIONS=Completar aserciones
FORM_BUTTON_ADD_PUBLISHER_ASSERTIONS=A\u00f1adir aserciones
FORM_BUTTON_REMOVE_PUBLISHER_ASSERTIONS=Eliminar aserciones
MSG_INFO_PUBLISHER_ASSERTIONS_REFRESHED=IWAB0325I Las aserciones del publicador se han renovado.
MSG_ERROR_NO_INCOMPLETE_ASSERTION_SELECTED=IWAB0326E Seleccione como m\u00ednimo una aserci\u00f3n de publicador incompleta.
MSG_ERROR_NOT_OWNED_BUSINESS=IWAB0327E Esta operaci\u00f3n no puede realizarse en una empresa propiedad de un tercero.

# GetBusinesses
ALT_GET_BUSINESS=Obtener empresa
ALT_GET_BUSINESSES=Obtener empresas
NODE_NAME_SERVICE_BUSINESS=Empresa para servicio %1
NODE_NAME_SI_BUSINESSES=Empresas para interfaz de servicio %1
MSG_QUESTION_REMOVE_SERVICE_NODE=No se ha podido encontrar el servicio en el registro. \u00bfDesea eliminar este nodo?

# GetServiceInterfaces
ALT_GET_SERVICE_INTERFACES=Obtener interfaces de servicio
NODE_NAME_SERVICE_SERVICE_INTERFACES=Interfaces de servicio para el servicio %1
MSG_QUESTION_GET_SI_REMOVE_SERVICE_NODE=No se ha podido encontrar el servicio en el registro. \u00bfDesea eliminar este nodo?

# GetServices
ALT_GET_SERVICES=Obtener servicios
NODE_NAME_SI_SERVICES=Servicios para interfaz de servicio %1
NODE_NAME_BUSINESS_SERVICES=Servicios para la empresa %1
MSG_QUESTION_REMOVE_SI_NODE=No se ha podido encontrar la interfaz de servicio en el registro. \u00bfDesea eliminar este nodo?
MSG_QUESTION_REMOVE_BUSINESS_NODE=No se ha podido encontrar la empresa en el registro. \u00bfDesea eliminar este nodo?

# RefreshUDDINodesAction
MSG_ERROR_NODE_DATA_VALIDATION_FAILED=IWAB0272E %1 no se ha encontrado en el registro.

# Summaries
ALT_SUMMARY_QUERIES=Resumen de consultas
ALT_SUMMARY_BUSINESSES=Resumen de empresas
ALT_SUMMARY_SERVICES=Resumen de servicios
ALT_SUMMARY_SERVICE_INTERFACES=Resumen de interfaces de servicio
FORM_LABEL_QUERIES=Consultas

# SelectSubQueryItemAction
MSG_QUESTION_ITEM_VALIDATION_FAILED=%1 no se ha podido encontrar en el registro. \u00bfDesea eliminarlo?

# Frame titles
FRAME_TITLE_NAVIGATOR_CONTAINER=Contenedor del navegador
FRAME_TITLE_NAVIGATOR_TOOLBAR=Barra de herramientas del navegador
FRAME_TITLE_NAVIGATOR_CONTENT=Contenido del navegador
FRAME_TITLE_ACTIONS_CONTAINER=Contenedor de acciones
FRAME_TITLE_PROPERTIES_CONTAINER=Contenedor de propiedades
FRAME_TITLE_PROPERTIES_TOOLBAR=Barra de herramientas de propiedades
FRAME_TITLE_PROPERTIES_CONTENT=Contenido de propiedades
FRAME_TITLE_STATUS_CONTAINER=Contenedor de estado
FRAME_TITLE_STATUS_TOOLBAR=Barra de herramientas de estado
FRAME_TITLE_STATUS_CONTENT=Contenido de estado
FRAME_TITLE_UDDI_PERSPECTIVE_CONTENT=Contenido de p\u00e1gina UDDI
FRAME_TITLE_CATEGORIES_WORKAREA=\u00c1rea de trabajo de categor\u00edas
FRAME_TITLE_CATEGORIES_TOOLBAR=Barra de herramientas de categor\u00edas
FRAME_TITLE_CATEGORIES_CONTENT=Contenido de categor\u00edas
FRAME_TITLE_WSDL_TOOLBAR=Barra de herramientas del navegador WSDL
FRAME_TITLE_WSDL_CONTENT=Contenido del navegador WSDL

# Form titles
FORM_TITLE_BUSINESS_DETAILS=Formulario Detalles de empresa
FORM_TITLE_BUSINESS_PUBLISH_SERVICE=Formulario Servicio de publicaci\u00f3n de empresa
FORM_TITLE_GET_FORM=Formulario Seleccionar de entre los objetos descubiertos y publicados
FORM_TITLE_ITEMS_SUMMARY=Formulario Resumen de elementos
FORM_TITLE_MANAGE_PUBLISHER_ASSERTIONS=Formulario Gestionar aserciones de publicador
FORM_TITLE_MANAGE_REFERENCED_SERVICES=Formulario Gestionar servicios referidos
FORM_TITLE_OPEN_REGISTRY=Formulario Abrir registro
FORM_TITLE_REGISTRY_DETAILS=Formulario Detalles de registro
FORM_TITLE_REGISTRY_PUBLISH=Formulario Publicar registro
FORM_TITLE_REGISTRY_FIND=Formulario Buscar registro
FORM_TITLE_RESULTS=Formulario Resultados
FORM_TITLE_SERVICE_DETAILS=Formulario Detalles de servicio
FORM_TITLE_SERVICE_INTERFACE_DETAILS=Formulario Detalles de interfaz de servicio
FORM_TITLE_UNPUBLISH=Formulario Despublicar
