<?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>
    <string name="userkey_type" msgid="6214833257030657106">"Algorithmus:"</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">"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>
