<?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">"Kjarnaforrit Android"</string>
    <string name="app_label" msgid="3389954322874982620">"Tengiliðageymsla"</string>
    <string name="provider_label" msgid="6012150850819899907">"Tengiliðir"</string>
    <string name="upgrade_out_of_memory_notification_ticker" msgid="7638747231223520477">"Uppfærsla tengiliða krefst meira minnis."</string>
    <string name="upgrade_out_of_memory_notification_title" msgid="8888171924684998531">"Uppfærsla á tengiliðageymslu"</string>
    <string name="upgrade_out_of_memory_notification_text" msgid="2581831842693151968">"Ýttu til að ljúka uppfærslunni."</string>
    <string name="default_directory" msgid="93961630309570294">"Tengiliðir"</string>
    <string name="local_invisible_directory" msgid="705244318477396120">"Annað"</string>
    <string name="voicemail_from_column" msgid="435732568832121444">"Talhólfsskilaboð frá "</string>
    <string name="debug_dump_title" msgid="4916885724165570279">"Afrita tengiliðagagnagrunn"</string>
    <string name="debug_dump_database_message" msgid="406438635002392290">"Þú ert um það bil að fara að 1) taka afrit af gagnagrunninum þínum, sem inniheldur allar upplýsingar um tengiliði og símtalaferilinn í heild sinni, inn á innbyggða geymslu og 2) senda þessi gögn með tölvupósti. Mundu að eyða afritinu um leið og þú hefur afritað það af tækinu eða þegar tölvupósturinn hefur komist til skila."</string>
    <string name="debug_dump_delete_button" msgid="7832879421132026435">"Eyða núna"</string>
    <string name="debug_dump_start_button" msgid="2837506913757600001">"Byrja"</string>
    <string name="debug_dump_email_sender_picker" msgid="3534420908672176460">"Veldu forrit til að senda skrána"</string>
    <string name="debug_dump_email_subject" msgid="108188398416385976">"Tengiliðagagnagrunnur í viðhengi"</string>
    <string name="debug_dump_email_body" msgid="4577749800871444318">"Meðfylgjandi er tengiliðagagnagrunnurinn minn sem inniheldur upplýsingar um alla tengiliði mína. Sýndu aðgát við meðhöndlun hans."</string>
</resources>
