/*
 * crypt32 dll resources
 *
 * Copyright (C) 2008 Ricardo Filipe
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL

STRINGTABLE DISCARDABLE
{
    IDS_AUTHORITY_KEY_ID "Identificador da Chave de Autoridade"
    IDS_KEY_ATTRIBUTES "Atributos da Chave"
    IDS_KEY_USAGE_RESTRICTION "Restrições ao uso da Chave"
    IDS_SUBJECT_ALT_NAME "Nome Alternativo do Sujeito"
    IDS_ISSUER_ALT_NAME "Nome Alternativo do Emissor"
    IDS_BASIC_CONSTRAINTS "Restrições Básicas"
    IDS_KEY_USAGE "Uso da Chave"
    IDS_CERT_POLICIES "Políticas de Certificados"
    IDS_SUBJECT_KEY_IDENTIFIER "Identificador da Chave do Sujeito"
    IDS_CRL_REASON_CODE "Código de Razão CRL"
    IDS_CRL_DIST_POINTS "Pontos de Distribuição CRL"
    IDS_ENHANCED_KEY_USAGE "Uso da Chave melhorado"
    IDS_AUTHORITY_INFO_ACCESS "Acesso Autorizado a Informação"
    IDS_CERT_EXTENSIONS "Extensões de Certificados"
    IDS_NEXT_UPDATE_LOCATION "Localização da próxima actualização"
    IDS_YES_OR_NO_TRUST "Confiança Sim ou Não"
    IDS_EMAIL_ADDRESS "Endereço de Email"
    IDS_UNSTRUCTURED_NAME "Nome não estruturado"
    IDS_CONTENT_TYPE "Tipo de Conteúdo"
    IDS_MESSAGE_DIGEST "Resumo da mensagem"
    IDS_SIGNING_TIME "Tempo de assinatura"
    IDS_COUNTER_SIGN "Contra assinar"
    IDS_CHALLENGE_PASSWORD "Desafiar Password"
    IDS_UNSTRUCTURED_ADDRESS "Endereço não estruturado"
    IDS_SMIME_CAPABILITIES "Capacidades SMIME"
    IDS_PREFER_SIGNED_DATA "Preferir Dados Assinados"
    IDS_CPS "CPS"
    IDS_USER_NOTICE "Aviso de Utilizador"
    IDS_OCSP "Protocolo de Estado de Certificados Online"
    IDS_CA_ISSUER "Emissor de Certificados Autorizados"
    IDS_CERT_TEMPLATE_NAME "Nome de Certificação por Template"
    IDS_CERT_TYPE "Tipo de Certificado"
    IDS_CERT_MANIFOLD "Agrupador de Certificados"
    IDS_NETSCAPE_CERT_TYPE "Tipo de Certificados Netscape"
    IDS_NETSCAPE_BASE_URL "URL Base Netscape"
    IDS_NETSCAPE_REVOCATION_URL "URL Revogação Netscape"
    IDS_NETSCAPE_CA_REVOCATION_URL "URL Revogação CA Netscape"
    IDS_NETSCAPE_CERT_RENEWAL_URL "URL Renovação de Certificados Netscape"
    IDS_NETSCAPE_CA_POLICY_URL "URL Política CA Netscape"
    IDS_NETSCAPE_SSL_SERVER_NAME "Netscape SSL ServerName"
    IDS_NETSCAPE_COMMENT "Comentário Netscape"
    IDS_SPC_SP_AGENCY_INFO "SpcSpAgencyInfo"
    IDS_SPC_FINANCIAL_CRITERIA "SpcFinancialCriteria"
    IDS_SPC_MINIMAL_CRITERIA "SpcMinimalCriteria"
    IDS_COUNTRY "País/Região"
    IDS_ORGANIZATION "Organização"
    IDS_ORGANIZATIONAL_UNIT "Unidade Organizacional"
    IDS_COMMON_NAME "Nome Comum"
    IDS_LOCALITY "Localidade"
    IDS_STATE_OR_PROVINCE "Estado ou Província"
    IDS_TITLE "Título"
    IDS_GIVEN_NAME "Nome Dado"
    IDS_INITIALS "Iniciais"
    IDS_SUR_NAME "Apelido"
    IDS_DOMAIN_COMPONENT "Componente de Domínio"
    IDS_STREET_ADDRESS "Endereço da Rua"
    IDS_SERIAL_NUMBER "Número de série"
    IDS_CA_VERSION "Versão CA"
    IDS_CROSS_CA_VERSION "Versão Cruzada CA"
    IDS_SERIALIZED_SIG_SERIAL_NUMBER "Número de Série Assinado Serializado"
    IDS_PRINCIPAL_NAME "Nome Principal"
    IDS_WINDOWS_PRODUCT_UPDATE "Actualização de Produto Windows"
    IDS_ENROLLMENT_NAME_VALUE_PAIR "Par de Inscrição Nome Valor"
    IDS_OS_VERSION "Versão do SO"
    IDS_ENROLLMENT_CSP "Inscrição CSP"
    IDS_CRL_NUMBER "Número CRL"
    IDS_DELTA_CRL_INDICATOR "Indicador Delta CRL"
    IDS_ISSUING_DIST_POINT "Emissão de Ponto de Distribuição"
    IDS_FRESHEST_CRL "CRL Mais Recente"
    IDS_NAME_CONSTRAINTS "Restrições de Nome"
    IDS_POLICY_MAPPINGS "Mapeamento de Políticas"
    IDS_POLICY_CONSTRAINTS "Restrições de Políticas"
    IDS_CROSS_CERT_DIST_POINTS "Cross-Certificate Distribution Points"
    IDS_APPLICATION_POLICIES "Políticas da Aplicação"
    IDS_APPLICATION_POLICY_MAPPINGS "Mapeamento das Políticas da Aplicação"
    IDS_APPLICATION_POLICY_CONSTRAINTS "Restrições da Política da Aplicação"
    IDS_CMC_DATA "Dados CMC"
    IDS_CMC_RESPONSE "Resposta CMC"
    IDS_UNSIGNED_CMC_REQUEST "Pedido CMC não assinado"
    IDS_CMC_STATUS_INFO "Informação de Estado CMC"
    IDS_CMC_EXTENSIONS "Extensões CMC"
    IDS_CMC_ATTRIBUTES "Atributos CMC"
    IDS_PKCS_7_DATA "Dados PKCS 7"
    IDS_PKCS_7_SIGNED "Assinado PKCS 7"
    IDS_PKCS_7_ENVELOPED "PKCS 7 Enveloped"
    IDS_PKCS_7_SIGNED_ENVELOPED "PKCS 7 Signed Enveloped"
    IDS_PKCS_7_DIGESTED "PKCS 7 Resumido"
    IDS_PKCS_7_ENCRYPTED "PKCS 7 Cifrado"
    IDS_PREVIOUS_CA_CERT_HASH "Hash Certificado CA prévio"
    IDS_CRL_VIRTUAL_BASE "Número CRL de Base Virtual"
    IDS_CRL_NEXT_PUBLISH "Próxima Publicação CRL"
    IDS_CA_EXCHANGE "Certificado de Cifra CA"
    IDS_KEY_RECOVERY_AGENT "Agente Recuperador de Chaves"
    IDS_CERTIFICATE_TEMPLATE "Informação do Template do Certificado"
    IDS_ENTERPRISE_ROOT_OID "Enterprise Root OID"
    IDS_RDN_DUMMY_SIGNER "Dummy Signer"
    IDS_ARCHIVED_KEY_ATTR "Chave Privada Cifrada"
    IDS_CRL_SELF_CDP "Localizações CRL Publicadas"
    IDS_REQUIRE_CERT_CHAIN_POLICY "Forçar Política Encadeada de Certificados"
    IDS_TRANSACTION_ID "Id da transacção"
    IDS_SENDER_NONCE "Sender Nonce"
    IDS_RECIPIENT_NONCE "Recipient Nonce"
    IDS_REG_INFO "Registo de Informação"
    IDS_GET_CERTIFICATE "Obter Certificado"
    IDS_GET_CRL "Obter CRL"
    IDS_REVOKE_REQUEST "Revogar Pedido"
    IDS_QUERY_PENDING "Consulta Pendente"
    IDS_SORTED_CTL "Lista Confiável de Certificados"
    IDS_ARCHIVED_KEY_CERT_HASH "Hash de Certificados Chave Arquivados"
    IDS_PRIVATE_KEY_USAGE_PERIOD "Período de Uso da Chave Privada"
    IDS_CLIENT_INFORMATION "Informação do Cliente"
    IDS_SERVER_AUTHENTICATION "Autenticação do Servidor"
    IDS_CLIENT_AUTHENTICATION "Autenticação do Cliente"
    IDS_CODE_SIGNING "Assinatura de Código"
    IDS_SECURE_EMAIL "Email seguro"
    IDS_TIME_STAMPING "Selo Temporal"
    IDS_MICROSOFT_TRUST_LIST_SIGNING "Assinatura da Lista Confiável da Microsoft"
    IDS_MICROSOFT_TIME_STAMPING "Selo Temporal da Microsoft"
    IDS_IPSEC_END_SYSTEM "Sistema de segurança IP"
    IDS_IPSEC_TUNNEL "Terminação do Túnel de Segurança IP"
    IDS_IPSEC_USER "Utilizador Seguro IP"
    IDS_EFS "Cifrando Sistema de Ficheiros"
    IDS_WHQL_CRYPTO "Verificação de Driver de Hardware Windows"
    IDS_NT5_CRYPTO "Verificação de Componentes de Sistema Windows"
    IDS_OEM_WHQL_CRYPTO "Verificação de Componentes de Sistema OEM Windows"
    IDS_EMBEDDED_NT_CRYPTO "Verificação de Componentes de Sistema Windows Embebida"
    IDS_KEY_PACK_LICENSES "Licenças de Pacotes de Chaves"
    IDS_LICENSE_SERVER "Verificação de Licença de Servidor"
    IDS_SMART_CARD_LOGON "Smart Card Logon"
    IDS_DIGITAL_RIGHTS "Direitos Digitais"
    IDS_QUALIFIED_SUBORDINATION "Subordinação Qualificada"
    IDS_KEY_RECOVERY "Recuperação de chaves"
    IDS_DOCUMENT_SIGNING "Assinatura de Documento"
    IDS_IPSEC_IKE_INTERMEDIATE "Segurança IP Intermédia IKE"
    IDS_FILE_RECOVERY "Recuperação de Ficheiros"
    IDS_ROOT_LIST_SIGNER "Root List Signer"
    IDS_ANY_APPLICATION_POLICIES "Políticas de todas as aplicações"
    IDS_DS_EMAIL_REPLICATION "Replicação do Directório de Serviço Email"
    IDS_ENROLLMENT_AGENT "Agente de Pedido de Certificados"
    IDS_LIFETIME_SIGNING "Assinatura de tempo de vida"
    IDS_ANY_CERT_POLICY "Políticas para todas as emissões"
}

STRINGTABLE DISCARDABLE
{
    IDS_LOCALIZEDNAME_ROOT "Autoridades de Certificação de Raiz Confiáveis"
    IDS_LOCALIZEDNAME_MY "Pessoal"
    IDS_LOCALIZEDNAME_CA "Autoridades de Certificação Intermédias"
    IDS_LOCALIZEDNAME_ADDRESSBOOK "Outras pessoas"
}

STRINGTABLE DISCARDABLE
{
    IDS_KEY_ID "KeyID="
    IDS_CERT_ISSUER "Emissor do Certificado: "
    IDS_CERT_SERIAL_NUMBER "Número de Série do Certificado="
    IDS_ALT_NAME_OTHER_NAME "Outro Nome="
    IDS_ALT_NAME_RFC822_NAME "Endereço Email="
    IDS_ALT_NAME_DNS_NAME "Nome DNS="
    IDS_ALT_NAME_DIRECTORY_NAME "Nome do Directório="
    IDS_ALT_NAME_URL "URL="
    IDS_ALT_NAME_IP_ADDRESS "Endereço IP="
    IDS_ALT_NAME_MASK "Máscara="
    IDS_ALT_NAME_REGISTERED_ID "ID Registado="
    IDS_USAGE_UNKNOWN "Uso de Chave Desconhecido"
    IDS_SUBJECT_TYPE "Tipo de Sujeito="
    IDS_SUBJECT_TYPE_CA "CA"
    IDS_SUBJECT_TYPE_END_CERT "Fim de Entidade"
    IDS_PATH_LENGTH "Restrição de tamanho de caminho="
    IDS_PATH_LENGTH_NONE "Nenhum"
    IDS_INFO_NOT_AVAILABLE "Informação não Disponível"
    IDS_AIA "Acesso à Informação de Autoridade"
    IDS_ACCESS_METHOD "Método de Acesso="
    IDS_ACCESS_METHOD_OCSP "OCSP"
    IDS_ACCESS_METHOD_CA_ISSUERS "Emissores CA"
    IDS_ACCESS_METHOD_UNKNOWN "Método de Acesso Desconhecido"
    IDS_ACCESS_LOCATION "Nome Alternativo"
    IDS_CRL_DIST_POINT "Ponto de Distribuição CRL"
    IDS_CRL_DIST_POINT_NAME "Nome do Ponto de Distribuição"
    IDS_CRL_DIST_POINT_FULL_NAME "Nome Completo"
    IDS_CRL_DIST_POINT_RDN_NAME "Nome RDN"
    IDS_CRL_DIST_POINT_REASON "Razão CRL="
    IDS_CRL_DIST_POINT_ISSUER "Emissor CRL"
    IDS_REASON_KEY_COMPROMISE "Compromisso da Chave"
    IDS_REASON_CA_COMPROMISE "Compromisso CA"
    IDS_REASON_AFFILIATION_CHANGED "Mudança de afiliação"
    IDS_REASON_SUPERSEDED "Supercedente"
    IDS_REASON_CESSATION_OF_OPERATION "Operação terminada"
    IDS_REASON_CERTIFICATE_HOLD "Certificado em espera"
    IDS_FINANCIAL_CRITERIA "Informação Financeira="
    IDS_FINANCIAL_CRITERIA_AVAILABLE "Disponível"
    IDS_FINANCIAL_CRITERIA_NOT_AVAILABLE "Não Disponível"
    IDS_FINANCIAL_CRITERIA_MEETS_CRITERIA "Conforme os Critérios="
    IDS_YES "Sim"
    IDS_NO "Não"
}
