<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2010 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="app_name" msgid="5128188288358721369">"Merki"</string>
    <string name="title_scanned_tag" msgid="4347835407095551450">"Nýtt merki lesið"</string>
    <string name="title_existing_tag" msgid="5656560272594190244">"Merki"</string>
    <string name="tag_unknown" msgid="2897956823877728783">"Óþekkt tegund merkis"</string>
    <string name="tag_empty" msgid="3726529819932095782">"Tómt merki"</string>
    <string name="button_done" msgid="7048822758098308158">"Lokið"</string>
    <string name="action_text" msgid="577417996159152923">"Senda SMS-skilaboð til <xliff:g id="PHONE_NUMBER">%s</xliff:g>"</string>
    <string name="action_call" msgid="6226253647953184035">"Hringja í <xliff:g id="PHONE_NUMBER">%s</xliff:g>"</string>
    <string name="empty_tag_prompt" msgid="4206394383309956030">"Þetta merki er tómt."</string>
    <string name="import_vcard" msgid="5104299047930666528">"Flytja inn ^1"</string>
    <string name="mime_display_name" msgid="5926357152623764485">"Gögn úr NFC-merki"</string>
    <string name="vcard_title" msgid="7122634780732426007">"Samskiptaupplýsingar fyrir ^1"</string>
    <string name="call_phone_permission_denied" msgid="8515177111984654599">"Þetta forrit þarf símaheimild til að hægt sé að hringja úr því. Þú getur breytt heimildum Tag í stillingunum"</string>
    <string name="external_storage_permission_denied" msgid="7665146019168376837">"Þetta forrit þarf leyfi til að opna ytri geymslu til að fá aðgang að skrám. Þú getur breytt heimildum Tag í stillingunum"</string>
</resources>
