<?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">"Menedżer pobierania"</string>
    <string name="permlab_downloadManager" msgid="7779544811202855500">"Dostęp do menedżera pobierania."</string>
    <string name="permdesc_downloadManager" msgid="4237406545998908947">"Zezwala aplikacji na dostęp do menedżera pobierania i korzystanie z niego w celu pobierania plików. Złośliwe aplikacje mogą wykorzystać tę możliwość w celu zakłócenia pobierania i uzyskania dostępu do informacji prywatnych."</string>
    <string name="permlab_downloadManagerAdvanced" msgid="7103642833308809655">"Zaawansowane funkcje menedżera pobierania."</string>
    <string name="permdesc_downloadManagerAdvanced" msgid="2659546004160962761">"Zezwala aplikacji na dostęp do zaawansowanych funkcji menedżera pobierania. Złośliwe aplikacje mogą wykorzystać tę możliwość w celu zakłócenia pobierania i uzyskania dostępu do informacji prywatnych."</string>
    <string name="permlab_downloadCompletedIntent" msgid="945913803765675685">"Wysyłanie powiadomień o pobraniu."</string>
    <string name="permdesc_downloadCompletedIntent" msgid="2094706189855699533">"Zezwala aplikacji na wysyłanie powiadomień o ukończonym pobieraniu. Złośliwe aplikacje mogą używać tego uprawnienia do wprowadzania w błąd innych aplikacji, które pobierają pliki."</string>
    <string name="permlab_seeAllExternal" product="nosdcard" msgid="4084575448409212628">"Zobacz pliki pobrane na USB"</string>
    <string name="permlab_seeAllExternal" product="default" msgid="140058400609165726">"Sprawdzanie wszystkich plików pobranych na kartę SD"</string>
    <string name="permdesc_seeAllExternal" msgid="1672759909065511233">"Zezwala aplikacji na dostęp do listy wszystkich plików pobranych na kartę SD, niezależnie od tego, w której aplikacji zostały one pobrane."</string>
    <string name="permlab_downloadCacheNonPurgeable" msgid="3069534308882047412">"Zarezerwuj miejsce w pamięci podręcznej pobierania"</string>
    <string name="permdesc_downloadCacheNonPurgeable" msgid="2408760720334570420">"Zezwala aplikacji na pobieranie plików do pamięci podręcznej, która nie może zostać automatycznie usunięta, gdy menedżer pobierania potrzebuje więcej miejsca."</string>
    <string name="permlab_downloadWithoutNotification" msgid="8837971946078327262">"pobieraj pliki bez powiadomienia"</string>
    <string name="permdesc_downloadWithoutNotification" msgid="8483135034298639727">"Zezwala aplikacji na pobieranie plików przez menedżera pobierania bez wyświetlania powiadomień."</string>
    <string name="permlab_accessAllDownloads" msgid="2436240495424393717">"Dostęp do wszystkich pobranych pozycji w systemie"</string>
    <string name="permdesc_accessAllDownloads" msgid="1871832254578267128">"Zezwala aplikacji na wyświetlanie i modyfikowanie wszystkich plików pobranych w dowolnej aplikacji w systemie."</string>
    <string name="download_unknown_title" msgid="7015124071247271585">"&lt;Bez nazwy&gt;"</string>
    <string name="notification_download_complete" msgid="5443563299253103667">"Pobieranie ukończone."</string>
    <string name="notification_download_failed" msgid="8612136111952014978">"Pobranie nie powiodło się."</string>
    <string name="notification_need_wifi_for_size" msgid="2556172885154833575">"Pobieranie wymaga Wi-Fi"</string>
    <string name="notification_paused_in_background" msgid="4328508073283591772">"Wstrzymane w tle."</string>
    <string name="wifi_required_title" msgid="1995971416871498179">"Zbyt duży plik do pobrania dla sieci operatora"</string>
    <string name="wifi_required_body" msgid="3067694630143784449">"Do pobrania <xliff:g id="SIZE">%s </xliff:g> musisz użyć połączenia Wi-Fi. "\n\n"Wybierz <xliff:g id="QUEUE_TEXT">%s </xliff:g>, aby pobrać po nawiązaniu połączenia z siecią Wi-Fi."</string>
    <string name="wifi_recommended_title" msgid="7441589306734687400">"Czy dodać do kolejki do późniejszego pobrania?"</string>
    <string name="wifi_recommended_body" msgid="1314735166699936073">"Pobranie <xliff:g id="SIZE">%s </xliff:g> może skrócić czas pracy na baterii i spowodować przekroczenie limitu transmisji danych, za co operator może naliczyć dodatkowe opłaty."\n\n"Wybierz <xliff:g id="QUEUE_TEXT">%s</xliff:g>, aby pobrać po połączeniu z siecią Wi-Fi."</string>
    <string name="button_queue_for_wifi" msgid="422576726189179221">"Dodaj do kolejki"</string>
    <string name="button_cancel_download" msgid="2430166148737975604">"Anuluj"</string>
    <string name="button_start_now" msgid="792123674007840864">"Rozpocznij teraz"</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">"Pobieram 1 plik"</item>
    <item quantity="other" msgid="9087228371320573153">"Pobieram <xliff:g id="NUMBER">%d</xliff:g> pliki(ów)"</item>
  </plurals>
  <plurals name="notif_summary_waiting">
    <item quantity="one" msgid="5537481763963544278">"Czeka 1 plik"</item>
    <item quantity="other" msgid="549229034166062887">"Oczekujące pliki: <xliff:g id="NUMBER">%d</xliff:g>"</item>
  </plurals>
    <string name="download_remaining" msgid="3139295890887972718">"Pozostało: <xliff:g id="DURATION">%s</xliff:g>"</string>
    <string name="download_no_application_title" msgid="7935659741162801699">"Nie można otworzyć pliku"</string>
</resources>
