<?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">"Sertifikātu instalēšanas programma"</string>
    <string name="pick_file_title" msgid="4481949485108233297">"Sertifikāta izvēle"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Sertifikāta izgūšana"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"Notiek izvilkšana..."</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Izvilkšana no: %s"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Nosaukuma piešķiršana sertifikātam"</string>
    <string name="credential_name" msgid="1974979771369744378">"Sertifikāta nosaukums:"</string>
    <string name="credential_password" msgid="3520176519550993326">"Ierakstiet paroli, lai izvilktu sertifikātus."</string>
    <string name="credential_info" msgid="2436768402308470397">"Pakotnē ir ietverts:"</string>
    <string name="p12_description" msgid="4128352087331630024">"Sertifikāti PKCS12 atslēgu krātuvē."</string>
    <string name="one_userkey" msgid="3500697912370644881">"viens lietotāja taustiņš"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"viena lietotāja sertifikāts"</string>
    <string name="one_cacrt" msgid="2667950425420663146">"viens CA sertifikāts"</string>
    <string name="n_cacrts" msgid="2141498640685639208">"%d CA sertifikāti"</string>
    <string name="password_error" msgid="2042471639556516356">"Ierakstiet pareizo paroli."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Ierakstiet paroli."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Ierakstiet vārdu."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Ierakstiet vārdu, kas sastāv tikai no burtiem un cipariem."</string>
    <string name="storage_error" msgid="8306802455802770779">"Nevarēja saglabāt sertifikātu. Pieskarieties vienumam Labi, lai mēģinātu vēlreiz."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Sertifikātu nevarēja saglabāt. Akreditācijas datu atmiņa nav iespējota vai nav pareizi inicializēta."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"Sertifikāts nav instalēts."</string>
    <string name="no_cert_to_saved" msgid="5708884372817309068">"Nav instalējamu sertifikātu."</string>
    <string name="invalid_cert" msgid="7704228670980743590">"Sertifikāts nav derīgs."</string>
    <string name="cert_is_added" msgid="6996557598167000500">"<xliff:g id="CREDENTIAL">%s</xliff:g> ir instalēts."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"Nevarēja instalēt, jo sertifikāta izmērs ir pārāk liels."</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Neizdevās instalēt, jo nevarēja atrast sertifikāta failu."</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Neizdevās instalēt, jo nevarēja nolasīt sertifikāta failu."</string>
    <string name="no_cert_file_found" product="nosdcard" msgid="3555332946357131929">"USB krātuvē nav atrasts neviens sertifikāta fails."</string>
    <string name="no_cert_file_found" product="default" msgid="1942077544887243999">"SD kartē netika atrasts neviens sertifikāta fails."</string>
    <string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"USB krātuve nav pieejama."</string>
    <string name="sdcard_not_present" product="default" msgid="3866952732541932947">"SD karte nav ievietota."</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Tikai šīs ierīces īpašnieks var instalēt sertifikātus."</string>
</resources>
