<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2009 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="9095072584761066851">"Varmenteen asennusohjelma"</string>
    <string name="pick_file_title" msgid="4481949485108233297">"Valitse varmenne"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Pura varmenne"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"Haetaan..."</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Hae tallenteesta %s"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Nimeä varmenne"</string>
    <string name="credential_name" msgid="1974979771369744378">"Varmenteen nimi:"</string>
    <string name="credential_password" msgid="3520176519550993326">"Hae varmenteet kirjoittamalla salasana."</string>
    <string name="credential_info" msgid="2436768402308470397">"Paketti sisältää:"</string>
    <string name="p12_description" msgid="4128352087331630024">"Varmenteet PKCS12-avaintallenteessa."</string>
    <string name="one_userkey" msgid="3500697912370644881">"yhden käyttäjän näppäin"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"yhden käyttäjän varmenne"</string>
    <string name="one_cacrt" msgid="2667950425420663146">"yksi CA-varmenne"</string>
    <string name="n_cacrts" msgid="2141498640685639208">"%d CA-varmennetta"</string>
    <string name="password_error" msgid="2042471639556516356">"Kirjoita oikea salasana."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Kirjoita salasana."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Kirjoita nimi."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Kirjoita nimi, joka sisältää vain kirjaimia ja numeroita."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Varmenteen tallentaminen epäonnistui. Tunnuksien tallennus ei ole käytössä tai sitä ei ole käynnistetty oikein."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"Varmennetta ei ole asennettu."</string>
    <string name="no_cert_to_saved" msgid="5708884372817309068">"Ei asennettavaa varmennetta."</string>
    <string name="invalid_cert" msgid="7704228670980743590">"Varmenne on virheellinen."</string>
    <string name="cert_is_added" msgid="6996557598167000500">"<xliff:g id="CREDENTIAL">%s</xliff:g> on asennettu."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"Asennus epäonnistui, koska varmenne on liian suuri."</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Asennus epäonnistui, koska varmennetiedostoa ei löydy."</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Asennus epäonnistui, koska varmennetiedostoa ei voitu lukea."</string>
    <string name="no_cert_file_found" product="nosdcard" msgid="3555332946357131929">"USB-tallennustilasta ei löytynyt varmennetta."</string>
    <string name="no_cert_file_found" product="default" msgid="1942077544887243999">"SD-kortilta ei löytynyt varmennetiedostoa."</string>
    <string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB-tila ei ole käytettävissä."</string>
    <string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Ei SD-korttia."</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Vain tämän laitteen omistaja voi asentaa varmenteita."</string>
    <string name="credential_usage_label" msgid="1513892208033156805">"Käyttöoikeustietojen käyttö:"</string>
  <string-array name="credential_usage">
    <item msgid="375085478373011304">"VPN ja sovellukset"</item>
    <item msgid="692322974985472861">"Wi-Fi"</item>
  </string-array>
    <string name="certificate_capabilities_warning" msgid="4158609401937799110">"Huom. Tämän varmenteen myöntäjä saattaa tarkastaa kaiken laitteelle saapuvan ja siltä lähtevän liikenteen."</string>
    <string name="wifi_title" msgid="8475811746333426489">"Wi-Fi-profiili"</string>
    <string name="wifi_detail_title" msgid="3627332137252994395">"Tietoja kohteesta %s"</string>
    <string name="wifi_detail_label" msgid="3032151019356747583">"Tietoja"</string>
    <string name="wifi_install_label" msgid="1449629407724323233">"Asenna"</string>
    <string name="wifi_installing_label" msgid="8387393993627129025">"Asennetaan"</string>
    <string name="wifi_cancel_label" msgid="1328748037608392134">"Peruuta"</string>
    <string name="wifi_dismiss_label" msgid="1916684434873972698">"Hylkää"</string>
    <string name="wifi_no_config" msgid="1835743123288916755">"Ei mitään"</string>
    <string name="wifi_config_text" msgid="8259587306773310314">"Nimi: %1$s\nFQDN: %2$s\nRoaming-kumppanit: %3$s\nAlue: %4$s\nTodennustapa: EAP-%5$s\n"</string>
    <string name="wifi_ttls_config_text" msgid="2002413183253872168">"Käyttäjätunnus: %s\n"</string>
    <string name="wifi_tls_config_text" msgid="9062328536640168510">"Käyttöoikeusvarmenne:\n%1$s\nAvain: %2$s\n"</string>
    <string name="wifi_sim_config_text" msgid="1666019954520831840">"SIM: %s\n"</string>
    <string name="wifi_trust_config_text" msgid="5916047381475747783">"Luotettu varmenne:\n%s\n"</string>
    <string name="install_done_title" msgid="4822989918460334497">"Kirjautumistiedot on asennettu."</string>
    <string name="install_done" msgid="1522718684172097080">"Kohteen <xliff:g id="NAME">%1$s</xliff:g> kirjautumistiedot on lisätty tallennettuihin Wi-Fi-verkkoihin."</string>
    <string name="done_label" msgid="5597425930652904250">"VALMIS"</string>
    <string name="wifi_installer_detail" msgid="63879632832701669">"Asenna Wi-Fi-kirjautumistiedot, jotta voit yhdistää kohteen <xliff:g id="NAME">%1$s</xliff:g> kautta saatavilla oleviin verkkoihin."</string>
    <string name="wifi_installer_download_error" msgid="5429453090956277692">"Ladatussa tiedostossa on ongelmia, eikä sitä voi asentaa. Varmista, että latasit tiedoston oikeasta lähteestä."</string>
    <string name="wifi_installer_fail" msgid="894483173306576331">"Wi-Fi-kirjautumistietoja ei voi asentaa. Yritä ladata tiedosto uudelleen."</string>
    <string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"Asennus peruutettu"</string>
    <string name="wifi_installer_fail_title" msgid="5547079779067835479">"Asennus ei onnistu"</string>
    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"Ota Wi-Fi käyttöön ja yritä uudelleen."</string>
</resources>
