<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2009 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="calendar_storage" msgid="5387668002987562770">"Сховішча каляндара"</string>
    <string name="upgrade_msg" msgid="2792831029435070926">"Абнаўленне базы дадзеных Calendar."</string>
    <string name="calendar_default_name" msgid="6924293766625167275">"Па змаўчанні"</string>
    <string name="calendar_info" msgid="6687678621418059281">"Інфармацыя пра каляндар"</string>
    <string name="calendar_info_error" msgid="5575162446528419982">"Памылка"</string>
    <string name="calendar_info_no_calendars" msgid="4287534468186704433">"Няма календароў"</string>
    <string name="calendar_info_events" msgid="1805502308105103803">"Мерапрыемствы: <xliff:g id="EVENTS">%1$d</xliff:g>"</string>
    <string name="calendar_info_events_dirty" msgid="8879392112564499515">"Мерапрыемствы: <xliff:g id="EVENTS_0">%1$d</xliff:g>; незахаваных: <xliff:g id="DIRTY_EVENTS">%2$d</xliff:g>"</string>
    <string name="provider_label" msgid="2306513350843464739">"Calendar"</string>
    <string name="debug_tool_delete_button" msgid="5052706251268452090">"Выдаліць"</string>
    <string name="debug_tool_start_button" msgid="5384780896342913563">"Пачаць"</string>
    <string name="debug_tool_message" msgid="4862486669932821937">"Вы збіраецеся: 1) зрабіць копію базы дадзеных свайго календара на SD-карту ці USB-назапашвальнiк, якія можа прачытаць любое прыкладанне; 2) адправіць яе па электроннай пошце. Абавязкова выдаліце яе, як толькі яна будзе паспяхова скапіравана з прылады ці прыйдзе электронны ліст."</string>
    <string name="debug_tool_email_sender_picker" msgid="2000311987477419397">"Выберыце праграму для адпраўкі файла"</string>
    <string name="debug_tool_email_subject" msgid="2403590332256471194">"Каляндар Db далучаны"</string>
    <string name="debug_tool_email_body" msgid="4835949635324134017">"Далучана база дадзеных майго календара з усімі сустрэчамі і асабістай інфармацыяй. Працуйце з ёй уважліва."</string>
</resources>
