<?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="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">"క్యాలెండర్ Db జోడించబడింది"</string>
    <string name="debug_tool_email_body" msgid="4835949635324134017">"జోడించిన జోడింపు నా అన్ని అపాయింట్‌మెంట్‌లను మరియు వ్యక్తిగత సమాచారాన్ని కలిగి ఉన్న నా క్యాలెండర్ డేటాబేస్. జాగ్రత్తగా వ్యవహరించండి."</string>
</resources>
