<?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 Apps"</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">"У вкладенні – база даних моїх контактів з усією інформацією про мої контакти. Працюйте з нею обережно."</string>
</resources>
