<?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">"Ziurtagiri-instalatzailea"</string>
    <string name="pick_file_title" msgid="4481949485108233297">"Aukeratu ziurtagiri bat"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Atera ziurtagiria"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"Ateratzen…"</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Atera %s fitxategitik"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Jarri izena ziurtagiriari"</string>
    <string name="credential_name" msgid="1974979771369744378">"Ziurtagiriaren izena:"</string>
    <string name="credential_password" msgid="3520176519550993326">"Idatzi ziurtagiriak ateratzeko pasahitza."</string>
    <string name="credential_info" msgid="2436768402308470397">"Paketearen edukia:"</string>
    <string name="p12_description" msgid="4128352087331630024">"PKCS12 gako-biltegian dauden ziurtagiriak."</string>
    <string name="one_userkey" msgid="3500697912370644881">"erabiltzaile-gako bat"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"erabiltzaile-ziurtagiri bat"</string>
    <string name="one_cacrt" msgid="2667950425420663146">"CA ziurtagiri bat"</string>
    <string name="n_cacrts" msgid="2141498640685639208">"%d CA ziurtagiriak"</string>
    <string name="password_error" msgid="2042471639556516356">"Idatzi pasahitz zuzena."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Idatzi pasahitza."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Idatzi izena."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Idatzi hizkiak eta zenbakiak soilik dituen izena."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Ezin izan da ziurtagiria gorde. Kredentzialen biltegia ez dago gaituta edo ez da behar bezala abiarazi."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"Ziurtagiria ez dago instalatuta."</string>
    <string name="no_cert_to_saved" msgid="5708884372817309068">"Ez dago ziurtagiririk instalatzeko."</string>
    <string name="invalid_cert" msgid="7704228670980743590">"Ziurtagiriak ez du balio."</string>
    <string name="cert_is_added" msgid="6996557598167000500">"<xliff:g id="CREDENTIAL">%s</xliff:g> instalatu da."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"Ezin izan da instalatu ziurtagiria handiegia delako."</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Ezin izan da instalatu ezin izan delako ziurtagiri-fitxategia aurkitu."</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Ezin izan da instalatu ezin izan delako ziurtagiri-fitxategia irakurri."</string>
    <string name="no_cert_file_found" product="nosdcard" msgid="3555332946357131929">"Ez da ziurtagiri-fitxategirik aurkitu USB memorian."</string>
    <string name="no_cert_file_found" product="default" msgid="1942077544887243999">"Ez da ziurtagiri-fitxategirik aurkitu SD txartelean."</string>
    <string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB memoria ez dago erabilgarri."</string>
    <string name="sdcard_not_present" product="default" msgid="3866952732541932947">"Ez dago SD txartela."</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Gailuaren jabeak soilik instala ditzake ziurtagiriak."</string>
    <string name="credential_usage_label" msgid="1513892208033156805">"Kredentzialen erabilera:"</string>
  <string-array name="credential_usage">
    <item msgid="375085478373011304">"VPN konexioa eta aplikazioak"</item>
    <item msgid="692322974985472861">"Wi-Fi konexioa"</item>
  </string-array>
    <string name="wifi_title" msgid="8475811746333426489">"Wi-Fi profila"</string>
    <string name="wifi_detail_title" msgid="3627332137252994395">"%s sarearen xehetasunak"</string>
    <string name="wifi_detail_label" msgid="3032151019356747583">"Xehetasunak"</string>
    <string name="wifi_install_label" msgid="1449629407724323233">"Instalatu"</string>
    <string name="wifi_installing_label" msgid="8387393993627129025">"Instalatzen"</string>
    <string name="wifi_cancel_label" msgid="1328748037608392134">"Utzi"</string>
    <string name="wifi_dismiss_label" msgid="1916684434873972698">"Baztertu"</string>
    <string name="wifi_no_config" msgid="1835743123288916755">"Bat ere ez"</string>
    <string name="wifi_config_text" msgid="8259587306773310314">"Izena: %1$s\nFQDN: %2$s\nIbiltaritza-bazkidetzak: %3$s\nDomeinua: %4$s\nAutentifikazio-metodoa: EAP-%5$s\n"</string>
    <string name="wifi_ttls_config_text" msgid="2002413183253872168">"Erabiltzaile-izena: %s\n"</string>
    <string name="wifi_tls_config_text" msgid="9062328536640168510">"Bezeroaren ziurtagiria:\n%1$s\nGakoa: %2$s\n"</string>
    <string name="wifi_sim_config_text" msgid="1666019954520831840">"SIM txartela: %s\n"</string>
    <string name="wifi_trust_config_text" msgid="5916047381475747783">"Fidatu ziurtagiri honetan:\n%s\n"</string>
    <string name="install_done_title" msgid="4822989918460334497">"Instalatu dira kredentzialak"</string>
    <string name="install_done" msgid="1522718684172097080">"Gehitu dira <xliff:g id="NAME">%1$s</xliff:g> kredentzialak gordetako Wi-Fi sareetan."</string>
    <string name="done_label" msgid="5597425930652904250">"EGINDA"</string>
    <string name="wifi_installer_detail" msgid="63879632832701669">"Instalatu Wi-Fi kredentzialak <xliff:g id="NAME">%1$s</xliff:g> bidez erabilgarri dauden sareetara konektatzeko."</string>
    <string name="wifi_installer_download_error" msgid="5429453090956277692">"Deskargatutako fitxategiak arazoak ditu eta ezin da instalatu. Ziurtatu iturburu zuzenetik deskargatu duzula fitxategia."</string>
    <string name="wifi_installer_fail" msgid="894483173306576331">"Ezin dira instalatu Wi-Fi kredentzialak. Saiatu fitxategia berriro deskargatzen."</string>
    <string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"Instalazioa bertan behera utzi da"</string>
    <string name="wifi_installer_fail_title" msgid="5547079779067835479">"Ezin da instalatu"</string>
    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"Aktibatu Wi-Fi konexioa eta saiatu berriro."</string>
</resources>
