<?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">"Managerul de descărcare"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Accesaţi managerul de descărcare."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Permite aplicaţiei să acceseze managerul de descărcări şi să îl utilizeze pentru a descărca fişiere. Aplicaţiile rău intenţionate pot utiliza această permisiune pentru a perturba descărcările şi pentru a accesa informaţii private."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Funcţii avansate ale managerului de descărcare."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Permite aplicaţiei să acceseze funcţiile avansate ale managerului de descărcări. Aplicaţiile rău intenţionate pot utiliza această permisiune pentru a perturba descărcările şi pentru a accesa informaţii private."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Trimiteţi notificările descărcării."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Permite aplicaţiei să trimită notificări despre descărcările finalizate. Aplicaţiile malware pot folosi această permisiune pentru a deruta alte aplicaţii care descarcă fişiere."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Vedeţi desc. în stoc. USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Vizualizaţi toate descărcările pe cardul SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Permite aplicaţiei să vizualizeze toate descărcările efectuate pe cardul SD, indiferent de aplicaţia care le-a descărcat."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Rezervaţi spaţiu în memoria cache de descărcare"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Permite aplic. să descarce fişiere în memoria cache de desc., care nu poate fi ştearsă în mod automat când managerul de desc. are nevoie de mai mult spaţiu."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"descărcarea fişierelor fără notificare"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Permite aplicaţiei să descarce fişiere prin intermediul managerului de descărcări fără a afişa notificări utilizatorului."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Accesaţi toate descărcările din sistem"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Permite aplicaţiei să vizualizeze şi să modifice toate descărcările iniţiate de orice aplicaţie din sistem."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Fără titlu&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Descărcare finalizată."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Descărcare nereuşită."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Dimen. desc. nec. Wi-Fi"</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Întreruptă în fundal."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Descărcare prea mare pentru reţeaua operatorului"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Trebuie să utilizaţi Wi-Fi pentru a finaliza această descărcare de <xliff:g id="SIZE">%s </xliff:g>. "\n\n"Atingeţi <xliff:g id="QUEUE_TEXT">%s </xliff:g> pentru a începe această descărcare data viitoare când vă conectaţi la o reţea Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Puneţi în aşteptare pentru descărcare ulterioară?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Pornirea ac.desc.de <xliff:g id="SIZE">%s </xliff:g> acum impl.scurt.dur.de viaţă a bater.şi/sau utiliz.exces.a conex.de date mob.şi tax.suplim.din partea oper.de telef.mob.,cf.plan.de date."\n\n" Ating. <xliff:g id="QUEUE_TEXT">%s</xliff:g> pt.a înc.desc.la conect.la Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Listă de aşteptare"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Anulaţi"</string>
    <string name="button_start_now" msgid="792123674007840864">"Începeţi acum"</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">"Se descarcă un fişier"</item>
    <item quantity="other" msgid="9087228371320573153">"Se descarcă <xliff:g id="NUMBER">%d</xliff:g> (de) fişiere"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"Un fişier în aşteptare"</item>
    <item quantity="other" msgid="549229034166062887">"<xliff:g id="NUMBER">%d</xliff:g> (de) fişiere în aşteptare"</item>
  </plurals>
    <!-- no translation found for download_remaining (3139295890887972718) -->
    <skip />
    <string name="download_no_application_title" msgid="7935659741162801699">"Fişierul nu poate fi deschis"</string>
</resources>
