<?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">"Gib 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>
    <!-- no translation found for userkey_type (6214833257030657106) -->
    <skip />
    <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">"Gib das richtige Passwort ein."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Gib das Passwort ein."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Gib einen Namen ein."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Gib einen Namen ein, der ausschließlich aus Buchstaben und Zahlen besteht."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Das Zertifikat konnte nicht gespeichert werden. Der Speicher für die Anmeldedaten 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="action_missing_private_key" msgid="7543470057312920042">"Für die Installation von Zertifikaten ist ein privater Schlüssel erforderlich"</string>
    <string name="action_missing_user_cert" msgid="3727411730202316771">"Für die Installation von privaten Schlüsseln ist ein Zertifikat erforderlich"</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, weil das Zertifikat zu groß ist"</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Installation nicht möglich, weil die Zertifikatdatei nicht gefunden wurde"</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Installation nicht möglich, weil die Zertifikatdatei nicht gelesen werden konnte"</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Nur der Eigentümer dieses Geräts kann Zertifikate installieren."</string>
    <string name="credential_usage_label" msgid="1513892208033156805">"Verwendung der Anmeldedaten:"</string>
  <string-array name="credential_usage">
    <item msgid="375085478373011304">"VPN und Apps"</item>
    <item msgid="692322974985472861">"WLAN"</item>
  </string-array>
    <string name="certificate_capabilities_warning" msgid="4158609401937799110">"Hinweis: Der Aussteller dieses Zertifikats prüft unter Umständen den gesamten Traffic zum und ausgehend vom Gerät."</string>
    <string name="wifi_title" msgid="8475811746333426489">"WLAN-Profile"</string>
    <string name="wifi_detail_title" msgid="3627332137252994395">"Details für %s"</string>
    <string name="wifi_detail_label" msgid="3032151019356747583">"Details"</string>
    <string name="wifi_install_label" msgid="1449629407724323233">"Installieren"</string>
    <string name="wifi_installing_label" msgid="8387393993627129025">"Installation"</string>
    <string name="wifi_cancel_label" msgid="1328748037608392134">"Abbrechen"</string>
    <string name="wifi_dismiss_label" msgid="1916684434873972698">"Schließen"</string>
    <string name="wifi_no_config" msgid="1835743123288916755">"Keine"</string>
    <string name="wifi_config_text" msgid="8259587306773310314">"Name: %1$s\nFQDN: %2$s\nRoaming-Konsortien: %3$s\nBereich: %4$s\nAuthentifizierungsmethode: EAP-%5$s\n"</string>
    <string name="wifi_ttls_config_text" msgid="2002413183253872168">"Nutzername: %s\n"</string>
    <string name="wifi_tls_config_text" msgid="9062328536640168510">"Clientzertifikat:\n%1$s\nSchlüssel: %2$s\n"</string>
    <string name="wifi_sim_config_text" msgid="1666019954520831840">"SIM: %s\n"</string>
    <string name="wifi_trust_config_text" msgid="5916047381475747783">"Vertrauenswürdiges Zertifikat:\n%s\n"</string>
    <string name="install_done_title" msgid="4822989918460334497">"Anmeldedaten installiert"</string>
    <string name="install_done" msgid="1522718684172097080">"Die Anmeldedaten für <xliff:g id="NAME">%1$s</xliff:g> wurden zu den gespeicherten WLAN-Netzwerken hinzugefügt."</string>
    <string name="done_label" msgid="5597425930652904250">"Fertig"</string>
    <string name="wifi_installer_detail" msgid="63879632832701669">"Installiere WLAN-Anmeldedaten, um eine Verbindung mit Netzwerken herzustellen, die über <xliff:g id="NAME">%1$s</xliff:g> verfügbar sind."</string>
    <string name="wifi_installer_download_error" msgid="5429453090956277692">"Die heruntergeladene Datei enthält Fehler und kann nicht installiert werden. Vergewissere dich, dass du die Datei von der korrekten Quelle heruntergeladen hast."</string>
    <string name="wifi_installer_fail" msgid="894483173306576331">"Die WLAN-Anmeldedaten können nicht installiert werden. Lade die Datei erneut herunter."</string>
    <string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"Installation abgebrochen"</string>
    <string name="wifi_installer_fail_title" msgid="5547079779067835479">"Installation nicht möglich"</string>
    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"Aktiviere WLAN und versuche es noch einmal."</string>
</resources>
