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