<?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">"Inprimatze-ilara"</string>
    <string name="more_options_button" msgid="2243228396432556771">"Aukera gehiago"</string>
    <string name="label_destination" msgid="9132510997381599275">"Helmuga"</string>
    <string name="label_copies" msgid="3634531042822968308">"Kopiak"</string>
    <string name="label_copies_summary" msgid="3861966063536529540">"Kopiak:"</string>
    <string name="label_paper_size" msgid="908654383827777759">"Paperaren tamaina"</string>
    <string name="label_paper_size_summary" msgid="5668204981332138168">"Paperaren tamaina:"</string>
    <string name="label_color" msgid="1108690305218188969">"Koloretan"</string>
    <string name="label_orientation" msgid="2853142581990496477">"Orientazioa"</string>
    <string name="label_pages" msgid="7768589729282182230">"Orriak"</string>
    <string name="template_all_pages" msgid="3322235982020148762">"<xliff:g id="PAGE_COUNT">%1$s</xliff:g> orriak"</string>
    <string name="template_page_range" msgid="428638530038286328">"<xliff:g id="PAGE_COUNT">%1$s</xliff:g> orriko tartea"</string>
    <string name="pages_range_example" msgid="8558694453556945172">"adib., 1-5, 8,11-13"</string>
    <string name="print_preview" msgid="8010217796057763343">"Inprimatzearen aurrebista"</string>
    <string name="install_for_print_preview" msgid="6366303997385509332">"Aurrebista ikusteko, instalatu PDF ikustailea"</string>
    <string name="printing_app_crashed" msgid="854477616686566398">"Inprimatzeko aplikazioak matxura izan du"</string>
    <string name="generating_print_job" msgid="3119608742651698916">"Inprimatze-lana sortzen"</string>
    <string name="save_as_pdf" msgid="5718454119847596853">"Gorde PDF gisa"</string>
    <string name="all_printers" msgid="5018829726861876202">"Inprimagailu guztiak…"</string>
    <string name="print_dialog" msgid="32628687461331979">"Inprimatzeko elkarrizketa-koadroa"</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">"Bilatu"</string>
    <string name="all_printers_label" msgid="3178848870161526399">"Inprimagailu guztiak"</string>
    <string name="add_print_service_label" msgid="5356702546188981940">"Gehitu zerbitzua"</string>
    <string name="print_search_box_shown_utterance" msgid="7967404953901376090">"Bilaketa-koadroa erakutsi da"</string>
    <string name="print_search_box_hidden_utterance" msgid="5727755169343113351">"Bilaketa-koadroa ezkutatu da"</string>
    <string name="print_add_printer" msgid="1088656468360653455">"Gehitu inprimagailua"</string>
    <string name="print_select_printer" msgid="7388760939873368698">"Hautatu inprimagailua"</string>
    <string name="print_forget_printer" msgid="5035287497291910766">"Ahaztu inprimagailua"</string>
  <plurals name="print_search_result_count_utterance">
    <item quantity="one" msgid="4484953260685964252">"<xliff:g id="COUNT">%1$s</xliff:g> inprimagailu aurkitu da"</item>
    <item quantity="other" msgid="6533817036607128241">"<xliff:g id="COUNT">%1$s</xliff:g> inprimagailu aurkitu dira"</item>
  </plurals>
    <string name="choose_print_service" msgid="3740309762324459694">"Aukeratu inprimatze-zerbitzua"</string>
    <string name="print_searching_for_printers" msgid="6550424555079932867">"Inprimagailuak bilatzen"</string>
    <string name="print_no_printers" msgid="4869403323900054866">"Ez da inprimagailurik aurkitu"</string>
    <string name="printing_notification_title_template" msgid="295903957762447362">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> inprimatzen"</string>
    <string name="cancelling_notification_title_template" msgid="1821759594704703197">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> bertan behera uzten"</string>
    <string name="failed_notification_title_template" msgid="2256217208186530973">"Errorea <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> inprimatzean"</string>
    <string name="blocked_notification_title_template" msgid="1175435827331588646">"Inprimag. <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> blokeatu du"</string>
  <plurals name="composite_notification_title_template">
    <item quantity="one" msgid="5866624638054847057">"<xliff:g id="PRINT_JOB_NAME">%1$d</xliff:g> inprimatze-lana"</item>
    <item quantity="other" msgid="8746611264734222865">"<xliff:g id="PRINT_JOB_NAME">%1$d</xliff:g> inprimatze-lanak"</item>
  </plurals>
    <string name="cancel" msgid="4373674107267141885">"Utzi"</string>
    <string name="restart" msgid="2472034227037808749">"Berrabiarazi"</string>
    <string name="no_connection_to_printer" msgid="2159246915977282728">"Inprimagailua ez dago konektatuta"</string>
    <string name="reason_unknown" msgid="5507940196503246139">"ezezaguna"</string>
    <string name="printer_unavailable" msgid="2434170617003315690">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>: ez dago erabilgarri"</string>
  <string-array name="color_mode_labels">
    <item msgid="7602948745415174937">"Zuri-beltza"</item>
    <item msgid="2762241247228983754">"Koloretakoa"</item>
  </string-array>
  <string-array name="orientation_labels">
    <item msgid="4061931020926489228">"Bertikala"</item>
    <item msgid="3199660090246166812">"Horizontala"</item>
  </string-array>
    <string name="print_write_error_message" msgid="5787642615179572543">"Ezin izan da fitxategian idatzi"</string>
    <string name="print_error_default_message" msgid="8602678405502922346">"Horrek ez du funtzionatu. Saiatu berriro."</string>
    <string name="print_error_retry" msgid="1426421728784259538">"Saiatu berriro"</string>
    <string name="print_error_printer_unavailable" msgid="8985614415253203381">"Une honetan inprimagailua ez dago erabilgarri."</string>
    <string name="print_preparing_preview" msgid="3939930735671364712">"Aurrebista prestatzen…"</string>
</resources>
