<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2010 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="3070921713463294774">"Yuklanmalar"</string>
    <string name="download_title_sorted_by_date" msgid="5898014492155434221">"Yuklanmalar – sanasi bo‘yicha"</string>
    <string name="download_title_sorted_by_size" msgid="1417193166677094813">"Yuklanmalar – hajmi bo‘yicha"</string>
    <string name="no_downloads" msgid="1029667411186146836">"Yuklanmalar yo‘q."</string>
    <string name="missing_title" msgid="830115697868833773">"&lt;Noma’lum&gt;"</string>
    <string name="button_sort_by_size" msgid="7331549713691146251">"Hajmi asosida saralash"</string>
    <string name="button_sort_by_date" msgid="8800842892684101528">"Sanasi bo‘yicha saralash"</string>
    <string name="download_queued" msgid="104973307780629904">"Navbatda"</string>
    <string name="download_running" msgid="4656462962155580641">"Yuk. amalda"</string>
    <string name="download_success" msgid="7006048006543495236">"Y"</string>
    <string name="download_error" msgid="8081329546008568251">"Muvaff-siz"</string>
    <string name="dialog_title_not_available" msgid="5746317632356158515">"Yuklab olinmadi"</string>
    <string name="dialog_failed_body" msgid="587545111677064427">"Faylni keyinroq qaytadan yuklab olishga urinib ko‘rasizmi yoki navbatdan o‘chirilsinmi?"</string>
    <string name="dialog_title_queued_body" msgid="6760681913815015219">"Fayl navbatda"</string>
    <string name="dialog_queued_body" msgid="708552801635572720">"Ushbu fayl keyinroq yuklab olish uchun navbatga qo‘shildi, shuning uchun hozir mavjud emas."</string>
    <string name="dialog_file_missing_body" msgid="3223012612774276284">"Yukab olingan fayl topilmadi."</string>
    <string name="dialog_insufficient_space_on_external" msgid="8692452156251449195">"Yuklab olish tugamadi. Tashqi yuklab olish xotirasida yetarlicha bo‘sh joy yo‘q."</string>
    <string name="dialog_insufficient_space_on_cache" msgid="6313630206163908994">"Yuklab olish tugamadi. Ichki yuklab olish xotirasida yetarlicha bo‘sh joy yo‘q."</string>
    <string name="dialog_cannot_resume" msgid="8664509751358983543">"Yuklab olish uzildi, shuning uchun davom ettirib bo‘lmaydi."</string>
    <string name="dialog_file_already_exists" msgid="8308563940663449590">"Yuklab olinmadi. Mo‘ljaldagi fayl allaqachon mavjud."</string>
    <string name="dialog_media_not_found" msgid="4468088418758018765">"Yuklab olinmadi. Tashqi xotira qurilmasi mavjud emas."</string>
    <string name="download_no_application_title" msgid="7024782176657362251">"Fayl ochilmadi"</string>
    <string name="remove_download" msgid="6372920256257247857">"Olib tashlash"</string>
    <string name="delete_download" msgid="76629022653866471">"O‘chirish"</string>
    <string name="keep_queued_download" msgid="5144882786014818569">"Saqlash"</string>
    <string name="cancel_running_download" msgid="5232704030969221112">"Bekor qilish"</string>
    <string name="retry_download" msgid="7617100787922717912">"Qayta urinish"</string>
    <string name="start_now_download" msgid="1564642872809509681">"Boshlash"</string>
    <string name="deselect_all" msgid="6348198946254776764">"Belgilashlarni bekor qil."</string>
    <string name="select_all" msgid="634074918366265804">"Hammasini belgilash"</string>
    <string name="selected_count" msgid="2101564570019753277">"Tanlandi: <xliff:g id="NUMBER">%1$d</xliff:g>/<xliff:g id="TOTAL">%2$d</xliff:g>"</string>
    <string name="download_share_dialog" msgid="3355867339806448955">"Ulashish"</string>
</resources>
