<?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">"Nastavenia SIP"</string>
    <string name="sip_accounts" msgid="7297896885665783239">"Účty SIP"</string>
    <string name="sip_accounts_title" msgid="3061686404598143943">"Účty"</string>
    <string name="sip_receive_calls" msgid="3403644006618369349">"Prijímať prichádzajúce hovory"</string>
    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Viac vybíja batériu"</string>
    <string name="sip_call_options_title" msgid="5027066677561068192">"Používanie volania SIP"</string>
    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Používanie volania SIP (iba Wi‑Fi)"</string>
    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Pre všetky hovory, pokiaľ je k dispozícii dátová sieť"</string>
    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Iba pre hovory SIP"</string>
    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Pre všetky hovory"</string>
    <string name="add_sip_account" msgid="5754758646745144384">"Pridať účet"</string>
    <string name="remove_sip_account" msgid="8272617403399636513">"Odstrániť účet"</string>
    <string name="sip_account_list" msgid="2596262496233721769">"Účty SIP"</string>
    <string name="saving_account" msgid="3390358043846687266">"Prebieha ukladanie účtu..."</string>
    <string name="removing_account" msgid="1544132880414780408">"Prebieha odstraňovanie účtu..."</string>
    <string name="sip_menu_save" msgid="4377112554203123060">"Uložiť"</string>
    <string name="sip_menu_discard" msgid="1883166691772895243">"Zahodiť"</string>
    <string name="alert_dialog_close" msgid="1734746505531110706">"Zavrieť profil"</string>
    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
    <string name="close_profile" msgid="3756064641769751774">"Zavrieť"</string>
    <string name="registration_status_checking_status" msgid="884179594507591180">"Prebieha kontrola stavu..."</string>
    <string name="registration_status_registering" msgid="7986331597809521791">"Prebieha registrácia..."</string>
    <string name="registration_status_still_trying" msgid="7178623685868766282">"Prebiehajú ďalšie pokusy..."</string>
    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Hovory sa neprijímajú."</string>
    <string name="registration_status_no_data" msgid="2987064560116584121">"Registrácia účtu bola zastavená, pretože pripojenie k internetu nie je k dispozícii."</string>
    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Registrácia účtu bola zastavená, pretože pripojenie Wi‑Fi nie je k dispozícii."</string>
    <string name="registration_status_not_running" msgid="6236403137652262659">"Registrácia účtu nebola úspešná."</string>
    <string name="registration_status_done" msgid="6787397199273357721">"Príjem hovorov."</string>
    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Registrácia účtu nebola úspešná: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); skúsime to neskôr"</string>
    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Registrácia účtu nebola úspešná: nesprávne používateľské meno alebo heslo."</string>
    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Registrácia účtu nebola úspešná: skontrolujte názov servera."</string>
    <string name="third_party_account_summary" msgid="5918779106950859167">"Tento účet momentálne používa aplikácia používateľa <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
    <string name="sip_edit_title" msgid="7438891546610820307">"Účet SIP"</string>
    <string name="sip_edit_new_title" msgid="8394790068979636381">"Účet SIP"</string>
    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
    <string name="username_title" msgid="298416796886107970">"Používateľské meno"</string>
    <string name="password_title" msgid="8035579335591959021">"Heslo"</string>
    <string name="display_name_title" msgid="3730105783656830160">"Zobrazované meno"</string>
    <string name="proxy_address_title" msgid="4120361943254795287">"Adresa výstupného proxy servera"</string>
    <string name="port_title" msgid="1703586046264385110">"Číslo portu"</string>
    <string name="transport_title" msgid="1661659138226029178">"Typ prenosu"</string>
    <string name="send_keepalive_title" msgid="5319788151608946049">"Správy na zachovanie pripojenia"</string>
    <string name="advanced_settings" msgid="2704644977548662872">"Voliteľné nastavenia"</string>
    <string name="auth_username_title" msgid="9002505242616662698">"Používateľské meno na overenie"</string>
    <string name="auth_username_summary" msgid="6346313945275377230">"Používateľské meno použité na overenie"</string>
    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nenastavené&gt;"</string>
    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nenastavené&gt;"</string>
    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nenastavené&gt;"</string>
    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Rovnaké ako používateľské meno&gt;"</string>
    <string name="optional_summary" msgid="620379377865437488">"&lt;Voliteľné&gt;"</string>
    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Klepnutím zobrazíte všetky"</string>
    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Klepnutím všetko skryjete"</string>
    <string name="all_empty_alert" msgid="6085603517610199098">"Zadajte informácie o novom účte SIP."</string>
    <string name="empty_alert" msgid="3693655518612836718">"Pole <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je povinné a nemôže zostať prázdne."</string>
    <string name="not_a_valid_port" msgid="3664668836663491376">"Číslo portu by malo byť od 1 000 do 65 534."</string>
    <string name="no_internet_available" msgid="161720645084325479">"Ak chcete uskutočniť hovor SIP, najprv skontrolujte svoje internetové pripojenie."</string>
    <string name="no_wifi_available" msgid="1179092018692306312">"Uskutočnenie hovorov SIP vyžaduje pripojenie k sieti Wi‑Fi (použite nastavenia bezdrôtovej siete)."</string>
    <string name="no_voip" msgid="3366395789297981738">"Volanie SIP nie je podporované"</string>
    <string name="sip_system_decide" msgid="197230378376326430">"Automaticky"</string>
    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Vždy odoslať"</string>
    <string name="sip_connection_service_label" msgid="8796284274240316006">"Vstavané hovory SIP"</string>
</resources>
