/*
 * crypt32 dll resources
 *
 * Copyright (C) 2006 Juan Lang
 *
 * Ukrainian language support
 * Copyright (C) 2010 igor Paliychuk
 *
 * 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"

/* UTF-8 */
#pragma code_page(65001)

LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT

STRINGTABLE DISCARDABLE
{
    IDS_AUTHORITY_KEY_ID "Authority Key Identifier"
    IDS_KEY_ATTRIBUTES "Властивості Ключа"
    IDS_KEY_USAGE_RESTRICTION "Key Usage Restriction"
    IDS_SUBJECT_ALT_NAME "Subject Alternative Name"
    IDS_ISSUER_ALT_NAME "Issuer Alternative Name"
    IDS_BASIC_CONSTRAINTS "Основні Обмеження"
    IDS_KEY_USAGE "Використання Ключа"
    IDS_CERT_POLICIES "Політика Сертифікатів"
    IDS_SUBJECT_KEY_IDENTIFIER "Subject Key Identifier"
    IDS_CRL_REASON_CODE "CRL Reason Code"
    IDS_CRL_DIST_POINTS "CRL Distribution Points"
    IDS_ENHANCED_KEY_USAGE "Розширене Використання Ключа"
    IDS_AUTHORITY_INFO_ACCESS "Authority Information Access"
    IDS_CERT_EXTENSIONS "Розширення Сертифікатів"
    IDS_NEXT_UPDATE_LOCATION "Next Update Location"
    IDS_YES_OR_NO_TRUST "Yes or No Trust"
    IDS_EMAIL_ADDRESS "Адреса Ел. Пошти"
    IDS_UNSTRUCTURED_NAME "Unstructured Name"
    IDS_CONTENT_TYPE "Тип Вмісту"
    IDS_MESSAGE_DIGEST "Message Digest"
    IDS_SIGNING_TIME "Час Входу"
    IDS_COUNTER_SIGN "Counter Sign"
    IDS_CHALLENGE_PASSWORD "Challenge Password"
    IDS_UNSTRUCTURED_ADDRESS "Unstructured Address"
    IDS_SMIME_CAPABILITIES "SMIME Capabilities"
    IDS_PREFER_SIGNED_DATA "Prefer Signed Data"
    IDS_CPS "CPS"
    IDS_USER_NOTICE "User Notice"
    IDS_OCSP "On-line Certificate Status Protocol"
    IDS_CA_ISSUER "Certification Authority Issuer"
    IDS_CERT_TEMPLATE_NAME "Certification Template Name"
    IDS_CERT_TYPE "Тип Сертифікату"
    IDS_CERT_MANIFOLD "Certificate Manifold"
    IDS_NETSCAPE_CERT_TYPE "Netscape Cert Type"
    IDS_NETSCAPE_BASE_URL "Netscape Base URL"
    IDS_NETSCAPE_REVOCATION_URL "Netscape Revocation URL"
    IDS_NETSCAPE_CA_REVOCATION_URL "Netscape CA Revocation URL"
    IDS_NETSCAPE_CERT_RENEWAL_URL "Netscape Cert Renewal URL"
    IDS_NETSCAPE_CA_POLICY_URL "Netscape CA Policy URL"
    IDS_NETSCAPE_SSL_SERVER_NAME "Netscape SSL ServerName"
    IDS_NETSCAPE_COMMENT "Netscape Коментар"
    IDS_SPC_SP_AGENCY_INFO "SpcSpAgencyInfo"
    IDS_SPC_FINANCIAL_CRITERIA "SpcFinancialCriteria"
    IDS_SPC_MINIMAL_CRITERIA "SpcMinimalCriteria"
    IDS_COUNTRY "Країна/Регіон"
    IDS_ORGANIZATION "Організація"
    IDS_ORGANIZATIONAL_UNIT "Organizational Unit"
    IDS_COMMON_NAME "Common Name"
    IDS_LOCALITY "Locality"
    IDS_STATE_OR_PROVINCE "State or Province"
    IDS_TITLE "Title"
    IDS_GIVEN_NAME "Given Name"
    IDS_INITIALS "Ініціали"
    IDS_SUR_NAME "Sur Name"
    IDS_DOMAIN_COMPONENT "Domain Component"
    IDS_STREET_ADDRESS "Street Address"
    IDS_SERIAL_NUMBER "Серійний номер"
    IDS_CA_VERSION "CA Version"
    IDS_CROSS_CA_VERSION "Cross CA Version"
    IDS_SERIALIZED_SIG_SERIAL_NUMBER "Serialized Signature Serial Number"
    IDS_PRINCIPAL_NAME "Principal Name"
    IDS_WINDOWS_PRODUCT_UPDATE "Windows Product Update"
    IDS_ENROLLMENT_NAME_VALUE_PAIR "Enrollment Name Value Pair"
    IDS_OS_VERSION "OS Version"
    IDS_ENROLLMENT_CSP "Enrollment CSP"
    IDS_CRL_NUMBER "CRL Number"
    IDS_DELTA_CRL_INDICATOR "Delta CRL Indicator"
    IDS_ISSUING_DIST_POINT "Issuing Distribution Point"
    IDS_FRESHEST_CRL "Freshest CRL"
    IDS_NAME_CONSTRAINTS "Name Constraints"
    IDS_POLICY_MAPPINGS "Policy Mappings"
    IDS_POLICY_CONSTRAINTS "Policy Constraints"
    IDS_CROSS_CERT_DIST_POINTS "Cross-Certificate Distribution Points"
    IDS_APPLICATION_POLICIES "Application Policies"
    IDS_APPLICATION_POLICY_MAPPINGS "Application Policy Mappings"
    IDS_APPLICATION_POLICY_CONSTRAINTS "Application Policy Constraints"
    IDS_CMC_DATA "CMC Data"
    IDS_CMC_RESPONSE "CMC Response"
    IDS_UNSIGNED_CMC_REQUEST "Unsigned CMC Request"
    IDS_CMC_STATUS_INFO "CMC Status Info"
    IDS_CMC_EXTENSIONS "CMC Extensions"
    IDS_CMC_ATTRIBUTES "CMC Attributes"
    IDS_PKCS_7_DATA "PKCS 7 Data"
    IDS_PKCS_7_SIGNED "PKCS 7 Signed"
    IDS_PKCS_7_ENVELOPED "PKCS 7 Enveloped"
    IDS_PKCS_7_SIGNED_ENVELOPED "PKCS 7 Signed Enveloped"
    IDS_PKCS_7_DIGESTED "PKCS 7 Digested"
    IDS_PKCS_7_ENCRYPTED "PKCS 7 Encrypted"
    IDS_PREVIOUS_CA_CERT_HASH "Previous CA Certificate Hash"
    IDS_CRL_VIRTUAL_BASE "Virtual Base CRL Number"
    IDS_CRL_NEXT_PUBLISH "Next CRL Publish"
    IDS_CA_EXCHANGE "CA Encryption Certificate"
    IDS_KEY_RECOVERY_AGENT "Key Recovery Agent"
    IDS_CERTIFICATE_TEMPLATE "Certificate Template Information"
    IDS_ENTERPRISE_ROOT_OID "Enterprise Root OID"
    IDS_RDN_DUMMY_SIGNER "Dummy Signer"
    IDS_ARCHIVED_KEY_ATTR "Encrypted Private Key"
    IDS_CRL_SELF_CDP "Published CRL Locations"
    IDS_REQUIRE_CERT_CHAIN_POLICY "Enforce Certificate Chain Policy"
    IDS_TRANSACTION_ID "Transaction Id"
    IDS_SENDER_NONCE "Sender Nonce"
    IDS_RECIPIENT_NONCE "Recipient Nonce"
    IDS_REG_INFO "Reg Info"
    IDS_GET_CERTIFICATE "Get Certificate"
    IDS_GET_CRL "Get CRL"
    IDS_REVOKE_REQUEST "Revoke Request"
    IDS_QUERY_PENDING "Query Pending"
    IDS_SORTED_CTL "Certificate Trust List"
    IDS_ARCHIVED_KEY_CERT_HASH "Archived Key Certificate Hash"
    IDS_PRIVATE_KEY_USAGE_PERIOD "Private Key Usage Period"
    IDS_CLIENT_INFORMATION "Клієнські Дані"
    IDS_SERVER_AUTHENTICATION "Server Authentication"
    IDS_CLIENT_AUTHENTICATION "Client Authentication"
    IDS_CODE_SIGNING "Code Signing"
    IDS_SECURE_EMAIL "Secure Email"
    IDS_TIME_STAMPING "Time Stamping"
    IDS_MICROSOFT_TRUST_LIST_SIGNING "Microsoft Trust List Signing"
    IDS_MICROSOFT_TIME_STAMPING "Microsoft Time Stamping"
    IDS_IPSEC_END_SYSTEM "IP security end system"
    IDS_IPSEC_TUNNEL "IP security tunnel termination"
    IDS_IPSEC_USER "IP security user"
    IDS_EFS "Encrypting File System"
    IDS_WHQL_CRYPTO "Windows Hardware Driver Verification"
    IDS_NT5_CRYPTO "Windows System Component Verification"
    IDS_OEM_WHQL_CRYPTO "OEM Windows System Component Verification"
    IDS_EMBEDDED_NT_CRYPTO "Embedded Windows System Component Verification"
    IDS_KEY_PACK_LICENSES "Key Pack Licenses"
    IDS_LICENSE_SERVER "License Server Verification"
    IDS_SMART_CARD_LOGON "Smart Card Logon"
    IDS_DIGITAL_RIGHTS "Digital Rights"
    IDS_QUALIFIED_SUBORDINATION "Qualified Subordination"
    IDS_KEY_RECOVERY "Key Recovery"
    IDS_DOCUMENT_SIGNING "Document Signing"
    IDS_IPSEC_IKE_INTERMEDIATE "IP security IKE intermediate"
    IDS_FILE_RECOVERY "File Recovery"
    IDS_ROOT_LIST_SIGNER "Root List Signer"
    IDS_ANY_APPLICATION_POLICIES "All application policies"
    IDS_DS_EMAIL_REPLICATION "Directory Service Email Replication"
    IDS_ENROLLMENT_AGENT "Certificate Request Agent"
    IDS_LIFETIME_SIGNING "Lifetime Signing"
    IDS_ANY_CERT_POLICY "All issuance policies"
}

STRINGTABLE DISCARDABLE
{
    IDS_LOCALIZEDNAME_ROOT "Trusted Root Certification Authorities"
    IDS_LOCALIZEDNAME_MY "Personal"
    IDS_LOCALIZEDNAME_CA "Intermediate Certification Authorities"
    IDS_LOCALIZEDNAME_ADDRESSBOOK "Other People"
    IDS_LOCALIZEDNAME_TRUSTEDPUBLISHER "Trusted Publishers"
    IDS_LOCALIZEDNAME_DISALLOWED "Untrusted Certificates"
}

STRINGTABLE DISCARDABLE
{
    IDS_KEY_ID "KeyID="
    IDS_CERT_ISSUER "Certificate Issuer"
    IDS_CERT_SERIAL_NUMBER "Certificate Serial Number="
    IDS_ALT_NAME_OTHER_NAME "Інше Ім'я="
    IDS_ALT_NAME_RFC822_NAME "Адреса Ел. Пошти="
    IDS_ALT_NAME_DNS_NAME "DNS Name="
    IDS_ALT_NAME_DIRECTORY_NAME "Directory Address"
    IDS_ALT_NAME_URL "URL="
    IDS_ALT_NAME_IP_ADDRESS "IP Адреса="
    IDS_ALT_NAME_MASK "Маска="
    IDS_ALT_NAME_REGISTERED_ID "Registered ID="
    IDS_USAGE_UNKNOWN "Unknown Key Usage"
    IDS_SUBJECT_TYPE "Subject Type="
    IDS_SUBJECT_TYPE_CA "CA"
    IDS_SUBJECT_TYPE_END_CERT "End Entity"
    IDS_PATH_LENGTH "Path Length Constraint="
    IDS_PATH_LENGTH_NONE "None"
    IDS_INFO_NOT_AVAILABLE "Information Not Available"
    IDS_AIA "Authority Info Access"
    IDS_ACCESS_METHOD "Access Method="
    IDS_ACCESS_METHOD_OCSP "OCSP"
    IDS_ACCESS_METHOD_CA_ISSUERS "CA Issuers"
    IDS_ACCESS_METHOD_UNKNOWN "Unknown Access Method"
    IDS_ACCESS_LOCATION "Alternative Name"
    IDS_CRL_DIST_POINT "CRL Distribution Point"
    IDS_CRL_DIST_POINT_NAME "Distribution Point Name"
    IDS_CRL_DIST_POINT_FULL_NAME "Full Name"
    IDS_CRL_DIST_POINT_RDN_NAME "RDN Name"
    IDS_CRL_DIST_POINT_REASON "CRL Reason="
    IDS_CRL_DIST_POINT_ISSUER "CRL Issuer"
    IDS_REASON_KEY_COMPROMISE "Key Compromise"
    IDS_REASON_CA_COMPROMISE "CA Compromise"
    IDS_REASON_AFFILIATION_CHANGED "Affiliation Changed"
    IDS_REASON_SUPERSEDED "Superseded"
    IDS_REASON_CESSATION_OF_OPERATION "Operation Ceased"
    IDS_REASON_CERTIFICATE_HOLD "Certificate Hold"
    IDS_FINANCIAL_CRITERIA "Фінансові Дані="
    IDS_FINANCIAL_CRITERIA_AVAILABLE "Available"
    IDS_FINANCIAL_CRITERIA_NOT_AVAILABLE "Not Available"
    IDS_FINANCIAL_CRITERIA_MEETS_CRITERIA "Meets Criteria="
    IDS_YES "Yes"
    IDS_NO "No"
    IDS_DIGITAL_SIGNATURE "Цифровий Підпис"
    IDS_NON_REPUDIATION "Non-Repudiation"
    IDS_KEY_ENCIPHERMENT "Key Encipherment"
    IDS_DATA_ENCIPHERMENT "Data Encipherment"
    IDS_KEY_AGREEMENT "Key Agreement"
    IDS_CERT_SIGN "Certificate Signing"
    IDS_OFFLINE_CRL_SIGN "Off-line CRL Signing"
    IDS_CRL_SIGN "CRL Signing"
    IDS_ENCIPHER_ONLY "Encipher Only"
    IDS_DECIPHER_ONLY "Decipher Only"
    IDS_NETSCAPE_SSL_CLIENT "SSL Client Authentication"
    IDS_NETSCAPE_SSL_SERVER "SSL Server Authentication"
    IDS_NETSCAPE_SMIME "S/MIME"
    IDS_NETSCAPE_SIGN "Signature"
    IDS_NETSCAPE_SSL_CA "SSL CA"
    IDS_NETSCAPE_SMIME_CA "S/MIME CA"
    IDS_NETSCAPE_SIGN_CA "Signature CA"
}
