<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2009 The Android Open Source Project

     Licensed 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.
 -->

<resources xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="app_name" msgid="9095072584761066851">"Zertifikats-Installer"</string>
    <string name="pick_file_title" msgid="4481949485108233297">"Zertifikat auswählen"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Zertifikat extrahieren"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"Zertifikate werden extrahiert..."</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Zertifikate aus %s extrahieren"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Zertifikat benennen"</string>
    <string name="credential_name" msgid="1974979771369744378">"Zertifikatname:"</string>
    <string name="credential_password" msgid="3520176519550993326">"Geben Sie das Passwort zum Extrahieren der Zertifikate ein."</string>
    <string name="credential_info" msgid="2436768402308470397">"Das Paket enthält Folgendes:"</string>
    <string name="p12_description" msgid="4128352087331630024">"Zertifikate im PKCS12-Keystore"</string>
    <string name="one_userkey" msgid="3500697912370644881">"ein Nutzerschlüssel"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"ein Nutzerzertifikat"</string>
    <string name="one_cacrt" msgid="2667950425420663146">"ein CA-Zertifikat"</string>
    <string name="n_cacrts" msgid="2141498640685639208">"%d CA-Zertifikate"</string>
    <string name="password_error" msgid="2042471639556516356">"Geben Sie das richtige Passwort ein."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Geben Sie das Passwort ein."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Geben Sie einen Namen ein."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Geben Sie einen Namen ein, der ausschließlich aus Buchstaben und Zahlen besteht."</string>
    <string name="storage_error" msgid="8306802455802770779">"Zertifikat konnte nicht gespeichert werden. Zum Wiederholen auf \"OK\" tippen"</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Das Zertifikat konnte nicht gespeichert werden. Der Speicher für die Anmeldeinformationen wurde nicht aktiviert oder falsch initialisiert."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"Das Zertifikat ist nicht installiert."</string>
    <string name="no_cert_to_saved" msgid="5708884372817309068">"Kein zu installierendes Zertifikat"</string>
    <string name="invalid_cert" msgid="7704228670980743590">"Das Zertifikat ist ungültig."</string>
    <string name="cert_is_added" msgid="6996557598167000500">"<xliff:g id="CREDENTIAL">%s</xliff:g> ist installiert."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"Installation nicht möglich, da das Zertifikat zu groß ist"</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Installation nicht möglich, da die Zertifikatdatei nicht gefunden wurde"</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Installation nicht möglich, da die Zertifikatdatei nicht gelesen werden konnte"</string>
    <string name="no_cert_file_found" product="nosdcard" msgid="3555332946357131929">"Keine Zertifikatdatei auf USB-Speicher gefunden."</string>
    <string name="no_cert_file_found" product="default" msgid="1942077544887243999">"Auf der SD-Karte wurde keine Zertifikats-Datei gefunden."</string>
    <string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Kein USB-Speicher verfügbar"</string>
    <string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD-Karte ist nicht vorhanden."</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Nur der Eigentümer dieses Geräts kann Zertifikate installieren."</string>
</resources>
