<?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">"SIP-asetukset"</string>
    <string name="sip_accounts" msgid="85559497282185405">"SIP-tilit"</string>
    <string name="sip_accounts_title" msgid="2082527045326874519">"Tilit"</string>
    <string name="sip_receive_calls" msgid="426678617137462173">"Vastaanota saapuvia puheluita"</string>
    <string name="sip_receive_calls_summary" msgid="946161517528227523">"Käyttää enemmän akkua"</string>
    <string name="sip_call_options_title" msgid="8421210494703869806">"Käytä SIP-puheluita"</string>
    <string name="sip_call_options_wifi_only_title" msgid="5112579243580893890">"Käytä SIP-puheluita (vain Wi-Fi)"</string>
    <string name="sip_call_options_entry_1" msgid="7217659161237099900">"Kaikki puhelut, kun verkko on käytettävissä"</string>
    <string name="sip_call_options_entry_2" msgid="1815335903940609729">"Vain SIP-puhelut"</string>
    <string name="sip_call_options_wifi_only_entry_1" msgid="1358513095551847314">"Kaikki puhelut"</string>
    <string name="add_sip_account" msgid="800843669753980091">"Lisää tili"</string>
    <string name="remove_sip_account" msgid="1367664438506503690">"Poista tili"</string>
    <string name="sip_account_list" msgid="5610858485304821480">"SIP-tilit"</string>
    <string name="saving_account" msgid="5336529880235177448">"Tiliä tallennetaan…"</string>
    <string name="removing_account" msgid="5537351356808985756">"Tiliä poistetaan…"</string>
    <string name="sip_menu_save" msgid="7882219814563869225">"Tallenna"</string>
    <string name="sip_menu_discard" msgid="2350421645423888438">"Hylkää"</string>
    <string name="alert_dialog_close" msgid="1326011828713435134">"Sulje profiili"</string>
    <string name="alert_dialog_ok" msgid="4752048404605388940">"OK"</string>
    <string name="close_profile" msgid="3122414058856309881">"Sulje"</string>
    <string name="registration_status_checking_status" msgid="6136793741862200337">"Tarkistetaan tilaa…"</string>
    <string name="registration_status_registering" msgid="2677183977796278749">"Rekisteröidään…"</string>
    <string name="registration_status_still_trying" msgid="7648151061205513458">"Yritetään edelleen…"</string>
    <string name="registration_status_not_receiving" msgid="7620333886153361090">"Ei vastaanota puheluita."</string>
    <string name="registration_status_no_data" msgid="2541999976218192413">"Tilin rekisteröinti lopetettiin, koska internetyhteyttä ei ole."</string>
    <string name="registration_status_no_wifi_data" msgid="9154717387473039546">"Tilin rekisteröinti lopetettiin, koska Wi-Fi-yhteyttä ei ole."</string>
    <string name="registration_status_not_running" msgid="514205414303796800">"Tilin rekisteröinti epäonnistui."</string>
    <string name="registration_status_done" msgid="3264961069247314253">"Vastaanottaa puheluita."</string>
    <string name="registration_status_failed_try_later" msgid="2199970021756384317">"Tilin rekisteröinti epäonnistui: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Yritetään myöhemmin uudelleen."</string>
    <string name="registration_status_invalid_credentials" msgid="8406872554323334182">"Tilin rekisteröinti epäonnistui: virheellinen käyttäjänimi tai salasana."</string>
    <string name="registration_status_server_unreachable" msgid="7710275557045148634">"Tilin rekisteröinti epäonnistui: tarkista palvelimen nimi."</string>
    <string name="third_party_account_summary" msgid="9041060473615403041">"Tiliä käyttää tällä hetkellä sovellus <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
    <string name="sip_edit_title" msgid="1967247832635750410">"SIP-tilin tiedot"</string>
    <string name="sip_edit_new_title" msgid="266414118302574305">"SIP-tilin tiedot"</string>
    <string name="domain_address_title" msgid="1968479941328225423">"Palvelin"</string>
    <string name="username_title" msgid="6770064611005663470">"Käyttäjätunnus"</string>
    <string name="password_title" msgid="5289013731515564295">"Salasana"</string>
    <string name="display_name_title" msgid="579241787583079773">"Näyttönimi"</string>
    <string name="proxy_address_title" msgid="6890163365640631841">"Lähettävän välityspalvelimen osoite"</string>
    <string name="port_title" msgid="6693965912656593862">"Porttinumero"</string>
    <string name="transport_title" msgid="889155457465372527">"Siirtotyyppi"</string>
    <string name="send_keepalive_title" msgid="599627072150501159">"Lähetä tarkistusviesti"</string>
    <string name="advanced_settings" msgid="6622996380747040711">"Lisäasetukset"</string>
    <string name="auth_username_title" msgid="8262491689004708265">"Todennuksessa käytettävä käyttäjänimi"</string>
    <string name="auth_username_summary" msgid="941160241371436473">"Käyttäjänimeä käytetään todennukseen"</string>
    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Ei asetettu&gt;"</string>
    <string name="display_name_summary" msgid="7155076491675565407">"&lt;Sama kuin käyttäjänimi&gt;"</string>
    <string name="optional_summary" msgid="2363105560396317624">"&lt;Valinnainen&gt;"</string>
    <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Näytä kaikki koskettamalla"</string>
    <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Piilota kaikki koskettamalla"</string>
    <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> on pakollinen, joten se ei voi olla tyhjä."</string>
    <string name="not_a_valid_port" msgid="7931422555587011830">"Porttinumeron tulee olla 1 000 – 65 534."</string>
    <string name="no_internet_available" msgid="5523747991760017298">"Jos haluat soittaa SIP-puhelun, tarkista ensin internetyhteytesi."</string>
    <string name="no_wifi_available" msgid="1955023904229673488">"Sinun on oltava yhteydessä Wi-Fi-verkkoon, jotta voit soittaa SIP-puheluita (vaihda asetus Langaton verkko- ja verkkoasetuksissa)."</string>
    <string name="no_voip" msgid="3038021971231952704">"SIP-puheluita ei tueta"</string>
    <string name="sip_system_decide" msgid="5577696249416700671">"Automaattinen"</string>
    <string name="sip_always_send_keepalive" msgid="4773022409239823318">"Lähetä aina"</string>
    <string name="sip_connection_service_label" msgid="6935325004265884453">"Sisäänrakennetut SIP-puhelut"</string>
</resources>
