<?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>
    <string name="download_percent" msgid="6889426633242976698">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
  <plurals name="notif_summary_active">
    <item quantity="one" msgid="8475775855911967027">"1 fájl letöltése folyamatban"</item>
    <item quantity="other" msgid="9087228371320573153">"<xliff:g id="NUMBER">%d</xliff:g> fájl letöltése folyamatban"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"1 fájl várakozik"</item>
    <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> 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>
</resources>
