<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2014 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="sip_settings" msgid="7452587325305604702">"SIP nustatymai"</string>
    <string name="sip_accounts" msgid="7297896885665783239">"SIP paskyros"</string>
    <string name="sip_accounts_title" msgid="3061686404598143943">"Paskyros"</string>
    <string name="sip_receive_calls" msgid="3403644006618369349">"Gauti gaunamuosius skambučius"</string>
    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Eikvojama daugiau akumuliatoriaus energijos"</string>
    <string name="sip_call_options_title" msgid="5027066677561068192">"Naudoti SIP skambinimą"</string>
    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Naudoti SIP skambinimą (tik „Wi-Fi“)"</string>
    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Visiems skambučiams atlikti, kai pasiekiamas duomenų tinklas"</string>
    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Tik SIP skambučiams"</string>
    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Visiems skambučiams atlikti"</string>
    <string name="add_sip_account" msgid="5754758646745144384">"Pridėti paskyrą"</string>
    <string name="remove_sip_account" msgid="8272617403399636513">"Pašalinti paskyrą"</string>
    <string name="sip_account_list" msgid="2596262496233721769">"SIP paskyros"</string>
    <string name="saving_account" msgid="3390358043846687266">"Išsaugoma paskyra..."</string>
    <string name="removing_account" msgid="1544132880414780408">"Pašalinama paskyra..."</string>
    <string name="sip_menu_save" msgid="4377112554203123060">"Išsaugoti"</string>
    <string name="sip_menu_discard" msgid="1883166691772895243">"Atmesti"</string>
    <string name="alert_dialog_close" msgid="1734746505531110706">"Uždaryti profilį"</string>
    <string name="alert_dialog_ok" msgid="7806760618798687406">"Gerai"</string>
    <string name="close_profile" msgid="3756064641769751774">"Uždaryti"</string>
    <string name="registration_status_checking_status" msgid="884179594507591180">"Tikrinama būsena..."</string>
    <string name="registration_status_registering" msgid="7986331597809521791">"Registruojama..."</string>
    <string name="registration_status_still_trying" msgid="7178623685868766282">"Vis dar bandoma..."</string>
    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Skambučiai negaunami."</string>
    <string name="registration_status_no_data" msgid="2987064560116584121">"Paskyros registracija sustabdyta, nes neprisijungta prie interneto."</string>
    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Paskyros registracija sustabdyta, nes neprisijungta prie „Wi-Fi“."</string>
    <string name="registration_status_not_running" msgid="6236403137652262659">"Paskyros užregistruoti nepavyko."</string>
    <string name="registration_status_done" msgid="6787397199273357721">"Gaunami skambučiai."</string>
    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Paskyros užregistruoti nepavyko: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); bus bandoma vėliau"</string>
    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Paskyros užregistruoti nepavyko: netinkamas naudotojo vardas arba slaptažodis."</string>
    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Paskyros užregistruoti nepavyko. Patikrinkite serverio pavadinimą."</string>
    <string name="third_party_account_summary" msgid="5918779106950859167">"Šią paskyrą dabar naudoja programa „<xliff:g id="ACCOUNT_OWNER">%s</xliff:g>“."</string>
    <string name="sip_edit_title" msgid="7438891546610820307">"Išsami SIP paskyros informacija"</string>
    <string name="sip_edit_new_title" msgid="8394790068979636381">"Išsami SIP paskyros informacija"</string>
    <string name="domain_address_title" msgid="8238078615181248579">"Serveris"</string>
    <string name="username_title" msgid="298416796886107970">"Naudotojo vardas"</string>
    <string name="password_title" msgid="8035579335591959021">"Slaptažodis"</string>
    <string name="display_name_title" msgid="3730105783656830160">"Pateikiamas pavadinimas"</string>
    <string name="proxy_address_title" msgid="4120361943254795287">"Išsiuntimo tarpinio serverio adresas"</string>
    <string name="port_title" msgid="1703586046264385110">"Prievado numeris"</string>
    <string name="transport_title" msgid="1661659138226029178">"Transportavimo tipas"</string>
    <string name="send_keepalive_title" msgid="5319788151608946049">"Siųsti palaikymo pranešimus"</string>
    <string name="advanced_settings" msgid="2704644977548662872">"Pasirenkami nustatymai"</string>
    <string name="auth_username_title" msgid="9002505242616662698">"Tapatybės nustatymo naudotojo vardas"</string>
    <string name="auth_username_summary" msgid="6346313945275377230">"Tapatybei nustatyti naudotas naudotojo vardas"</string>
    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nenustatyta&gt;"</string>
    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nenustatyta&gt;"</string>
    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nenustatyta&gt;"</string>
    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Kaip naudotojo vardas&gt;"</string>
    <string name="optional_summary" msgid="620379377865437488">"&lt;Pasirenkama&gt;"</string>
    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Jei norite viską parodyti, palieskite"</string>
    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Jei norite viską paslėpti, palieskite"</string>
    <string name="all_empty_alert" msgid="6085603517610199098">"Įveskite išsamią naujos SIP paskyros informaciją."</string>
    <string name="empty_alert" msgid="3693655518612836718">"Lauke „<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>“ būtina nurodyti vertę – jis negali likti tuščias."</string>
    <string name="not_a_valid_port" msgid="3664668836663491376">"Prievado numeris turi būti nuo 1 000 iki 65 534."</string>
    <string name="no_internet_available" msgid="161720645084325479">"Kad atliktumėte SIP skambutį, pirmiausia patikrinkite interneto ryšį."</string>
    <string name="no_wifi_available" msgid="1179092018692306312">"Kad galėtumėte atlikti SIP skambučius, turite būti prisijungę prie „Wi-Fi“ tinklo (naudokite „Belaidžio ryšio ir tinklo“ nustatymus)."</string>
    <string name="no_voip" msgid="3366395789297981738">"SIP skambinimas nepalaikomas"</string>
    <string name="sip_system_decide" msgid="197230378376326430">"Automatinis"</string>
    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Visada siųsti"</string>
    <string name="sip_connection_service_label" msgid="8796284274240316006">"Integruotas SIP skambinimas"</string>
</resources>
