<?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">"Android Core Қолданбалары"</string>
    <string name="app_label" msgid="3389954322874982620">"Контактілер жады"</string>
    <string name="provider_label" msgid="6012150850819899907">"Контактілер"</string>
    <string name="upgrade_out_of_memory_notification_ticker" msgid="7638747231223520477">"Контактілерді жаңарту көбірек жад кеңістігін қажет етеді."</string>
    <string name="upgrade_out_of_memory_notification_title" msgid="8888171924684998531">"Контактілер үшін жадты жаңарту"</string>
    <string name="upgrade_out_of_memory_notification_text" msgid="2581831842693151968">"Жаңартуды аяқтау үшін түртіңіз."</string>
    <string name="default_directory" msgid="93961630309570294">"Контактілер"</string>
    <string name="local_invisible_directory" msgid="705244318477396120">"Басқа"</string>
    <string name="voicemail_from_column" msgid="435732568832121444">"Келесі нөмірден келген дауыс-хабар "</string>
    <string name="debug_dump_title" msgid="4916885724165570279">"Контактілер дерекқорын көшіру"</string>
    <string name="debug_dump_database_message" msgid="406438635002392290">"Сіз қазір 1) барлық контактілерге қатысты ақпаратты қамтитын дерекқорыңыздың және барлық қоңыраулар тіркелімінің көшірмесін интернет жадына сақтайсыз және 2) оларды э-пошта арқылы жібересіз. Құрылғыдан сәтті көшірілгеннен кейін немесе эл.хатты алған соң, көшірмені жоюды ұмытпаңыз."</string>
    <string name="debug_dump_delete_button" msgid="7832879421132026435">"Қазір жою"</string>
    <string name="debug_dump_start_button" msgid="2837506913757600001">"Бастау"</string>
    <string name="debug_dump_email_sender_picker" msgid="3534420908672176460">"Файлды жіберу үшін бағдарлама таңдау"</string>
    <string name="debug_dump_email_subject" msgid="108188398416385976">"Контактілерді жөндеу құралы бекітілген"</string>
    <string name="debug_dump_email_body" msgid="4577749800871444318">"Бекітілген құжатта менің барлық контактілеріме қатысты ақпарат жиналған. Aбайлап қолданыңыз."</string>
</resources>
