<?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">"Надограђивање базе података о контактима."</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">"Календар"</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 меморији коју свака апликација може да прочита и 2) послаћете је е-поштом. Обавезно избришите копију одмах након копирања на уређај или пријема поруке е-поште."</string>
    <string name="debug_tool_email_sender_picker" msgid="2000311987477419397">"Изаберите програм за слање датотеке"</string>
    <string name="debug_tool_email_subject" msgid="2403590332256471194">"Приложена је алатка за уклањање грешака у Календару"</string>
    <string name="debug_tool_email_body" msgid="4835949635324134017">"У прилогу се налази база података мог календара са свим заказаним обавезама и личним подацима. Поступајте пажљиво."</string>
</resources>
