<?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">"Installer ng Certificate"</string>
    <string name="pick_file_title" msgid="4481949485108233297">"Pumili ng certificate"</string>
    <string name="pkcs12_password_dialog_title" msgid="5997624645207427161">"I-extract ang certificate"</string>
    <string name="extracting_pkcs12" msgid="1881267738821799771">"Ine-extract…"</string>
    <string name="pkcs12_file_password_dialog_title" msgid="8102721384767269510">"I-extract mula sa %s"</string>
    <string name="name_credential_dialog_title" msgid="277729846491554437">"Pangalanan ang certificate"</string>
    <string name="credential_name" msgid="1974979771369744378">"Pangalan ng certificate:"</string>
    <string name="credential_password" msgid="3520176519550993326">"I-type ang password upang i-extract ang mga certificate."</string>
    <string name="credential_info" msgid="2436768402308470397">"Naglalaman ang package ng:"</string>
    <string name="p12_description" msgid="4128352087331630024">"Mga certificate sa PKCS12 keystore."</string>
    <string name="one_userkey" msgid="3500697912370644881">"isang key ng user"</string>
    <string name="one_usercrt" msgid="7690798336332403106">"isang certificate ng user"</string>
    <string name="one_cacrt" msgid="2667950425420663146">"isang certficate ng CA"</string>
    <string name="n_cacrts" msgid="2141498640685639208">"%d Mga certificate ng CA"</string>
    <string name="password_error" msgid="2042471639556516356">"I-type ang tamang password."</string>
    <string name="password_empty_error" msgid="591713406761723025">"I-type ang password."</string>
    <string name="name_empty_error" msgid="3808800768660110354">"Mag-type ng pangalan."</string>
    <string name="name_char_error" msgid="3176618568784938968">"Mag-type ng pangalan na naglalaman lamang ng mga titik at numero."</string>
    <string name="unable_to_save_cert" msgid="9178604087335389686">"Hindi mai-save ang certificate. Hindi pinagana o maayos na nasimulan ang storage ng kredensyal."</string>
    <string name="cert_not_saved" msgid="4037698479662830270">"Hindi naka-install ang certificate."</string>
    <string name="no_cert_to_saved" msgid="5708884372817309068">"Walang ii-install na certificate."</string>
    <string name="invalid_cert" msgid="7704228670980743590">"Di-wasto ang certificate."</string>
    <string name="action_missing_private_key" msgid="7543470057312920042">"Kinakailangan ng pribadong key para mag-install ng certificate"</string>
    <string name="action_missing_user_cert" msgid="3727411730202316771">"Kinakailangan ng certificate para mag-install ng pribadong key"</string>
    <string name="cert_is_added" msgid="6996557598167000500">"Naka-install ang <xliff:g id="CREDENTIAL">%s</xliff:g>."</string>
    <string name="cert_too_large_error" msgid="8715414972725646285">"Hindi ma-install dahil masyadong malaki ang certificate."</string>
    <string name="cert_missing_error" msgid="7040527352278728220">"Hindi ma-install dahil hindi mahanap ang file ng certificate."</string>
    <string name="cert_read_error" msgid="7353463360652419796">"Hindi mai-install dahil hindi mabasa ang file ng certificate."</string>
    <string name="only_primary_user_allowed" msgid="4005084935023047716">"Ang may-ari lang ng device na ito ang maaaring mag-install ng mga certificate."</string>
    <string name="credential_usage_label" msgid="1513892208033156805">"Paggamit ng kredensyal:"</string>
  <string-array name="credential_usage">
    <item msgid="375085478373011304">"VPN at mga app"</item>
    <item msgid="692322974985472861">"Wi-Fi"</item>
  </string-array>
    <string name="certificate_capabilities_warning" msgid="4158609401937799110">"Tandaan: Maaaring suriin ng nagbigay ng certificate na ito ang lahat ng trapiko papunta at mula sa device."</string>
    <string name="wifi_title" msgid="8475811746333426489">"Profile ng Wi-Fi"</string>
    <string name="wifi_detail_title" msgid="3627332137252994395">"Mga detalye para sa %s"</string>
    <string name="wifi_detail_label" msgid="3032151019356747583">"Mga Detalye"</string>
    <string name="wifi_install_label" msgid="1449629407724323233">"I-install"</string>
    <string name="wifi_installing_label" msgid="8387393993627129025">"Nag-i-install"</string>
    <string name="wifi_cancel_label" msgid="1328748037608392134">"Kanselahin"</string>
    <string name="wifi_dismiss_label" msgid="1916684434873972698">"I-dismiss"</string>
    <string name="wifi_no_config" msgid="1835743123288916755">"Wala"</string>
    <string name="wifi_config_text" msgid="8259587306773310314">"Pangalan: %1$s\nFQDN: %2$s\nMga Roaming Consortium: %3$s\nRealm: %4$s\nParaan ng pagpapatotoo: EAP-%5$s\n"</string>
    <string name="wifi_ttls_config_text" msgid="2002413183253872168">"User name: %s\n"</string>
    <string name="wifi_tls_config_text" msgid="9062328536640168510">"Client certificate:\n%1$s\nKey: %2$s\n"</string>
    <string name="wifi_sim_config_text" msgid="1666019954520831840">"SIM: %s\n"</string>
    <string name="wifi_trust_config_text" msgid="5916047381475747783">"Trust certificate:\n%s\n"</string>
    <string name="install_done_title" msgid="4822989918460334497">"Na-install ang mga credential"</string>
    <string name="install_done" msgid="1522718684172097080">"Naidagdag ang mga credential ng <xliff:g id="NAME">%1$s</xliff:g> sa mga naka-save na network ng Wi-Fi."</string>
    <string name="done_label" msgid="5597425930652904250">"TAPOS NA"</string>
    <string name="wifi_installer_detail" msgid="63879632832701669">"I-install ang mga credential ng Wi-Fi upang kumonekta sa mga network na available sa pamamagitan ng <xliff:g id="NAME">%1$s</xliff:g>."</string>
    <string name="wifi_installer_download_error" msgid="5429453090956277692">"May problema ang mga na-download na file at hindi ma-install ang mga ito. Tiyaking na-download mo ang file mula sa tamang pinagmulan."</string>
    <string name="wifi_installer_fail" msgid="894483173306576331">"Hindi ma-install ang mga credential ng Wi-Fi. Subukang muli ang pagda-download ng file."</string>
    <string name="wifi_installer_fail_no_wifi_title" msgid="8358191074828840533">"Kinansela ang pag-install"</string>
    <string name="wifi_installer_fail_title" msgid="5547079779067835479">"Hindi makapag-install"</string>
    <string name="wifi_installer_fail_no_wifi" msgid="2044576439984209921">"I-on ang Wi-Fi at subukang muli."</string>
</resources>
