<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2013 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_label" msgid="4469836075319831821">"Penspul Cetakan"</string>
    <string name="more_options_button" msgid="2243228396432556771">"Lagi pilihan"</string>
    <string name="label_destination" msgid="9132510997381599275">"Destinasi"</string>
    <string name="label_copies" msgid="3634531042822968308">"Salinan"</string>
    <string name="label_copies_summary" msgid="3861966063536529540">"Salinan:"</string>
    <string name="label_paper_size" msgid="908654383827777759">"Saiz kertas"</string>
    <string name="label_paper_size_summary" msgid="5668204981332138168">"Saiz kertas:"</string>
    <string name="label_color" msgid="1108690305218188969">"Warna"</string>
    <string name="label_orientation" msgid="2853142581990496477">"Orientasi"</string>
    <string name="label_pages" msgid="7768589729282182230">"Halaman"</string>
    <string name="template_all_pages" msgid="3322235982020148762">"Semua <xliff:g id="PAGE_COUNT">%1$s</xliff:g>"</string>
    <string name="template_page_range" msgid="428638530038286328">"Julat <xliff:g id="PAGE_COUNT">%1$s</xliff:g>"</string>
    <string name="pages_range_example" msgid="8558694453556945172">"cth. 1—5,8,11—13"</string>
    <string name="print_preview" msgid="8010217796057763343">"Pratonton cetak"</string>
    <string name="install_for_print_preview" msgid="6366303997385509332">"Pasang pemapar PDF untuk pratonton"</string>
    <string name="printing_app_crashed" msgid="854477616686566398">"Apl percetakan ranap"</string>
    <string name="generating_print_job" msgid="3119608742651698916">"Menjana kerja cetak"</string>
    <string name="save_as_pdf" msgid="5718454119847596853">"Simpan sebagai PDF"</string>
    <string name="all_printers" msgid="5018829726861876202">"Semua pencetak..."</string>
    <string name="print_dialog" msgid="32628687461331979">"Dialog cetakan"</string>
    <string name="current_page_template" msgid="1386638343571771292">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g> /<xliff:g id="PAGE_COUNT">%2$d</xliff:g>"</string>
    <string name="search" msgid="5421724265322228497">"Cari"</string>
    <string name="all_printers_label" msgid="3178848870161526399">"Semua pencetak"</string>
    <string name="add_print_service_label" msgid="5356702546188981940">"Tambahkan perkhidmatan"</string>
    <string name="print_search_box_shown_utterance" msgid="7967404953901376090">"Kotak carian ditunjukkan"</string>
    <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Kotak carian tersembunyi"</string>
    <string name="print_add_printer" msgid="1088656468360653455">"Tambah pencetak"</string>
    <string name="print_select_printer" msgid="7388760939873368698">"Pilih pencetak"</string>
    <string name="print_forget_printer" msgid="5035287497291910766">"Lupakan pencetak"</string>
  <plurals name="print_search_result_count_utterance">
    <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> pencetak ditemui"</item>
    <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> pencetak ditemui"</item>
  </plurals>
    <string name="choose_print_service" msgid="3740309762324459694">"Pilih perkhidmatan cetak"</string>
    <string name="print_searching_for_printers" msgid="6550424555079932867">"Mencari pencetak"</string>
    <string name="print_no_printers" msgid="4869403323900054866">"Tiada pencetak ditemui"</string>
    <string name="printing_notification_title_template" msgid="295903957762447362">"Mencetak <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
    <string name="cancelling_notification_title_template" msgid="1821759594704703197">"Membatalkan <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
    <string name="failed_notification_title_template" msgid="2256217208186530973">"Ralat pencetak <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
    <string name="blocked_notification_title_template" msgid="1175435827331588646">"Pencetak disekat <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string>
  <plurals name="composite_notification_title_template">
    <item quantity="one" msgid="5866624638054847057">"Kerja cetakan <xliff:g id="PRINT_JOB_NAME">%1$d</xliff:g>"</item>
    <item quantity="other" msgid="8746611264734222865">"Kerja cetakan <xliff:g id="PRINT_JOB_NAME">%1$d</xliff:g>"</item>
  </plurals>
    <string name="cancel" msgid="4373674107267141885">"Batal"</string>
    <string name="restart" msgid="2472034227037808749">"Mulakan semula"</string>
    <string name="no_connection_to_printer" msgid="2159246915977282728">"Tiada sambungan ke pencetak"</string>
    <string name="reason_unknown" msgid="5507940196503246139">"tidak diketahui"</string>
    <string name="printer_unavailable" msgid="2434170617003315690">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> – tidak tersedia"</string>
  <string-array name="color_mode_labels">
    <item msgid="7602948745415174937">"Hitam &amp; Putih"</item>
    <item msgid="2762241247228983754">"Warna"</item>
  </string-array>
  <string-array name="orientation_labels">
    <item msgid="4061931020926489228">"Potret"</item>
    <item msgid="3199660090246166812">"Landskap"</item>
  </string-array>
    <string name="print_write_error_message" msgid="5787642615179572543">"Tidak dapat menulis ke fail"</string>
    <string name="print_error_default_message" msgid="8602678405502922346">"Maaf, itu tidak berjaya. Cuba lagi."</string>
    <string name="print_error_retry" msgid="1426421728784259538">"Cuba semula"</string>
    <string name="print_error_printer_unavailable" msgid="8985614415253203381">"Pencetak ini tidak tersedia sekarang."</string>
    <string name="print_preparing_preview" msgid="3939930735671364712">"Menyediakan pratonton..."</string>
</resources>
