<?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="3768482698061677257">"Nastavenia SIP"</string>
    <string name="sip_accounts" msgid="85559497282185405">"Účty SIP"</string>
    <string name="sip_accounts_title" msgid="2082527045326874519">"Účty"</string>
    <string name="sip_receive_calls" msgid="426678617137462173">"Prijímať prichádzajúce hovory"</string>
    <string name="sip_receive_calls_summary" msgid="946161517528227523">"Viac vybíja batériu"</string>
    <string name="sip_call_options_title" msgid="8421210494703869806">"Používanie volania SIP"</string>
    <string name="sip_call_options_wifi_only_title" msgid="5112579243580893890">"Používanie volania SIP (iba Wi-Fi)"</string>
    <string name="sip_call_options_entry_1" msgid="7217659161237099900">"Pre všetky hovory, pokiaľ je k dispozícii dátová sieť"</string>
    <string name="sip_call_options_entry_2" msgid="1815335903940609729">"Iba pre hovory SIP"</string>
    <string name="sip_call_options_wifi_only_entry_1" msgid="1358513095551847314">"Pre všetky hovory"</string>
    <string name="add_sip_account" msgid="800843669753980091">"Pridať účet"</string>
    <string name="remove_sip_account" msgid="1367664438506503690">"Odstrániť účet"</string>
    <string name="sip_account_list" msgid="5610858485304821480">"Účty SIP"</string>
    <string name="saving_account" msgid="5336529880235177448">"Prebieha ukladanie účtu..."</string>
    <string name="removing_account" msgid="5537351356808985756">"Prebieha odstraňovanie účtu..."</string>
    <string name="sip_menu_save" msgid="7882219814563869225">"Uložiť"</string>
    <string name="sip_menu_discard" msgid="2350421645423888438">"Zahodiť"</string>
    <string name="alert_dialog_close" msgid="1326011828713435134">"Zavrieť profil"</string>
    <string name="alert_dialog_ok" msgid="4752048404605388940">"OK"</string>
    <string name="close_profile" msgid="3122414058856309881">"Zavrieť"</string>
    <string name="registration_status_checking_status" msgid="6136793741862200337">"Prebieha kontrola stavu..."</string>
    <string name="registration_status_registering" msgid="2677183977796278749">"Prebieha registrácia..."</string>
    <string name="registration_status_still_trying" msgid="7648151061205513458">"Prebiehajú ďalšie pokusy..."</string>
    <string name="registration_status_not_receiving" msgid="7620333886153361090">"Hovory sa neprijímajú."</string>
    <string name="registration_status_no_data" msgid="2541999976218192413">"Registrácia účtu bola zastavená, pretože pripojenie k internetu nie je k dispozícii."</string>
    <string name="registration_status_no_wifi_data" msgid="9154717387473039546">"Registrácia účtu bola zastavená, pretože pripojenie Wi-Fi nie je k dispozícii."</string>
    <string name="registration_status_not_running" msgid="514205414303796800">"Registrácia účtu nebola úspešná."</string>
    <string name="registration_status_done" msgid="3264961069247314253">"Príjem hovorov."</string>
    <string name="registration_status_failed_try_later" msgid="2199970021756384317">"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="8406872554323334182">"Registrácia účtu nebola úspešná: nesprávne používateľské meno alebo heslo."</string>
    <string name="registration_status_server_unreachable" msgid="7710275557045148634">"Registrácia účtu nebola úspešná: skontrolujte názov servera."</string>
    <string name="third_party_account_summary" msgid="9041060473615403041">"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="1967247832635750410">"Účet SIP"</string>
    <string name="sip_edit_new_title" msgid="266414118302574305">"Účet SIP"</string>
    <string name="domain_address_title" msgid="1968479941328225423">"Server"</string>
    <string name="username_title" msgid="6770064611005663470">"Používateľské meno"</string>
    <string name="password_title" msgid="5289013731515564295">"Heslo"</string>
    <string name="display_name_title" msgid="579241787583079773">"Zobrazované meno"</string>
    <string name="proxy_address_title" msgid="6890163365640631841">"Adresa výstupného proxy servera"</string>
    <string name="port_title" msgid="6693965912656593862">"Číslo portu"</string>
    <string name="transport_title" msgid="889155457465372527">"Typ prenosu"</string>
    <string name="send_keepalive_title" msgid="599627072150501159">"Správy na zachovanie pripojenia"</string>
    <string name="advanced_settings" msgid="6622996380747040711">"Voliteľné nastavenia"</string>
    <string name="auth_username_title" msgid="8262491689004708265">"Používateľské meno na overenie"</string>
    <string name="auth_username_summary" msgid="941160241371436473">"Používateľské meno použité na overenie"</string>
    <string name="default_preference_summary_username" msgid="8404717434312826082">"&lt;Nenastavené&gt;"</string>
    <string name="default_preference_summary_password" msgid="4464464672997027904">"&lt;Nenastavené&gt;"</string>
    <string name="default_preference_summary_domain_address" msgid="4871971710197441673">"&lt;Nenastavené&gt;"</string>
    <string name="display_name_summary" msgid="7155076491675565407">"&lt;Rovnaké ako používateľské meno&gt;"</string>
    <string name="optional_summary" msgid="2363105560396317624">"&lt;Voliteľné&gt;"</string>
    <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Klepnutím všetko zobrazíte"</string>
    <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Klepnutím všetko skryjete"</string>
    <string name="all_empty_alert" msgid="4087734950375192387">"Zadajte informácie o novom účte SIP."</string>
    <string name="empty_alert" msgid="6659484914371384024">"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="7931422555587011830">"Číslo portu by malo byť od 1 000 do 65 534."</string>
    <string name="no_internet_available" msgid="5523747991760017298">"Ak chcete uskutočniť hovor SIP, najprv skontrolujte svoje internetové pripojenie."</string>
    <string name="no_wifi_available" msgid="1955023904229673488">"Uskutočnenie hovorov SIP vyžaduje pripojenie k sieti Wi-Fi (použite nastavenia bezdrôtovej siete)."</string>
    <string name="no_voip" msgid="3038021971231952704">"Volanie SIP nie je podporované"</string>
    <string name="sip_system_decide" msgid="5577696249416700671">"Automaticky"</string>
    <string name="sip_always_send_keepalive" msgid="4773022409239823318">"Vždy odoslať"</string>
    <string name="sip_connection_service_label" msgid="6935325004265884453">"Vstavané hovory SIP"</string>
</resources>
