<?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="293118547772095111">"Microsoft Exchange ActiveSync"</string>
    <string name="meeting_accepted" msgid="3212429159225789973">"Accepted: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_declined" msgid="1171426219920875691">"Declined: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_tentative" msgid="5057443956630531997">"Tentative: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_canceled" msgid="3913922862382539900">"Cancelled: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_updated" msgid="5960663236439072658">"Updated: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_when" msgid="1905576664682173880">"When: <xliff:g id="WHEN">%s</xliff:g>"</string>
    <string name="meeting_where" msgid="6498631574145121862">"Where: <xliff:g id="WHERE">%s</xliff:g>"</string>
    <string name="meeting_recurring" msgid="2752008481765880928">"When: <xliff:g id="EVENTDATE">%s</xliff:g> (recurring)"</string>
    <string name="meeting_allday" msgid="7251209063071628040">"When: <xliff:g id="EVENTDATE">%s</xliff:g> (all day)"</string>
    <string name="meeting_allday_recurring" msgid="4545762363537362545">"When: <xliff:g id="EVENTDATE">%s</xliff:g> (all day, recurring)"</string>
    <string name="app_name" msgid="1707639359526090662">"Exchange Services"</string>
    <string name="exception_cancel" msgid="8972887597771126871">"This event has been cancelled for: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="exception_updated" msgid="329192591551400871">"The details of this event have been changed for: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="policy_dont_allow_storage_cards" msgid="1305111581282078881">"Don\'t allow storage cards"</string>
    <string name="policy_dont_allow_unsigned_apps" msgid="7663879438028397642">"Don\'t allow unsigned apps"</string>
    <string name="policy_dont_allow_unsigned_installers" msgid="8227232531632246827">"Don\'t allow unsigned app installers"</string>
    <string name="policy_dont_allow_wifi" msgid="8501275982154914194">"Don\'t allow Wi-Fi"</string>
    <string name="policy_dont_allow_text_messaging" msgid="860590081742537792">"Don\'t allow text messaging"</string>
    <string name="policy_dont_allow_pop_imap" msgid="5772539239469636191">"Don\'t allow POP3 or IMAP accounts"</string>
    <string name="policy_dont_allow_irda" msgid="8230803019935893114">"Don\'t allow infrared communications"</string>
    <string name="policy_dont_allow_html" msgid="3909470006782362967">"Don\'t allow HTML email"</string>
    <string name="policy_dont_allow_browser" msgid="241728112385525092">"Don\'t allow browsers"</string>
    <string name="policy_dont_allow_consumer_email" msgid="2473755560531860915">"Don\'t allow consumer email"</string>
    <string name="policy_dont_allow_internet_sharing" msgid="8926902533477728994">"Don\'t allow Internet sharing"</string>
    <string name="policy_require_smime" msgid="6445017199744800426">"Require SMIME messages"</string>
    <string name="policy_bluetooth_restricted" msgid="2877695021606992022">"Restrict Bluetooth usage"</string>
    <string name="policy_app_blacklist" msgid="6955451921925210944">"Disallow specified apps"</string>
    <string name="policy_app_whitelist" msgid="73673250614393830">"Allow only specified apps"</string>
    <string name="policy_text_truncation" msgid="2098855720139889616">"Restrict text email size"</string>
    <string name="policy_html_truncation" msgid="4913206221060438112">"Restrict HTML email size"</string>
    <string name="policy_require_sd_encryption" msgid="3911913080904633038">"Require SD card encryption"</string>
    <string name="policy_dont_allow_attachments" msgid="8422502533001368811">"Don\'t allow attachments"</string>
    <string name="policy_max_attachment_size" msgid="8872049367518056209">"Restrict attachment size"</string>
    <string name="policy_require_manual_sync_roaming" msgid="4779633041935012627">"Only allow manual sync while roaming"</string>
    <string name="policy_require_encryption" msgid="4176146021220010140">"Require device encryption"</string>
    <string name="account_setup_options_mail_window_auto" msgid="7407981634952005775">"Automatic"</string>
    <string name="account_setup_options_mail_window_1day" msgid="4169162439752592189">"One day"</string>
    <string name="account_setup_options_mail_window_3days" msgid="2330167870774583574">"Three days"</string>
    <string name="account_setup_options_mail_window_1week" msgid="5066291978475859713">"One week"</string>
    <string name="account_setup_options_mail_window_2weeks" msgid="2127842445792663461">"Two weeks"</string>
    <string name="account_setup_options_mail_window_1month" msgid="4785039795926771180">"One month"</string>
    <string name="account_setup_options_mail_window_all" msgid="4794683936065721438">"All"</string>
    <string name="auth_error_notification_title" msgid="6768042010440968454">"Authentication error"</string>
    <string name="auth_error_notification_text" msgid="3590528965691740509">"Touch to edit account settings for <xliff:g id="ACCOUNT">%s</xliff:g>"</string>
    <string name="email_settings_not_available" msgid="59579952494440349">"Re-enable the email application to view settings."</string>
</resources>
