<?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">"日历调试工具已附加"</string>
    <string name="debug_tool_email_body" msgid="4835949635324134017">"附件是我的日历数据库，其中包含我的全部约会和个人信息，因此请谨慎处理。"</string>
</resources>
