/*
 * 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"

#pragma code_page(65001)

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"
    IDS_LOCALIZEDNAME_DISALLOWED "Niet-vertrouwde certificaten"
}

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"
}
