/*
 * Dutch crypt32 dll resources
 *
 * Copyright (C) 2008 Frans Kool
 *
 * 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
 */

#include "cryptres.h"

LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL

STRINGTABLE DISCARDABLE
{
    IDS_AUTHORITY_KEY_ID "Autoriteits Sleutel Identificatie nummer"
    IDS_KEY_ATTRIBUTES "Sleutel Attributen"
    IDS_KEY_USAGE_RESTRICTION "Sleutel Gebruiksbeperkingen"
    IDS_SUBJECT_ALT_NAME "Onderwerp's Alternatieve Naam"
    IDS_ISSUER_ALT_NAME "Verstrekker's Alternatieve Naam"
    IDS_BASIC_CONSTRAINTS "Basis Beperkingen"
    IDS_KEY_USAGE "Sleutel Gebruik"
    IDS_CERT_POLICIES "Certificaat Beleid"
    IDS_SUBJECT_KEY_IDENTIFIER "Onderwerp's Sleutel Identificatie nummer"
    IDS_CRL_REASON_CODE "CRL Reden Code"
    IDS_CRL_DIST_POINTS "CRL Distributie Locaties"
    IDS_ENHANCED_KEY_USAGE "Uitgebreid Sleutel Gebruik"
    IDS_AUTHORITY_INFO_ACCESS "Autoriteits Informatie Toegang"
    IDS_CERT_EXTENSIONS "Certificaat Extensies"
    IDS_NEXT_UPDATE_LOCATION "Volgende Update Locatie"
    IDS_YES_OR_NO_TRUST "Wel of Geen Vertrouwen"
    IDS_EMAIL_ADDRESS "Email Adres"
    IDS_UNSTRUCTURED_NAME "Ongestructureerde Naam"
    IDS_CONTENT_TYPE "Inhoud Type"
    IDS_MESSAGE_DIGEST "Boodschap Samenvatting"
    IDS_SIGNING_TIME "Tijd van Ondertekening"
    IDS_COUNTER_SIGN "Tegen handtekening"
    IDS_CHALLENGE_PASSWORD "Geheime Vraag Wachtwoord"
    IDS_UNSTRUCTURED_ADDRESS "Ongestructureerd Adres"
    IDS_SMIME_CAPABILITIES "SMIME Mogelijkheden"
    IDS_PREFER_SIGNED_DATA "Prefereer Getekende Data"
    IDS_CPS "CPS"
    IDS_USER_NOTICE "Gebruikers Mededeling"
    IDS_OCSP "On-line Certificaat Status Protocol"
    IDS_CA_ISSUER "Certificatie Autoriteits Verstrekker"
    IDS_CERT_TEMPLATE_NAME "Certificatie Template Naam"
    IDS_CERT_TYPE "Type Certificaat"
    IDS_CERT_MANIFOLD "Certificaat Verspreider"
    IDS_NETSCAPE_CERT_TYPE "Netscape Certificaat Type"
    IDS_NETSCAPE_BASE_URL "Netscape Basis URL"
    IDS_NETSCAPE_REVOCATION_URL "Netscape Terugroep URL"
    IDS_NETSCAPE_CA_REVOCATION_URL "Netscape CA Terugroep URL"
    IDS_NETSCAPE_CERT_RENEWAL_URL "Netscape Cert Verversings URL"
    IDS_NETSCAPE_CA_POLICY_URL "Netscape CA Beleids URL"
    IDS_NETSCAPE_SSL_SERVER_NAME "Netscape SSL Server Naam"
    IDS_NETSCAPE_COMMENT "Netscape Commentaar"
    IDS_SPC_SP_AGENCY_INFO "SPC SP Agency Informatie"
    IDS_SPC_FINANCIAL_CRITERIA "SPC Financiele Criteria"
    IDS_SPC_MINIMAL_CRITERIA "SPC Minimale Criteria"
    IDS_COUNTRY "Land/Regio"
    IDS_ORGANIZATION "Organisatie"
    IDS_ORGANIZATIONAL_UNIT "Organisatie Onderdeel"
    IDS_COMMON_NAME "Gemeenschappelijke Naam"
    IDS_LOCALITY "Localiteit"
    IDS_STATE_OR_PROVINCE "Staat of Provincie"
    IDS_TITLE "Titel"
    IDS_GIVEN_NAME "Voornaam"
    IDS_INITIALS "Initialen"
    IDS_SUR_NAME "Achternaam"
    IDS_DOMAIN_COMPONENT "Domein Component"
    IDS_STREET_ADDRESS "Straat/Adres"
    IDS_SERIAL_NUMBER "Registratie Nummer"
    IDS_CA_VERSION "CA Versie"
    IDS_CROSS_CA_VERSION "Cross CA Versie"
    IDS_SERIALIZED_SIG_SERIAL_NUMBER "Geautomatiseerde Handtekening Serienummer"
    IDS_PRINCIPAL_NAME "Hoofd Naam"
    IDS_WINDOWS_PRODUCT_UPDATE "Windows Produkt Update"
    IDS_ENROLLMENT_NAME_VALUE_PAIR "Inschrijvingsnaam Waarde Paar"
    IDS_OS_VERSION "OS Versie"
    IDS_ENROLLMENT_CSP "Inschrijving CSP"
    IDS_CRL_NUMBER "CRL Nummer"
    IDS_DELTA_CRL_INDICATOR "Delta CRL Indicatie"
    IDS_ISSUING_DIST_POINT "Verstrekkend Distributie Punt"
    IDS_FRESHEST_CRL "Nieuwste CRL"
    IDS_NAME_CONSTRAINTS "Beperkingen op Naam"
    IDS_POLICY_MAPPINGS "Beleids Mappingen"
    IDS_POLICY_CONSTRAINTS "Beperkingen op Beleid"
    IDS_CROSS_CERT_DIST_POINTS "Trans-Certificaat Distributie Punten"
    IDS_APPLICATION_POLICIES "Applicatie Beleid"
    IDS_APPLICATION_POLICY_MAPPINGS "Applicatie Beleids Mappingen"
    IDS_APPLICATION_POLICY_CONSTRAINTS "Applicatie Beperkingen op Beleid"
    IDS_CMC_DATA "CMC Data"
    IDS_CMC_RESPONSE "CMC Antwoord"
    IDS_UNSIGNED_CMC_REQUEST "Ongetekend CMC Verzoek"
    IDS_CMC_STATUS_INFO "CMC Status Informatie"
    IDS_CMC_EXTENSIONS "CMC Extensies"
    IDS_CMC_ATTRIBUTES "CMC Attributen"
    IDS_PKCS_7_DATA "PKCS 7 Data"
    IDS_PKCS_7_SIGNED "PKCS 7 Ondertekend"
    IDS_PKCS_7_ENVELOPED "PKCS 7 Omsloten"
    IDS_PKCS_7_SIGNED_ENVELOPED "PKCS 7 Getekend Omsloten"
    IDS_PKCS_7_DIGESTED "PKCS 7 Samengevat"
    IDS_PKCS_7_ENCRYPTED "PKCS 7 Gecodeerd"
    IDS_PREVIOUS_CA_CERT_HASH "Vorige CA Certificaat Hash"
    IDS_CRL_VIRTUAL_BASE "Virtueel Basis CRL Nummer"
    IDS_CRL_NEXT_PUBLISH "Volgende CRL Publicatie"
    IDS_CA_EXCHANGE "CA Coderings Certificaat"
    IDS_KEY_RECOVERY_AGENT "Sleutel Herstel Agent"
    IDS_CERTIFICATE_TEMPLATE "Certificaat Template Information"
    IDS_ENTERPRISE_ROOT_OID "Ondernemings Basis OID"
    IDS_RDN_DUMMY_SIGNER "Dummie Tekenaar"
    IDS_ARCHIVED_KEY_ATTR "Gecodeerde Persoonlijke Sleutel"
    IDS_CRL_SELF_CDP "Gepubliseerde CRL Locaties"
    IDS_REQUIRE_CERT_CHAIN_POLICY "Afdwingen Certificaat Keten Beleid"
    IDS_TRANSACTION_ID "Transactie Nummer"
    IDS_SENDER_NONCE "Zender Nonce"
    IDS_RECIPIENT_NONCE "Ontvanger Nonce"
    IDS_REG_INFO "Registratie Informatie"
    IDS_GET_CERTIFICATE "Haal Certificaat op"
    IDS_GET_CRL "Haal CRL op"
    IDS_REVOKE_REQUEST "Trek Verzoek In"
    IDS_QUERY_PENDING "Verzoek in behandeling"
    IDS_SORTED_CTL "Certificaat Vertrouwenslijst"
    IDS_ARCHIVED_KEY_CERT_HASH "Gearchiveerde Sleutel Certificaat Hash"
    IDS_PRIVATE_KEY_USAGE_PERIOD "Prive Sleutel Gebruik Periode"
    IDS_CLIENT_INFORMATION "Cliënt Informatie"
    IDS_SERVER_AUTHENTICATION "Server Authentificatie"
    IDS_CLIENT_AUTHENTICATION "Cliënt Authentificatie"
    IDS_CODE_SIGNING "Code Ondertekenen"
    IDS_SECURE_EMAIL "Beveiligde Email"
    IDS_TIME_STAMPING "Tijd Stempel Toekennen"
    IDS_MICROSOFT_TRUST_LIST_SIGNING "Microsoft Trust Lijst Ondertekenen"
    IDS_MICROSOFT_TIME_STAMPING "Microsoft Tijd Stempel Toekennen"
    IDS_IPSEC_END_SYSTEM "IP beveiliging eind systeem"
    IDS_IPSEC_TUNNEL "IP beveiliging tunnel afsluiting"
    IDS_IPSEC_USER "IP beveiliging gebruiker"
    IDS_EFS "Versleutelen Bestand Systeem"
    IDS_WHQL_CRYPTO "Windows Hardware Driver Verificatie"
    IDS_NT5_CRYPTO "Windows Systeem Component Verificatie"
    IDS_OEM_WHQL_CRYPTO "OEM Windows Systeem Component Verificatie"
    IDS_EMBEDDED_NT_CRYPTO "Ingebed Windows Systeem Componenten Verificatie"
    IDS_KEY_PACK_LICENSES "Sleutel Verzameling Licenties"
    IDS_LICENSE_SERVER "Licentie Server Verificatie"
    IDS_SMART_CARD_LOGON "Smart Card Aanmelden"
    IDS_DIGITAL_RIGHTS "Digitale Rechten"
    IDS_QUALIFIED_SUBORDINATION "Gekwalificeerde Ondergeschiktheid"
    IDS_KEY_RECOVERY "Sleutel Herstellen"
    IDS_DOCUMENT_SIGNING "Document Ondertekenen"
    IDS_IPSEC_IKE_INTERMEDIATE "IP beveiliging IKE tussenpersoon"
    IDS_FILE_RECOVERY "Bestand Herstellen"
    IDS_ROOT_LIST_SIGNER "Basis Lijst Ondertekenaar"
    IDS_ANY_APPLICATION_POLICIES "Alle applicaties beleid"
    IDS_DS_EMAIL_REPLICATION "Directory Service Email Replicatie"
    IDS_ENROLLMENT_AGENT "Certificaat Verzoek Agent"
    IDS_LIFETIME_SIGNING "Levensduur Ondertekenen"
    IDS_ANY_CERT_POLICY "Alle uitgifte beleid"
}

STRINGTABLE DISCARDABLE
{
    IDS_LOCALIZEDNAME_ROOT "Vertrouwde Basis Certificatie Autoriteiten"
    IDS_LOCALIZEDNAME_MY "Persoonlijk"
    IDS_LOCALIZEDNAME_CA "Certificatie Tussen-Autoriteiten"
    IDS_LOCALIZEDNAME_ADDRESSBOOK "Overige Personen"
    IDS_LOCALIZEDNAME_TRUSTEDPUBLISHER "Vertrouwde uitgevers"
}

STRINGTABLE DISCARDABLE
{
    IDS_KEY_ID "SleutelID="
    IDS_CERT_ISSUER "Certificaat verstrekker"
    IDS_CERT_SERIAL_NUMBER "Certificaat serienummer="
    IDS_ALT_NAME_OTHER_NAME "Andere naam="
    IDS_ALT_NAME_RFC822_NAME "Email Adres="
    IDS_ALT_NAME_DNS_NAME "DNS naam="
    IDS_ALT_NAME_DIRECTORY_NAME "Directory naam="
    IDS_ALT_NAME_URL "URL="
    IDS_ALT_NAME_IP_ADDRESS "IP adres="
    IDS_ALT_NAME_MASK "Masker="
    IDS_ALT_NAME_REGISTERED_ID "Geregistreerd ID="
    IDS_USAGE_UNKNOWN "Onbekend gebruik van sleutel"
    IDS_SUBJECT_TYPE "Onderwerp type="
    IDS_SUBJECT_TYPE_CA "CA"
    IDS_SUBJECT_TYPE_END_CERT "Eind Entiteit"
    IDS_PATH_LENGTH "Lengte van pad beperking="
    IDS_PATH_LENGTH_NONE "Geen"
    IDS_INFO_NOT_AVAILABLE "Informatie niet beschikbaar"
    IDS_AIA "Authoriteit Informatie Toegang"
    IDS_ACCESS_METHOD "Toegang methode="
    IDS_ACCESS_METHOD_OCSP "OCSP"
    IDS_ACCESS_METHOD_CA_ISSUERS "CA verstrekkers"
    IDS_ACCESS_METHOD_UNKNOWN "Onbekende toegangsmethode"
    IDS_ACCESS_LOCATION "Alternatieve Naam"
    IDS_CRL_DIST_POINT "CRL Distributie Punt"
    IDS_CRL_DIST_POINT_NAME "Naam distributiepunt"
    IDS_CRL_DIST_POINT_FULL_NAME "Volledige naam"
    IDS_CRL_DIST_POINT_RDN_NAME "RDN naam"
    IDS_CRL_DIST_POINT_REASON "CRL reden="
    IDS_CRL_DIST_POINT_ISSUER "CRL verstrekker"
    IDS_REASON_KEY_COMPROMISE "Sleutel besmet"
    IDS_REASON_CA_COMPROMISE "CA besmet"
    IDS_REASON_AFFILIATION_CHANGED "Samenwerking gewijzigd"
    IDS_REASON_SUPERSEDED "Verouderd"
    IDS_REASON_CESSATION_OF_OPERATION "Werkzaamheden gestaakt"
    IDS_REASON_CERTIFICATE_HOLD "Certificaat bevroren"
    IDS_FINANCIAL_CRITERIA "Financiele informatie="
    IDS_FINANCIAL_CRITERIA_AVAILABLE "Beschikbaar"
    IDS_FINANCIAL_CRITERIA_NOT_AVAILABLE "Niet beschikbaar"
    IDS_FINANCIAL_CRITERIA_MEETS_CRITERIA "Past bij criteria="
    IDS_YES "Ja"
    IDS_NO "Nee"
    IDS_DIGITAL_SIGNATURE "Digitale handtekening"
    IDS_NON_REPUDIATION "Non-Repudiatie"
    IDS_KEY_ENCIPHERMENT "sleutel codering"
    IDS_DATA_ENCIPHERMENT "Data codering"
    IDS_KEY_AGREEMENT "Sleutel overeenkomst"
    IDS_CERT_SIGN "Certificaat tekenen"
    IDS_OFFLINE_CRL_SIGN "Off-line CRL Certificeren"
    IDS_CRL_SIGN "CRL Certificeren"
    IDS_ENCIPHER_ONLY "Codeer alleen"
    IDS_DECIPHER_ONLY "Decodeer alleen"
    IDS_NETSCAPE_SSL_CLIENT "SSL Client Authentificatie"
    IDS_NETSCAPE_SSL_SERVER "SSL Server Authentificatie"
    IDS_NETSCAPE_SMIME "S/MIME"
    IDS_NETSCAPE_SIGN "Handtekening"
    IDS_NETSCAPE_SSL_CA "SSL CA"
    IDS_NETSCAPE_SMIME_CA "S/MIME CA"
    IDS_NETSCAPE_SIGN_CA "Handtekening CA"
}
