<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2020 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_name" msgid="1756632159204796305">"Kalendarz"</string>
    <string name="no_dialler" msgid="1448265958659890310">"Brak dostępnego telefonu"</string>
    <string name="no_events" msgid="2454460886004475314">"Brak zaplanowanych wydarzeń. Masz wolne."</string>
    <string name="no_calendars" msgid="5059614627806215716">"Być może kalendarz właśnie się uruchamia lub musisz sprawdzić ustawienia w aplikacji towarzyszącej"</string>
    <string name="all_day_event" msgid="5817490740700803034">"Cały dzień"</string>
    <!-- no translation found for phone_number (3879925006862072135) -->
    <skip />
    <string name="phone_number_with_pin" msgid="6760582665093825412">"Kody PIN (<xliff:g id="NUMBER">%1$s</xliff:g>): <xliff:g id="PIN_0">%2$s</xliff:g>"</string>
    <!-- no translation found for all_day_title (3520731243145895938) -->
</resources>
