<?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">"Tinanggap: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_declined" msgid="6707617183246608552">"Tinanggihan: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_tentative" msgid="8250995722130443785">"Pansamantala: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_canceled" msgid="3949893881872084244">"Kinansela: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_updated" msgid="8529675857361702860">"Na-update: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_when" msgid="2765696159697448656">"Kailan: <xliff:g id="WHEN">%s</xliff:g>"</string>
    <string name="meeting_where" msgid="5992367535856553079">"Saan: <xliff:g id="WHERE">%s</xliff:g>"</string>
    <string name="meeting_recurring" msgid="3134262212606714023">"Kailan: <xliff:g id="EVENTDATE">%s</xliff:g> (paulit-ulit)"</string>
    <string name="meeting_allday" msgid="6696389765484663513">"Kailan: <xliff:g id="EVENTDATE">%s</xliff:g> (buong araw)"</string>
    <string name="meeting_allday_recurring" msgid="2320264182781062684">"Kailan: <xliff:g id="EVENTDATE">%s</xliff:g> (buong araw, umuulit)"</string>
    <string name="notification_exchange_calendar_added" msgid="6823659622379350159">"Idinagdag ang kalendaryong Exchange"</string>
    <string name="app_name" msgid="5316597712787122829">"Magpalitan ng Mga Serbisyo"</string>
    <string name="exception_cancel" msgid="6160117429428313805">"Kinansela ang kaganapang ito para sa: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="exception_updated" msgid="3397583105901142050">"Ang mga detalye ng kaganapang ito ay binago para sa: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="policy_dont_allow_storage_cards" msgid="2765447013574188473">"Huwag payagan ang mga storage card"</string>
    <string name="policy_dont_allow_unsigned_apps" msgid="4896164334956001479">"Huwag payagan ang mga di-pirmadong app"</string>
    <string name="policy_dont_allow_unsigned_installers" msgid="1326544905185523540">"Huwag payagan di-pirmadong app installer"</string>
    <string name="policy_dont_allow_wifi" msgid="3109487776704143995">"Huwag payagan ang Wi-Fi"</string>
    <string name="policy_dont_allow_text_messaging" msgid="7846141657345860427">"Huwag payagan pagpapadala text message"</string>
    <string name="policy_dont_allow_pop_imap" msgid="4702932192358698651">"Huwag payagan mga POP3 o IMAP na account"</string>
    <string name="policy_dont_allow_irda" msgid="1848561629495912430">"Wag payagan mga komunikasyon sa infrared"</string>
    <string name="policy_dont_allow_html" msgid="5888652525907651489">"Huwag payagan ang HTML na email"</string>
    <string name="policy_dont_allow_browser" msgid="1018764395507493616">"Huwag payagan ang mga browser"</string>
    <string name="policy_dont_allow_consumer_email" msgid="6958427300686692292">"Huwag payagan ang email ng consumer"</string>
    <string name="policy_dont_allow_internet_sharing" msgid="2370083814654927695">"Huwag payagan pagbabahagi ng internet"</string>
    <string name="policy_require_smime" msgid="673557150920820590">"Hilingin ang mga SMIME na mensahe"</string>
    <string name="policy_bluetooth_restricted" msgid="5248824127186039567">"Paghigpitan ang paggamit ng Bluetooth"</string>
    <string name="policy_app_blacklist" msgid="8169194058285873461">"Huwag payagan ang mga tinukoy na app"</string>
    <string name="policy_app_whitelist" msgid="3670572644342165306">"Payagan lamang ang mga tinukoy na app"</string>
    <string name="policy_text_truncation" msgid="1783448050735715818">"Paghigpitan ang laki ng tekstong email"</string>
    <string name="policy_html_truncation" msgid="102158408055486343">"Paghigpitan ang laki ng HTML na email"</string>
    <string name="policy_require_sd_encryption" msgid="366468398301273342">"Hilingin ang pag-encrypt ng SD card"</string>
    <string name="policy_dont_allow_attachments" msgid="6250520458670348907">"Huwag payagan ang mga attachment"</string>
    <string name="policy_max_attachment_size" msgid="4020279603050888661">"Paghigpitan ang laki ng attachment"</string>
    <string name="policy_require_manual_sync_roaming" msgid="6637416341015662148">"Payag lang manu-mano sync kapag roaming"</string>
    <string name="policy_require_encryption" msgid="7984702283392885348">"Hilingin ang pag-encrypt ng device"</string>
    <string name="account_setup_options_mail_window_auto" msgid="4188895354366183790">"Awtomatiko"</string>
    <string name="account_setup_options_mail_window_1day" msgid="3965715241135811407">"Isang araw"</string>
    <string name="account_setup_options_mail_window_3days" msgid="736181102295878114">"Tatlong araw"</string>
    <string name="account_setup_options_mail_window_1week" msgid="5639718031108023741">"Isang linggo"</string>
    <string name="account_setup_options_mail_window_2weeks" msgid="4567049268124213035">"Dalawang linggo"</string>
    <string name="account_setup_options_mail_window_1month" msgid="5846359669750047081">"Isang buwan"</string>
    <string name="account_setup_options_mail_window_all" msgid="5372861827683632364">"Lahat"</string>
</resources>
