<?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">"Ukuvumelanisa Okusebenzayo Kokushintshanisa kwe-Microsoft"</string>
    <string name="meeting_accepted" msgid="8796609373330400268">"Kwamukeliwe: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_declined" msgid="6707617183246608552">"Inqabile: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_tentative" msgid="8250995722130443785">"Okwesikhashana: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_canceled" msgid="3949893881872084244">"Kukhanseliwe: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_updated" msgid="8529675857361702860">"Kubuyekeziwe: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_when" msgid="2765696159697448656">"Nini: <xliff:g id="WHEN">%s</xliff:g>"</string>
    <string name="meeting_where" msgid="5992367535856553079">"Kuphi: <xliff:g id="WHERE">%s</xliff:g>"</string>
    <string name="meeting_recurring" msgid="3134262212606714023">"Nini: <xliff:g id="EVENTDATE">%s</xliff:g> (okuvela njalo)"</string>
    <string name="meeting_allday" msgid="6696389765484663513">"Nini: <xliff:g id="EVENTDATE">%s</xliff:g> (usuku lonke)"</string>
    <string name="meeting_allday_recurring" msgid="2320264182781062684">"Nini: <xliff:g id="EVENTDATE">%s</xliff:g> (usuku lonke, okuqhubekayo)"</string>
    <string name="notification_exchange_calendar_added" msgid="6823659622379350159">"Ukushintsha ikhalenda kufakiwe"</string>
    <string name="app_name" msgid="5316597712787122829">"Ukushintshelana Izinsizakalo"</string>
    <string name="exception_cancel" msgid="6160117429428313805">"Lesi senzakalo sikhanselwe i-<xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="exception_updated" msgid="3397583105901142050">"Imininingwane yalesenzakalo ishintshelwe:<xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="policy_dont_allow_attachments" msgid="7924303012593832731">"ungavumeli okunamathiselwa ku-imeyli"</string>
    <string name="policy_dont_allow_storage_cards" msgid="5600453721690619515">"ungavumeli amakhadi okulonda"</string>
    <string name="policy_dont_allow_unsigned_apps" msgid="7391405270957498716">"ungavumeli izinhlelo zokusebenza ezingasayiniwe"</string>
    <string name="policy_dont_allow_unsigned_installers" msgid="8124763529572916905">"ungavumeli izifaki ezingasayiniwe zezinhlelo zokusebenza"</string>
    <string name="policy_dont_allow_wifi" msgid="8972952227139360866">"ungavumeli i-wifi"</string>
    <string name="policy_dont_allow_text_messaging" msgid="2705534889421216691">"ungavumeli imilayezo yombhalo"</string>
    <string name="policy_dont_allow_pop_imap" msgid="1563948038306495433">"ungavumeli i-POP3 noma ama-akhawunti e-IMAP"</string>
    <string name="policy_dont_allow_irda" msgid="2864744455266260846">"ungavumeli ukukhulumisana kwe-infrared"</string>
    <string name="policy_dont_allow_html" msgid="5004059292137838041">"ungavumeli i-imeyli ye-HTML"</string>
    <string name="policy_dont_allow_browser" msgid="1898383003253987916">"ungavumeli isiphequluli"</string>
    <string name="policy_dont_allow_consumer_email" msgid="4208507021679199773">"ungavumeli i-imeyli yomthengi"</string>
    <string name="policy_dont_allow_internet_sharing" msgid="8866772202653485379">"ungavumeli ukwabelana nge-inthanethi"</string>
    <string name="policy_enable_password_recovery" msgid="3082147682445934504">"ubambiswano lokuthola i-password"</string>
    <string name="policy_require_smime" msgid="8044392674810605617">"idinga imiyalezo ye-SMME"</string>
    <string name="policy_require_manual_sync_roaming" msgid="7140792029820703854">"vumela ukuvumelanisa ngokwenziwa ngezandla kuphela uma uzulazula"</string>
    <string name="policy_bluetooth_restricted" msgid="8992284721368381918">"Nciphisa ukusetshenziswa kwe-Bluetooth"</string>
    <string name="policy_app_blacklist" msgid="5997243461425995435">"Ungavumeli izinhlelo ezibonisiwe"</string>
    <string name="policy_app_whitelist" msgid="8401297908870017913">"vumela kuphela izinhlelo zokusebenza ezibonisiwe"</string>
    <string name="policy_max_calendar_age" msgid="6394557044887221078">"Linganisela amadethi ezenzakalo kukhalenda"</string>
    <string name="policy_max_email_age" msgid="3303242808829681352">"nciphisa amadethi e-imeyli"</string>
    <string name="policy_text_truncation" msgid="5800480928209379255">"nciphisa usayizi wombhalo we-imeyli"</string>
    <string name="policy_html_truncation" msgid="629030762178870832">"Nciphisa usayizi wama-imeyli e-HTML"</string>
    <string name="policy_max_attachment_size" msgid="6191034264088052742">"nciphisa usayizi wokunamathiselwa ku-imeyli"</string>
    <string name="policy_require_encryption" msgid="1488761894213160246">"idinga amakhodimfihlo edivayisi"</string>
    <string name="policy_require_sd_encryption" msgid="2425281481414518903">"idinga ikhadimfihlo lekhadi le-sd"</string>
    <string name="account_setup_options_mail_window_auto" msgid="4188895354366183790">"Okuzenzakalelayo"</string>
    <string name="account_setup_options_mail_window_1day" msgid="3965715241135811407">"Usuku olulodwa"</string>
    <string name="account_setup_options_mail_window_3days" msgid="736181102295878114">"Izinsuku ezintathu"</string>
    <string name="account_setup_options_mail_window_1week" msgid="5639718031108023741">"Iviki elilodwa"</string>
    <string name="account_setup_options_mail_window_2weeks" msgid="4567049268124213035">"Amaviki amabili"</string>
    <string name="account_setup_options_mail_window_1month" msgid="5846359669750047081">"Inyanga eyodwa"</string>
    <string name="account_setup_options_mail_window_all" msgid="5372861827683632364">"Konke"</string>
</resources>
