<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2007 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="3369897473091780760">"SIM-verkfæri"</string>
    <string name="menu_end_session" msgid="9087134977926181033">"Ljúka lotu"</string>
    <string name="help" msgid="1290449694178547017">"Hjálp"</string>
    <string name="menu_back" msgid="7136697148453089659">"Til baka"</string>
    <string name="service_name" msgid="6767598098497885828">"Heiti þjónustu"</string>
    <string name="stk_no_service" msgid="1905632157498220090">"Engin þjónusta í boði"</string>
    <string name="button_ok" msgid="7914432227722142434">"Í lagi"</string>
    <string name="button_cancel" msgid="137404731092374681">"Hætta við"</string>
    <string name="button_yes" msgid="755426085739326674">"Já"</string>
    <string name="button_no" msgid="564962410861983724">"Nei"</string>
    <string name="alphabet" msgid="9068318253752197929">"Stafróf"</string>
    <string name="digits" msgid="7391551783961486324">"Tölustafir (0–9, *, #, +)"</string>
    <string name="default_call_setup_msg" msgid="6490156065165946828">"Símtal í gangi…"</string>
    <string name="default_setup_call_msg" msgid="5819132588246209714">"Verið er að setja upp símtal"</string>
    <string name="stk_app_state" msgid="6274976677198791616">"Staða forrits"</string>
    <string name="enable_app" msgid="1980493713217690903">"Virkt"</string>
    <string name="disable_app" msgid="2298201833946002357">"Óvirkt"</string>
    <string name="stk_dialog_title" msgid="1047336800509270520">"SIM-verkfæri"</string>
    <string name="default_tone_dialog_msg" msgid="8354658178971283852">"Spilar tón"</string>
    <string name="default_open_channel_msg" msgid="2043011408855389673">"Opna rás?"</string>
    <string name="default_send_data_msg" msgid="6602200147341683792">"Sendir gögn"</string>
    <string name="default_receive_data_msg" msgid="5545535916402887726">"Tekur á móti gögnum"</string>
    <string name="default_close_channel_msg" msgid="6320648502339362951">"Rás lokað"</string>
    <string name="stk_dialog_accept" msgid="2899431442032305374">"JÁ"</string>
    <string name="stk_dialog_reject" msgid="1455086565615694879">"NEI"</string>
    <string name="no_sim_card_inserted" msgid="3177955793136053581">"Settu SIM-kort í til að ræsa SIM-verkfæri."</string>
    <string name="stk_channel_name" msgid="3945765236566954372">"Skilaboð farsímaþjónustu"</string>
</resources>
