<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2008 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="exchange_name_alternate" msgid="5772529644749041052">"Microsoft Exchange ActiveSync"</string>
    <string name="meeting_accepted" msgid="8796609373330400268">"已接受：<xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_declined" msgid="6707617183246608552">"已拒绝：<xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_tentative" msgid="8250995722130443785">"暂定：<xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_canceled" msgid="3949893881872084244">"已取消：<xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_updated" msgid="8529675857361702860">"已更新：<xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_when" msgid="2765696159697448656">"时间：<xliff:g id="WHEN">%s</xliff:g>"</string>
    <string name="meeting_where" msgid="5992367535856553079">"地点：<xliff:g id="WHERE">%s</xliff:g>"</string>
    <string name="meeting_recurring" msgid="3134262212606714023">"时间：<xliff:g id="EVENTDATE">%s</xliff:g>（重复）"</string>
    <string name="meeting_allday" msgid="6696389765484663513">"日期：<xliff:g id="EVENTDATE">%s</xliff:g>（全天）"</string>
    <string name="meeting_allday_recurring" msgid="2320264182781062684">"日期：<xliff:g id="EVENTDATE">%s</xliff:g>（全天，循环）"</string>
    <string name="notification_exchange_calendar_added" msgid="6823659622379350159">"已添加 Exchange 日历"</string>
    <string name="app_name" msgid="5316597712787122829">"Exchange 服务"</string>
    <string name="exception_cancel" msgid="6160117429428313805">"定于以下日期的活动已取消：<xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="exception_updated" msgid="3397583105901142050">"定于以下日期的活动的详细信息已更改：<xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="policy_dont_allow_attachments" msgid="7924303012593832731">"不允许下载附件"</string>
    <string name="policy_dont_allow_storage_cards" msgid="5600453721690619515">"不允许使用存储卡"</string>
    <string name="policy_dont_allow_unsigned_apps" msgid="7391405270957498716">"不允许安装未签名的应用程序"</string>
    <string name="policy_dont_allow_unsigned_installers" msgid="8124763529572916905">"不允许使用未签名的安装程序安装应用程序"</string>
    <string name="policy_dont_allow_wifi" msgid="8972952227139360866">"不允许 WiFi"</string>
    <string name="policy_dont_allow_text_messaging" msgid="2705534889421216691">"不允许使用短信功能"</string>
    <string name="policy_dont_allow_pop_imap" msgid="1563948038306495433">"不允许使用 POP3 或 IMAP 帐户"</string>
    <string name="policy_dont_allow_irda" msgid="2864744455266260846">"不允许红外通信"</string>
    <string name="policy_dont_allow_html" msgid="5004059292137838041">"不允许接收 HTML 电子邮件"</string>
    <string name="policy_dont_allow_browser" msgid="1898383003253987916">"不允许浏览器用户"</string>
    <string name="policy_dont_allow_consumer_email" msgid="4208507021679199773">"不允许接收消费者电子邮件"</string>
    <string name="policy_dont_allow_internet_sharing" msgid="8866772202653485379">"不允许共享互联网连接"</string>
    <string name="policy_enable_password_recovery" msgid="3082147682445934504">"支持恢复密码"</string>
    <string name="policy_require_smime" msgid="8044392674810605617">"电子邮件必须采用 SMIME 格式"</string>
    <string name="policy_require_manual_sync_roaming" msgid="7140792029820703854">"只允许在漫游时手动同步"</string>
    <string name="policy_bluetooth_restricted" msgid="8992284721368381918">"限制蓝牙功能"</string>
    <string name="policy_app_blacklist" msgid="5997243461425995435">"不允许使用指定的应用程序"</string>
    <string name="policy_app_whitelist" msgid="8401297908870017913">"只允许使用指定的应用程序"</string>
    <string name="policy_max_calendar_age" msgid="6394557044887221078">"限制日历活动的日期"</string>
    <string name="policy_max_email_age" msgid="3303242808829681352">"限制电子邮件日期"</string>
    <string name="policy_text_truncation" msgid="5800480928209379255">"限制文本电子邮件的大小"</string>
    <string name="policy_html_truncation" msgid="629030762178870832">"限制 HTML 电子邮件的大小"</string>
    <string name="policy_max_attachment_size" msgid="6191034264088052742">"限制附件的大小"</string>
    <string name="policy_require_encryption" msgid="9370390981258441">"要求设备或 SD 卡加密"</string>
    <string name="account_setup_options_mail_window_auto" msgid="4188895354366183790">"自动"</string>
    <string name="account_setup_options_mail_window_1day" msgid="3965715241135811407">"一天"</string>
    <string name="account_setup_options_mail_window_3days" msgid="736181102295878114">"三天"</string>
    <string name="account_setup_options_mail_window_1week" msgid="5639718031108023741">"一周"</string>
    <string name="account_setup_options_mail_window_2weeks" msgid="4567049268124213035">"两周"</string>
    <string name="account_setup_options_mail_window_1month" msgid="5846359669750047081">"一个月"</string>
    <string name="account_setup_options_mail_window_all" msgid="5372861827683632364">"全部"</string>
</resources>
