<?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="sharedUserLabel" msgid="8024311725474286801">"Izinhlelo Zokusebenza ze-Android Core"</string>
    <string name="app_label" msgid="3389954322874982620">"Isitoreji Sothintana Nabo"</string>
    <string name="provider_label" msgid="6012150850819899907">"Othintana nabo"</string>
    <string name="upgrade_msg" msgid="8640807392794309950">"Ukufaka ezakamuva kwimininingo egciniwe yothintana naye."</string>
    <string name="upgrade_out_of_memory_notification_ticker" msgid="7638747231223520477">"Ukuthuthukisa othintana naye kudinga enye imemori"</string>
    <string name="upgrade_out_of_memory_notification_title" msgid="8888171924684998531">"Ukuthuthukiswa kwesilondolozi soxhumana nabo"</string>
    <string name="upgrade_out_of_memory_notification_text" msgid="8438179450336437626">"Thinta ukuqedela ukuthuthukisa."</string>
    <string name="default_directory" msgid="93961630309570294">"Othintana nabo"</string>
    <string name="local_invisible_directory" msgid="705244318477396120">"Okunye"</string>
    <string name="read_write_all_voicemail_label" msgid="4557216100818257560">"Finyelela kuwo wonke amavoyisimeyili"</string>
    <string name="read_write_all_voicemail_description" msgid="8029809937805761356">"Ivumela uhlelo olusebenzayo lulonde futhi lulande wonke ama-imeyli ezwi ledivayisi engakwazi ukuwafinyelela."</string>
    <string name="voicemail_from_column" msgid="435732568832121444">"Imeyili yezwi kusuka "</string>
    <string name="debug_dump_title" msgid="4916885724165570279">"Kopisha imininingo egciniwe yoxhumana nabo"</string>
    <string name="debug_dump_database_message" msgid="406438635002392290">"Useduze nokuthi 1) wenze ikhophi yemininingwane yakho egciniwe ebandakanya yonke imininingwane ehlobene noxhumana nabo kanye nohlu lokushaya ucingo kokokulondoloza kwangaphakathi, kanti futhi 2) uzoyYou are about to 1) make a copy of youithumela nge-imeyili. Khumbula ukuthi ususe ikhophi ngokushesha emumva kokuba uphumelele ukuyikopisha isuka edivayisini noma emumva kokuba kutholakale i-imeyili."</string>
    <string name="debug_dump_delete_button" msgid="7832879421132026435">"Susa manje"</string>
    <string name="debug_dump_start_button" msgid="2837506913757600001">"Qala"</string>
    <string name="debug_dump_email_sender_picker" msgid="3534420908672176460">"Khetha uhlelo ozothumela kulo ifayela lakho"</string>
    <string name="debug_dump_email_subject" msgid="108188398416385976">"I-Db yoxhumana nabo inamathiselwe"</string>
    <string name="debug_dump_email_body" msgid="4577749800871444318">"Okunamathiselwe imininingo egciniwe yabaxhumana nami nalo lonke ulwazi labaxhumana nami. Kubambe ngokunakekela."</string>
</resources>
