<?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="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_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"USB-tár letöltéseit látja"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"SD-kártyára irányuló összes letöltés megtekintése"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Lehetővé teszi az alkalmazás számára az SD-kártyán található összes letöltés megtekintését, függetlenül attól, hogy melyik alkalmazás töltötte le azokat."</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">%s </xliff:g>) befejezéséhez. \n\nÉrintse meg a(z) <xliff:g id="QUEUE_TEXT">%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">%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">%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>
