<?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">"Letöltéskezelő"</string>
    <string name="storage_description" msgid="7982444311558023664">"Letöltések"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Hozzáférés a letöltéskezelőhöz."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Lehetővé teszi az alkalmazás számára a letöltéskezelő elérését fájlok letöltéséhez. A rosszindulatú alkalmazások kihasználhatják ezt a letöltések megzavarására és személyes adatok elérésére."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Speciális letöltéskezelő-funkciók."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Lehetővé teszi az alkalmazás számára a letöltéskezelő speciális funkcióinak elérését. A rosszindulatú alkalmazások kihasználhatják ezt a letöltések megzavarására és személyes adatok elérésére."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Letöltési értesítések küldése."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Lehetővé teszi az alkalmazás számára, hogy értesítést küldjön a befejezett letöltésekről. A rosszindulatú alkalmazások kihasználhatják ezt más, fájlokat letöltő alkalmazások megzavarására."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Hely lefoglalása a letöltési gyorsítótárban"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Az alkalmazás letölthet fájlokat a letöltési gyorsítótárba, amelyeket a letöltéskezelő nem törölhet automatikusan, ha helyre van szüksége."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"fájlok letöltése értesítés nélkül"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Az alkalmazások letölthetnek fájlokat a letöltéskezelő segítségével anélkül, hogy értesítenék róla a felhasználót."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Hozzáférés a rendszer összes letöltéséhez"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Az alkalmazás megnézheti és módosíthatja a rendszer bármelyik alkalmazása által kezdeményezett letöltést."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Névtelen&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"A letöltés befejeződött."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"A letöltés nem sikerült."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"A letöltéshez Wi-Fi kell"</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Szünetel a háttérben."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"A letöltés túl nagy a szolgáltató hálózatához"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Wi-Fi szükséges a letöltés (<xliff:g id="SIZE">%1$s </xliff:g>) befejezéséhez. \n\nÉrintse meg a(z) <xliff:g id="QUEUE_TEXT">%2$s </xliff:g> lehetőséget a letöltés elindításához, ha majd Wi-Fi hálózathoz csatlakozik."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Várólistára teszi későbbi letöltés céljából?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"A fájl (<xliff:g id="SIZE">%1$s </xliff:g>) letöltése miatt hamarabb lemerülhet az akku, megnőhet az adathasználat, így előfizetésétől függően egyéb költségei lehetnek.\n\n Érintse meg a(z) <xliff:g id="QUEUE_TEXT">%2$s</xliff:g> lehetőséget, ha Wi-Fihez csatlakozik."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Várólista"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Mégse"</string>
    <string name="button_start_now" msgid="792123674007840864">"Indítás most"</string>
    <plurals name="notif_summary_active" formatted="false" msgid="7290448463204837173">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> fájl letöltése folyamatban van</item>
      <item quantity="one">1 fájl letöltése folyamatban van</item>
    </plurals>
    <plurals name="notif_summary_waiting" formatted="false" msgid="2814217662029273005">
      <item quantity="other"><xliff:g id="NUMBER">%d</xliff:g> fájl várakozik</item>
      <item quantity="one">1 fájl várakozik</item>
    </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"<xliff:g id="DURATION">%s</xliff:g> van hátra"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"A fájlt nem lehet megnyitni."</string>
    <string name="root_downloads" msgid="4098414876292351487">"Letöltések"</string>
    <string name="download_queued" msgid="3302638231377947451">"Várólistán"</string>
    <string name="download_running" msgid="3925050393361158266">"Folyamatban"</string>
    <string name="download_error" msgid="5144180777324573236">"Sikertelen"</string>
    <string name="download_running_percent" msgid="4305080769167320204">"Folyamatban, <xliff:g id="PERCENTAGE">%s</xliff:g>"</string>
</resources>
