# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

CertificateDialog.CantReadFile=Datei kann nicht gelesen werden
CertificateDialog.CantWriteToFile=Datei kann nicht geschrieben werden
CertificateDialog.LoadCertificate=Zertifikat laden
CertificateDialog.LoadCertificateButton=Zertifikat laden...
CertificateDialog.SaveCertificate=Zertifikat speichern
CertificateDialog.SaveCertificateButton=Zertifikat speichern...
CertificateDialog.CertificateDialog=Zertifikats-Editor
CertificateDialog.CantParseCertificate=Zertifikat kann nicht geparst werden: 
CertificateDialog.InvalidCertificate=Ung\u00FCltiges Zertifikat ({0} Bytes)
CertificateValueEditor.InvalidCertificateData=Ung\u00FCltiges Zertifikat
