###############################################################################
# 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
###############################################################################
# To avoid name collisions, each extension point should preface their property names with an identifier.
#
#     *************************************************************************
#     * Code oriented instructions:
#     *
#     * In the string, you may see the following special sequences:
#     * a) {n}  where n is a number. These are replaceable parameters.
#     * b) ''  In .properties files, in order to see one apostrophe (') in the final
#     *    string, sometimes two apostrophes must be entered in the string. In the translated
#     *    string, if there is at least one {n} in the string, then to show one apostrophe
#     *    to the user, put two apostrophes in the string. If there are no {n} in the string,
#     *    then put one apostrophe.
#     *    For example, say that you want the user to read "George's file". 
#     *        GEORGE=George's file was on the desk.
#     *        GEORGE2=George''s file and {0} were on the desk.
#     *    GEORGE uses one apostrophe because there are no {n} and GEORGE2
#     *    uses two apostrophes because there is a {n}.
#     * c) '' text '' where text can be any word(s). The text between the double
#     *    apostrophes should not be translated. 
#     * d) <text> where text can be any word(s). The text between the angle
#     *    brackets should NOT be translated.
#     * e) "text" where text can be any word(s). The text between the quotation 
#     *    marks should NOT be translated.
#     *    
#     *************************************************************************
#     * Other instructions
#     * a) Do not translate any text that is on a line which begins with a comment 
#     *    symbol (#).
#     * b) Do not translate these words: 
#     *        schema, EJB, RDB, JAR, RMI, BMP, CMP, OOSQL
#     * c) Please return the .properties files using the same directory structure.
#     *    This is necessary because two of the files have the same name.
#     *
#     *************************************************************************
# Any other comments to the translators are on lines which start like this:  # 2TC:
#
# Version 1.14
#
#
# ID:
#    VBF - Validation Builder Framework
#       VBF_EXC=Exception or error text
#       VBF_STATUS=Status message
#       VBF_TASK=Task list message
#

# 
# Begin Validation Builder Framework Strings
#
# IDs:
#    VBF_EXC=Exception or error text
#    VBF_STATUS=Status message
#    VBF_TASK=Task list message
#
VBF_EXC_CANNOT_ADD_MARKER=IWAE0001E O marcador n\u00e3o pode ser inclu\u00eddo no recurso {0} na lista de tarefas.
VBF_EXC_CANNOT_REMOVE_MARKER=IWAE0002E O marcador n\u00e3o pode ser removido do recurso {0} na lista de tarefas.

VBF_EXC_HELPER_MISSING=IWAE0003E N\u00e3o \u00e9 poss\u00edvel carregar {0} porque ele n\u00e3o especificou um <auxiliar>. Cada validador deve identificar a classe de helpers que carrega o modelo MOF.
VBF_EXC_HELPER_CANNOTLOAD=IWAE0004E N\u00e3o \u00e9 poss\u00edvel carregar {0} porque seu <auxiliar>, {1}, n\u00e3o p\u00f4de ser carregado. Certifique-se de que o nome do arquivo que faz distin\u00e7\u00e3o entre mai\u00fasculas e min\u00fasculas esteja escrito corretamente.

VBF_EXC_INTERNAL=IWAE0005E Ocorreu um erro interno durante a valida\u00e7\u00e3o. A valida\u00e7\u00e3o estava sendo executada no projeto {0} com o validador {1}. A mensagem lan\u00e7ada foi {2}.

# 2TC: In the following string, "type" is a noun
VBF_EXC_INVALID_TYPE_FILTER=IWAE0006E Filtro de tipo inv\u00e1lido; {0} deve ser uma inst\u00e2ncia de {1}.
VBF_EXC_INVALID_RESOURCE=IWAE0007E N\u00e3o \u00e9 poss\u00edvel incluir mensagem "{0}" com objeto de destino "{1}" porque nenhum arquivo, pasta ou projeto pode ser localizado ao qual a mensagem pode ser associada.

VBF_EXC_MISSING_VALIDATOR_EP=IWAE0008E A estrutura do validador n\u00e3o p\u00f4de ser iniciada. N\u00e3o foi poss\u00edvel encontrar o ponto de extens\u00e3o denominado \"{0}\". Salve todos os arquivos de log e entre em contato com o representante IBM.
VBF_EXC_MISSING_PROJECTNATURE_ID=IWAE0009E Um projectNature deve ter um ID associado. A valida\u00e7\u00e3o ignora esta tag e prossegue.

VBF_EXC_RUNTIME=IWAE0010E Ocorreu uma exce\u00e7\u00e3o de tempo de execu\u00e7\u00e3o {0} durante a valida\u00e7\u00e3o. O validador que estava sendo executado era {1} e a mensagem lan\u00e7ada foi {2}.

VBF_EXC_SYNTAX_NULL_NAME=IWAE0011E O recurso {0} n\u00e3o pode ser inclu\u00eddo na lista de arquivos porque o IHelper.getPortableName() retorna nulo. Este recurso n\u00e3o ser\u00e1 validado pelo validador nomeado {1}.
VBF_EXC_SYNTAX_NO_HELPER=IWAE0012E Nenhum elemento <auxiliar> est\u00e1 especificado no arquivo plugin.xml para o validador {0}. Como o helper n\u00e3o pode ser criado, o validador n\u00e3o ser\u00e1 carregado.
VBF_EXC_SYNTAX_NO_HELPER_CLASS=IWAE0013E Nenhum atributo de "classe" no elemento <helper> est\u00e1 especificado no arquivo plugin.xml para o validador {0}. O helper n\u00e3o pode ser criado sem o nome da classe que o implementa. Como o helper n\u00e3o pode ser criado, o validador n\u00e3o ser\u00e1 carregado.
VBF_EXC_SYNTAX_NO_HELPER_THROWABLE=IWAE0014E O helper {0} n\u00e3o pode ser criado porque um Throwable foi capturado.
VBF_EXC_SYNTAX_NO_VAL_RUN=IWAE0015E N\u00e3o \u00e9 poss\u00edvel criar o validador porque nenhum elemento <run> est\u00e1 especificado no arquivo plugin.xml para o validador denominado {0}. N\u00e3o \u00e9 poss\u00edvel criar um validador a menos que um elemento <run> existente especifique o atributo "class". O valor do atributo <class> deve ser o nome da classe que implementa a interface IWorkbenchHelper.
VBF_EXC_SYNTAX_NO_VAL_CLASS=IWAE0016E N\u00e3o \u00e9 poss\u00edvel criar o validador porque nenhum atributo "classe" est\u00e1 especificado no elemento <run> do arquivo plugin.xml para o validador denominado {0}. N\u00e3o \u00e9 poss\u00edvel criar um validador a menos que um elemento <run> existente especifique o atributo "class". O valor do atributo <class> deve ser o nome da classe que implementa a interface IWorkbenchHelper.
VBF_EXC_SYNTAX_NO_VAL_THROWABLE=IWAE0017E N\u00e3o \u00e9 poss\u00edvel criar o validador {0} porque um Throwable foi capturado.
VBF_EXC_SYNTAX_NO_VAL_NULL=IWAE0018E N\u00e3o foi poss\u00edvel ser criada a classe de validador {0}. IConfigurationElement.createExecutableExtension(String) foi retornado nulo.

VBF_EXC_DISABLEV=IWAE0019E N\u00e3o \u00e9 poss\u00edvel instanciar o validador {0}. Desativando o validador; leia o log para obter detalhes.
VBF_EXC_DISABLEH=IWAE0020E N\u00e3o \u00e9 poss\u00edvel instanciar o helper {0}. Desativando o validador {1}; leia o log para obter detalhes.
VBF_EXC_ORPHAN_IVALIDATOR=IWAE0021E N\u00e3o \u00e9 poss\u00edvel localizar metadados para o validador {0}.

VBF_EXC_VALIDATORNAME_IS_NULL=IWAE0022E O plug-in com ID {0} foi desativado porque seu m\u00e9todo getName() retorna nulo. O m\u00e9todo deve retornar um valor.

VBF_EXC_NULLCREATE=IWAE0023E N\u00e3o \u00e9 poss\u00edvel criar uma configura\u00e7\u00e3o de valida\u00e7\u00e3o sobre um recurso nulo.
VBF_EXC_NULLSAVE=IWAE0024E N\u00e3o \u00e9 poss\u00edvel salvar uma configura\u00e7\u00e3o de valida\u00e7\u00e3o sobre um recurso nulo.
VBF_EXC_SAVE=IWAE0025E N\u00e3o \u00e9 poss\u00edvel salvar a configura\u00e7\u00e3o de valida\u00e7\u00e3o sobre o recurso {0}.
VBF_EXC_NULLRETRIEVE=IWAE0026E N\u00e3o \u00e9 poss\u00edvel recuperar a configura\u00e7\u00e3o de valida\u00e7\u00e3o porque o recurso \u00e9 nulo.
VBF_EXC_RETRIEVE=IWAE0027E N\u00e3o foi poss\u00edvel recuperar a configura\u00e7\u00e3o de valida\u00e7\u00e3o para o recurso {0}.

VBF_EXC_BADVMD=IWAE0028E ValidatorMetaData[] n\u00e3o deve ser nulo ou vazio.
VBF_EXC_OPENPRJ=IWAE0029E O projeto {0} deve ser aberto.
VBF_EXC_EXISTPRJ=IWAE0030E O projeto {0} deve existir.
VBF_EXC_BADPRJ=IWAE0031E O projeto {0} deve ser o projeto que contenha os recursos no IResource[].
VBF_EXC_MULTIPRJ=IWAE0032E Todas as inst\u00e2ncias de IResource no IResource[] devem fazer parte da mesma inst\u00e2ncia de IProject. Os recursos vem dos seguintes projetos: {0}.
VBF_EXC_BADVAL=IWAE0033E O validador {0} deve ser configurado no {1};

VBF_STATUS_INITIALIZING=Inicializando {0}.

VBF_STATUS_VALIDATOR_CLEANUP=Executando limpeza no {0} antes da finaliza\u00e7\u00e3o.

VBF_STATUS_PROGRESSMONITOR_TITLE=Validando
VBF_STATUS_NULL_DELTA=O estado da \u00faltima gera\u00e7\u00e3o de {0} n\u00e3o p\u00f4de ser recuperado. Executando uma valida\u00e7\u00e3o completa.

VBF_STATUS_VALIDATOR_TERMINATED=A valida\u00e7\u00e3o de {0} utilizando {1} foi cancelada.

VBF_STATUS_START_REMOVING_OLD_MESSAGES=Remo\u00e7\u00e3o de mensagens {0} em {1} foi iniciada...
VBF_STATUS_FINISH_REMOVING_OLD_MESSAGES=Mensagens removidas.

VBF_STATUS_STARTING_VALIDATION=A valida\u00e7\u00e3o de {0} por {1} foi iniciada...
VBF_STATUS_ENDING_VALIDATION=A valida\u00e7\u00e3o de {0} por {1} foi conclu\u00edda. Todos os problemas conhecidos foram relatados.
VBF_STATUS_ENDING_VALIDATION_ABNORMALLY=A valida\u00e7\u00e3o de {0} por {1} foi finalizada de forma anormal. A lista de problemas pode estar incompleta. Verifique a causa da finaliza\u00e7\u00e3o anormal nas mensagens de informa\u00e7\u00f5es.

VBF_STATUS_LOOKING=Procurando as mensagens de valida\u00e7\u00e3o possu\u00eddas por validadores desinstalados...
VBF_STATUS_LOOKINGDONE=Procurando as mensagens de valida\u00e7\u00e3o possu\u00eddas por validadores desinstalados... conclu\u00eddo.
VBF_STATUS_REMOVING=Removendo as mensagens de valida\u00e7\u00e3o possu\u00eddas por validadores desinstalados...
VBF_STATUS_REMOVINGDONE=Removendo as mensagens de valida\u00e7\u00e3o possu\u00eddas por validadores desinstalados... conclu\u00eddo.

# The following message will be deleted soon.
VBF_TASK_WARN_MESSAGE_LIMIT_ABORT=IWAE0034W IWAD3000I: {1} finalizou a valida\u00e7\u00e3o de {0} porque o n\u00famero m\u00e1ximo de mensagens foi reportado. Algumas mensagens podem ter sido perdidas.

VBF_TASK_WARN_MESSAGE_LIMIT_VAL=IWAE0035W IWAD3000I: Algumas mensagens podem estar faltando porque o n\u00famero m\u00e1ximo de mensagens foi reportado. Aumente o n\u00famero m\u00e1ximo de mensagens e tente novamente.

#
# End Validation Builder Framework Strings
#

