<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2007 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_label" msgid="3658948994665187911">"Download-Manager"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Auf Download-Manager zugreifen"</string>
    <string name="permdesc_downloadManager" msgid="4240298564918160337">"Ermöglicht der App den Zugriff auf den Download-Manager zum Herunterladen von Dateien. Diese Funktion kann von bösartigen Apps dazu verwendet werden, Ladevorgänge zu unterbrechen und auf private Daten zuzugreifen."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Erweiterte Funktionen des Download-Managers."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="6985743912436565114">"Der Anwendung wird ermöglicht, auf die erweiterten Funktionen des Download-Managers zuzugreifen. Schädliche Anwendungen können so Downloads unterbrechen und auf persönliche Daten zugreifen."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Benachrichtigungen zu Ladevorgängen senden"</string>
    <string name="permdesc_downloadCompletedIntent" msgid="8672701687104399228">"Ermöglicht es der Anwendung, Benachrichtigungen zu abgeschlossenen Ladevorgängen zu senden. Diese Funktion kann von bösartigen Anwendungen dazu verwendet werden, den Ladevorgang anderer Anwendungen zu stören."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Alle USB-Speicher-Downloads anz."</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Alle Downloads an SD-Karte anzeigen"</string>
    <string name="permdesc_seeAllExternal" msgid="3298948060016417104">"Ermöglicht der App, alle Downloads an die SD-Karte anzuzeigen, unabhängig davon, von welcher App sie heruntergeladen wurden"</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Speicherplatz im Download-Cache reservieren"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="1089583021652571424">"Ermöglicht das Herunterladen von Dateien in den Download-Cache, die nicht automatisch gelöscht werden können, wenn der Download-Manager mehr Speicher benötigt"</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"Dateien ohne Benachrichtigung herunterladen"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="5174806530123417020">"Ermöglicht der App, Dateien über den Download-Manager herunterzuladen, ohne dass dem Nutzer Benachrichtigungen angezeigt werden"</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Zugriff auf alle System-Downloads"</string>
    <string name="permdesc_accessAllDownloads" msgid="4575801130424505112">"Die Anwendung darf alle Downloads anzeigen und ändern, die von Systemanwendungen veranlasst wurden."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Unbenannt&gt;"</string>
    <string name="notification_filename_separator" msgid="7147189522857807618">", "</string>
    <string name="notification_filename_extras" msgid="5549729917695688191">" und <xliff:g id="NUMBER">%d</xliff:g> weitere"</string>
    <string name="notification_download_complete" msgid="840713937779273632">"Ladevorgang abgeschlossen"</string>
    <string name="notification_download_failed" msgid="5343637375905111462">"Download fehlgeschlagen"</string>
    <string name="notification_need_wifi_for_size" msgid="5973127997598540499">"Downloadgröße erfordert WLAN"</string>
    <string name="notification_paused_in_background" msgid="3786873946716398470">"Im Hintergrund pausiert"</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Download zu groß für Netzwerk dieses Betreibers."</string>
    <string name="wifi_required_body" msgid="1675692697446715831">"Dieser Download (<xliff:g id="SIZE">%s </xliff:g>) ist nur über WLAN möglich. "\n\n"Klicken Sie auf <xliff:g id="QUEUE_TEXT">%s </xliff:g> und der Download wird bei Ihrer nächsten WLAN-Einwahl durchgeführt."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"In Warteschlange für späteren Download?"</string>
    <string name="wifi_recommended_body" msgid="7574517147645381271">"Dieser Download (<xliff:g id="SIZE">%s </xliff:g>) könnte die Akkulaufzeit verkürzen und/oder Ihre mobile Datenverbindung überlasten. Je nach Vertrag können Ihnen zusätzliche Kosten entstehen."\n\n" Klicken Sie auf <xliff:g id="QUEUE_TEXT">%s</xliff:g> und der Download wird bei Ihrer nächsten WLAN-Einwahl durchgeführt."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Warteschlange"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Abbrechen"</string>
    <string name="button_start_now" msgid="792123674007840864">"Jetzt starten"</string>
    <string name="download_percent" msgid="6029710962459481088">"<xliff:g id="NUMBER">%d</xliff:g> <xliff:g id="PERCENT">%%</xliff:g>"</string>
</resources>
