<?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">"Instal·lador de certificats"</string>
    <string name="pick_file_title" msgid="4481949485108233297">"Tria un certificat"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"Extreu el certificat"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"S\'està extraient..."</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"Extracció de %s"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Assignació d\'un nom al certificat"</string>
    <string name="credential_name" msgid="1974979771369744378">"Nom del certificat:"</string>
    <string name="credential_password" msgid="3520176519550993326">"Introdueix la contrasenya per extreure els certificats."</string>
    <string name="credential_info" msgid="2436768402308470397">"El paquet conté:"</string>
    <string name="p12_description" msgid="4128352087331630024">"Certificats al magatzem de claus PKCS12."</string>
    <string name="one_userkey" msgid="3500697912370644881">"una clau d\'usuari"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"un certificat d\'usuari"</string>
    <string name="one_cacrt" msgid="2667950425420663146">"un certificat de CA"</string>
    <string name="n_cacrts" msgid="2141498640685639208">"%d certificats de CA"</string>
    <string name="password_error" msgid="2042471639556516356">"Introdueix la contrasenya correcta."</string>
    <string name="password_empty_error" msgid="591713406761723025">"Escriu la contrasenya."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Escriu un nom."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Escriu un nom que contingui només lletres i xifres."</string>
    <string name="storage_error" msgid="8306802455802770779">"No s\'ha pogut desar el certificat. Toca D\'acord per tornar-ho a provar."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"No s\'ha pogut desar el certificat. L\'emmagatzematge de credencials no està activat o bé no s\'ha inicialitzat correctament."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"El certificat no està instal·lat."</string>
    <string name="no_cert_to_saved" msgid="5708884372817309068">"No hi ha cap certificat per instal·lar."</string>
    <string name="invalid_cert" msgid="7704228670980743590">"El certificat no és vàlid."</string>
    <string name="cert_is_added" msgid="6996557598167000500">"S\'ha instal·lat <xliff:g id="CREDENTIAL">%s</xliff:g>."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"No s\'ha pogut instal·lar perquè la mida del certificat és massa gran."</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"No s\'ha pogut instal·lar perquè el fitxer de certificat no s\'ha pogut ubicar."</string>
    <string name="cert_read_error" msgid="7353463360652419796">"No s\'ha pogut instal·lar perquè el fitxer de certificat no s\'ha pogut llegir."</string>
    <string name="no_cert_file_found" product="nosdcard" msgid="3555332946357131929">"No s\'ha trobat cap fitxer de certificat a l\'emmagatzematge USB."</string>
    <string name="no_cert_file_found" product="default" msgid="1942077544887243999">"No s\'ha trobat cap fitxer de certificat a la targeta SD."</string>
    <string name="sdcard_not_present" product="nosdcard" msgid="9197143240492611196">"Emmagatzematge USB no disponible."</string>
    <string name="sdcard_not_present" product="default" msgid="3866952732541932947">"No hi ha cap targeta SD."</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Només el propietari d\'aquest dispositiu pot instal·lar certificats."</string>
</resources>
