<?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"</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">"Вы собираетесь скопировать базу данных ваших контактов и списка вызовов во внутреннюю память устройства. При этом копия базы будет отправлена по электронной почте. Обязательно удалите эти данные с устройства после того, как они будут скопированы с него либо получены в письме."</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">"Будьте внимательны: в приложенном файле находится база данных с моими контактами."</string>
</resources>
