<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2008 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="exchange_name_alternate" msgid="5772529644749041052">"Microsoft Exchange ActiveSync"</string>
    <string name="meeting_accepted" msgid="8796609373330400268">"Zaakceptowano: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_declined" msgid="6707617183246608552">"Odrzucono: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_tentative" msgid="8250995722130443785">"Wahanie: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_canceled" msgid="3949893881872084244">"Anulowano: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_updated" msgid="8529675857361702860">"Zaktualizowano: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_when" msgid="2765696159697448656">"Kiedy: <xliff:g id="WHEN">%s</xliff:g>"</string>
    <string name="meeting_where" msgid="5992367535856553079">"Gdzie: <xliff:g id="WHERE">%s</xliff:g>"</string>
    <string name="meeting_recurring" msgid="3134262212606714023">"Kiedy: <xliff:g id="EVENTDATE">%s</xliff:g> (powtarzane)"</string>
    <string name="meeting_allday" msgid="6696389765484663513">"Data: <xliff:g id="EVENTDATE">%s</xliff:g> (cały dzień)"</string>
    <string name="meeting_allday_recurring" msgid="2320264182781062684">"Data: <xliff:g id="EVENTDATE">%s</xliff:g> (cały dzień, cykliczne)"</string>
    <string name="notification_exchange_calendar_added" msgid="6823659622379350159">"Dodano kalendarz Exchange"</string>
    <string name="app_name" msgid="5316597712787122829">"Usługi wymiany"</string>
    <string name="exception_cancel" msgid="6160117429428313805">"To zdarzenie zostało anulowane dla: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="exception_updated" msgid="3397583105901142050">"Szczegóły tego zdarzenia zostały zmienione dla: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="policy_dont_allow_storage_cards" msgid="2765447013574188473">"Nie zezwalaj na karty pamięci"</string>
    <string name="policy_dont_allow_unsigned_apps" msgid="4896164334956001479">"Nie zezwalaj na niepodpisane aplikacje"</string>
    <string name="policy_dont_allow_unsigned_installers" msgid="1326544905185523540">"Nie zezwalaj na niepodpisane instalatory"</string>
    <string name="policy_dont_allow_wifi" msgid="3109487776704143995">"Nie zezwalaj na używanie sieci Wi-Fi"</string>
    <string name="policy_dont_allow_text_messaging" msgid="7846141657345860427">"Nie zezwalaj na wiadomości SMS"</string>
    <string name="policy_dont_allow_pop_imap" msgid="4702932192358698651">"Nie zezwalaj na konta POP3 ani IMAP"</string>
    <string name="policy_dont_allow_irda" msgid="1848561629495912430">"Nie zezwalaj na łączność w podczerwieni"</string>
    <string name="policy_dont_allow_html" msgid="5888652525907651489">"Nie zezwalaj na e-maile w formacie HTML"</string>
    <string name="policy_dont_allow_browser" msgid="1018764395507493616">"Nie zezwalaj na przeglądarki"</string>
    <string name="policy_dont_allow_consumer_email" msgid="6958427300686692292">"Nie zezwalaj na e-maile komercyjne"</string>
    <string name="policy_dont_allow_internet_sharing" msgid="2370083814654927695">"Nie zezwalaj na udostępnianie internetu"</string>
    <string name="policy_require_smime" msgid="673557150920820590">"Wymagaj wiadomości w formacie SMIME"</string>
    <string name="policy_bluetooth_restricted" msgid="5248824127186039567">"Ogranicz użycie Bluetooth"</string>
    <string name="policy_app_blacklist" msgid="8169194058285873461">"Nie zezwalaj na określone aplikacje"</string>
    <string name="policy_app_whitelist" msgid="3670572644342165306">"Zezwalaj tylko na określone aplikacje"</string>
    <string name="policy_text_truncation" msgid="1783448050735715818">"Ograniczaj rozmiar e-maili tekstowych"</string>
    <string name="policy_html_truncation" msgid="102158408055486343">"Ogranicz rozmiar e-maili w formacie HTML"</string>
    <string name="policy_require_sd_encryption" msgid="366468398301273342">"Wymagaj szyfrowania na karcie SD"</string>
    <string name="policy_dont_allow_attachments" msgid="6250520458670348907">"Nie zezwalaj na załączniki"</string>
    <string name="policy_max_attachment_size" msgid="4020279603050888661">"Ograniczaj rozmiar załączników"</string>
    <string name="policy_require_manual_sync_roaming" msgid="6637416341015662148">"W roamingu tylko synchronizacja ręczna"</string>
    <string name="policy_require_encryption" msgid="7984702283392885348">"Wymagaj szyfrowania w urządzeniu"</string>
    <string name="account_setup_options_mail_window_auto" msgid="4188895354366183790">"Automatycznie"</string>
    <string name="account_setup_options_mail_window_1day" msgid="3965715241135811407">"Jeden dzień"</string>
    <string name="account_setup_options_mail_window_3days" msgid="736181102295878114">"Trzy dni"</string>
    <string name="account_setup_options_mail_window_1week" msgid="5639718031108023741">"Jeden tydzień"</string>
    <string name="account_setup_options_mail_window_2weeks" msgid="4567049268124213035">"Dwa tygodnie"</string>
    <string name="account_setup_options_mail_window_1month" msgid="5846359669750047081">"Jeden miesiąc"</string>
    <string name="account_setup_options_mail_window_all" msgid="5372861827683632364">"Wszystkie"</string>
</resources>
