<?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 rīkkopa"</string>
    <string name="menu_end_session" msgid="9087134977926181033">"Beigt sesiju"</string>
    <string name="help" msgid="1290449694178547017">"Palīdzība"</string>
    <string name="menu_back" msgid="7136697148453089659">"Atpakaļ"</string>
    <string name="service_name" msgid="6767598098497885828">"Pakalpojuma nosaukums"</string>
    <string name="stk_no_service" msgid="1905632157498220090">"Pakalpojums nav pieejams"</string>
    <string name="button_ok" msgid="7914432227722142434">"Labi"</string>
    <string name="button_cancel" msgid="137404731092374681">"Atcelt"</string>
    <string name="button_yes" msgid="755426085739326674">"Jā"</string>
    <string name="button_no" msgid="564962410861983724">"Nē"</string>
    <string name="alphabet" msgid="9068318253752197929">"Alfabēti"</string>
    <string name="digits" msgid="7391551783961486324">"Cipari (0–9, *, #, +)"</string>
    <string name="default_call_setup_msg" msgid="6490156065165946828">"Notiek zvanīšana..."</string>
    <string name="default_setup_call_msg" msgid="5819132588246209714">"Notiek zvana izveide"</string>
    <string name="stk_app_state" msgid="6274976677198791616">"Lietojumprogrammas stāvoklis"</string>
    <string name="enable_app" msgid="1980493713217690903">"Iespējots"</string>
    <string name="disable_app" msgid="2298201833946002357">"Atspējots"</string>
    <string name="stk_dialog_title" msgid="1047336800509270520">"SIM rīkkopa"</string>
    <string name="default_tone_dialog_msg" msgid="8354658178971283852">"Signāla atskaņošana"</string>
    <string name="default_open_channel_msg" msgid="2043011408855389673">"Vai atvērt kanālu?"</string>
    <string name="default_send_data_msg" msgid="6602200147341683792">"Notiek datu sūtīšana"</string>
    <string name="default_receive_data_msg" msgid="5545535916402887726">"Notiek datu saņemšana"</string>
    <string name="default_close_channel_msg" msgid="6320648502339362951">"Kanāls ir aizvērts."</string>
    <string name="stk_dialog_accept" msgid="2899431442032305374">"JĀ"</string>
    <string name="stk_dialog_reject" msgid="1455086565615694879">"NĒ"</string>
    <string name="no_sim_card_inserted" msgid="3177955793136053581">"Lūdzu, ievietojiet SIM karti, lai palaistu SIM rīkkopu."</string>
    <string name="stk_channel_name" msgid="3945765236566954372">"Mobilā pakalpojuma ziņojumi"</string>
</resources>
