From 3fc47179d60f2f627379c792a589ef9a4c3a5851 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Tue, 26 Apr 2016 19:50:44 -0700 Subject: Import translations. DO NOT MERGE Change-Id: Ia349ccd4752107368fec98e20d5bb8f6c17a9926 Auto-generated-cl: translation import --- ui/res/values-af/strings.xml | 1 + ui/res/values-am/strings.xml | 1 + ui/res/values-ar/strings.xml | 1 + ui/res/values-az-rAZ/strings.xml | 2 ++ ui/res/values-bg/strings.xml | 2 ++ ui/res/values-bn-rBD/strings.xml | 1 + ui/res/values-ca/strings.xml | 1 + ui/res/values-cs/strings.xml | 2 ++ ui/res/values-da/strings.xml | 1 + ui/res/values-de/strings.xml | 1 + ui/res/values-el/strings.xml | 1 + ui/res/values-en-rAU/strings.xml | 1 + ui/res/values-en-rGB/strings.xml | 1 + ui/res/values-en-rIN/strings.xml | 1 + ui/res/values-es-rUS/strings.xml | 2 ++ ui/res/values-es/strings.xml | 1 + ui/res/values-et-rEE/strings.xml | 1 + ui/res/values-eu-rES/strings.xml | 2 ++ ui/res/values-fa/strings.xml | 2 ++ ui/res/values-fi/strings.xml | 2 ++ ui/res/values-fr-rCA/strings.xml | 2 ++ ui/res/values-fr/strings.xml | 1 + ui/res/values-gl-rES/strings.xml | 2 ++ ui/res/values-gu-rIN/strings.xml | 2 ++ ui/res/values-hi/strings.xml | 1 + ui/res/values-hr/strings.xml | 2 ++ ui/res/values-hu/strings.xml | 1 + ui/res/values-hy-rAM/strings.xml | 2 ++ ui/res/values-in/strings.xml | 2 ++ ui/res/values-is-rIS/strings.xml | 1 + ui/res/values-it/strings.xml | 1 + ui/res/values-iw/strings.xml | 1 + ui/res/values-ja/strings.xml | 2 ++ ui/res/values-ka-rGE/strings.xml | 2 ++ ui/res/values-kk-rKZ/strings.xml | 2 ++ ui/res/values-km-rKH/strings.xml | 2 ++ ui/res/values-kn-rIN/strings.xml | 1 + ui/res/values-ko/strings.xml | 2 ++ ui/res/values-ky-rKG/strings.xml | 2 ++ ui/res/values-lo-rLA/strings.xml | 2 ++ ui/res/values-lt/strings.xml | 2 ++ ui/res/values-lv/strings.xml | 2 ++ ui/res/values-mk-rMK/strings.xml | 1 + ui/res/values-ml-rIN/strings.xml | 2 ++ ui/res/values-mn-rMN/strings.xml | 2 ++ ui/res/values-mr-rIN/strings.xml | 1 + ui/res/values-ms-rMY/strings.xml | 2 ++ ui/res/values-my-rMM/strings.xml | 2 ++ ui/res/values-nb/strings.xml | 1 + ui/res/values-ne-rNP/strings.xml | 2 ++ ui/res/values-nl/strings.xml | 2 ++ ui/res/values-pa-rIN/strings.xml | 2 ++ ui/res/values-pl/strings.xml | 1 + ui/res/values-pt-rPT/strings.xml | 1 + ui/res/values-pt/strings.xml | 2 ++ ui/res/values-ro/strings.xml | 2 ++ ui/res/values-ru/strings.xml | 1 + ui/res/values-si-rLK/strings.xml | 2 ++ ui/res/values-sk/strings.xml | 2 ++ ui/res/values-sl/strings.xml | 1 + ui/res/values-sq-rAL/strings.xml | 1 + ui/res/values-sr/strings.xml | 1 + ui/res/values-sv/strings.xml | 1 + ui/res/values-sw/strings.xml | 2 ++ ui/res/values-ta-rIN/strings.xml | 2 ++ ui/res/values-te-rIN/strings.xml | 2 ++ ui/res/values-th/strings.xml | 2 ++ ui/res/values-tl/strings.xml | 2 ++ ui/res/values-tr/strings.xml | 2 ++ ui/res/values-uk/strings.xml | 1 + ui/res/values-ur-rPK/strings.xml | 2 ++ ui/res/values-uz-rUZ/strings.xml | 2 ++ ui/res/values-vi/strings.xml | 2 ++ ui/res/values-zh-rCN/strings.xml | 2 ++ ui/res/values-zh-rHK/strings.xml | 2 ++ ui/res/values-zh-rTW/strings.xml | 2 ++ ui/res/values-zu/strings.xml | 1 + 77 files changed, 122 insertions(+) diff --git a/ui/res/values-af/strings.xml b/ui/res/values-af/strings.xml index 6da14e0e..181dbf29 100644 --- a/ui/res/values-af/strings.xml +++ b/ui/res/values-af/strings.xml @@ -43,6 +43,7 @@ "Behou" "Kanselleer" "Probeer weer" + "Begin nou" "Ontkies almal" "Kies almal" "%1$d gekies uit %2$d" diff --git a/ui/res/values-am/strings.xml b/ui/res/values-am/strings.xml index 42626740..dc9cec41 100644 --- a/ui/res/values-am/strings.xml +++ b/ui/res/values-am/strings.xml @@ -43,6 +43,7 @@ "ጠብቅ" "ይቅር" "እንደገና ሞክር" + "አሁን ጀምር" "ሁሉንም አትምረጥ" "ሁሉንም ምረጥ" "%1$d%2$d ተመርጧል" diff --git a/ui/res/values-ar/strings.xml b/ui/res/values-ar/strings.xml index 99638b35..1544e54d 100644 --- a/ui/res/values-ar/strings.xml +++ b/ui/res/values-ar/strings.xml @@ -43,6 +43,7 @@ "مواصلة" "إلغاء" "إعادة المحاولة" + "البدء الآن" "إلغاء تحديد الكل" "تحديد الكل" "حدد %1$d من إجمالي %2$d" diff --git a/ui/res/values-az-rAZ/strings.xml b/ui/res/values-az-rAZ/strings.xml index 5ee50dfe..15a736c8 100644 --- a/ui/res/values-az-rAZ/strings.xml +++ b/ui/res/values-az-rAZ/strings.xml @@ -43,6 +43,8 @@ "Saxla" "Ləğv et" "Yeniden yoxla" + + "Hamısını qaldır" "Hamısını seç" "%2$d içindən seçilmiş %1$d" diff --git a/ui/res/values-bg/strings.xml b/ui/res/values-bg/strings.xml index 98ea0292..78b0360c 100644 --- a/ui/res/values-bg/strings.xml +++ b/ui/res/values-bg/strings.xml @@ -43,6 +43,8 @@ "Съхраняване" "Отказ" "Повторен опит" + + "Премахване на избора" "Избиране на всичко" "Избрани са %1$d от %2$d" diff --git a/ui/res/values-bn-rBD/strings.xml b/ui/res/values-bn-rBD/strings.xml index a65a9942..23f906e1 100644 --- a/ui/res/values-bn-rBD/strings.xml +++ b/ui/res/values-bn-rBD/strings.xml @@ -43,6 +43,7 @@ "রাখুন" "বাতিল করুন" "পুনরায় চেষ্টা করুন" + "এখন শুরু করুন" "সবগুলিকে নির্বাচনমুক্ত করুন" "সবগুলি নির্বাচন করুন" "%2$dটির মধ্যে %1$dটি নির্বাচিত" diff --git a/ui/res/values-ca/strings.xml b/ui/res/values-ca/strings.xml index f9fc286c..3892888a 100644 --- a/ui/res/values-ca/strings.xml +++ b/ui/res/values-ca/strings.xml @@ -43,6 +43,7 @@ "Conserva" "Cancel·la" "Torna-ho a provar" + "Comença ara" "Anul·la la selecció de tot" "Selecciona-ho tot" "S\'han seleccionat %1$d de %2$d" diff --git a/ui/res/values-cs/strings.xml b/ui/res/values-cs/strings.xml index 40d7c426..80bfdabc 100644 --- a/ui/res/values-cs/strings.xml +++ b/ui/res/values-cs/strings.xml @@ -43,6 +43,8 @@ "Zachovat" "Zrušit" "Zkusit znovu" + + "Zrušit celý výběr" "Vybrat vše" "Vybráno: %1$d z %2$d" diff --git a/ui/res/values-da/strings.xml b/ui/res/values-da/strings.xml index 595bd8c1..3c79f23b 100644 --- a/ui/res/values-da/strings.xml +++ b/ui/res/values-da/strings.xml @@ -43,6 +43,7 @@ "Behold" "Annuller" "Prøv igen" + "Start nu" "Fjern markering af alle" "Markér alle" "%1$d valgte ud af %2$d" diff --git a/ui/res/values-de/strings.xml b/ui/res/values-de/strings.xml index 936430ab..bfd57060 100644 --- a/ui/res/values-de/strings.xml +++ b/ui/res/values-de/strings.xml @@ -43,6 +43,7 @@ "Beibehalten" "Abbrechen" "Wiederholen" + "Jetzt starten" "Auswahl für alle aufheben" "Alle auswählen" "%1$d von %2$d ausgewählt" diff --git a/ui/res/values-el/strings.xml b/ui/res/values-el/strings.xml index 369d05a3..fac882c9 100644 --- a/ui/res/values-el/strings.xml +++ b/ui/res/values-el/strings.xml @@ -43,6 +43,7 @@ "Διατήρηση" "Ακύρωση" "Επανάληψη" + "Έναρξη τώρα" "Κατάργηση επιλογής όλων" "Επιλογή όλων" "Επιλέχθηκαν %1$d από %2$d" diff --git a/ui/res/values-en-rAU/strings.xml b/ui/res/values-en-rAU/strings.xml index 15cab92d..05289ccd 100644 --- a/ui/res/values-en-rAU/strings.xml +++ b/ui/res/values-en-rAU/strings.xml @@ -43,6 +43,7 @@ "Keep" "Cancel" "Retry" + "Start now" "Deselect all" "Select all" "Selected %1$d out of %2$d" diff --git a/ui/res/values-en-rGB/strings.xml b/ui/res/values-en-rGB/strings.xml index 15cab92d..05289ccd 100644 --- a/ui/res/values-en-rGB/strings.xml +++ b/ui/res/values-en-rGB/strings.xml @@ -43,6 +43,7 @@ "Keep" "Cancel" "Retry" + "Start now" "Deselect all" "Select all" "Selected %1$d out of %2$d" diff --git a/ui/res/values-en-rIN/strings.xml b/ui/res/values-en-rIN/strings.xml index 15cab92d..05289ccd 100644 --- a/ui/res/values-en-rIN/strings.xml +++ b/ui/res/values-en-rIN/strings.xml @@ -43,6 +43,7 @@ "Keep" "Cancel" "Retry" + "Start now" "Deselect all" "Select all" "Selected %1$d out of %2$d" diff --git a/ui/res/values-es-rUS/strings.xml b/ui/res/values-es-rUS/strings.xml index cd040690..5bfc162c 100644 --- a/ui/res/values-es-rUS/strings.xml +++ b/ui/res/values-es-rUS/strings.xml @@ -43,6 +43,8 @@ "Conservar" "Cancelar" "Intentar nuevamente" + + "Desmarcar todas" "Seleccionar todas" "Se seleccionaron %1$d de entre %2$d." diff --git a/ui/res/values-es/strings.xml b/ui/res/values-es/strings.xml index 37903dca..c024fbe1 100644 --- a/ui/res/values-es/strings.xml +++ b/ui/res/values-es/strings.xml @@ -43,6 +43,7 @@ "Conservar" "Cancelar" "Reintentar" + "Iniciar" "Desmarcar todo" "Seleccionar todo" "Elegido: %1$d de %2$d" diff --git a/ui/res/values-et-rEE/strings.xml b/ui/res/values-et-rEE/strings.xml index e2602e5d..b4e46c3a 100644 --- a/ui/res/values-et-rEE/strings.xml +++ b/ui/res/values-et-rEE/strings.xml @@ -43,6 +43,7 @@ "Jäta alles" "Tühista" "Proovi uuesti" + "Alusta kohe" "Tühista kõik valikud" "Vali kõik" "Valitud %1$d/%2$d" diff --git a/ui/res/values-eu-rES/strings.xml b/ui/res/values-eu-rES/strings.xml index b852bb0c..cdade212 100644 --- a/ui/res/values-eu-rES/strings.xml +++ b/ui/res/values-eu-rES/strings.xml @@ -43,6 +43,8 @@ "Utzi bere horretan" "Utzi" "Saiatu berriro" + + "Desautatu guztiak" "Hautatu guztiak" "%1$d/%2$d hautatuta" diff --git a/ui/res/values-fa/strings.xml b/ui/res/values-fa/strings.xml index 61a9ffbe..ada7c131 100644 --- a/ui/res/values-fa/strings.xml +++ b/ui/res/values-fa/strings.xml @@ -43,6 +43,8 @@ "حفظ" "لغو" "امتحان مجدد" + + "لغو انتخاب همه" "انتخاب همه" "%1$d مورد از %2$d انتخاب شده" diff --git a/ui/res/values-fi/strings.xml b/ui/res/values-fi/strings.xml index 7a30abed..30622511 100644 --- a/ui/res/values-fi/strings.xml +++ b/ui/res/values-fi/strings.xml @@ -43,6 +43,8 @@ "Säilytä" "Peruuta" "Yritä uudelleen" + + "Poista kaikki valinnat" "Valitse kaikki" "Valittu %1$d/%2$d" diff --git a/ui/res/values-fr-rCA/strings.xml b/ui/res/values-fr-rCA/strings.xml index 69dacc94..c4a2c043 100644 --- a/ui/res/values-fr-rCA/strings.xml +++ b/ui/res/values-fr-rCA/strings.xml @@ -43,6 +43,8 @@ "Conserver" "Annuler" "Réessayer" + + "Tout désélectionner" "Tout sélectionner" "%1$d téléchargements sélectionnés sur %2$d" diff --git a/ui/res/values-fr/strings.xml b/ui/res/values-fr/strings.xml index 1305ab5c..9525409c 100644 --- a/ui/res/values-fr/strings.xml +++ b/ui/res/values-fr/strings.xml @@ -43,6 +43,7 @@ "Conserver" "Annuler" "Réessayer" + "Commencer" "Tout désélectionner" "Tout sélectionner" "%1$d téléchargements sélectionnés sur %2$d" diff --git a/ui/res/values-gl-rES/strings.xml b/ui/res/values-gl-rES/strings.xml index c3d6c800..ef57358b 100644 --- a/ui/res/values-gl-rES/strings.xml +++ b/ui/res/values-gl-rES/strings.xml @@ -43,6 +43,8 @@ "Manter" "Cancelar" "Tentar de novo" + + "Desmarcar todo" "Seleccionar todas" "Seleccionáronse %1$d de %2$d" diff --git a/ui/res/values-gu-rIN/strings.xml b/ui/res/values-gu-rIN/strings.xml index 7fefdacc..030310d0 100644 --- a/ui/res/values-gu-rIN/strings.xml +++ b/ui/res/values-gu-rIN/strings.xml @@ -43,6 +43,8 @@ "રાખો" "રદ કરો" "ફરી પ્રયાસ કરો" + + "તમામને નાપસંદ કરો" "બધા પસંદ કરો" "%2$d માંથી %1$d પસંદ કર્યા" diff --git a/ui/res/values-hi/strings.xml b/ui/res/values-hi/strings.xml index 715df5c5..f1257a1b 100644 --- a/ui/res/values-hi/strings.xml +++ b/ui/res/values-hi/strings.xml @@ -43,6 +43,7 @@ "रखें" "अभी नहीं" "पुन: प्रयास करें" + "अब शुरू करें" "कुछ भी ना चुनें" "सभी चुनें" "%2$d में से %1$d चयनित" diff --git a/ui/res/values-hr/strings.xml b/ui/res/values-hr/strings.xml index 8f07eaef..2c2b83b5 100644 --- a/ui/res/values-hr/strings.xml +++ b/ui/res/values-hr/strings.xml @@ -43,6 +43,8 @@ "Zadrži" "Odustani" "Pokušaj ponovo" + + "Poništi odabir za sve" "Odaberi sve" "Odabrano %1$d od %2$d" diff --git a/ui/res/values-hu/strings.xml b/ui/res/values-hu/strings.xml index 74145297..aeaf2e04 100644 --- a/ui/res/values-hu/strings.xml +++ b/ui/res/values-hu/strings.xml @@ -43,6 +43,7 @@ "Megőrzés" "Mégse" "Újra" + "Indítás most" "Az összes kijelölés törlése" "Összes kijelölése" "%2$d/%1$d kiválasztva" diff --git a/ui/res/values-hy-rAM/strings.xml b/ui/res/values-hy-rAM/strings.xml index 0b494a6c..10628a5f 100644 --- a/ui/res/values-hy-rAM/strings.xml +++ b/ui/res/values-hy-rAM/strings.xml @@ -43,6 +43,8 @@ "Պահել" "Չեղարկել" "Կրկնել" + + "Ապանշել բոլորը" "Ընտրել բոլորը" "Ընտրված են %1$d%2$d-ից" diff --git a/ui/res/values-in/strings.xml b/ui/res/values-in/strings.xml index 72cb4372..59013dba 100644 --- a/ui/res/values-in/strings.xml +++ b/ui/res/values-in/strings.xml @@ -43,6 +43,8 @@ "Simpan" "Batal" "Coba Lagi" + + "Batalkan semua pilihan" "Pilih semua" "Terpilih %1$d dari %2$d" diff --git a/ui/res/values-is-rIS/strings.xml b/ui/res/values-is-rIS/strings.xml index 2db65251..304d0b28 100644 --- a/ui/res/values-is-rIS/strings.xml +++ b/ui/res/values-is-rIS/strings.xml @@ -43,6 +43,7 @@ "Halda" "Hætta við" "Reyna aftur" + "Byrja núna" "Velja ekkert" "Velja allt" "%1$d skrár valdar af %2$d" diff --git a/ui/res/values-it/strings.xml b/ui/res/values-it/strings.xml index db961fbe..68d8365e 100644 --- a/ui/res/values-it/strings.xml +++ b/ui/res/values-it/strings.xml @@ -43,6 +43,7 @@ "Conserva" "Annulla" "Riprova" + "Avvia adesso" "Deseleziona tutto" "Seleziona tutto" "Selezionati %1$d di %2$d" diff --git a/ui/res/values-iw/strings.xml b/ui/res/values-iw/strings.xml index d284a462..390e3bcf 100644 --- a/ui/res/values-iw/strings.xml +++ b/ui/res/values-iw/strings.xml @@ -43,6 +43,7 @@ "שמור" "ביטול" "נסה שוב" + "התחל כעת" "בטל בחירה של הכל" "בחר הכל" "נבחרו %1$d מתוך %2$d" diff --git a/ui/res/values-ja/strings.xml b/ui/res/values-ja/strings.xml index 49e62325..04b93f73 100644 --- a/ui/res/values-ja/strings.xml +++ b/ui/res/values-ja/strings.xml @@ -43,6 +43,8 @@ "継続" "キャンセル" "再試行" + + "選択をすべて解除" "すべて選択" "選択済み: %1$d/%2$d件" diff --git a/ui/res/values-ka-rGE/strings.xml b/ui/res/values-ka-rGE/strings.xml index 17dab2af..85a3e73d 100644 --- a/ui/res/values-ka-rGE/strings.xml +++ b/ui/res/values-ka-rGE/strings.xml @@ -43,6 +43,8 @@ "შენარჩუნება" "გაუქმება" "გამეორება" + + "ყველა მონიშვნის მოხსნა" "ყველას არჩევა" "მონიშნულია %1$d, სულ %2$d-დან" diff --git a/ui/res/values-kk-rKZ/strings.xml b/ui/res/values-kk-rKZ/strings.xml index 061d127d..07c81f10 100644 --- a/ui/res/values-kk-rKZ/strings.xml +++ b/ui/res/values-kk-rKZ/strings.xml @@ -43,6 +43,8 @@ "Қалсын" "Өшіру" "Қайта әрекеттену" + + "Барлығының таңдауын алыңыз" "Барлығын таңдау" "%1$d таңдалды, барлығы %2$d" diff --git a/ui/res/values-km-rKH/strings.xml b/ui/res/values-km-rKH/strings.xml index cc5f49b6..04ffcf3b 100644 --- a/ui/res/values-km-rKH/strings.xml +++ b/ui/res/values-km-rKH/strings.xml @@ -43,6 +43,8 @@ "បន្ត" "បោះ​បង់​" "សាកល្បង​ម្ដងទៀត" + + "មិន​ជ្រើស​ទាំងអស់" "ជ្រើស​ទាំងអស់" "បាន​ជ្រើស %1$d ក្នុង​ចំណោម %2$d" diff --git a/ui/res/values-kn-rIN/strings.xml b/ui/res/values-kn-rIN/strings.xml index 62fa8a66..67722747 100644 --- a/ui/res/values-kn-rIN/strings.xml +++ b/ui/res/values-kn-rIN/strings.xml @@ -43,6 +43,7 @@ "ಇರಿಸಿ" "ರದ್ದುಮಾಡು" "ಮರುಪ್ರಯತ್ನಿಸಿ" + "ಈಗ ಪ್ರಾರಂಭಿಸಿ" "ಎಲ್ಲಾ ಆಯ್ಕೆಯನ್ನು ರದ್ದುಮಾಡಿ" "ಎಲ್ಲವನ್ನೂ ಆಯ್ಕೆಮಾಡಿ" "%2$d ರಲ್ಲಿ %1$d ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ" diff --git a/ui/res/values-ko/strings.xml b/ui/res/values-ko/strings.xml index 75e69264..a7de2e61 100644 --- a/ui/res/values-ko/strings.xml +++ b/ui/res/values-ko/strings.xml @@ -43,6 +43,8 @@ "유지" "취소" "다시 시도" + + "모두 선택취소" "모두 선택" "%2$d개 중 %1$d개가 선택됨" diff --git a/ui/res/values-ky-rKG/strings.xml b/ui/res/values-ky-rKG/strings.xml index ccfdf0ca..07544953 100644 --- a/ui/res/values-ky-rKG/strings.xml +++ b/ui/res/values-ky-rKG/strings.xml @@ -43,6 +43,8 @@ "Калтыруу" "Айнуу" "Кайра аракеттенүү" + + "Баарын бошотуу" "Бардыгын тандоо" "%2$d ичинен %1$d тандалды" diff --git a/ui/res/values-lo-rLA/strings.xml b/ui/res/values-lo-rLA/strings.xml index 70eb8d67..cd0fa0f6 100644 --- a/ui/res/values-lo-rLA/strings.xml +++ b/ui/res/values-lo-rLA/strings.xml @@ -43,6 +43,8 @@ "ເກັບໄວ້" "ຍົກເລີກ" "ລອງໃໝ່" + + "ບໍ່ເລືອກທັງໝົດ" "ເລືອກທັງຫມົດ" "ເລືອກ %1$d ຈາກ %2$d" diff --git a/ui/res/values-lt/strings.xml b/ui/res/values-lt/strings.xml index 0013210d..17a31301 100644 --- a/ui/res/values-lt/strings.xml +++ b/ui/res/values-lt/strings.xml @@ -43,6 +43,8 @@ "Palikti" "Atšaukti" "Band. dar k." + + "Panaikinti visus žymėjim." "Pasirinkti viską" "Pasirinkti (-a) %1$d%2$d" diff --git a/ui/res/values-lv/strings.xml b/ui/res/values-lv/strings.xml index 6e32b86b..0f83e605 100644 --- a/ui/res/values-lv/strings.xml +++ b/ui/res/values-lv/strings.xml @@ -43,6 +43,8 @@ "Paturēt" "Atcelt" "Mēģināt vēlreiz" + + "Atcelt visu atlasi" "Atlasīt visu" "Atlasītas %1$d no %2$d" diff --git a/ui/res/values-mk-rMK/strings.xml b/ui/res/values-mk-rMK/strings.xml index 15951642..cb52bcd6 100644 --- a/ui/res/values-mk-rMK/strings.xml +++ b/ui/res/values-mk-rMK/strings.xml @@ -43,6 +43,7 @@ "Задржи" "Откажи" "Обиди се повторно" + "Започни сега" "Отштиклирај ги сите" "Избери ги сите" "Избрани %1$d од %2$d" diff --git a/ui/res/values-ml-rIN/strings.xml b/ui/res/values-ml-rIN/strings.xml index 29f9a70e..e28520a3 100644 --- a/ui/res/values-ml-rIN/strings.xml +++ b/ui/res/values-ml-rIN/strings.xml @@ -43,6 +43,8 @@ "സൂക്ഷിക്കുക" "റദ്ദാക്കുക" "വീണ്ടും ശ്രമിക്കുക" + + "തിരഞ്ഞെടുത്തത് എല്ലാം മാറ്റുക" "എല്ലാം തിരഞ്ഞെടുക്കുക" "%1$d / %2$d എണ്ണം തിരഞ്ഞെടുത്തു" diff --git a/ui/res/values-mn-rMN/strings.xml b/ui/res/values-mn-rMN/strings.xml index 3890a24f..b8b5ed3a 100644 --- a/ui/res/values-mn-rMN/strings.xml +++ b/ui/res/values-mn-rMN/strings.xml @@ -43,6 +43,8 @@ "Байлгах" "Цуцлах" "Дахин оролдох" + + "Бүгдийг сонгохгүй" "Бүгдийг сонгох" "%2$d%1$d нь сонгогдсон" diff --git a/ui/res/values-mr-rIN/strings.xml b/ui/res/values-mr-rIN/strings.xml index 4340c570..433fed54 100644 --- a/ui/res/values-mr-rIN/strings.xml +++ b/ui/res/values-mr-rIN/strings.xml @@ -43,6 +43,7 @@ "ठेवा" "रद्द करा" "पुन्हा प्रयत्न करा" + "आता प्रारंभ करा" "सर्व निवड रद्द करा" "सर्व निवडा" "%2$d पैकी %1$d निवडले" diff --git a/ui/res/values-ms-rMY/strings.xml b/ui/res/values-ms-rMY/strings.xml index e1e9f666..1dd230e0 100644 --- a/ui/res/values-ms-rMY/strings.xml +++ b/ui/res/values-ms-rMY/strings.xml @@ -43,6 +43,8 @@ "Simpan" "Batal" "Cuba semula" + + "Nyahpilih semua" "Pilih semua" "Pilihan %1$d dari %2$d" diff --git a/ui/res/values-my-rMM/strings.xml b/ui/res/values-my-rMM/strings.xml index f2483e8e..dcfca94c 100644 --- a/ui/res/values-my-rMM/strings.xml +++ b/ui/res/values-my-rMM/strings.xml @@ -43,6 +43,8 @@ "သိမ်းထားပါ" "ထားတော့" "ပြန်ကြိုးစားပါ" + + "ဘာကိုမှ မရွေးပါ" "အားလုံးရွေးချယ်ရန်" "%1$d ထဲမှ %2$d ရွေးချယ်ပြီး" diff --git a/ui/res/values-nb/strings.xml b/ui/res/values-nb/strings.xml index 4a0faa6c..143fa765 100644 --- a/ui/res/values-nb/strings.xml +++ b/ui/res/values-nb/strings.xml @@ -43,6 +43,7 @@ "Behold" "Avbryt" "Prøv på nytt" + "Start nå" "Opphev alle markeringer" "Velg alle" "Du har valgt %1$d av %2$d" diff --git a/ui/res/values-ne-rNP/strings.xml b/ui/res/values-ne-rNP/strings.xml index 2a7389b2..4c94711e 100644 --- a/ui/res/values-ne-rNP/strings.xml +++ b/ui/res/values-ne-rNP/strings.xml @@ -43,6 +43,8 @@ "राख्नुहोस्" "रद्द गर्नुहोस्" "पुनःप्रयास गर्नुहोस्" + + "सबै अचयन गर्नुहोस्" "सबै चयन गर्नुहोस्" "छानिएको %2$d को %1$d बाट" diff --git a/ui/res/values-nl/strings.xml b/ui/res/values-nl/strings.xml index 47d063c7..64488a5a 100644 --- a/ui/res/values-nl/strings.xml +++ b/ui/res/values-nl/strings.xml @@ -43,6 +43,8 @@ "Houden" "Annuleren" "Opnieuw proberen" + + "Alle selecties opheffen" "Alles selecteren" "%1$d van %2$d geselecteerd" diff --git a/ui/res/values-pa-rIN/strings.xml b/ui/res/values-pa-rIN/strings.xml index e32011b1..ae861aa2 100644 --- a/ui/res/values-pa-rIN/strings.xml +++ b/ui/res/values-pa-rIN/strings.xml @@ -43,6 +43,8 @@ "ਰੱਖੋ" "ਰੱਦ ਕਰੋ" "ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ" + + "ਸਾਰਿਆਂ ਨੂੰ ਅਚੋਣਵਾਂ ਕਰੋ" "ਸਾਰੇ ਚੁਣੋ" "%2$d ਵਿੱਚੋਂ %1$d ਨੂੰ ਚੁਣਿਆ ਗਿਆ" diff --git a/ui/res/values-pl/strings.xml b/ui/res/values-pl/strings.xml index 93c33f67..160faf53 100644 --- a/ui/res/values-pl/strings.xml +++ b/ui/res/values-pl/strings.xml @@ -43,6 +43,7 @@ "Zachowaj" "Anuluj" "Ponów próbę" + "Rozpocznij teraz" "Usuń zaznaczenie wszystkich" "Zaznacz wszystkie" "Wybrano %1$d z %2$d" diff --git a/ui/res/values-pt-rPT/strings.xml b/ui/res/values-pt-rPT/strings.xml index cdfa94f9..c0bb20fe 100644 --- a/ui/res/values-pt-rPT/strings.xml +++ b/ui/res/values-pt-rPT/strings.xml @@ -43,6 +43,7 @@ "Manter" "Cancelar" "Tentar novamente" + "Iniciar agora" "Desmarcar tudo" "Selecionar tudo" "Selecionado(s) %1$d de %2$d" diff --git a/ui/res/values-pt/strings.xml b/ui/res/values-pt/strings.xml index 53052c90..7e976fac 100644 --- a/ui/res/values-pt/strings.xml +++ b/ui/res/values-pt/strings.xml @@ -43,6 +43,8 @@ "Manter" "Cancelar" "Tentar novamente" + + "Desmarcar tudo" "Selecionar tudo" "Selecionados %1$d de %2$d" diff --git a/ui/res/values-ro/strings.xml b/ui/res/values-ro/strings.xml index bc7426ca..a8687026 100644 --- a/ui/res/values-ro/strings.xml +++ b/ui/res/values-ro/strings.xml @@ -43,6 +43,8 @@ "Păstrați" "Anulați" "Reîncercați" + + "Deselectați-le pe toate" "Selectați-le pe toate" "Au fost selectate %1$d din %2$d" diff --git a/ui/res/values-ru/strings.xml b/ui/res/values-ru/strings.xml index 2691941c..c60dba59 100644 --- a/ui/res/values-ru/strings.xml +++ b/ui/res/values-ru/strings.xml @@ -43,6 +43,7 @@ "Сохранить" "Отмена" "Повторить" + "Начать" "Отменить все" "Выбрать все" "%1$d из %2$d" diff --git a/ui/res/values-si-rLK/strings.xml b/ui/res/values-si-rLK/strings.xml index 11873878..c9c8c97b 100644 --- a/ui/res/values-si-rLK/strings.xml +++ b/ui/res/values-si-rLK/strings.xml @@ -43,6 +43,8 @@ "තබාගැනීම" "අවලංගු කරන්න" "නැවත උත්සාහ කරන්න" + + "සියල්ල තේරීම අත්හරින්න" "සියල්ල තෝරන්න" "%2$d ගෙන් %1$d ක් තෝරා ගන්නා ලදී" diff --git a/ui/res/values-sk/strings.xml b/ui/res/values-sk/strings.xml index 5e19134f..322101b7 100644 --- a/ui/res/values-sk/strings.xml +++ b/ui/res/values-sk/strings.xml @@ -43,6 +43,8 @@ "Zachovať" "Zrušiť" "Skúsiť znova" + + "Zrušiť výber všetkého" "Vybrať všetko" "Vybraté: %1$d z %2$d" diff --git a/ui/res/values-sl/strings.xml b/ui/res/values-sl/strings.xml index c506a9de..0154c377 100644 --- a/ui/res/values-sl/strings.xml +++ b/ui/res/values-sl/strings.xml @@ -43,6 +43,7 @@ "Obdrži" "Prekliči" "Poskusi znova" + "Začni zdaj" "Prekliči celoten izbor" "Izberi vse" "Izbrano: %1$d od %2$d" diff --git a/ui/res/values-sq-rAL/strings.xml b/ui/res/values-sq-rAL/strings.xml index 4860d5d1..9fe520ef 100644 --- a/ui/res/values-sq-rAL/strings.xml +++ b/ui/res/values-sq-rAL/strings.xml @@ -43,6 +43,7 @@ "Mbaje" "Anulo" "Provo përsëri" + "Fillo tani" "Hiq përzgjedhjen nga të gjitha" "Përzgjidhi të gjitha" "U zgjodhën %1$d nga gjithsej %2$d" diff --git a/ui/res/values-sr/strings.xml b/ui/res/values-sr/strings.xml index d077cb5a..33dcfe5e 100644 --- a/ui/res/values-sr/strings.xml +++ b/ui/res/values-sr/strings.xml @@ -43,6 +43,7 @@ "Задржи" "Откажи" "Покушај поново" + "Започни одмах" "Опозови све изборе" "Изабери све" "Изабрано је %1$d од %2$d" diff --git a/ui/res/values-sv/strings.xml b/ui/res/values-sv/strings.xml index 446b8b6f..f53a3ce5 100644 --- a/ui/res/values-sv/strings.xml +++ b/ui/res/values-sv/strings.xml @@ -43,6 +43,7 @@ "Behåll" "Avbryt" "Försök igen" + "Starta nu" "Avmarkera alla" "Markera alla" "%1$d av %2$d har valts" diff --git a/ui/res/values-sw/strings.xml b/ui/res/values-sw/strings.xml index 3e09e8fe..31310cc8 100644 --- a/ui/res/values-sw/strings.xml +++ b/ui/res/values-sw/strings.xml @@ -43,6 +43,8 @@ "Weka" "Ghairi" "Jaribu tena" + + "Batilisha uteuzi kwa zote" "Chagua zote" "%1$d zimechaguliwa kati ya %2$d" diff --git a/ui/res/values-ta-rIN/strings.xml b/ui/res/values-ta-rIN/strings.xml index 7056356c..52be2088 100644 --- a/ui/res/values-ta-rIN/strings.xml +++ b/ui/res/values-ta-rIN/strings.xml @@ -43,6 +43,8 @@ "வைத்திரு" "ரத்துசெய்" "மீண்டும் முயற்சிசெய்க" + + "எல்லாம் தேர்வுநீக்கு" "எல்லாவற்றையும் தேர்ந்தெடு" "%2$d இல் %1$d தேர்ந்தெடுக்கப்பட்டன" diff --git a/ui/res/values-te-rIN/strings.xml b/ui/res/values-te-rIN/strings.xml index 9099044e..01748b60 100644 --- a/ui/res/values-te-rIN/strings.xml +++ b/ui/res/values-te-rIN/strings.xml @@ -43,6 +43,8 @@ "ఉంచు" "రద్దు చేయి" "మళ్లీ ప్రయత్నించు" + + "అన్నింటి ఎంపికను తీసివేయి" "అన్నీ ఎంచుకోండి" "%2$dలో %1$d ఎంచుకోబడ్డాయి" diff --git a/ui/res/values-th/strings.xml b/ui/res/values-th/strings.xml index d48c0841..35996f1b 100644 --- a/ui/res/values-th/strings.xml +++ b/ui/res/values-th/strings.xml @@ -43,6 +43,8 @@ "เก็บไว้" "ยกเลิก" "ลองอีกครั้ง" + + "ยกเลิกการเลือกทั้งหมด" "เลือกทั้งหมด" "เลือก %1$d จาก %2$d" diff --git a/ui/res/values-tl/strings.xml b/ui/res/values-tl/strings.xml index 90f9584e..21596d9c 100644 --- a/ui/res/values-tl/strings.xml +++ b/ui/res/values-tl/strings.xml @@ -43,6 +43,8 @@ "Panatilihin" "Kanselahin" "Subukang muli" + + "Alisin sa pagkakapili lahat" "Piliin lahat" "Pinili %1$d sa %2$d" diff --git a/ui/res/values-tr/strings.xml b/ui/res/values-tr/strings.xml index ba2d64d5..517c661d 100644 --- a/ui/res/values-tr/strings.xml +++ b/ui/res/values-tr/strings.xml @@ -43,6 +43,8 @@ "Sakla" "İptal" "Tekrar Dene" + + "Tümünün seçimini kaldır" "Tümünü seç" "Toplam %2$d indirmeden %1$d tanesi seçildi" diff --git a/ui/res/values-uk/strings.xml b/ui/res/values-uk/strings.xml index 88b260b9..dae9bd98 100644 --- a/ui/res/values-uk/strings.xml +++ b/ui/res/values-uk/strings.xml @@ -43,6 +43,7 @@ "Залишити" "Скасувати" "Повторити" + "Почати" "Відмінити все" "Вибрати все" "Вибрано %1$d з %2$d" diff --git a/ui/res/values-ur-rPK/strings.xml b/ui/res/values-ur-rPK/strings.xml index f7a2feaa..39ee55e3 100644 --- a/ui/res/values-ur-rPK/strings.xml +++ b/ui/res/values-ur-rPK/strings.xml @@ -43,6 +43,8 @@ "رکھیں" "منسوخ کریں" "دوبارہ کوشش کریں" + + "سبھی کو غیر منتخب کریں" "سبھی کو منتخب کریں" "%1$d از %2$d کو منتخب کیا گیا" diff --git a/ui/res/values-uz-rUZ/strings.xml b/ui/res/values-uz-rUZ/strings.xml index 172f39bf..65d8617c 100644 --- a/ui/res/values-uz-rUZ/strings.xml +++ b/ui/res/values-uz-rUZ/strings.xml @@ -43,6 +43,8 @@ "Saqlash" "Bekor qilish" "Qayta urinish" + + "Belgilashlarni bekor qil." "Hammasini belgilash" "Tanlandi: %1$d/%2$d" diff --git a/ui/res/values-vi/strings.xml b/ui/res/values-vi/strings.xml index 040245c0..0aa6ae3b 100644 --- a/ui/res/values-vi/strings.xml +++ b/ui/res/values-vi/strings.xml @@ -43,6 +43,8 @@ "Giữ" "Hủy" "Thử lại" + + "Bỏ chọn tất cả" "Chọn tất cả" "Đã chọn %1$d trong tổng số %2$d" diff --git a/ui/res/values-zh-rCN/strings.xml b/ui/res/values-zh-rCN/strings.xml index ae003361..dd1f2435 100644 --- a/ui/res/values-zh-rCN/strings.xml +++ b/ui/res/values-zh-rCN/strings.xml @@ -43,6 +43,8 @@ "保留" "取消" "重试" + + "取消全选" "全选" "已选择 %1$d 个,共 %2$d 个" diff --git a/ui/res/values-zh-rHK/strings.xml b/ui/res/values-zh-rHK/strings.xml index c8cd5777..fbe0fd67 100644 --- a/ui/res/values-zh-rHK/strings.xml +++ b/ui/res/values-zh-rHK/strings.xml @@ -43,6 +43,8 @@ "保留" "取消" "重試" + + "全部不選" "全部選取" "已選取 %1$d 個,共 %2$d 個" diff --git a/ui/res/values-zh-rTW/strings.xml b/ui/res/values-zh-rTW/strings.xml index ee96b6f4..be0ac109 100644 --- a/ui/res/values-zh-rTW/strings.xml +++ b/ui/res/values-zh-rTW/strings.xml @@ -43,6 +43,8 @@ "保留" "取消" "重試" + + "全部取消選取" "全選" "已選取 %1$d 個,共 %2$d 個" diff --git a/ui/res/values-zu/strings.xml b/ui/res/values-zu/strings.xml index 52347ae9..bcebece4 100644 --- a/ui/res/values-zu/strings.xml +++ b/ui/res/values-zu/strings.xml @@ -43,6 +43,7 @@ "Gcina" "Khansela" "Zama futhi" + "Qala manje" "Ungakhethi konke" "Khetha konke" "Khethiwe %1$d kulezi %2$d" -- cgit v1.2.3 From 2f059c7e6525de9ce7380a83e65d5e1093a9edd0 Mon Sep 17 00:00:00 2001 From: Baligh Uddin Date: Mon, 2 May 2016 12:18:02 -0700 Subject: Import translations. DO NOT MERGE Change-Id: I0351a657e2d7c546031396e38b5d93cbcc9a91c2 Auto-generated-cl: translation import --- ui/res/values-az-rAZ/strings.xml | 3 +-- ui/res/values-bg/strings.xml | 3 +-- ui/res/values-cs/strings.xml | 3 +-- ui/res/values-es-rUS/strings.xml | 3 +-- ui/res/values-eu-rES/strings.xml | 3 +-- ui/res/values-fa/strings.xml | 3 +-- ui/res/values-fi/strings.xml | 3 +-- ui/res/values-fr-rCA/strings.xml | 3 +-- ui/res/values-gl-rES/strings.xml | 3 +-- ui/res/values-gu-rIN/strings.xml | 3 +-- ui/res/values-hr/strings.xml | 3 +-- ui/res/values-hy-rAM/strings.xml | 3 +-- ui/res/values-in/strings.xml | 3 +-- ui/res/values-ja/strings.xml | 3 +-- ui/res/values-ka-rGE/strings.xml | 3 +-- ui/res/values-kk-rKZ/strings.xml | 3 +-- ui/res/values-km-rKH/strings.xml | 3 +-- ui/res/values-ko/strings.xml | 3 +-- ui/res/values-ky-rKG/strings.xml | 3 +-- ui/res/values-lo-rLA/strings.xml | 3 +-- ui/res/values-lt/strings.xml | 3 +-- ui/res/values-lv/strings.xml | 3 +-- ui/res/values-ml-rIN/strings.xml | 3 +-- ui/res/values-mn-rMN/strings.xml | 3 +-- ui/res/values-ms-rMY/strings.xml | 3 +-- ui/res/values-my-rMM/strings.xml | 3 +-- ui/res/values-ne-rNP/strings.xml | 3 +-- ui/res/values-nl/strings.xml | 3 +-- ui/res/values-pa-rIN/strings.xml | 3 +-- ui/res/values-pt/strings.xml | 3 +-- ui/res/values-ro/strings.xml | 3 +-- ui/res/values-si-rLK/strings.xml | 3 +-- ui/res/values-sk/strings.xml | 3 +-- ui/res/values-sw/strings.xml | 3 +-- ui/res/values-ta-rIN/strings.xml | 3 +-- ui/res/values-te-rIN/strings.xml | 3 +-- ui/res/values-th/strings.xml | 3 +-- ui/res/values-tl/strings.xml | 3 +-- ui/res/values-tr/strings.xml | 3 +-- ui/res/values-ur-rPK/strings.xml | 3 +-- ui/res/values-uz-rUZ/strings.xml | 3 +-- ui/res/values-vi/strings.xml | 3 +-- ui/res/values-zh-rCN/strings.xml | 3 +-- ui/res/values-zh-rHK/strings.xml | 3 +-- ui/res/values-zh-rTW/strings.xml | 3 +-- 45 files changed, 45 insertions(+), 90 deletions(-) diff --git a/ui/res/values-az-rAZ/strings.xml b/ui/res/values-az-rAZ/strings.xml index 15a736c8..1741b87f 100644 --- a/ui/res/values-az-rAZ/strings.xml +++ b/ui/res/values-az-rAZ/strings.xml @@ -43,8 +43,7 @@ "Saxla" "Ləğv et" "Yeniden yoxla" - - + "İndi başlayın" "Hamısını qaldır" "Hamısını seç" "%2$d içindən seçilmiş %1$d" diff --git a/ui/res/values-bg/strings.xml b/ui/res/values-bg/strings.xml index 78b0360c..90b2e66f 100644 --- a/ui/res/values-bg/strings.xml +++ b/ui/res/values-bg/strings.xml @@ -43,8 +43,7 @@ "Съхраняване" "Отказ" "Повторен опит" - - + "Стартиране сега" "Премахване на избора" "Избиране на всичко" "Избрани са %1$d от %2$d" diff --git a/ui/res/values-cs/strings.xml b/ui/res/values-cs/strings.xml index 80bfdabc..66c51ac9 100644 --- a/ui/res/values-cs/strings.xml +++ b/ui/res/values-cs/strings.xml @@ -43,8 +43,7 @@ "Zachovat" "Zrušit" "Zkusit znovu" - - + "Spustit" "Zrušit celý výběr" "Vybrat vše" "Vybráno: %1$d z %2$d" diff --git a/ui/res/values-es-rUS/strings.xml b/ui/res/values-es-rUS/strings.xml index 5bfc162c..aad7ad0c 100644 --- a/ui/res/values-es-rUS/strings.xml +++ b/ui/res/values-es-rUS/strings.xml @@ -43,8 +43,7 @@ "Conservar" "Cancelar" "Intentar nuevamente" - - + "Comenzar ahora" "Desmarcar todas" "Seleccionar todas" "Se seleccionaron %1$d de entre %2$d." diff --git a/ui/res/values-eu-rES/strings.xml b/ui/res/values-eu-rES/strings.xml index cdade212..9a5c0ba1 100644 --- a/ui/res/values-eu-rES/strings.xml +++ b/ui/res/values-eu-rES/strings.xml @@ -43,8 +43,7 @@ "Utzi bere horretan" "Utzi" "Saiatu berriro" - - + "Hasi" "Desautatu guztiak" "Hautatu guztiak" "%1$d/%2$d hautatuta" diff --git a/ui/res/values-fa/strings.xml b/ui/res/values-fa/strings.xml index ada7c131..e78f900e 100644 --- a/ui/res/values-fa/strings.xml +++ b/ui/res/values-fa/strings.xml @@ -43,8 +43,7 @@ "حفظ" "لغو" "امتحان مجدد" - - + "اکنون شروع شود" "لغو انتخاب همه" "انتخاب همه" "%1$d مورد از %2$d انتخاب شده" diff --git a/ui/res/values-fi/strings.xml b/ui/res/values-fi/strings.xml index 30622511..6221c527 100644 --- a/ui/res/values-fi/strings.xml +++ b/ui/res/values-fi/strings.xml @@ -43,8 +43,7 @@ "Säilytä" "Peruuta" "Yritä uudelleen" - - + "Aloita nyt" "Poista kaikki valinnat" "Valitse kaikki" "Valittu %1$d/%2$d" diff --git a/ui/res/values-fr-rCA/strings.xml b/ui/res/values-fr-rCA/strings.xml index c4a2c043..3c9de43e 100644 --- a/ui/res/values-fr-rCA/strings.xml +++ b/ui/res/values-fr-rCA/strings.xml @@ -43,8 +43,7 @@ "Conserver" "Annuler" "Réessayer" - - + "Commencer maintenant" "Tout désélectionner" "Tout sélectionner" "%1$d téléchargements sélectionnés sur %2$d" diff --git a/ui/res/values-gl-rES/strings.xml b/ui/res/values-gl-rES/strings.xml index ef57358b..841851b5 100644 --- a/ui/res/values-gl-rES/strings.xml +++ b/ui/res/values-gl-rES/strings.xml @@ -43,8 +43,7 @@ "Manter" "Cancelar" "Tentar de novo" - - + "Iniciar agora" "Desmarcar todo" "Seleccionar todas" "Seleccionáronse %1$d de %2$d" diff --git a/ui/res/values-gu-rIN/strings.xml b/ui/res/values-gu-rIN/strings.xml index 030310d0..39bfce8c 100644 --- a/ui/res/values-gu-rIN/strings.xml +++ b/ui/res/values-gu-rIN/strings.xml @@ -43,8 +43,7 @@ "રાખો" "રદ કરો" "ફરી પ્રયાસ કરો" - - + "હવે શરૂ કરો" "તમામને નાપસંદ કરો" "બધા પસંદ કરો" "%2$d માંથી %1$d પસંદ કર્યા" diff --git a/ui/res/values-hr/strings.xml b/ui/res/values-hr/strings.xml index 2c2b83b5..8ff14ddd 100644 --- a/ui/res/values-hr/strings.xml +++ b/ui/res/values-hr/strings.xml @@ -43,8 +43,7 @@ "Zadrži" "Odustani" "Pokušaj ponovo" - - + "Započni odmah" "Poništi odabir za sve" "Odaberi sve" "Odabrano %1$d od %2$d" diff --git a/ui/res/values-hy-rAM/strings.xml b/ui/res/values-hy-rAM/strings.xml index 10628a5f..e7ae3e3c 100644 --- a/ui/res/values-hy-rAM/strings.xml +++ b/ui/res/values-hy-rAM/strings.xml @@ -43,8 +43,7 @@ "Պահել" "Չեղարկել" "Կրկնել" - - + "Մեկնարկել հիմա" "Ապանշել բոլորը" "Ընտրել բոլորը" "Ընտրված են %1$d%2$d-ից" diff --git a/ui/res/values-in/strings.xml b/ui/res/values-in/strings.xml index 59013dba..1c9bf600 100644 --- a/ui/res/values-in/strings.xml +++ b/ui/res/values-in/strings.xml @@ -43,8 +43,7 @@ "Simpan" "Batal" "Coba Lagi" - - + "Mulai sekarang" "Batalkan semua pilihan" "Pilih semua" "Terpilih %1$d dari %2$d" diff --git a/ui/res/values-ja/strings.xml b/ui/res/values-ja/strings.xml index 04b93f73..56dec4b2 100644 --- a/ui/res/values-ja/strings.xml +++ b/ui/res/values-ja/strings.xml @@ -43,8 +43,7 @@ "継続" "キャンセル" "再試行" - - + "今すぐ開始" "選択をすべて解除" "すべて選択" "選択済み: %1$d/%2$d件" diff --git a/ui/res/values-ka-rGE/strings.xml b/ui/res/values-ka-rGE/strings.xml index 85a3e73d..456a584a 100644 --- a/ui/res/values-ka-rGE/strings.xml +++ b/ui/res/values-ka-rGE/strings.xml @@ -43,8 +43,7 @@ "შენარჩუნება" "გაუქმება" "გამეორება" - - + "ახლავე დაწყება" "ყველა მონიშვნის მოხსნა" "ყველას არჩევა" "მონიშნულია %1$d, სულ %2$d-დან" diff --git a/ui/res/values-kk-rKZ/strings.xml b/ui/res/values-kk-rKZ/strings.xml index 07c81f10..61a88f21 100644 --- a/ui/res/values-kk-rKZ/strings.xml +++ b/ui/res/values-kk-rKZ/strings.xml @@ -43,8 +43,7 @@ "Қалсын" "Өшіру" "Қайта әрекеттену" - - + "Қазір бастау" "Барлығының таңдауын алыңыз" "Барлығын таңдау" "%1$d таңдалды, барлығы %2$d" diff --git a/ui/res/values-km-rKH/strings.xml b/ui/res/values-km-rKH/strings.xml index 04ffcf3b..fa8e53c2 100644 --- a/ui/res/values-km-rKH/strings.xml +++ b/ui/res/values-km-rKH/strings.xml @@ -43,8 +43,7 @@ "បន្ត" "បោះ​បង់​" "សាកល្បង​ម្ដងទៀត" - - + "ចាប់ផ្ដើមឥឡូវនេះ" "មិន​ជ្រើស​ទាំងអស់" "ជ្រើស​ទាំងអស់" "បាន​ជ្រើស %1$d ក្នុង​ចំណោម %2$d" diff --git a/ui/res/values-ko/strings.xml b/ui/res/values-ko/strings.xml index a7de2e61..b38b7dc5 100644 --- a/ui/res/values-ko/strings.xml +++ b/ui/res/values-ko/strings.xml @@ -43,8 +43,7 @@ "유지" "취소" "다시 시도" - - + "시작하기" "모두 선택취소" "모두 선택" "%2$d개 중 %1$d개가 선택됨" diff --git a/ui/res/values-ky-rKG/strings.xml b/ui/res/values-ky-rKG/strings.xml index 07544953..04074ded 100644 --- a/ui/res/values-ky-rKG/strings.xml +++ b/ui/res/values-ky-rKG/strings.xml @@ -43,8 +43,7 @@ "Калтыруу" "Айнуу" "Кайра аракеттенүү" - - + "Азыр баштоо" "Баарын бошотуу" "Бардыгын тандоо" "%2$d ичинен %1$d тандалды" diff --git a/ui/res/values-lo-rLA/strings.xml b/ui/res/values-lo-rLA/strings.xml index cd0fa0f6..b62a203b 100644 --- a/ui/res/values-lo-rLA/strings.xml +++ b/ui/res/values-lo-rLA/strings.xml @@ -43,8 +43,7 @@ "ເກັບໄວ້" "ຍົກເລີກ" "ລອງໃໝ່" - - + "ເລີ່ມດຽວນີ້" "ບໍ່ເລືອກທັງໝົດ" "ເລືອກທັງຫມົດ" "ເລືອກ %1$d ຈາກ %2$d" diff --git a/ui/res/values-lt/strings.xml b/ui/res/values-lt/strings.xml index 17a31301..f41b4e9c 100644 --- a/ui/res/values-lt/strings.xml +++ b/ui/res/values-lt/strings.xml @@ -43,8 +43,7 @@ "Palikti" "Atšaukti" "Band. dar k." - - + "Pradėti dabar" "Panaikinti visus žymėjim." "Pasirinkti viską" "Pasirinkti (-a) %1$d%2$d" diff --git a/ui/res/values-lv/strings.xml b/ui/res/values-lv/strings.xml index 0f83e605..7187bd93 100644 --- a/ui/res/values-lv/strings.xml +++ b/ui/res/values-lv/strings.xml @@ -43,8 +43,7 @@ "Paturēt" "Atcelt" "Mēģināt vēlreiz" - - + "Sākt tūlīt" "Atcelt visu atlasi" "Atlasīt visu" "Atlasītas %1$d no %2$d" diff --git a/ui/res/values-ml-rIN/strings.xml b/ui/res/values-ml-rIN/strings.xml index e28520a3..574f8003 100644 --- a/ui/res/values-ml-rIN/strings.xml +++ b/ui/res/values-ml-rIN/strings.xml @@ -43,8 +43,7 @@ "സൂക്ഷിക്കുക" "റദ്ദാക്കുക" "വീണ്ടും ശ്രമിക്കുക" - - + "ഇപ്പോൾ ആരംഭിക്കുക" "തിരഞ്ഞെടുത്തത് എല്ലാം മാറ്റുക" "എല്ലാം തിരഞ്ഞെടുക്കുക" "%1$d / %2$d എണ്ണം തിരഞ്ഞെടുത്തു" diff --git a/ui/res/values-mn-rMN/strings.xml b/ui/res/values-mn-rMN/strings.xml index b8b5ed3a..a6608905 100644 --- a/ui/res/values-mn-rMN/strings.xml +++ b/ui/res/values-mn-rMN/strings.xml @@ -43,8 +43,7 @@ "Байлгах" "Цуцлах" "Дахин оролдох" - - + "Одоо эхлүүлэх" "Бүгдийг сонгохгүй" "Бүгдийг сонгох" "%2$d%1$d нь сонгогдсон" diff --git a/ui/res/values-ms-rMY/strings.xml b/ui/res/values-ms-rMY/strings.xml index 1dd230e0..c7103b87 100644 --- a/ui/res/values-ms-rMY/strings.xml +++ b/ui/res/values-ms-rMY/strings.xml @@ -43,8 +43,7 @@ "Simpan" "Batal" "Cuba semula" - - + "Mulakan sekarang" "Nyahpilih semua" "Pilih semua" "Pilihan %1$d dari %2$d" diff --git a/ui/res/values-my-rMM/strings.xml b/ui/res/values-my-rMM/strings.xml index dcfca94c..7d8e0bda 100644 --- a/ui/res/values-my-rMM/strings.xml +++ b/ui/res/values-my-rMM/strings.xml @@ -43,8 +43,7 @@ "သိမ်းထားပါ" "ထားတော့" "ပြန်ကြိုးစားပါ" - - + "ယခု စတင်ပါ" "ဘာကိုမှ မရွေးပါ" "အားလုံးရွေးချယ်ရန်" "%1$d ထဲမှ %2$d ရွေးချယ်ပြီး" diff --git a/ui/res/values-ne-rNP/strings.xml b/ui/res/values-ne-rNP/strings.xml index 4c94711e..f9966a56 100644 --- a/ui/res/values-ne-rNP/strings.xml +++ b/ui/res/values-ne-rNP/strings.xml @@ -43,8 +43,7 @@ "राख्नुहोस्" "रद्द गर्नुहोस्" "पुनःप्रयास गर्नुहोस्" - - + "अहिले सुरु गर्नुहोस्" "सबै अचयन गर्नुहोस्" "सबै चयन गर्नुहोस्" "छानिएको %2$d को %1$d बाट" diff --git a/ui/res/values-nl/strings.xml b/ui/res/values-nl/strings.xml index 64488a5a..41efab11 100644 --- a/ui/res/values-nl/strings.xml +++ b/ui/res/values-nl/strings.xml @@ -43,8 +43,7 @@ "Houden" "Annuleren" "Opnieuw proberen" - - + "Nu starten" "Alle selecties opheffen" "Alles selecteren" "%1$d van %2$d geselecteerd" diff --git a/ui/res/values-pa-rIN/strings.xml b/ui/res/values-pa-rIN/strings.xml index ae861aa2..f81eedf3 100644 --- a/ui/res/values-pa-rIN/strings.xml +++ b/ui/res/values-pa-rIN/strings.xml @@ -43,8 +43,7 @@ "ਰੱਖੋ" "ਰੱਦ ਕਰੋ" "ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ" - - + "ਹੁਣ ਸ਼ੁਰੂ ਕਰੋ" "ਸਾਰਿਆਂ ਨੂੰ ਅਚੋਣਵਾਂ ਕਰੋ" "ਸਾਰੇ ਚੁਣੋ" "%2$d ਵਿੱਚੋਂ %1$d ਨੂੰ ਚੁਣਿਆ ਗਿਆ" diff --git a/ui/res/values-pt/strings.xml b/ui/res/values-pt/strings.xml index 7e976fac..2c2add42 100644 --- a/ui/res/values-pt/strings.xml +++ b/ui/res/values-pt/strings.xml @@ -43,8 +43,7 @@ "Manter" "Cancelar" "Tentar novamente" - - + "Iniciar agora" "Desmarcar tudo" "Selecionar tudo" "Selecionados %1$d de %2$d" diff --git a/ui/res/values-ro/strings.xml b/ui/res/values-ro/strings.xml index a8687026..6dd16149 100644 --- a/ui/res/values-ro/strings.xml +++ b/ui/res/values-ro/strings.xml @@ -43,8 +43,7 @@ "Păstrați" "Anulați" "Reîncercați" - - + "Începeți acum" "Deselectați-le pe toate" "Selectați-le pe toate" "Au fost selectate %1$d din %2$d" diff --git a/ui/res/values-si-rLK/strings.xml b/ui/res/values-si-rLK/strings.xml index c9c8c97b..d8e59830 100644 --- a/ui/res/values-si-rLK/strings.xml +++ b/ui/res/values-si-rLK/strings.xml @@ -43,8 +43,7 @@ "තබාගැනීම" "අවලංගු කරන්න" "නැවත උත්සාහ කරන්න" - - + "දැන් අරඹන්න" "සියල්ල තේරීම අත්හරින්න" "සියල්ල තෝරන්න" "%2$d ගෙන් %1$d ක් තෝරා ගන්නා ලදී" diff --git a/ui/res/values-sk/strings.xml b/ui/res/values-sk/strings.xml index 322101b7..75f9d01d 100644 --- a/ui/res/values-sk/strings.xml +++ b/ui/res/values-sk/strings.xml @@ -43,8 +43,7 @@ "Zachovať" "Zrušiť" "Skúsiť znova" - - + "Spustiť" "Zrušiť výber všetkého" "Vybrať všetko" "Vybraté: %1$d z %2$d" diff --git a/ui/res/values-sw/strings.xml b/ui/res/values-sw/strings.xml index 31310cc8..8a42448e 100644 --- a/ui/res/values-sw/strings.xml +++ b/ui/res/values-sw/strings.xml @@ -43,8 +43,7 @@ "Weka" "Ghairi" "Jaribu tena" - - + "Anza sasa" "Batilisha uteuzi kwa zote" "Chagua zote" "%1$d zimechaguliwa kati ya %2$d" diff --git a/ui/res/values-ta-rIN/strings.xml b/ui/res/values-ta-rIN/strings.xml index 52be2088..1fb33ee8 100644 --- a/ui/res/values-ta-rIN/strings.xml +++ b/ui/res/values-ta-rIN/strings.xml @@ -43,8 +43,7 @@ "வைத்திரு" "ரத்துசெய்" "மீண்டும் முயற்சிசெய்க" - - + "இப்போதே தொடங்கு" "எல்லாம் தேர்வுநீக்கு" "எல்லாவற்றையும் தேர்ந்தெடு" "%2$d இல் %1$d தேர்ந்தெடுக்கப்பட்டன" diff --git a/ui/res/values-te-rIN/strings.xml b/ui/res/values-te-rIN/strings.xml index 01748b60..737a7c8f 100644 --- a/ui/res/values-te-rIN/strings.xml +++ b/ui/res/values-te-rIN/strings.xml @@ -43,8 +43,7 @@ "ఉంచు" "రద్దు చేయి" "మళ్లీ ప్రయత్నించు" - - + "ఇప్పుడే ప్రారంభించు" "అన్నింటి ఎంపికను తీసివేయి" "అన్నీ ఎంచుకోండి" "%2$dలో %1$d ఎంచుకోబడ్డాయి" diff --git a/ui/res/values-th/strings.xml b/ui/res/values-th/strings.xml index 35996f1b..d12bcf0e 100644 --- a/ui/res/values-th/strings.xml +++ b/ui/res/values-th/strings.xml @@ -43,8 +43,7 @@ "เก็บไว้" "ยกเลิก" "ลองอีกครั้ง" - - + "เริ่มเลย" "ยกเลิกการเลือกทั้งหมด" "เลือกทั้งหมด" "เลือก %1$d จาก %2$d" diff --git a/ui/res/values-tl/strings.xml b/ui/res/values-tl/strings.xml index 21596d9c..0e9d6548 100644 --- a/ui/res/values-tl/strings.xml +++ b/ui/res/values-tl/strings.xml @@ -43,8 +43,7 @@ "Panatilihin" "Kanselahin" "Subukang muli" - - + "Magsimula ngayon" "Alisin sa pagkakapili lahat" "Piliin lahat" "Pinili %1$d sa %2$d" diff --git a/ui/res/values-tr/strings.xml b/ui/res/values-tr/strings.xml index 517c661d..e355f402 100644 --- a/ui/res/values-tr/strings.xml +++ b/ui/res/values-tr/strings.xml @@ -43,8 +43,7 @@ "Sakla" "İptal" "Tekrar Dene" - - + "Şimdi başla" "Tümünün seçimini kaldır" "Tümünü seç" "Toplam %2$d indirmeden %1$d tanesi seçildi" diff --git a/ui/res/values-ur-rPK/strings.xml b/ui/res/values-ur-rPK/strings.xml index 39ee55e3..15648481 100644 --- a/ui/res/values-ur-rPK/strings.xml +++ b/ui/res/values-ur-rPK/strings.xml @@ -43,8 +43,7 @@ "رکھیں" "منسوخ کریں" "دوبارہ کوشش کریں" - - + "ابھی شروع کریں" "سبھی کو غیر منتخب کریں" "سبھی کو منتخب کریں" "%1$d از %2$d کو منتخب کیا گیا" diff --git a/ui/res/values-uz-rUZ/strings.xml b/ui/res/values-uz-rUZ/strings.xml index 65d8617c..a1bd90a8 100644 --- a/ui/res/values-uz-rUZ/strings.xml +++ b/ui/res/values-uz-rUZ/strings.xml @@ -43,8 +43,7 @@ "Saqlash" "Bekor qilish" "Qayta urinish" - - + "Boshlash" "Belgilashlarni bekor qil." "Hammasini belgilash" "Tanlandi: %1$d/%2$d" diff --git a/ui/res/values-vi/strings.xml b/ui/res/values-vi/strings.xml index 0aa6ae3b..77597861 100644 --- a/ui/res/values-vi/strings.xml +++ b/ui/res/values-vi/strings.xml @@ -43,8 +43,7 @@ "Giữ" "Hủy" "Thử lại" - - + "Bắt đầu ngay" "Bỏ chọn tất cả" "Chọn tất cả" "Đã chọn %1$d trong tổng số %2$d" diff --git a/ui/res/values-zh-rCN/strings.xml b/ui/res/values-zh-rCN/strings.xml index dd1f2435..3d0f948d 100644 --- a/ui/res/values-zh-rCN/strings.xml +++ b/ui/res/values-zh-rCN/strings.xml @@ -43,8 +43,7 @@ "保留" "取消" "重试" - - + "立即开始" "取消全选" "全选" "已选择 %1$d 个,共 %2$d 个" diff --git a/ui/res/values-zh-rHK/strings.xml b/ui/res/values-zh-rHK/strings.xml index fbe0fd67..8b2a423c 100644 --- a/ui/res/values-zh-rHK/strings.xml +++ b/ui/res/values-zh-rHK/strings.xml @@ -43,8 +43,7 @@ "保留" "取消" "重試" - - + "立即開始" "全部不選" "全部選取" "已選取 %1$d 個,共 %2$d 個" diff --git a/ui/res/values-zh-rTW/strings.xml b/ui/res/values-zh-rTW/strings.xml index be0ac109..3d39299c 100644 --- a/ui/res/values-zh-rTW/strings.xml +++ b/ui/res/values-zh-rTW/strings.xml @@ -43,8 +43,7 @@ "保留" "取消" "重試" - - + "立即開始" "全部取消選取" "全選" "已選取 %1$d 個,共 %2$d 個" -- cgit v1.2.3 From c9e36cf131983c79a61eeb95e0c84203c98e3276 Mon Sep 17 00:00:00 2001 From: Baligh Uddin Date: Mon, 16 May 2016 08:34:58 -0700 Subject: Import translations. DO NOT MERGE Change-Id: I8b23f7082da080f504f758551850f16d523db7d5 Auto-generated-cl: translation import --- ui/res/values-el/strings.xml | 2 +- ui/res/values-hi/strings.xml | 2 +- ui/res/values-my-rMM/strings.xml | 2 +- ui/res/values-tl/strings.xml | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ui/res/values-el/strings.xml b/ui/res/values-el/strings.xml index fac882c9..bf1c04ca 100644 --- a/ui/res/values-el/strings.xml +++ b/ui/res/values-el/strings.xml @@ -47,5 +47,5 @@ "Κατάργηση επιλογής όλων" "Επιλογή όλων" "Επιλέχθηκαν %1$d από %2$d" - "Κοινή χρήση μέσω" + "Κοινοποίηση μέσω" diff --git a/ui/res/values-hi/strings.xml b/ui/res/values-hi/strings.xml index f1257a1b..4a763e1b 100644 --- a/ui/res/values-hi/strings.xml +++ b/ui/res/values-hi/strings.xml @@ -43,7 +43,7 @@ "रखें" "अभी नहीं" "पुन: प्रयास करें" - "अब शुरू करें" + "अभी शुरू करें" "कुछ भी ना चुनें" "सभी चुनें" "%2$d में से %1$d चयनित" diff --git a/ui/res/values-my-rMM/strings.xml b/ui/res/values-my-rMM/strings.xml index 7d8e0bda..66f5d9f6 100644 --- a/ui/res/values-my-rMM/strings.xml +++ b/ui/res/values-my-rMM/strings.xml @@ -41,7 +41,7 @@ "ဖယ်ရှားရန်" "ဖျက်ပစ်ရန်" "သိမ်းထားပါ" - "ထားတော့" + "ဖျက်သိမ်းရန်" "ပြန်ကြိုးစားပါ" "ယခု စတင်ပါ" "ဘာကိုမှ မရွေးပါ" diff --git a/ui/res/values-tl/strings.xml b/ui/res/values-tl/strings.xml index 0e9d6548..259b7927 100644 --- a/ui/res/values-tl/strings.xml +++ b/ui/res/values-tl/strings.xml @@ -32,14 +32,14 @@ "File sa queue" "Ang file na ito ay naka-queue para sa pag-download sa hinaharap kaya hindi pa available." "Hindi matagpuan ang na-download na file." - "Hindi matapos ang pag-download. Walang sapat na puwang sa panlabas na storage." - "Hindi matapos ang pag-download. Walang sapat na puwang sa panloob na storage ng pag-download." + "Hindi matapos ang pag-download. Walang sapat na puwang sa external storage." + "Hindi matapos ang pag-download. Walang sapat na puwang sa internal storage ng pag-download." "Naantala ang pag-download at hindi maipagpapatuloy." "Hindi ma-download. Umiiral na ang destination file." "Hindi makapag-download. Hindi available ang panlabas na media." "Hindi mabuksan ang file" "Alisin" - "Tanggalin" + "I-delete" "Panatilihin" "Kanselahin" "Subukang muli" -- cgit v1.2.3 From c41911fe9f3a9c2772192ade60495f9e84f0a08c Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 23 May 2016 04:41:39 -0700 Subject: Import translations. DO NOT MERGE Change-Id: I9d9382aab69828b91978d8a1adcf80b341d29a4e Auto-generated-cl: translation import --- ui/res/values-af/strings.xml | 8 ++++---- ui/res/values-ky-rKG/strings.xml | 2 +- ui/res/values-ml-rIN/strings.xml | 2 +- ui/res/values-my-rMM/strings.xml | 6 +++--- ui/res/values-pa-rIN/strings.xml | 8 ++++---- ui/res/values-tr/strings.xml | 2 +- ui/res/values-uz-rUZ/strings.xml | 12 ++++++------ 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/ui/res/values-af/strings.xml b/ui/res/values-af/strings.xml index 181dbf29..996f81ec 100644 --- a/ui/res/values-af/strings.xml +++ b/ui/res/values-af/strings.xml @@ -16,10 +16,10 @@ - "Aflaaisels" - "Aflaaisels - gerangskik volgens datum" - "Aflaaisels - gerangskik volgens grootte" - "Geen aflaaisels nie." + "Aflaaie" + "Aflaaie - gerangskik volgens datum" + "Aflaaie - gerangskik volgens grootte" + "Geen aflaaie nie." "<Onbekend>" "Rangskik volgens grootte" "Rangskik volgens datum" diff --git a/ui/res/values-ky-rKG/strings.xml b/ui/res/values-ky-rKG/strings.xml index 04074ded..d20c7c09 100644 --- a/ui/res/values-ky-rKG/strings.xml +++ b/ui/res/values-ky-rKG/strings.xml @@ -16,7 +16,7 @@ - "Жүктөөлөр" + "Жүктөлүп алынгандар" "Жүктөөлөр - датасы боюнча ылганган" "Жүктөөлөр - өлчөмү боюнча ылганган" "Жүктөөлөр жок." diff --git a/ui/res/values-ml-rIN/strings.xml b/ui/res/values-ml-rIN/strings.xml index 574f8003..6b3e89c0 100644 --- a/ui/res/values-ml-rIN/strings.xml +++ b/ui/res/values-ml-rIN/strings.xml @@ -16,7 +16,7 @@ - "ഡൗൺലോഡുകൾ" + "ഡൗണ്‍ലോഡ്" "ഡൗൺലോഡുകൾ - തീയതി പ്രകാരം അടുക്കുക" "ഡൗൺലോഡുകൾ - വലുപ്പം പ്രകാരം അടുക്കുക" "ഡൗൺലോഡുകളൊന്നുമില്ല." diff --git a/ui/res/values-my-rMM/strings.xml b/ui/res/values-my-rMM/strings.xml index 66f5d9f6..d12d740a 100644 --- a/ui/res/values-my-rMM/strings.xml +++ b/ui/res/values-my-rMM/strings.xml @@ -32,11 +32,11 @@ "ဖိုင်ကိုတန်းစီထားသည်" "နောင်တွင် ဒေါင်းလုပ်ပြုလုပ်ရန် ဖိုင်ကိုတန်းစီထားသောကြောင့် မရနိုင်သေးပါ" "ဒေါင်းလုပ်ပြုလုပ်ထားသောဖိုင်အား ရှာမရပါ" - "ဒေါင်းလုပ် မပြီးဆုံးနိုင်ပါ၊ ပြင်ပ သိုလှောင်ရာနေရာတွင် လုံလောက်သော နေရာလွတ် မရှိပါ။" - "ဒေါင်းလုပ် မပြီးဆုံးနိုင်ပါ၊ စက်တွင်းဒေါင်းလုပ်သိုလှောင်မှုတွင် လုံလောက်သောနေရာလပ်မရှိပါ" + "ဒေါင်းလုဒ် မပြီးဆုံးနိုင်ပါ၊ ပြင်ပ သိုလှောင်ရာနေရာတွင် လုံလောက်သော နေရာလွတ် မရှိပါ။" + "ဒေါင်းလုဒ် မပြီးဆုံးနိုင်ပါ၊ စက်တွင်းဒေါင်းလုဒ်သိုလှောင်မှုတွင် လုံလောက်သောနေရာလပ်မရှိပါ" "ဒေါင်းလုပ်မှာ နှောက်ယှက်ခံရသောကြောင့် ​ပြန်မစနိုင်ပါ" "ဒေါင်းလုပ်ပြုလုပ်မရပါ၊ ဦးတည်ရာဖိုင် ရှိနှင့်ပြီးဖြစ်သည်။" - "ဒေါင်းလုပ် မပြုလုပ်နိုင်ပါ၊ ပြင်ပ မီဒီယာ မရှိပါ။" + "ဒေါင်းလုဒ် မပြုလုပ်နိုင်ပါ၊ ပြင်ပ မီဒီယာ မရှိပါ။" "ဖိုင်အား ဖွင့်မရပါ" "ဖယ်ရှားရန်" "ဖျက်ပစ်ရန်" diff --git a/ui/res/values-pa-rIN/strings.xml b/ui/res/values-pa-rIN/strings.xml index f81eedf3..4d26bb49 100644 --- a/ui/res/values-pa-rIN/strings.xml +++ b/ui/res/values-pa-rIN/strings.xml @@ -16,10 +16,10 @@ - "ਡਾਊਨਲੋਡਸ" + "ਡਾਊਨਲੋਡ" "ਡਾਊਨਲੋਡਸ - ਤਾਰੀਖ ਮੁਤਾਬਕ ਛਾਂਟਿਆ" "ਡਾਊਨਲੋਡਸ - ਆਕਾਰ ਮੁਤਾਬਕ ਛਾਂਟਿਆ" - "ਕੋਈ ਡਾਊਨਲੋਡਸ ਨਹੀਂ।" + "ਕੋਈ ਡਾਊਨਲੋਡ ਨਹੀਂ।" "<ਅਗਿਆਤ>" "ਆਕਾਰ ਮੁਤਾਬਕ ਛਾਂਟੋ" "ਤਾਰੀਖ ਮੁਤਾਬਕ ਛਾਂਟੋ" @@ -45,7 +45,7 @@ "ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ" "ਹੁਣ ਸ਼ੁਰੂ ਕਰੋ" "ਸਾਰਿਆਂ ਨੂੰ ਅਚੋਣਵਾਂ ਕਰੋ" - "ਸਾਰੇ ਚੁਣੋ" + "ਸਭ ਚੁਣੋ" "%2$d ਵਿੱਚੋਂ %1$d ਨੂੰ ਚੁਣਿਆ ਗਿਆ" - "ਇਸ ਰਾਹੀਂ ਸ਼ੇਅਰ ਕਰੋ" + "ਇਸ ਰਾਹੀਂ ਸਾਂਝਾ ਕਰੋ" diff --git a/ui/res/values-tr/strings.xml b/ui/res/values-tr/strings.xml index e355f402..429b06e6 100644 --- a/ui/res/values-tr/strings.xml +++ b/ui/res/values-tr/strings.xml @@ -43,7 +43,7 @@ "Sakla" "İptal" "Tekrar Dene" - "Şimdi başla" + "Şimdi başlat" "Tümünün seçimini kaldır" "Tümünü seç" "Toplam %2$d indirmeden %1$d tanesi seçildi" diff --git a/ui/res/values-uz-rUZ/strings.xml b/ui/res/values-uz-rUZ/strings.xml index a1bd90a8..d8ed1685 100644 --- a/ui/res/values-uz-rUZ/strings.xml +++ b/ui/res/values-uz-rUZ/strings.xml @@ -16,10 +16,10 @@ - "Yuklanishlar" - "Yuklab olishlar - Sana bo‘yicha saralan." - "Yuklab olishlar - Hajm bo‘yicha saralan." - "Yuklab olishlar yo‘q." + "Yuklanmalar" + "Yuklanmalar – sanasi bo‘yicha" + "Yuklanmalar – hajmi bo‘yicha" + "Yuklanmalar yo‘q." "<Noma’lum>" "Hajmi bo‘yicha saralash" "Sanasi bo‘yicha saralash" @@ -38,7 +38,7 @@ "Yuklab olinmadi. Mo‘ljaldagi fayl allaqachon mavjud." "Yuklab olinmadi. Tashqi xotira qurilmasi mavjud emas." "Fayl ochilmadi" - "O‘chirish" + "Olib tashlash" "O‘chirish" "Saqlash" "Bekor qilish" @@ -47,5 +47,5 @@ "Belgilashlarni bekor qil." "Hammasini belgilash" "Tanlandi: %1$d/%2$d" - "Ulashish usuli" + "Baham ko‘rish" -- cgit v1.2.3 From 13cedd390febb3992923f98ecff180a7a720755d Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 3 Jun 2016 17:00:45 -0700 Subject: Import translations. DO NOT MERGE Change-Id: I979d621b448069f2a7d6d732fd692ceae4f2b33b Auto-generated-cl: translation import --- res/values-af/strings.xml | 16 ++++++++-------- res/values-bn-rBD/strings.xml | 6 +++--- res/values-eu-rES/strings.xml | 2 +- res/values-fa/strings.xml | 2 +- res/values-fr-rCA/strings.xml | 2 +- res/values-gu-rIN/strings.xml | 10 +++++----- res/values-kn-rIN/strings.xml | 6 +++--- res/values-ky-rKG/strings.xml | 6 +++--- res/values-ml-rIN/strings.xml | 4 ++-- res/values-my-rMM/strings.xml | 8 ++++---- res/values-ne-rNP/strings.xml | 6 +++--- res/values-pa-rIN/strings.xml | 10 +++++----- res/values-uz-rUZ/strings.xml | 10 +++++----- ui/res/values-fr-rCA/strings.xml | 2 +- ui/res/values-hy-rAM/strings.xml | 2 +- ui/res/values-kk-rKZ/strings.xml | 2 +- ui/res/values-my-rMM/strings.xml | 8 ++++---- 17 files changed, 51 insertions(+), 51 deletions(-) diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml index 0daba96d..daeaed91 100644 --- a/res/values-af/strings.xml +++ b/res/values-af/strings.xml @@ -18,20 +18,20 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Aflaaibestuurder" "Kry toegang tot aflaaibestuurder." - "Laat die program toe om toegang te kry tot die aflaaibestuurder en dit te gebruik om lêers af te laai. Kwaadwillige programme kan dit gebruik om aflaaisels te ontwrig en toegang tot private inligting te kry." + "Laat die program toe om toegang te kry tot die aflaaibestuurder en dit te gebruik om lêers af te laai. Kwaadwillige programme kan dit gebruik om aflaaie te ontwrig en toegang tot private inligting te kry." "Gevorderde aflaaibestuurder-funksies" - "Laat die program toe om toegang te kry tot die aflaaibestuurder se gevorderde instellings. Kwaadwillige programme kan dit gebruik om aflaaisels te ontwrig en toegang tot private inligting te kry." + "Laat die program toe om toegang te kry tot die aflaaibestuurder se gevorderde instellings. Kwaadwillige programme kan dit gebruik om aflaaie te ontwrig en toegang tot private inligting te kry." "Stuur aflaaikennisgewings." - "Laat die program toe om kennisgewings te stuur oor voltooide aflaaisels. Kwaadwillige programme kan dit gebruik om ander programme wat lêers aflaai, te verwar." - "Sien alle aflaaisels na USB-berging" - "Sien alle aflaaisels op SD-kaart" - "Laat die program toe om alle aflaaisels na die SD-kaart te sien, ongeag deur watter program hulle afgelaai is." + "Laat die program toe om kennisgewings te stuur oor voltooide aflaaie. Kwaadwillige programme kan dit gebruik om ander programme wat lêers aflaai, te verwar." + "Sien alle aflaaie na USB-berging" + "Sien alle aflaaie op SD-kaart" + "Laat die program toe om alle aflaaie na die SD-kaart te sien, ongeag deur watter program hulle afgelaai is." "Reserveer ruimte in die aflaaikas" "Laat die program toe om lêers af te laai na die aflaaikas, wat nie outomaties uitgevee kan word as die aflaaibestuurder meer spasie benodig nie." "laai lêers af sonder kennisgewing" "Laat die program toe om lêers deur die aflaaibestuurder af te laai sonder enige kennisgewing wat aan die gebruiker gewys word." "Kry toegang tot alle stelselaflaaisels" - "Laat die program toe om alle aflaaisels wat deur enige program op hierdie stelsel geïnisieer is, te sien en te wysig." + "Laat die program toe om alle aflaaie wat deur enige program op hierdie stelsel geïnisieer is, te sien en te wysig." "<Ongetiteld>" "Aflaai voltooi." "Aflaai onsuksesvol." @@ -54,7 +54,7 @@ "%s oor" "Kan nie lêer oopmaak nie" - "Aflaaisels" + "Aflaaie" "In waglys" "Besig" "Onsuksesvol" diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml index 57537d4d..90c6ecc4 100644 --- a/res/values-bn-rBD/strings.xml +++ b/res/values-bn-rBD/strings.xml @@ -35,12 +35,12 @@ "<শিরোনামহীন>" "ডাউনলোড সম্পূর্ণ হয়েছে।" "ডাউনলোড অসফল।" - "ডাউনলোড বড় হওয়ায় Wi-Fi লাগবে।" + "ডাউনলোড বড় হওয়ায় ওয়াই-ফাই লাগবে।" "পশ্চাদপটে বিরাম দেওয়া আছে।" "অপারেটর নেটওয়ার্কের জন্য ডাউনলোড অত্যন্ত বড়" - "এই %s ডাউনলোড সম্পূর্ণ করতে আপনাকে অবশ্যই Wi-Fi ব্যবহার করতে হবে।\n\nআপনি পরবর্তীতে যখন Wi-Fi নেটওয়ার্কে সংযুক্ত হবেন তখন এই ডাউনলোড শুরু করতে %s স্পর্শ করুন।" + "এই %s ডাউনলোড সম্পূর্ণ করতে আপনাকে অবশ্যই ওয়াই-ফাই ব্যবহার করতে হবে।\n\nআপনি পরবর্তীতে যখন ওয়াই-ফাই নেটওয়ার্কে সংযুক্ত হবেন তখন এই ডাউনলোড শুরু করতে %s স্পর্শ করুন।" "পরে ডাউনলোডের জন্য সারিবদ্ধ করবেন?" - "এই %s ডাউনলোড শুরু করলে তা আপনার ব্যাটারি জীবন এবং/অথবা ফলস্বরুপ মাত্রাতিরিক্ত আপনার মোবাইল ডেটা সংযোগ ব্যবহার হতে পারে, যার ফলে আপনার মোবাইল অপারেটর আপনার ডেটা প্ল্যানের উপর নির্ভর করে চার্জ করতে পারে।\n\n আপনার পরবর্তীতে যখন Wi-Fi নেটওয়ার্কে সংযুক্ত হবেন তখন এই ডাউনলোড শুরু করতে %s স্পর্শ করুন।" + "এই %s ডাউনলোড শুরু করলে তা আপনার ব্যাটারি জীবন এবং/অথবা ফলস্বরুপ মাত্রাতিরিক্ত আপনার মোবাইল ডেটা সংযোগ ব্যবহার হতে পারে, যার ফলে আপনার মোবাইল অপারেটর আপনার ডেটা প্ল্যানের উপর নির্ভর করে চার্জ করতে পারে।\n\n আপনার পরবর্তীতে যখন ওয়াই-ফাই নেটওয়ার্কে সংযুক্ত হবেন তখন এই ডাউনলোড শুরু করতে %s স্পর্শ করুন।" "সারি" "বাতিল করুন" "এখন শুরু করুন" diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml index 282fb2fa..5589bbfa 100644 --- a/res/values-eu-rES/strings.xml +++ b/res/values-eu-rES/strings.xml @@ -33,7 +33,7 @@ "Atzitu sistemaren deskarga guztiak" "Aplikazioek sisteman hasitako deskarga guztiak ikustea eta aldatzea baimentzen die aplikazioei." "<Izengabea>" - "Deskarga osatu da." + "Osatu da deskarga." "Ezin izan da deskargatu." "Wi-Fi konexioa behar da." "Atzeko planoan pausatuta" diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 473d4d7e..119b2a75 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -27,7 +27,7 @@ "‏مشاهدهٔ همه بارگیری‌ها در کارت SD" "‏به برنامه اجازه می‌دهد بدون در نظر گرفتن اینکه کدام برنامه بارگیری را انجام داده است، تمام بارگیریهای موجود در کارت SD را مشاهده کند." "رزرو فضا در حافظه موقت بارگیری" - "‏به برنامه اجازه می‌دهد فایل‌ها را در حافظهٔ پنهان بارگیری کند، تا هنگامی که Download Manager به فضای بیشتری احتیاج دارد، بطور خودکار حذف نشوند.+" + "‏به برنامه اجازه می‌دهد فایل‌ها را در حافظهٔ پنهان بارگیری کند، تا هنگامی که Download Manager به فضای بیشتری احتیاج دارد، به‌طور خودکار حذف نشوند.+" "بارگیری فایل‌ها بدون اطلاع" "‏به برنامه اجازه می‌دهد فایل‌ها را از طریق Download Manager، بدون نمایش اعلان به کاربر بارگیری کند." "دسترسی به همه بارگیری‌های سیستم" diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index 1484556d..768300b3 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -43,7 +43,7 @@ "Ce téléchargement (%s ) risque de décharger votre batterie et/ou d\'entraîner une consommation excessive de votre connexion Internet mobile. Des frais supplémentaires peuvent être facturés par votre opérateur en fonction de votre forfait.\n\nAppuyez sur %s pour le lancer lors de votre prochaine connexion au Wi-Fi." "File d\'attente" "Annuler" - "Commencer maintenant" + "Commencer" Téléchargement de %d fichier Téléchargement de %d fichiers diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml index 33eb5fc7..2c874147 100644 --- a/res/values-gu-rIN/strings.xml +++ b/res/values-gu-rIN/strings.xml @@ -18,20 +18,20 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ડાઉનલોડ સંચાલક" "ડાઉનલોડ સંચાલકને ઍક્સેસ કરો." - "એપ્લિકેશનને ડાઉનલોડ સંચાલકને ઍક્સેસ કરવાની અને ફાઇલો ડાઉનલોડ કરવા માટે તેના ઉપયોગની મંજૂરી આપે છે. દુભાવનાપૂર્ણ એપ્લિકેશનો આનો ઉપયોગ ડાઉનલોડ્સમાં વિક્ષેપ નાખવા અને ખાનગી માહિતીને ઍક્સેસ કરવા માટે કરી શકે છે." + "એપ્લિકેશનને ડાઉનલોડ સંચાલકને ઍક્સેસ કરવાની અને ફાઇલો ડાઉનલોડ કરવા માટે તેના ઉપયોગની મંજૂરી આપે છે. દુભાવનાપૂર્ણ ઍપ્લિકેશનો આનો ઉપયોગ ડાઉનલોડ્સમાં વિક્ષેપ નાખવા અને ખાનગી માહિતીને ઍક્સેસ કરવા માટે કરી શકે છે." "વિગતવાર ડાઉનલોડ સંચાલક કર્યો." - "એપ્લિકેશનને ડાઉનલોડ સંચાલકના વિગતવાર કાર્યોને ઍક્સેસ કરવાની મંજૂરી આપે છે. દુભાવનાપૂર્ણ એપ્લિકેશનો આનો ઉપયોગ ડાઉનલોડ્સમાં વિક્ષેપ નાખવા અને ખાનગી માહિતીને ઍક્સેસ કરવા માટે કરી શકે છે." + "એપ્લિકેશનને ડાઉનલોડ સંચાલકના વિગતવાર કાર્યોને ઍક્સેસ કરવાની મંજૂરી આપે છે. દુભાવનાપૂર્ણ ઍપ્લિકેશનો આનો ઉપયોગ ડાઉનલોડ્સમાં વિક્ષેપ નાખવા અને ખાનગી માહિતીને ઍક્સેસ કરવા માટે કરી શકે છે." "ડાઉનલોડ સૂચનાઓ મોકલો." - "એપ્લિકેશનને પૂર્ણ થયેલ ડાઉનલોડ્સ વિશે સૂચનાઓ મોકલવાની મંજૂરી આપે છે. દુર્ભાવનાપૂર્ણ એપ્લિકેશનો આનો ઉપયોગ ફાઇલો ડાઉનલોડ કરતી અન્ય એપ્લિકેશનોને મૂંઝવણમાં નાખવા માટે કરી શકે છે." + "એપ્લિકેશનને પૂર્ણ થયેલ ડાઉનલોડ્સ વિશે સૂચનાઓ મોકલવાની મંજૂરી આપે છે. દુર્ભાવનાપૂર્ણ ઍપ્લિકેશનો આનો ઉપયોગ ફાઇલો ડાઉનલોડ કરતી અન્ય ઍપ્લિકેશનોને મૂંઝવણમાં નાખવા માટે કરી શકે છે." "USB સંગ્રહ પરના તમામ ડાઉનલોડ્સ જુઓ" "SD કાર્ડ પરના તમામ ડાઉનલોડ્સ જુઓ" - "એપ્લિકેશનને SD કાર્ડ પર તમામ ડાઉનલોડ્સ જોવાની મંજૂરી આપે છે, પછી ભલેને તે કોઈપણ એપ્લિકેશન દ્વારા ડાઉનલોડ થયાં હોય." + "ઍપ્લિકેશનને SD કાર્ડ પર તમામ ડાઉનલોડ્સ જોવાની મંજૂરી આપે છે, પછી ભલેને તે કોઈપણ ઍપ્લિકેશન દ્વારા ડાઉનલોડ થયાં હોય." "ડાઉનલોડ કેશમાં જગ્યા અનામત રાખો" "એપ્લિકેશનને ડાઉનલોડ કેશ પર તે ફાઇલો ડાઉનલોડ કરવાની મંજૂરી આપે છે, જે ડાઉનલોડ સંચાલકને વધુ જગ્યાની જરૂર પડવા પર આપમેળે કાઢી નાખી શકાતી નથી." "સૂચના વગર ફાઇલો ડાઉનલોડ કરો" "એપ્લિકેશનને વપરાશકર્તાને કોઈપણ સૂચના દર્શાવ્યાં વિના ડાઉનલોડ સંચાલક મારફતે ફાઇલો ડાઉનલોડ કરવાની મંજૂરી આપે છે." "તમામ સિસ્ટમ ડાઉનલોડ્સને ઍક્સેસ કરો" - "એપ્લિકેશનને સિસ્ટમ પર કોઈપણ એપ્લિકેશન દ્વારા શરૂ કરાયેલ તમામ ડાઉનલોડ્સને જોવાની અને સંશોધિત કરવાની મંજૂરી આપે છે." + "ઍપ્લિકેશનને સિસ્ટમ પર કોઈપણ ઍપ્લિકેશન દ્વારા શરૂ કરાયેલ તમામ ડાઉનલોડ્સને જોવાની અને સંશોધિત કરવાની મંજૂરી આપે છે." "<અનામાંકિત>" "ડાઉનલોડ પૂર્ણ થયું." "ડાઉનલોડ અસફળ થયું." diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml index 9cebfdcf..5e9acad7 100644 --- a/res/values-kn-rIN/strings.xml +++ b/res/values-kn-rIN/strings.xml @@ -35,12 +35,12 @@ "<ಶೀರ್ಷಿಕೆ ರಹಿತ>" "ಡೌನ್‌ಲೋಡ್‌‌ ಪೂರ್ಣಗೊಂಡಿದೆ." "ಡೌನ್‌ಲೋಡ್‌ ವಿಫಲಗೊಂಡಿದೆ." - "ಡೌನ್‌ಲೋಡ್‌ ಗಾತ್ರಕ್ಕೆ Wi-Fi ಅಗತ್ಯವಿದೆ." + "ಡೌನ್‌ಲೋಡ್‌ ಗಾತ್ರಕ್ಕೆ ವೈ-ಫೈ ಅಗತ್ಯವಿದೆ." "ಹಿನ್ನೆಲೆಯಲ್ಲಿ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ." "ಆಪರೇಟರ್‌ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಡೌನ್‌ಲೋಡ್ ತುಂಬಾ ದೊಡ್ಡದಾಗಿದೆ" - "ನೀವು ಈ %s ಡೌನ್‌ಲೋಡ್‌ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ನೀವು Wi-Fi ಅನ್ನು ಬಳಸಬೇಕು. \n\nನೀವು ಸಂಪರ್ಕಿಸಿದ Wi-Fi ನೆಟ್‌ವರ್ಕ್‌ನಿಂದ ಮುಂದಿನ ಬಾರಿ ಈ ಡೌನ್‌ಲೋಡ್‌ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು %s ಸ್ಪರ್ಶಿಸಿ." + "ನೀವು ಈ %s ಡೌನ್‌ಲೋಡ್‌ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ನೀವು ವೈ-ಫೈ ಅನ್ನು ಬಳಸಬೇಕು. \n\nನೀವು ಸಂಪರ್ಕಿಸಿದ ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ನಿಂದ ಮುಂದಿನ ಬಾರಿ ಈ ಡೌನ್‌ಲೋಡ್‌ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು %s ಸ್ಪರ್ಶಿಸಿ." "ನಂತರದಲ್ಲಿ ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲು ಸರದಿಯಲ್ಲಿರಿಸುವುದೇ?" - "ಇದೀಗ ಈ %s ಡೌನ್‌ಲೋಡ್‌ ಆರಂಭಗೊಂಡು ನಿಮ್ಮ ಬ್ಯಾಟರಿ ಬಾಳಿಕೆ ಮತ್ತು/ಅಥವಾ ನಿಮ್ಮ ಮೊಬೈಲ್‌ ಡೇಟಾ ಸಂಪರ್ಕದ ಅತಿಯಾದ ಬಳಕೆಗೆ ಕಾರಣವಾಗಬಹುದು, ನಿಮ್ಮ ಡೇಟಾ ಯೋಜನೆಯನ್ನು ಅವಲಂಬಿಸಿ ನಿಮ್ಮ ಮೊಬೈಲ್ ಆಪರೇಟರ್ ಮೂಲಕ ಶುಲ್ಕಗಳನ್ನು ವಿಧಿಸುವುದಕ್ಕೆ ಕಾರಣವಾಗುತ್ತವೆ.\n\n ನೀವು ಸಂಪರ್ಕಿಸಿದ Wi-Fi ನೆಟ್‌ವರ್ಕ್‌ನಿಂದ ಮುಂದಿನ ಬಾರಿ ಈ ಡೌನ್‌ಲೋಡ್‌ ಪ್ರಾರಂಭಿಸಲು %s ಸ್ಪರ್ಶಿಸಿ." + "ಇದೀಗ ಈ %s ಡೌನ್‌ಲೋಡ್‌ ಆರಂಭಗೊಂಡು ನಿಮ್ಮ ಬ್ಯಾಟರಿ ಬಾಳಿಕೆ ಮತ್ತು/ಅಥವಾ ನಿಮ್ಮ ಮೊಬೈಲ್‌ ಡೇಟಾ ಸಂಪರ್ಕದ ಅತಿಯಾದ ಬಳಕೆಗೆ ಕಾರಣವಾಗಬಹುದು, ನಿಮ್ಮ ಡೇಟಾ ಯೋಜನೆಯನ್ನು ಅವಲಂಬಿಸಿ ನಿಮ್ಮ ಮೊಬೈಲ್ ಆಪರೇಟರ್ ಮೂಲಕ ಶುಲ್ಕಗಳನ್ನು ವಿಧಿಸುವುದಕ್ಕೆ ಕಾರಣವಾಗುತ್ತವೆ.\n\n ನೀವು ಸಂಪರ್ಕಿಸಿದ ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ನಿಂದ ಮುಂದಿನ ಬಾರಿ ಈ ಡೌನ್‌ಲೋಡ್‌ ಪ್ರಾರಂಭಿಸಲು %s ಸ್ಪರ್ಶಿಸಿ." "ಸರದಿ" "ರದ್ದುಮಾಡು" "ಈಗ ಪ್ರಾರಂಭಿಸಿ" diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml index e2c3888d..1a7d14d9 100644 --- a/res/values-ky-rKG/strings.xml +++ b/res/values-ky-rKG/strings.xml @@ -16,7 +16,7 @@ - "Жүктөө менежери" + "Жүктөп алуу башкаргычы" "Жүктөө менежерине жетүү." "Колдонмого, жүктөө мененджерине жетип, аны менен файлдарды жүктөп алууга уруксат берет. Зыяндуу колдонмолор муну колдонуп, жүктөөлөрдү үзгүлтүккө учурата алышы жана жеке маалыматка жете алышы мүмкүн." "Жүктөө менежеринин озуккан функцияларына жетүү." @@ -33,7 +33,7 @@ "Бардык системдик жүктөөлөргө жетүү" "Колдонмого системдеги колдонмолор баштаган бардык жүктөөлөрдү көрүүгө жана өзгөртүүгө уруксат берет." "<Аталышы жок>" - "Жүктөө аяктады." + "Жүктөлүп алынды." "Жүктөө ийгиликсиз." "Чоң файл, Wi-Fi керек." "Фондо тыныгууда турат." @@ -54,7 +54,7 @@ "%s калды" "Файл ачылбады" - "Жүктөөлөр" + "Жүктөлүп алынгандар" "Кезекте" "Жүктөлүүдө" "Ийгиликсиз" diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml index 27222741..e3578424 100644 --- a/res/values-ml-rIN/strings.xml +++ b/res/values-ml-rIN/strings.xml @@ -27,7 +27,7 @@ "SD കാർഡിലേക്കുള്ള എല്ലാ ഡൗൺലോഡുകളും കാണുക" "SD കാർഡിലേക്കുള്ള എല്ലാ ഡൗൺലോഡുകളും, ഏത് അപ്ലിക്കേഷനാണ് അവയെ ഡൗൺലോഡുചെയ്‌തതെന്ന് പരിഗണിക്കാതെ തന്നെ, കാണാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു." "ഡൗൺലോഡ് കാഷെയിൽ ഇടം നിലനിർത്തുക" - "ഡൗൺലോഡ് കാഷെയിലേക്ക് ഫയലുകൾ ഡൗൺലോഡുചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു, ഡൗൺലോഡ് മാനേജർക്ക് കൂടുതൽ ഇടം ആവശ്യമായി വരുമ്പോൾ ഇത് യാന്ത്രികമായി ഇല്ലാതാക്കാനാകില്ല." + "ഡൗൺലോഡ് കാഷെയിലേക്ക് ഫയലുകൾ ഡൗൺലോഡുചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു, ഡൗൺലോഡ് മാനേജർക്ക് കൂടുതൽ ഇടം ആവശ്യമായി വരുമ്പോൾ ഇത് സ്വയമേവ ഇല്ലാതാക്കാനാകില്ല." "അറിയിപ്പില്ലാതെ ഫയലുകൾ ഡൗൺലോഡുചെയ്യുക" "ഉപയോക്താവിന് അറിയിപ്പൊന്നും ദൃശ്യമാക്കാതെ തന്നെ ഡൗൺലോഡ് മാനേജർ മുഖേന ഫയലുകൾ ഡൗൺലോഡുചെയ്യാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു." "എല്ലാ സിസ്റ്റം ഡൗൺലോഡുകളും ആക്‌സസ്സുചെയ്യുക" @@ -54,7 +54,7 @@ "%s ശേഷിക്കുന്നു" "ഫയൽ തുറക്കാനായില്ല" - "ഡൗൺലോഡുകൾ" + "ഡൗണ്‍ലോഡ്" "ക്യൂവിലാണ്" "പുരോഗമിക്കുന്നു" "പരാജയപ്പെട്ടു" diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml index 71f3651f..209fca4a 100644 --- a/res/values-my-rMM/strings.xml +++ b/res/values-my-rMM/strings.xml @@ -22,7 +22,7 @@ "အဆင့်မြင့် ဒေါင်းလုပ်မန်နေဂျာ လုပ်ငန်းများ" "အပလီကေးရှင်းအား ဒေါင်းလုပ်မန်နေဂျာ၏ အဆင့်မြင့် လုပ်ဆောင်ချက်များကို သုံးစွဲခွင့်ပြုမည်။ အန္တရာယ် ရှိသော အပလီကေးရှင်းများက ၎င်းကို အသုံးပြုကာ ဒေါင်းလုပ်ပြုလုပ်ခြင်းကို နှောက်ယှက်ခြင်းနှင့် ကိုယ်ပိုင်အချက်အလက်များကို ဝင်ရောက်ယူနိုင်သည်။" "ဒေါင်းလုပ်နှင့် ပတ်သက်သော အကြောင်းကြားချက် အားလုံးကိုပို့မည်" - "အပလီကေးရှင်း အား ဒေါင်းလုပ်ပြီးဆုံးပါက အကြောင်းကြားရန် ခွင့်ပြုမည်။ အန္တရာယ် ရှိသော အပလီကေးရှင်းများက ၎င်းကို အသုံးပြုကာ ဖိုင်များကိုဒေါင်းလုပ်ပြုထားသော အပလီကေးရှင်းကို ရောထွေးအောင်ပြုလုပ်နိုင်သည်။" + "အက်ပ် အား ဒေါင်းလုပ်ပြီးဆုံးပါက အကြောင်းကြားရန် ခွင့်ပြုမည်။ အန္တရာယ် ရှိသော အက်ပ်များက ၎င်းကို အသုံးပြုကာ ဖိုင်များကိုဒေါင်းလုပ်ပြုထားသော အက်ပ်ကို ရောထွေးအောင်ပြုလုပ်နိုင်သည်။" "ဒေါင်းလုပ်အားလုံးကို USBသိုလှောင်ကတ်ထဲတွင် ကြည့်မည်" "ဒေါင်းလုပ်အားလုံးကို SDကတ်ထဲတွင် ကြည့်မည်" "အပလီကေးရှင်းအား SDကဒ်ထဲရှိ မည်သည့်အပလီကေးရှင်းမှမဆို ဒေါင်းလုပ်ပြုလုပ်ထားသည်များကို သုံးစွဲခွင့်ပြုမည်။" @@ -38,11 +38,11 @@ "ဒေါင်းလုပ်ပမာဏမှာ ဝိုင်ဖိုင်လိုအပ်သည်" "နောက်ခံတွင် ခဏဆိုင်းထားသည်" "ဒေါင်းလုပ်မှာ အော်ပရေတာကွန်ယက်အတွက် ကြီးလွန်းသည်" - "ဤ %s ဒေါင်းလုပ်ကို ပြုလုပ်ရန် ဝိုင်ဖိုင် ချိတ်ဆက်ထားရပါမည်၊ \n\nနောက်တစ်ခါ ဝိုင်ဖိုင်ကိုချိတ်ဆက်လျှင် ဒေါင်းလုပ်စတင်ရန် %s ကို တို့ထိပါ။" + "ဤ %s ဒေါင်းလုပ်ကို ပြုလုပ်ရန် Wi-Fi ချိတ်ဆက်ထားရပါမည်၊ \n\nနောက်တစ်ခါ Wi-Fi ကိုချိတ်ဆက်လျှင် ဒေါင်းလုပ်စတင်ရန် %s ကို တို့ထိပါ။" "နောက်မှ ဒေါင်းလုပ်ပြုလုပ်ရန် တန်းစီထားမလား?" "ဤ %s ဒေါင်းလုပ်ကို စတင်ခြင်းမှာ သင့်ဘက်ထရီ သက်တမ်းကို တိုစေသည် သို့မဟုတ် သင့်ဒေတာပလန်ပေါ် မူတည်၍ ကျသင့်ငွေ ပိုကုန်စေမည့် မိုဘိုင်းဒေတာ ချိတ်ဆက်မှုကို အလွန်အကျွံ သုံးနိုင်သည်။ \n\n နောက်တစ်ခါ ဝိုင်ဖိုင်ချိတ်ဆက်လျှင် ဒေါင်းလုပ်စတင်ရန် %s ကို တို့ထိပါ။" "တန်းစီရန်" - "ထားတော့" + "မလုပ်တော့ပါ" "ယခုအချိန်မှစတင်ပါ" %d ဖိုင်များကို ဒေါင်းလုဒ် လုပ်နေပါသည် @@ -54,7 +54,7 @@ "%s ကျန်ရှိသည်" "ဖိုင်အား ဖွင့်မရပါ" - "ဒေါင်းလုပ်များ" + "ဒေါင်းလုဒ်များ" "တန်းစီထားပြီး" "ပြုလုပ်နေဆဲ" "မအောင်မြင်ပါ" diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml index 21912b9e..ca95dc8f 100644 --- a/res/values-ne-rNP/strings.xml +++ b/res/values-ne-rNP/strings.xml @@ -35,12 +35,12 @@ "<शीर्षकविहिन>" "डाउनलोड पुरा भयो।" "डाउनलोड असफल" - "डाउनलोड आकारलाई वाइफाइ चाहिन्छ।" + "डाउनलोड आकारलाई Wi-Fi चाहिन्छ।" "पृष्ठभूमिमा रोकिएको छ।" "अपरेटर सञ्जालका लागि डाउनलोड ज्यादै ठूलो" - "तपाईँले वाइफाइ प्रयोग गर्नु पर्छ यस %s डाउनलोड समाप्त गर्न। \n\nछुनुहोस् %s यस डाउनलोडलाई सुरु गर्न अर्को पटक तपाईँ वाइफाइ सञ्जालामा जडित भए पछि।" + "तपाईँले Wi-Fi प्रयोग गर्नु पर्छ यस %s डाउनलोड समाप्त गर्न। \n\nछुनुहोस् %s यस डाउनलोडलाई सुरु गर्न अर्को पटक तपाईँ Wi-Fi सञ्जालामा जडित भए पछि।" "पछि डाउनलोडका लागि लाममा राख्ने हो?" - "यस %s डाउनलोडलाई सुरु गर्दा तपाईँको ब्याट्रिको काल छोट्टिन सक्छ र/वा तपाईँको मोबाइल डेटा जडानको अधिकतम प्रयोग भई तपाईँको डेटा योजना अनुसार मोबाइल अपरेटरले थप शुल्क लिन सक्छ। \n\n छुनुहोस् %sतल यस डाउनलोडलाई सुरु गर्न अर्को पटक तपाईँ वाइफाइ सन्जालमा जडित हुने बेला।" + "यस %s डाउनलोडलाई सुरु गर्दा तपाईँको ब्याट्रिको काल छोट्टिन सक्छ र/वा तपाईँको मोबाइल डेटा जडानको अधिकतम प्रयोग भई तपाईँको डेटा योजना अनुसार मोबाइल अपरेटरले थप शुल्क लिन सक्छ। \n\n छुनुहोस् %sतल यस डाउनलोडलाई सुरु गर्न अर्को पटक तपाईँ Wi-Fi सन्जालमा जडित हुने बेला।" "लाम" "रद्द गर्नुहोस्" "अहिले सुरु गर्नुहोस्" diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml index 5fa93d4d..8d6b9570 100644 --- a/res/values-pa-rIN/strings.xml +++ b/res/values-pa-rIN/strings.xml @@ -26,7 +26,7 @@ "USB ਸਟੋਰੇਜ ਦੀਆਂ ਸਾਰੀਆਂ ਡਾਊਨਲੋਡਸ ਦੇਖੋ" "SD ਕਾਰਡ ਦੀਆਂ ਸਾਰੀਆਂ ਡਾਊਨਲੋਡਸ ਦੇਖੋ" "ਐਪ ਨੂੰ SD ਕਾਰਡ ਦੀਆਂ ਸਾਰੀਆਂ ਡਾਊਨਲੋਡਸ ਦੇਖਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਇਸਤੇ ਧਿਆਨ ਦਿੱਤੇ ਬਿਨਾਂ ਕਿ ਕਿਹੜੇ ਐਪ ਨੇ ਉਹਨਾਂ ਨੂੰ ਡਾਊਨਲੋਡ ਕੀਤਾ ਸੀ।" - "ਡਾਊਨਲੋਡ ਕੈਚ ਵਿੱਚ ਸਪੇਸ ਸੁਰੱਖਿਅਤ ਕਰੋ" + "ਡਾਊਨਲੋਡ ਕੈਚ ਵਿੱਚ ਸਪੇਸ ਰੱਖਿਅਤ ਕਰੋ" "ਐਪ ਨੂੰ ਡਾਊਨਲੋਡ ਕੈਚ ਵਿੱਚ ਉਹ ਫਾਈਲਾਂ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜੋ ਆਟੋਮੈਟਿਕਲੀ ਨਹੀਂ ਮਿਟਾਈਆਂ ਜਾ ਸਕਦੀਆਂ ਜਦੋਂ ਡਾਊਨਲੋਡ ਪ੍ਰਬੰਧਕ ਨੂੰ ਵੱਧ ਸਪੇਸ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।" "ਸੂਚਨਾ ਤੋਂ ਬਿਨਾਂ ਫਾਈਲਾਂ ਡਾਊਨਲੋਡ ਕਰੋ" "ਐਪ ਨੂੰ ਉਪਭੋਗਤਾ ਨੂੰ ਦਿਖਾਈ ਜਾ ਰਹੀ ਕਿਸੇ ਵੀ ਸੂਚਨਾ ਤੋਂ ਬਿਨਾਂ ਡਾਊਨਲੋਡ ਪ੍ਰਬੰਧਕ ਰਾਹੀਂ ਫਾਈਲਾਂ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।" @@ -37,10 +37,10 @@ "ਡਾਊਨਲੋਡ ਅਸਫਲ।" "ਡਾਊਨਲੋਡ ਆਕਾਰ ਲਈ Wi-Fi ਦੀ ਲੋੜ ਹੈ।" "ਪਿਛੋਕੜ ਵਿੱਚ ਰੋਕਿਆ।" - "ਓਪਰੇਟਰ ਨੈਟਵਰਕ ਲਈ ਡਾਊਨਲੋਡ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵੱਡੀ" - "ਤੁਹਾਨੂੰ ਇਸ %s ਡਾਊਨਲੋਡ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ Wi-Fi ਵਰਤਣੀ ਚਾਹੀਦੀ ਹੈ। \n\nਅਗਲੀ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ Wi-Fi ਨੈਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੋ ਤਾਂ ਇਸ ਡਾਊਨਲੋਡ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ %s ਨੂੰ ਛੋਹਵੋ।" + "ਓਪਰੇਟਰ ਨੈੱਟਵਰਕ ਲਈ ਡਾਊਨਲੋਡ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵੱਡੀ" + "ਤੁਹਾਨੂੰ ਇਸ %s ਡਾਊਨਲੋਡ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ Wi-Fi ਵਰਤਣੀ ਚਾਹੀਦੀ ਹੈ। \n\nਅਗਲੀ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ Wi-Fi ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੋ ਤਾਂ ਇਸ ਡਾਊਨਲੋਡ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ %s ਨੂੰ ਛੋਹਵੋ।" "ਕੀ ਬਾਅਦ ਵਿੱਚ ਡਾਊਨਲੋਡ ਲਈ ਕਤਾਰ ਲਗਾਉਣੀ ਹੈ?" - "ਹੁਣ ਇਸ %s ਡਾਊਨਲੋਡ ਨੂੰ ਚਾਲੂ ਕਰਨ ਨਾਲ ਤੁਹਾਡੀ ਬੈਟਰੀ ਸਮਰੱਥ ਘਟ ਸਕਦੀ ਹੈ ਅਤੇ/ਜਾਂ ਇਸਦੇ ਸਿੱਟੇ ਵਜੋਂ ਤੁਹਾਡੇ ਮੋਬਾਈਲ ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਦੀ ਵਾਧੂ ਵਰਤੋਂ ਹੋ ਸਕਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਤੁਹਾਡੇ ਡਾਟਾ ਪਲਾਨ ਦੇ ਆਧਾਰ ਤੇ ਤੁਹਾਡੇ ਮੋਬਾਈਲ ਓਪਰੇਟਰ ਵੱਲੋਂ ਖ਼ਰਚੇ ਪਾਏ ਜਾ ਸਕਦੇ ਹਨ।\n\n ਅਗਲੀ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ Wi-Fi ਨੈਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੋ ਤਾਂ ਇਸ ਡਾਊਨਲੋਡ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ %s ਨੂੰ ਛੋਹਵੋ।" + "ਹੁਣ ਇਸ %s ਡਾਊਨਲੋਡ ਨੂੰ ਚਾਲੂ ਕਰਨ ਨਾਲ ਤੁਹਾਡੀ ਬੈਟਰੀ ਸਮਰੱਥ ਘਟ ਸਕਦੀ ਹੈ ਅਤੇ/ਜਾਂ ਇਸਦੇ ਸਿੱਟੇ ਵਜੋਂ ਤੁਹਾਡੇ ਮੋਬਾਈਲ ਡੈਟਾ ਕਨੈਕਸ਼ਨ ਦੀ ਵਾਧੂ ਵਰਤੋਂ ਹੋ ਸਕਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਤੁਹਾਡੇ ਡੈਟਾ ਪਲਾਨ ਦੇ ਆਧਾਰ ਤੇ ਤੁਹਾਡੇ ਮੋਬਾਈਲ ਓਪਰੇਟਰ ਵੱਲੋਂ ਖ਼ਰਚੇ ਪਾਏ ਜਾ ਸਕਦੇ ਹਨ।\n\n ਅਗਲੀ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ Wi-Fi ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੋ ਤਾਂ ਇਸ ਡਾਊਨਲੋਡ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ %s ਨੂੰ ਛੋਹਵੋ।" "ਕਤਾਰ" "ਰੱਦ ਕਰੋ" "ਹੁਣ ਚਾਲੂ ਕਰੋ" @@ -54,7 +54,7 @@ "%s ਛੱਡਿਆ" "ਫਾਈਲ ਨਹੀਂ ਖੋਲ੍ਹ ਸਕਦਾ" - "ਡਾਊਨਲੋਡਸ" + "ਡਾਊਨਲੋਡ" "ਕਤਾਰਬੱਧ" "ਪ੍ਰਗਤੀ ਵਿੱਚ" "ਅਸਫਲ" diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml index c2ecd07c..d29ec693 100644 --- a/res/values-uz-rUZ/strings.xml +++ b/res/values-uz-rUZ/strings.xml @@ -16,21 +16,21 @@ - "Yuklanishlar menejeri" + "Yuklanmalar boshqaruvi" "Yuklab olish menejeriga kirishga ruxsat" "Ilovaga yuklab olish menejeriga kirish va yuklab olish fayllaridan foydalanish uchun ruxsat beradi. Zararli dasturlar bundan yuklab olishlarga to‘sqinlik qilish va maxfiy ma’lumotlarga kirish uchun foydalanishi mumkin." "Qo‘shimcha yuklab olish menejeri funksiyalari." "Ilovaga yuklab olish menejerining qo‘shimcha funksiyalariga kirish uchun ruxsat beradi. Zararli dasturlar bundan yuklab olishlarga to‘sqinlik qilish va maxfiy ma’lumotlarga kirish uchun foydalanishi mumkin." "Yuklab olish xabarnomalarini jo‘natadi." "Ilovaga tugagan yuklab olishlar haqidagi xabarnomalarini jo‘natishga ruxsat beradi. Zararli dasturlar bundan yuklab olinayotgan fayllarni boshqalari bilan chalkashtirish uchun foydalanishi mumkin." - "USB’dagi yuk. olish ko‘r." - "SD xotira kartasidagi barcha yuklab olishlarni ko‘rish" + "USB qurilmadagi barcha yuklanmalarni ko‘rish" + "SD kartadagi barcha yuklanmalarni ko‘rish" "Ilovaga qaysi ilovalar fayllarni SD xotira kartasiga yuklab olganidan qat’iy nazar, undagi barcha fayllarni ko‘rishga ruxsat beradi." "Yuklab olish keshida joy qoldirish" "Yuklashlar menejeriga ko‘proq bo‘sh joy kerak bo‘lganda avtomatik o‘chirilmaydigan fayllarni yuklab olish keshiga yuklab olish uchun ilovaga ruxsat beradi." "fayllarni ogohlantirishsiz yuklab olish" "Foydalanuvchini hech qanday ogohlantirmasdan Ilovaga yuklab olish menejeri orqali fayllar yuklab olish uchun ruxsat beradi." - "Tizimdagi barcha yuklab olishlariga ruxsat berish" + "Tizimdagi barcha yuklanmalarga ruxsat berish" "Ilovaga tizimda har qanday ilova tomonidan ishga tushirilgan barcha yuklanishlarni ko‘rish va o‘zgartirish uchun ruxsat beradi." "<Sarlavhasiz>" "Yuklab olish tugallandi." @@ -54,7 +54,7 @@ "%s qoldi" "Fayl ochilmadi" - "Yuklanishlar" + "Yuklanmalar" "Navbatga qo‘shildi" "Yuklab olinmoqda" "Muvaffaqiyatsiz" diff --git a/ui/res/values-fr-rCA/strings.xml b/ui/res/values-fr-rCA/strings.xml index 3c9de43e..0e732e0e 100644 --- a/ui/res/values-fr-rCA/strings.xml +++ b/ui/res/values-fr-rCA/strings.xml @@ -43,7 +43,7 @@ "Conserver" "Annuler" "Réessayer" - "Commencer maintenant" + "Commencer" "Tout désélectionner" "Tout sélectionner" "%1$d téléchargements sélectionnés sur %2$d" diff --git a/ui/res/values-hy-rAM/strings.xml b/ui/res/values-hy-rAM/strings.xml index e7ae3e3c..26354c13 100644 --- a/ui/res/values-hy-rAM/strings.xml +++ b/ui/res/values-hy-rAM/strings.xml @@ -47,5 +47,5 @@ "Ապանշել բոլորը" "Ընտրել բոլորը" "Ընտրված են %1$d%2$d-ից" - "Տարածել" + "Կիսվել" diff --git a/ui/res/values-kk-rKZ/strings.xml b/ui/res/values-kk-rKZ/strings.xml index 61a88f21..7ce4213f 100644 --- a/ui/res/values-kk-rKZ/strings.xml +++ b/ui/res/values-kk-rKZ/strings.xml @@ -41,7 +41,7 @@ "Алып тастау" "Жою" "Қалсын" - "Өшіру" + "Жабу" "Қайта әрекеттену" "Қазір бастау" "Барлығының таңдауын алыңыз" diff --git a/ui/res/values-my-rMM/strings.xml b/ui/res/values-my-rMM/strings.xml index d12d740a..5d286723 100644 --- a/ui/res/values-my-rMM/strings.xml +++ b/ui/res/values-my-rMM/strings.xml @@ -16,9 +16,9 @@ - "ဒေါင်းလုပ်များ" - "ဒေါင်းလုပ်များ -နေ့စွဲအလိုက် စီထားသည်" - "ဒေါင်းလုပ်များ -အရွယ်အစားအလိုက် စီထားသည်" + "ဒေါင်းလုဒ်များ" + "ဒေါင်းလုဒ်များ -နေ့စွဲအလိုက် စီထားသည်" + "ဒေါင်းလုဒ်များ -အရွယ်အစားအလိုက် စီထားသည်" "ဒေါင်းလုပ်မရှိပါ" "အကြောင်းအရာ မသိရှိ" "အရွယ်အစားအလိုက် စီရန်" @@ -41,7 +41,7 @@ "ဖယ်ရှားရန်" "ဖျက်ပစ်ရန်" "သိမ်းထားပါ" - "ဖျက်သိမ်းရန်" + "မလုပ်တော့ပါ" "ပြန်ကြိုးစားပါ" "ယခု စတင်ပါ" "ဘာကိုမှ မရွေးပါ" -- cgit v1.2.3 From cc25d6c26ff5e2744de0971c3144a6f00ea23718 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 28 Jun 2016 10:07:48 -0600 Subject: Clear identity when deleting scanned entry. When deleting a file from DownloadManager, we also reach over and clean up any scanned MediaStore entries. However, DownloadManager clients may not hold the WRITE_EXTERNAL_STORAGE permission, such as when they downloaded a file into their package-specific directories. The safest fix for now is to clear the calling identity and always clean up the MediaStore entries ourselves, since DownloadProvider always holds the required storage permission. Bug: 29777504 Change-Id: Iea8f5696410010807b118bb56e5b897c53f0e1fe --- src/com/android/providers/downloads/DownloadProvider.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index 4b83cacb..d30018f7 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -1229,8 +1229,13 @@ public final class DownloadProvider extends ContentProvider { final String mediaUri = cursor.getString(2); if (!TextUtils.isEmpty(mediaUri)) { - getContext().getContentResolver().delete(Uri.parse(mediaUri), null, - null); + final long token = Binder.clearCallingIdentity(); + try { + getContext().getContentResolver().delete(Uri.parse(mediaUri), null, + null); + } finally { + Binder.restoreCallingIdentity(token); + } } } } -- cgit v1.2.3 From db3442bf11d42254d2700cd7cf8b9b764ef87e1b Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Wed, 20 Jul 2016 19:14:19 -0700 Subject: Import translations. DO NOT MERGE Change-Id: Ie2553f849eaaea53c2baa2af48ca75166e6e9aa2 Auto-generated-cl: translation import --- res/values-be-rBY/strings.xml | 2 +- res/values-lt/strings.xml | 10 +++++----- res/values-my-rMM/strings.xml | 4 ++-- res/values-pa-rIN/strings.xml | 4 ++-- ui/res/values-b+sr+Latn/strings.xml | 1 + ui/res/values-be-rBY/strings.xml | 3 ++- ui/res/values-bs-rBA/strings.xml | 1 + ui/res/values-my-rMM/strings.xml | 4 ++-- 8 files changed, 16 insertions(+), 13 deletions(-) diff --git a/res/values-be-rBY/strings.xml b/res/values-be-rBY/strings.xml index d3ea4b77..d2b000d7 100644 --- a/res/values-be-rBY/strings.xml +++ b/res/values-be-rBY/strings.xml @@ -42,7 +42,7 @@ "Стаць у чаргу, каб спампаваць пазней?" "Спампаванне файла памерам %s можа скараціць тэрмін службы акумулятара або прывесці да празмернага выкарыстання мабільнага падлучэння дадзеных, за што вашым мабiльным аператарам можа спаганяцца дадатковая плата.\n\nДакранiцеся да надпiсу %s, каб пачаць спампаванне, калi з\'явiцца падлучэнне да сеткi Wi-Fi." "Чарга" - "Адмена" + "Скасаваць" "Пачаць прама цяпер" %d файл спампоўваецца diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index 856d33d8..ef2d382b 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -18,18 +18,18 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Atsisiuntimų tvarkytuvė" "Pasiekti atsisiuntimo tvarkyklę." - "Leidžiama programai pasiekti atsisiuntimų tvarkyklę ir naudoti ją failams atsisiųsti. Kenkėjiškos programos gali naudoti šią funkciją atsisiuntimams stabdyti ir asmeninei informacijai pasiekti." - "Išplėstinės atsisiuntimo tvarkyklės funkcijos." - "Leidžiama programai pasiekti išplėstines atsisiuntimų tvarkyklės funkcijas. Kenkėjiškos programos gali naudoti šią funkciją atsisiuntimams stabdyti ir asmeninei informacijai gauti." + "Leidžiama programai pasiekti atsisiuntimų tvarkytuvę ir naudoti ją failams atsisiųsti. Kenkėjiškos programos gali naudoti šią funkciją atsisiuntimams stabdyti ir asmeninei informacijai pasiekti." + "Išplėstinės atsisiuntimo tvarkytuvės funkcijos." + "Leidžiama programai pasiekti išplėstines atsisiuntimų tvarkytuvės funkcijas. Kenkėjiškos programos gali naudoti šią funkciją atsisiuntimams stabdyti ir asmeninei informacijai gauti." "Siųsti atsisiuntimo pranešimus." "Leidžiama programai siųsti pranešimus apie baigtus atsisiuntimus. Kenkėjiškos programos gali naudoti šią funkciją, kad supainiotų kitas programas, kurias naudojant siunčiami failai." "Žr. visus atsis. į USB atm." "Žiūrėti visus atsisiuntimus į SD kortelę" "Leidžiama programai matyti visus atsisiuntimus į SD kortelę, neatsižvelgiant į tai, kokia programa jie buvo atsiųsti." "Rezervuoti vietą atsisiuntimo talpykloje" - "Leidžiama programai atsisiųsti failus į atsisiuntimo talpyklą, kurios negalima automatiškai ištrinti, kai atsisiuntimo tvarkyklei prireikia daugiau vietos." + "Leidžiama programai atsisiųsti failus į atsisiuntimo talpyklą, kurios negalima automatiškai ištrinti, kai atsisiuntimo tvarkytuvei prireikia daugiau vietos." "atsisiųsti failus be pranešimo" - "Leidžiama programai atsisiųsti failus naudojant atsisiuntimo tvarkyklę, naudotojui nepateikus jokio pranešimo." + "Leidžiama programai atsisiųsti failus naudojant atsisiuntimo tvarkytuvę, naudotojui nepateikus jokio pranešimo." "Pasiekti visus sistemos atsisiuntimus" "Leidžiama programai žiūrėti ir keisti visus atsisiuntimus, pradėtus naudojant bet kokią sistemos programą." "<Be pavadinimo>" diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml index 209fca4a..4cabab23 100644 --- a/res/values-my-rMM/strings.xml +++ b/res/values-my-rMM/strings.xml @@ -22,7 +22,7 @@ "အဆင့်မြင့် ဒေါင်းလုပ်မန်နေဂျာ လုပ်ငန်းများ" "အပလီကေးရှင်းအား ဒေါင်းလုပ်မန်နေဂျာ၏ အဆင့်မြင့် လုပ်ဆောင်ချက်များကို သုံးစွဲခွင့်ပြုမည်။ အန္တရာယ် ရှိသော အပလီကေးရှင်းများက ၎င်းကို အသုံးပြုကာ ဒေါင်းလုပ်ပြုလုပ်ခြင်းကို နှောက်ယှက်ခြင်းနှင့် ကိုယ်ပိုင်အချက်အလက်များကို ဝင်ရောက်ယူနိုင်သည်။" "ဒေါင်းလုပ်နှင့် ပတ်သက်သော အကြောင်းကြားချက် အားလုံးကိုပို့မည်" - "အက်ပ် အား ဒေါင်းလုပ်ပြီးဆုံးပါက အကြောင်းကြားရန် ခွင့်ပြုမည်။ အန္တရာယ် ရှိသော အက်ပ်များက ၎င်းကို အသုံးပြုကာ ဖိုင်များကိုဒေါင်းလုပ်ပြုထားသော အက်ပ်ကို ရောထွေးအောင်ပြုလုပ်နိုင်သည်။" + "အက်ပ်အား ဒေါင်းလုပ်ပြီးဆုံးပါက အကြောင်းကြားရန် ခွင့်ပြုမည်။ အန္တရာယ် ရှိသော အက်ပ်များက ၎င်းကို အသုံးပြုကာ ဖိုင်များကိုဒေါင်းလုပ်ပြုထားသော အက်ပ်ကို ရောထွေးအောင်ပြုလုပ်နိုင်သည်။" "ဒေါင်းလုပ်အားလုံးကို USBသိုလှောင်ကတ်ထဲတွင် ကြည့်မည်" "ဒေါင်းလုပ်အားလုံးကို SDကတ်ထဲတွင် ကြည့်မည်" "အပလီကေးရှင်းအား SDကဒ်ထဲရှိ မည်သည့်အပလီကေးရှင်းမှမဆို ဒေါင်းလုပ်ပြုလုပ်ထားသည်များကို သုံးစွဲခွင့်ပြုမည်။" @@ -42,7 +42,7 @@ "နောက်မှ ဒေါင်းလုပ်ပြုလုပ်ရန် တန်းစီထားမလား?" "ဤ %s ဒေါင်းလုပ်ကို စတင်ခြင်းမှာ သင့်ဘက်ထရီ သက်တမ်းကို တိုစေသည် သို့မဟုတ် သင့်ဒေတာပလန်ပေါ် မူတည်၍ ကျသင့်ငွေ ပိုကုန်စေမည့် မိုဘိုင်းဒေတာ ချိတ်ဆက်မှုကို အလွန်အကျွံ သုံးနိုင်သည်။ \n\n နောက်တစ်ခါ ဝိုင်ဖိုင်ချိတ်ဆက်လျှင် ဒေါင်းလုပ်စတင်ရန် %s ကို တို့ထိပါ။" "တန်းစီရန်" - "မလုပ်တော့ပါ" + "မလုပ်တော့" "ယခုအချိန်မှစတင်ပါ" %d ဖိုင်များကို ဒေါင်းလုဒ် လုပ်နေပါသည် diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml index 8d6b9570..2dbe981a 100644 --- a/res/values-pa-rIN/strings.xml +++ b/res/values-pa-rIN/strings.xml @@ -38,9 +38,9 @@ "ਡਾਊਨਲੋਡ ਆਕਾਰ ਲਈ Wi-Fi ਦੀ ਲੋੜ ਹੈ।" "ਪਿਛੋਕੜ ਵਿੱਚ ਰੋਕਿਆ।" "ਓਪਰੇਟਰ ਨੈੱਟਵਰਕ ਲਈ ਡਾਊਨਲੋਡ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵੱਡੀ" - "ਤੁਹਾਨੂੰ ਇਸ %s ਡਾਊਨਲੋਡ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ Wi-Fi ਵਰਤਣੀ ਚਾਹੀਦੀ ਹੈ। \n\nਅਗਲੀ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ Wi-Fi ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੋ ਤਾਂ ਇਸ ਡਾਊਨਲੋਡ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ %s ਨੂੰ ਛੋਹਵੋ।" + "ਤੁਹਾਨੂੰ ਇਸ %s ਡਾਊਨਲੋਡ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ Wi-Fi ਵਰਤਣੀ ਚਾਹੀਦੀ ਹੈ। \n\nਅਗਲੀ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ Wi-Fi ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੋ ਤਾਂ ਇਸ ਡਾਊਨਲੋਡ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ %s ਨੂੰ ਸਪੱਰਸ਼ ਕਰੋ।" "ਕੀ ਬਾਅਦ ਵਿੱਚ ਡਾਊਨਲੋਡ ਲਈ ਕਤਾਰ ਲਗਾਉਣੀ ਹੈ?" - "ਹੁਣ ਇਸ %s ਡਾਊਨਲੋਡ ਨੂੰ ਚਾਲੂ ਕਰਨ ਨਾਲ ਤੁਹਾਡੀ ਬੈਟਰੀ ਸਮਰੱਥ ਘਟ ਸਕਦੀ ਹੈ ਅਤੇ/ਜਾਂ ਇਸਦੇ ਸਿੱਟੇ ਵਜੋਂ ਤੁਹਾਡੇ ਮੋਬਾਈਲ ਡੈਟਾ ਕਨੈਕਸ਼ਨ ਦੀ ਵਾਧੂ ਵਰਤੋਂ ਹੋ ਸਕਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਤੁਹਾਡੇ ਡੈਟਾ ਪਲਾਨ ਦੇ ਆਧਾਰ ਤੇ ਤੁਹਾਡੇ ਮੋਬਾਈਲ ਓਪਰੇਟਰ ਵੱਲੋਂ ਖ਼ਰਚੇ ਪਾਏ ਜਾ ਸਕਦੇ ਹਨ।\n\n ਅਗਲੀ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ Wi-Fi ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੋ ਤਾਂ ਇਸ ਡਾਊਨਲੋਡ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ %s ਨੂੰ ਛੋਹਵੋ।" + "ਹੁਣ ਇਸ %s ਡਾਊਨਲੋਡ ਨੂੰ ਚਾਲੂ ਕਰਨ ਨਾਲ ਤੁਹਾਡੀ ਬੈਟਰੀ ਸਮਰੱਥ ਘਟ ਸਕਦੀ ਹੈ ਅਤੇ/ਜਾਂ ਇਸਦੇ ਸਿੱਟੇ ਵਜੋਂ ਤੁਹਾਡੇ ਮੋਬਾਈਲ ਡੈਟਾ ਕਨੈਕਸ਼ਨ ਦੀ ਵਾਧੂ ਵਰਤੋਂ ਹੋ ਸਕਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਤੁਹਾਡੇ ਡੈਟਾ ਪਲਾਨ ਦੇ ਆਧਾਰ ਤੇ ਤੁਹਾਡੇ ਮੋਬਾਈਲ ਓਪਰੇਟਰ ਵੱਲੋਂ ਖ਼ਰਚੇ ਪਾਏ ਜਾ ਸਕਦੇ ਹਨ।\n\n ਅਗਲੀ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ Wi-Fi ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੋ ਤਾਂ ਇਸ ਡਾਊਨਲੋਡ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ %s ਨੂੰ ਸਪੱਰਸ਼ ਕਰੋ।" "ਕਤਾਰ" "ਰੱਦ ਕਰੋ" "ਹੁਣ ਚਾਲੂ ਕਰੋ" diff --git a/ui/res/values-b+sr+Latn/strings.xml b/ui/res/values-b+sr+Latn/strings.xml index 85457901..b4cd8bc2 100644 --- a/ui/res/values-b+sr+Latn/strings.xml +++ b/ui/res/values-b+sr+Latn/strings.xml @@ -43,6 +43,7 @@ "Zadrži" "Otkaži" "Pokušaj ponovo" + "Započni odmah" "Opozovi sve izbore" "Izaberi sve" "Izabrano je %1$d od %2$d" diff --git a/ui/res/values-be-rBY/strings.xml b/ui/res/values-be-rBY/strings.xml index 6d0ca937..a035f113 100644 --- a/ui/res/values-be-rBY/strings.xml +++ b/ui/res/values-be-rBY/strings.xml @@ -41,8 +41,9 @@ "Выдаліць" "Выдаліць" "Пакінуць" - "Адмена" + "Скасаваць" "Паўтарыць" + "Пачаць" "Адмяніць выбар усяго" "Выбраць усё" "Выбрана %1$d з %2$d" diff --git a/ui/res/values-bs-rBA/strings.xml b/ui/res/values-bs-rBA/strings.xml index d2d11973..ad41199b 100644 --- a/ui/res/values-bs-rBA/strings.xml +++ b/ui/res/values-bs-rBA/strings.xml @@ -43,6 +43,7 @@ "Zadrži" "Otkaži" "Pokušaj ponovo" + "Pokreni odmah" "Poništi odabir svih" "Odaberi sve" "Odabrano %1$d od %2$d" diff --git a/ui/res/values-my-rMM/strings.xml b/ui/res/values-my-rMM/strings.xml index 5d286723..ba7bfcc5 100644 --- a/ui/res/values-my-rMM/strings.xml +++ b/ui/res/values-my-rMM/strings.xml @@ -39,9 +39,9 @@ "ဒေါင်းလုဒ် မပြုလုပ်နိုင်ပါ၊ ပြင်ပ မီဒီယာ မရှိပါ။" "ဖိုင်အား ဖွင့်မရပါ" "ဖယ်ရှားရန်" - "ဖျက်ပစ်ရန်" + "ဖျက်ရန်" "သိမ်းထားပါ" - "မလုပ်တော့ပါ" + "မလုပ်တော့" "ပြန်ကြိုးစားပါ" "ယခု စတင်ပါ" "ဘာကိုမှ မရွေးပါ" -- cgit v1.2.3 From 7b7fa39decefca0ff83b1e3758cba11df90f94cd Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Thu, 28 Jul 2016 14:03:49 -0600 Subject: Waiting for Wi-Fi notification is not ongoing. Only active downloads should be classified as ongoing notifications. Bug: 30065873 Change-Id: I778eafb0737c7da17216fb3012847e6a3beccde9 --- src/com/android/providers/downloads/DownloadNotifier.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/com/android/providers/downloads/DownloadNotifier.java b/src/com/android/providers/downloads/DownloadNotifier.java index d5808690..d13bb5e2 100644 --- a/src/com/android/providers/downloads/DownloadNotifier.java +++ b/src/com/android/providers/downloads/DownloadNotifier.java @@ -213,7 +213,9 @@ public class DownloadNotifier { downloadIds); builder.setContentIntent(PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)); - builder.setOngoing(true); + if (type == TYPE_ACTIVE) { + builder.setOngoing(true); + } // Add a Cancel action final Uri cancelUri = new Uri.Builder().scheme("cancel-dl").appendPath(tag).build(); -- cgit v1.2.3 From 8be3a92eb0b4105a9ed748be5a937ce79145f565 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Mon, 1 Aug 2016 10:24:24 -0600 Subject: Enforce calling identity before clearing. When opening a downloaded file, enforce that the caller can actually see the requested download before clearing their identity to read internal columns. Bug: 30537115 Change-Id: I01bbad7997e5e908bfb19f5d576860a24f59f295 --- src/com/android/providers/downloads/DownloadProvider.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index 2d914c41..d2a9d847 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -1192,6 +1192,19 @@ public final class DownloadProvider extends ContentProvider { logVerboseOpenFileInfo(uri, mode); } + // Perform normal query to enforce caller identity access before + // clearing it to reach internal-only columns + final Cursor probeCursor = query(uri, new String[] { + Downloads.Impl._DATA }, null, null, null); + try { + if ((probeCursor == null) || (probeCursor.getCount() == 0)) { + throw new FileNotFoundException( + "No file found for " + uri + " as UID " + Binder.getCallingUid()); + } + } finally { + IoUtils.closeQuietly(probeCursor); + } + final Cursor cursor = queryCleared(uri, new String[] { Downloads.Impl._DATA, Downloads.Impl.COLUMN_STATUS, Downloads.Impl.COLUMN_DESTINATION, Downloads.Impl.COLUMN_MEDIA_SCANNED }, null, -- cgit v1.2.3 From 314026d4e85d0d1d075d5de83038cec1e751ec64 Mon Sep 17 00:00:00 2001 From: Jorge Gil Date: Mon, 1 Aug 2016 16:21:33 -0700 Subject: DO NOT MERGE: Check that file exists in disk in queryChildDocs Check that files returned from querying DownloadManager in queryChildDocuments and queryChildDocumentsForManage still exist in External Storage. Bug: 28430547 Change-Id: I4efe9f9ba79d41b3c3099fb96d18460880b742b5 (cherry picked from commit c45f4998c0b4f7ab44d3d2a180ca977ca2fa5ca8) --- .../providers/downloads/DownloadStorageProvider.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/com/android/providers/downloads/DownloadStorageProvider.java b/src/com/android/providers/downloads/DownloadStorageProvider.java index e0bb7cd1..80d6ac79 100644 --- a/src/com/android/providers/downloads/DownloadStorageProvider.java +++ b/src/com/android/providers/downloads/DownloadStorageProvider.java @@ -325,6 +325,10 @@ public class DownloadStorageProvider extends DocumentsProvider { Document.FLAG_DIR_PREFERS_LAST_MODIFIED | Document.FLAG_DIR_SUPPORTS_CREATE); } + /** + * Adds the entry from the cursor to the result only if the entry is valid. That is, + * if the file exists in the file system. + */ private void includeDownloadFromCursor(MatrixCursor result, Cursor cursor) { final long id = cursor.getLong(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_ID)); final String docId = String.valueOf(id); @@ -344,12 +348,20 @@ public class DownloadStorageProvider extends DocumentsProvider { if (size == -1) { size = null; } + String localFilePath = cursor.getString( + cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_FILENAME)); int extraFlags = Document.FLAG_PARTIAL; final int status = cursor.getInt( cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS)); switch (status) { case DownloadManager.STATUS_SUCCESSFUL: + // Verify that the document still exists in external storage. This is necessary + // because files can be deleted from the file system without their entry being + // removed from DownloadsManager. + if (localFilePath == null || !new File(localFilePath).exists()) { + return; + } extraFlags = Document.FLAG_SUPPORTS_RENAME; // only successful is non-partial break; case DownloadManager.STATUS_PAUSED: @@ -400,8 +412,6 @@ public class DownloadStorageProvider extends DocumentsProvider { row.add(Document.COLUMN_LAST_MODIFIED, lastModified); } - final String localFilePath = cursor.getString( - cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_FILENAME)); if (localFilePath != null) { row.add(DocumentArchiveHelper.COLUMN_LOCAL_FILE_PATH, localFilePath); } -- cgit v1.2.3 From 2a283e98539aafb4ad3b659a0da6cce44fd0ab25 Mon Sep 17 00:00:00 2001 From: Allen Hair Date: Thu, 25 Aug 2016 15:23:40 -0700 Subject: Configure code coverage filter. Bug: 28269038 Change-Id: Icf6dbe1e6cbec8a13de86e52017d406fb76e44fa --- Android.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Android.mk b/Android.mk index d69e42f1..75597f59 100644 --- a/Android.mk +++ b/Android.mk @@ -11,6 +11,8 @@ LOCAL_PRIVILEGED_MODULE := true LOCAL_STATIC_JAVA_LIBRARIES := guava \ android-support-documents-archive +LOCAL_JACK_COVERAGE_INCLUDE_FILTER := com.android.providers.downloads.* + include $(BUILD_PACKAGE) # build UI + tests -- cgit v1.2.3 From b440ceb00fd46c9233723066c680a538067fbf82 Mon Sep 17 00:00:00 2001 From: Adam Seaton Date: Fri, 26 Aug 2016 21:13:20 +0000 Subject: Revert "Enforce calling identity before clearing." This reverts commit 8be3a92eb0b4105a9ed748be5a937ce79145f565. Change-Id: I10401d57239b868f8e3514f81a0e20486838e29c --- src/com/android/providers/downloads/DownloadProvider.java | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index d2a9d847..2d914c41 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -1192,19 +1192,6 @@ public final class DownloadProvider extends ContentProvider { logVerboseOpenFileInfo(uri, mode); } - // Perform normal query to enforce caller identity access before - // clearing it to reach internal-only columns - final Cursor probeCursor = query(uri, new String[] { - Downloads.Impl._DATA }, null, null, null); - try { - if ((probeCursor == null) || (probeCursor.getCount() == 0)) { - throw new FileNotFoundException( - "No file found for " + uri + " as UID " + Binder.getCallingUid()); - } - } finally { - IoUtils.closeQuietly(probeCursor); - } - final Cursor cursor = queryCleared(uri, new String[] { Downloads.Impl._DATA, Downloads.Impl.COLUMN_STATUS, Downloads.Impl.COLUMN_DESTINATION, Downloads.Impl.COLUMN_MEDIA_SCANNED }, null, -- cgit v1.2.3 From a4b509c30aaf1ec94a9ebed393a37c3d25540269 Mon Sep 17 00:00:00 2001 From: Jorge Gil Date: Mon, 1 Aug 2016 16:21:33 -0700 Subject: DO NOT MERGE: Check that file exists in disk in queryChildDocs Check that files returned from querying DownloadManager in queryChildDocuments and queryChildDocumentsForManage still exist in External Storage. Bug: 28430547, 31108493 Change-Id: I4efe9f9ba79d41b3c3099fb96d18460880b742b5 (cherry picked from commit c45f4998c0b4f7ab44d3d2a180ca977ca2fa5ca8) (cherry picked from commit 314026d4e85d0d1d075d5de83038cec1e751ec64) --- .../providers/downloads/DownloadStorageProvider.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/com/android/providers/downloads/DownloadStorageProvider.java b/src/com/android/providers/downloads/DownloadStorageProvider.java index e0bb7cd1..80d6ac79 100644 --- a/src/com/android/providers/downloads/DownloadStorageProvider.java +++ b/src/com/android/providers/downloads/DownloadStorageProvider.java @@ -325,6 +325,10 @@ public class DownloadStorageProvider extends DocumentsProvider { Document.FLAG_DIR_PREFERS_LAST_MODIFIED | Document.FLAG_DIR_SUPPORTS_CREATE); } + /** + * Adds the entry from the cursor to the result only if the entry is valid. That is, + * if the file exists in the file system. + */ private void includeDownloadFromCursor(MatrixCursor result, Cursor cursor) { final long id = cursor.getLong(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_ID)); final String docId = String.valueOf(id); @@ -344,12 +348,20 @@ public class DownloadStorageProvider extends DocumentsProvider { if (size == -1) { size = null; } + String localFilePath = cursor.getString( + cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_FILENAME)); int extraFlags = Document.FLAG_PARTIAL; final int status = cursor.getInt( cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS)); switch (status) { case DownloadManager.STATUS_SUCCESSFUL: + // Verify that the document still exists in external storage. This is necessary + // because files can be deleted from the file system without their entry being + // removed from DownloadsManager. + if (localFilePath == null || !new File(localFilePath).exists()) { + return; + } extraFlags = Document.FLAG_SUPPORTS_RENAME; // only successful is non-partial break; case DownloadManager.STATUS_PAUSED: @@ -400,8 +412,6 @@ public class DownloadStorageProvider extends DocumentsProvider { row.add(Document.COLUMN_LAST_MODIFIED, lastModified); } - final String localFilePath = cursor.getString( - cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_FILENAME)); if (localFilePath != null) { row.add(DocumentArchiveHelper.COLUMN_LOCAL_FILE_PATH, localFilePath); } -- cgit v1.2.3 From c0496a0b0b26bec9c37e94753823507a6067d700 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 23 Aug 2016 15:09:08 -0600 Subject: DO NOT MERGE. Send "completed" broadcast if download cancelled. When a download is deleted, we may not have an active thread, so always send the broadcast from the provider. If an active thread encounters a deleted download, skip sending the broadcast twice. Change-Id: If8d5b99a1b7232bb64c6d11f22fdb4f5d6dbbfec Test: none Bug: 30883889 (cherry picked from commit efb1ac6b49692e62fde6830c3d20953c8632d2ba) --- .../providers/downloads/DownloadProvider.java | 27 ++++++++++++++-------- .../providers/downloads/DownloadThread.java | 6 ++++- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index d30018f7..194fd1e3 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -18,7 +18,6 @@ package com.android.providers.downloads; import static android.provider.BaseColumns._ID; import static android.provider.Downloads.Impl.COLUMN_DESTINATION; -import static android.provider.Downloads.Impl.COLUMN_MEDIAPROVIDER_URI; import static android.provider.Downloads.Impl.COLUMN_MEDIA_SCANNED; import static android.provider.Downloads.Impl.COLUMN_MIME_TYPE; import static android.provider.Downloads.Impl.DESTINATION_NON_DOWNLOADMANAGER_DOWNLOAD; @@ -29,6 +28,7 @@ import android.app.DownloadManager; import android.app.DownloadManager.Request; import android.app.job.JobScheduler; import android.content.ContentProvider; +import android.content.ContentResolver; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; @@ -1193,7 +1193,10 @@ public final class DownloadProvider extends ContentProvider { Helpers.validateSelection(where, sAppReadableColumnsSet); } - final JobScheduler scheduler = getContext().getSystemService(JobScheduler.class); + final Context context = getContext(); + final ContentResolver resolver = context.getContentResolver(); + final JobScheduler scheduler = context.getSystemService(JobScheduler.class); + final SQLiteDatabase db = mOpenHelper.getWritableDatabase(); int count; int match = sURIMatcher.match(uri); @@ -1205,16 +1208,17 @@ public final class DownloadProvider extends ContentProvider { final SqlSelection selection = getWhereClause(uri, where, whereArgs, match); deleteRequestHeaders(db, selection.getSelection(), selection.getParameters()); - try (Cursor cursor = db.query(DB_TABLE, new String[] { - _ID, _DATA, COLUMN_MEDIAPROVIDER_URI - }, selection.getSelection(), selection.getParameters(), null, null, null)) { + try (Cursor cursor = db.query(DB_TABLE, null, selection.getSelection(), + selection.getParameters(), null, null, null)) { + final DownloadInfo.Reader reader = new DownloadInfo.Reader(resolver, cursor); + final DownloadInfo info = new DownloadInfo(context); while (cursor.moveToNext()) { - final long id = cursor.getLong(0); - scheduler.cancel((int) id); + reader.updateFromDatabase(info); + scheduler.cancel((int) info.mId); - DownloadStorageProvider.onDownloadProviderDelete(getContext(), id); + DownloadStorageProvider.onDownloadProviderDelete(getContext(), info.mId); - final String path = cursor.getString(1); + final String path = info.mFileName; if (!TextUtils.isEmpty(path)) { try { final File file = new File(path).getCanonicalFile(); @@ -1227,7 +1231,7 @@ public final class DownloadProvider extends ContentProvider { } } - final String mediaUri = cursor.getString(2); + final String mediaUri = info.mMediaProviderUri; if (!TextUtils.isEmpty(mediaUri)) { final long token = Binder.clearCallingIdentity(); try { @@ -1237,6 +1241,9 @@ public final class DownloadProvider extends ContentProvider { Binder.restoreCallingIdentity(token); } } + + // Tell requester that download is finished + info.sendIntentIfRequested(); } } diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java index 40194038..33436f57 100644 --- a/src/com/android/providers/downloads/DownloadThread.java +++ b/src/com/android/providers/downloads/DownloadThread.java @@ -382,7 +382,11 @@ public class DownloadThread extends Thread { } if (Downloads.Impl.isStatusCompleted(mInfoDelta.mStatus)) { - mInfo.sendIntentIfRequested(); + // If download was canceled, we already sent requested intent when + // deleted in the provider + if (mInfoDelta.mStatus != STATUS_CANCELED) { + mInfo.sendIntentIfRequested(); + } if (mInfo.shouldScanFile(mInfoDelta.mStatus)) { DownloadScanner.requestScanBlocking(mContext, mInfo.mId, mInfoDelta.mFileName, mInfoDelta.mMimeType); -- cgit v1.2.3 From 2be85cd23d2d56d1b0ea87f0f815ef80693b98c2 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 23 Aug 2016 14:01:11 -0600 Subject: DO NOT MERGE. Update notifications when deleting downloads. Otherwise we end up leaving stale notifications around after the underlying download was deleted. Change-Id: Ie262a9dd369034de6c06be28b0eedc4231ea2e75 Test: none Bug: 30697605 (cherry picked from commit 3b7e099588a2697305fd52c342f404a03ec9a9ab) --- src/com/android/providers/downloads/DownloadProvider.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index d30018f7..95d90dc1 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -1248,6 +1248,12 @@ public final class DownloadProvider extends ContentProvider { throw new UnsupportedOperationException("Cannot delete URI: " + uri); } notifyContentChanged(uri, match); + final long token = Binder.clearCallingIdentity(); + try { + Helpers.getDownloadNotifier(getContext()).update(); + } finally { + Binder.restoreCallingIdentity(token); + } return count; } -- cgit v1.2.3 From 12d4497cc12cb9390f6efe953bd70bef1e6a41b3 Mon Sep 17 00:00:00 2001 From: Steve McKay Date: Tue, 30 Aug 2016 16:27:20 -0700 Subject: DO NOT MERGE: Listen to file changes on Downloads dir. And notify clients of Downloads when files on disk. Cherrypicked from: e398c096892fe8aac0c46374aec6bbe016c41016 and 2b011b97f96463c1f4a4f6b69c5bbe18ec0fc572 (followup changes due to autocommit commiting changes before completing nits). Bug: 28430547 Change-Id: I42a42bfb5e585918fe6b384a862699445afefcbc --- .../downloads/DownloadStorageProvider.java | 131 +++++++++++++++++---- 1 file changed, 107 insertions(+), 24 deletions(-) diff --git a/src/com/android/providers/downloads/DownloadStorageProvider.java b/src/com/android/providers/downloads/DownloadStorageProvider.java index 80d6ac79..4ec8e2d1 100644 --- a/src/com/android/providers/downloads/DownloadStorageProvider.java +++ b/src/com/android/providers/downloads/DownloadStorageProvider.java @@ -29,28 +29,36 @@ import android.net.Uri; import android.os.Binder; import android.os.CancellationSignal; import android.os.Environment; +import android.os.FileObserver; import android.os.FileUtils; import android.os.ParcelFileDescriptor; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Document; import android.provider.DocumentsContract.Root; import android.provider.DocumentsProvider; +import android.provider.Downloads; import android.support.provider.DocumentArchiveHelper; import android.text.TextUtils; -import android.webkit.MimeTypeMap; - -import libcore.io.IoUtils; +import android.util.Log; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.text.NumberFormat; +import javax.annotation.Nullable; +import javax.annotation.concurrent.GuardedBy; + +import libcore.io.IoUtils; + /** * Presents a {@link DocumentsContract} view of {@link DownloadManager} * contents. */ public class DownloadStorageProvider extends DocumentsProvider { + private static final String TAG = "DownloadStorageProvider"; + private static final boolean DEBUG = false; + private static final String AUTHORITY = Constants.STORAGE_AUTHORITY; private static final String DOC_ID_ROOT = Constants.STORAGE_ROOT_ID; @@ -74,6 +82,7 @@ public class DownloadStorageProvider extends DocumentsProvider { mDm.setAccessAllDownloads(true); mDm.setAccessFilename(true); mArchiveHelper = new DocumentArchiveHelper(this, ':'); + return true; } @@ -179,7 +188,8 @@ public class DownloadStorageProvider extends DocumentsProvider { return mArchiveHelper.queryDocument(docId, projection); } - final MatrixCursor result = new MatrixCursor(resolveDocumentProjection(projection)); + final DownloadsCursor result = + new DownloadsCursor(projection, getContext().getContentResolver()); if (DOC_ID_ROOT.equals(docId)) { includeDefaultDocument(result); @@ -200,6 +210,8 @@ public class DownloadStorageProvider extends DocumentsProvider { Binder.restoreCallingIdentity(token); } } + + result.start(); return result; } @@ -211,7 +223,8 @@ public class DownloadStorageProvider extends DocumentsProvider { return mArchiveHelper.queryChildDocuments(docId, projection, sortOrder); } - final MatrixCursor result = new MatrixCursor(resolveDocumentProjection(projection)); + final DownloadsCursor result = + new DownloadsCursor(projection, getContext().getContentResolver()); // Delegate to real provider final long token = Binder.clearCallingIdentity(); @@ -227,6 +240,8 @@ public class DownloadStorageProvider extends DocumentsProvider { IoUtils.closeQuietly(cursor); Binder.restoreCallingIdentity(token); } + + result.start(); return result; } @@ -238,7 +253,8 @@ public class DownloadStorageProvider extends DocumentsProvider { return mArchiveHelper.queryDocument(parentDocumentId, projection); } - final MatrixCursor result = new MatrixCursor(resolveDocumentProjection(projection)); + final DownloadsCursor result = + new DownloadsCursor(projection, getContext().getContentResolver()); // Delegate to real provider final long token = Binder.clearCallingIdentity(); @@ -254,13 +270,17 @@ public class DownloadStorageProvider extends DocumentsProvider { IoUtils.closeQuietly(cursor); Binder.restoreCallingIdentity(token); } + + result.start(); return result; } @Override public Cursor queryRecentDocuments(String rootId, String[] projection) throws FileNotFoundException { - final MatrixCursor result = new MatrixCursor(resolveDocumentProjection(projection)); + + final DownloadsCursor result = + new DownloadsCursor(projection, getContext().getContentResolver()); // Delegate to real provider final long token = Binder.clearCallingIdentity(); @@ -288,6 +308,8 @@ public class DownloadStorageProvider extends DocumentsProvider { IoUtils.closeQuietly(cursor); Binder.restoreCallingIdentity(token); } + + result.start(); return result; } @@ -418,30 +440,91 @@ public class DownloadStorageProvider extends DocumentsProvider { } /** - * Remove file extension from name, but only if exact MIME type mapping - * exists. This means we can reapply the extension later. + * A MatrixCursor that spins up a file observer when the first instance is + * started ({@link #start()}, and stops the file observer when the last instance + * closed ({@link #close()}. When file changes are observed, a content change + * notification is sent on the Downloads content URI. + * + *

This is necessary as other processes, like ExternalStorageProvider, + * can access and modify files directly (without sending operations + * through DownloadStorageProvider). + * + *

Without this, contents accessible by one a Downloads cursor instance + * (like the Downloads root in Files app) can become state. */ - private static String removeExtension(String mimeType, String name) { - final int lastDot = name.lastIndexOf('.'); - if (lastDot >= 0) { - final String extension = name.substring(lastDot + 1); - final String nameMime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); - if (mimeType.equals(nameMime)) { - return name.substring(0, lastDot); + private static final class DownloadsCursor extends MatrixCursor { + + private static final Object mLock = new Object(); + @GuardedBy("mLock") + private static int mOpenCursorCount = 0; + @GuardedBy("mLock") + private static @Nullable ContentChangedRelay mFileWatcher; + + private final ContentResolver mResolver; + + DownloadsCursor(String[] projection, ContentResolver resolver) { + super(resolveDocumentProjection(projection)); + mResolver = resolver; + } + + void start() { + synchronized (mLock) { + if (mOpenCursorCount++ == 0) { + mFileWatcher = new ContentChangedRelay(mResolver); + mFileWatcher.startWatching(); + } + } + } + + @Override + public void close() { + super.close(); + synchronized (mLock) { + if (--mOpenCursorCount == 0) { + mFileWatcher.stopWatching(); + mFileWatcher = null; + } } } - return name; } /** - * Add file extension to name, but only if exact MIME type mapping exists. + * A file observer that notifies on the Downloads content URI(s) when + * files change on disk. */ - private static String addExtension(String mimeType, String name) { - final String extension = MimeTypeMap.getSingleton() - .getExtensionFromMimeType(mimeType); - if (extension != null) { - return name + "." + extension; + private static class ContentChangedRelay extends FileObserver { + private static final int NOTIFY_EVENTS = ATTRIB | CLOSE_WRITE | MOVED_FROM | MOVED_TO + | CREATE | DELETE | DELETE_SELF | MOVE_SELF; + + private static final String DOWNLOADS_PATH = + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + .getAbsolutePath(); + private final ContentResolver mResolver; + + public ContentChangedRelay(ContentResolver resolver) { + super(DOWNLOADS_PATH, NOTIFY_EVENTS); + mResolver = resolver; + } + + @Override + public void startWatching() { + super.startWatching(); + if (DEBUG) Log.d(TAG, "Started watching for file changes in: " + DOWNLOADS_PATH); + } + + @Override + public void stopWatching() { + super.stopWatching(); + if (DEBUG) Log.d(TAG, "Stopped watching for file changes in: " + DOWNLOADS_PATH); + } + + @Override + public void onEvent(int event, String path) { + if ((event & NOTIFY_EVENTS) != 0) { + if (DEBUG) Log.v(TAG, "Change detected at path: " + DOWNLOADS_PATH); + mResolver.notifyChange(Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, null, false); + mResolver.notifyChange(Downloads.Impl.CONTENT_URI, null, false); + } } - return name; } } -- cgit v1.2.3 From 7c1af8c62c8bdf6e8de5a00c1927daf9fd9c03d1 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Fri, 16 Sep 2016 12:12:17 -0600 Subject: Enforce calling identity before clearing. When opening a downloaded file, enforce that the caller can actually see the requested download before clearing their identity to read internal columns. However, this means that we can no longer return the "my_downloads" paths: if those Uris were shared beyond the app that requested the download, access would be denied. Instead, we need to switch to using "all_downloads" Uris so that permission grants can be issued to third-party viewer apps. Since an app requesting a download doesn't normally have permission to "all_downloads" paths, we issue narrow grants toward the owner of each download, both at device boot and when new downloads are started. Bug: 30537115, 30945409 Change-Id: If944aada020878a91c363963728d0da9f6fae3ea --- .../providers/downloads/DownloadProvider.java | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index 2d914c41..87084130 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -458,6 +458,19 @@ public final class DownloadProvider extends ContentProvider { if (appInfo != null) { mDefContainerUid = appInfo.uid; } + + // Grant access permissions for all known downloads to the owning apps + final SQLiteDatabase db = mOpenHelper.getReadableDatabase(); + final Cursor cursor = db.query(DB_TABLE, new String[] { + Downloads.Impl._ID, Constants.UID }, null, null, null, null, null); + try { + while (cursor.moveToNext()) { + grantAllDownloadsPermission(cursor.getLong(0), cursor.getInt(1)); + } + } finally { + cursor.close(); + } + // start the DownloadService class. don't wait for the 1st download to be issued. // saves us by getting some initialization code in DownloadService out of the way. Context context = getContext(); @@ -675,6 +688,7 @@ public final class DownloadProvider extends ContentProvider { } insertRequestHeaders(db, rowID, values); + grantAllDownloadsPermission(rowID, Binder.getCallingUid()); notifyContentChanged(uri, match); // Always start service to handle notifications and/or scanning @@ -1166,6 +1180,7 @@ public final class DownloadProvider extends ContentProvider { try { while (cursor.moveToNext()) { final long id = cursor.getLong(0); + revokeAllDownloadsPermission(id); DownloadStorageProvider.onDownloadProviderDelete(getContext(), id); } } finally { @@ -1192,6 +1207,19 @@ public final class DownloadProvider extends ContentProvider { logVerboseOpenFileInfo(uri, mode); } + // Perform normal query to enforce caller identity access before + // clearing it to reach internal-only columns + final Cursor probeCursor = query(uri, new String[] { + Downloads.Impl._DATA }, null, null, null); + try { + if ((probeCursor == null) || (probeCursor.getCount() == 0)) { + throw new FileNotFoundException( + "No file found for " + uri + " as UID " + Binder.getCallingUid()); + } + } finally { + IoUtils.closeQuietly(probeCursor); + } + final Cursor cursor = queryCleared(uri, new String[] { Downloads.Impl._DATA, Downloads.Impl.COLUMN_STATUS, Downloads.Impl.COLUMN_DESTINATION, Downloads.Impl.COLUMN_MEDIA_SCANNED }, null, @@ -1373,4 +1401,20 @@ public final class DownloadProvider extends ContentProvider { to.put(key, defaultValue); } } + + private void grantAllDownloadsPermission(long id, int uid) { + final String[] packageNames = getContext().getPackageManager().getPackagesForUid(uid); + if (packageNames == null || packageNames.length == 0) return; + + // We only need to grant to the first package, since the + // platform internally tracks based on UIDs + final Uri uri = ContentUris.withAppendedId(Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, id); + getContext().grantUriPermission(packageNames[0], uri, + Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + } + + private void revokeAllDownloadsPermission(long id) { + final Uri uri = ContentUris.withAppendedId(Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, id); + getContext().revokeUriPermission(uri, ~0); + } } -- cgit v1.2.3 From 4de452f3332de94557712e6997a0e2777a925322 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 16 Sep 2016 16:27:36 -0700 Subject: Import translations. DO NOT MERGE Auto-generated-cl: translation import Bug: 31516661 Change-Id: I94b3749325675a4594e6114683720672edf3f452 --- ui/res/values-kn-rIN/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/res/values-kn-rIN/strings.xml b/ui/res/values-kn-rIN/strings.xml index 67722747..c125612d 100644 --- a/ui/res/values-kn-rIN/strings.xml +++ b/ui/res/values-kn-rIN/strings.xml @@ -20,7 +20,7 @@ "ಡೌನ್‌ಲೋಡ್‌ಗಳು - ದಿನಾಂಕದ ಪ್ರಕಾರ ವಿಂಗಡಿಸಲಾಗಿದೆ" "ಡೌನ್‌ಲೊಡ್‌ಗಳು - ಗಾತ್ರದ ಪ್ರಕಾರ ವಿಂಗಡಿಸಲಾಗಿದೆ" "ಯಾವುದೇ ಡೌನ್‌ಲೋಡ್‌ಗಳಿಲ್ಲ." - "<ಅಜ್ಞಾತ>" + "<ಅಪರಿಚಿತ>" "ಗಾತ್ರದಂತೆ ವಿಂಗಡಿಸಿ" "ದಿನಾಂಕದ ಪ್ರಕಾರವಾಗಿ ವಿಂಗಡಿಸಿ" "ಸರದಿಯಲ್ಲಿರಿಸಲಾಗಿದೆ" -- cgit v1.2.3 From 968b2f2ca3fc43b762150114048b21a23bf35c73 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Mon, 3 Oct 2016 17:05:20 -0600 Subject: Launch APKs using content:// Uri with grant. PackageInstaller now supports reading from content://, so always launch using that path. Include URI permission grants so the receiver can access the contents. Test: installed downloaded APK Bug: 31807780 Change-Id: I488d14872e80ce4a092e7db6e1c58f3fe54a54c6 --- src/com/android/providers/downloads/OpenHelper.java | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/com/android/providers/downloads/OpenHelper.java b/src/com/android/providers/downloads/OpenHelper.java index 27ab86b9..69a44922 100644 --- a/src/com/android/providers/downloads/OpenHelper.java +++ b/src/com/android/providers/downloads/OpenHelper.java @@ -17,10 +17,10 @@ package com.android.providers.downloads; import static android.app.DownloadManager.COLUMN_LOCAL_FILENAME; -import static android.app.DownloadManager.COLUMN_LOCAL_URI; import static android.app.DownloadManager.COLUMN_MEDIA_TYPE; import static android.app.DownloadManager.COLUMN_URI; import static android.provider.Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI; + import static com.android.providers.downloads.Constants.TAG; import android.app.DownloadManager; @@ -30,7 +30,6 @@ import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.net.Uri; -import android.os.StrictMode; import android.provider.DocumentsContract; import android.provider.Downloads.Impl.RequestHeaders; import android.util.Log; @@ -51,14 +50,11 @@ public class OpenHelper { intent.addFlags(intentFlags); try { - StrictMode.disableDeathOnFileUriExposure(); context.startActivity(intent); return true; } catch (ActivityNotFoundException e) { Log.w(TAG, "Failed to start " + intent + ": " + e); return false; - } finally { - StrictMode.enableDeathOnFileUriExposure(); } } @@ -78,7 +74,6 @@ public class OpenHelper { return null; } - final Uri localUri = getCursorUri(cursor, COLUMN_LOCAL_URI); final File file = getCursorFile(cursor, COLUMN_LOCAL_FILENAME); String mimeType = getCursorString(cursor, COLUMN_MEDIA_TYPE); mimeType = DownloadDrmHelper.getOriginalMimeType(context, file, mimeType); @@ -87,20 +82,16 @@ public class OpenHelper { Constants.STORAGE_AUTHORITY, String.valueOf(id)); final Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setDataAndType(documentUri, mimeType); + intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION + | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); if ("application/vnd.android.package-archive".equals(mimeType)) { - // PackageInstaller doesn't like content URIs, so open file - intent.setDataAndType(localUri, mimeType); - // Also splice in details about where it came from final Uri remoteUri = getCursorUri(cursor, COLUMN_URI); intent.putExtra(Intent.EXTRA_ORIGINATING_URI, remoteUri); intent.putExtra(Intent.EXTRA_REFERRER, getRefererUri(context, id)); intent.putExtra(Intent.EXTRA_ORIGINATING_UID, getOriginatingUid(context, id)); - } else { - intent.setDataAndType(documentUri, mimeType); - intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION - | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); } return intent; -- cgit v1.2.3 From f96f51e8d7386341ca209c795cc6621ab0608d45 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Fri, 14 Oct 2016 15:31:37 -0600 Subject: Only send DOWNLOAD_COMPLETE broadcast once. Apps might end up confused if we tell them a download was completed multiple times, so only send the broadcast exactly once when we transition it into a "completed" state, either during an update() or a delete() operation. Test: verified single broadcast with test app Bug: 31619480 Change-Id: I0b9139ea0e37f6d212b84314048692cd0c4f9cdf --- .../providers/downloads/DownloadProvider.java | 35 +++++++++++++++------- .../providers/downloads/DownloadThread.java | 5 ---- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index b2b2c08d..72975582 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -1077,10 +1077,14 @@ public final class DownloadProvider extends ContentProvider { Helpers.validateSelection(where, sAppReadableColumnsSet); - SQLiteDatabase db = mOpenHelper.getWritableDatabase(); + final Context context = getContext(); + final ContentResolver resolver = context.getContentResolver(); + + final SQLiteDatabase db = mOpenHelper.getWritableDatabase(); int count; boolean updateSchedule = false; + boolean isCompleting = false; ContentValues filteredValues; if (Binder.getCallingPid() != Process.myPid()) { @@ -1121,6 +1125,7 @@ public final class DownloadProvider extends ContentProvider { if (isRestart || isUserBypassingSizeLimit) { updateSchedule = true; } + isCompleting = status != null && Downloads.Impl.isStatusCompleted(status); } int match = sURIMatcher.match(uri); @@ -1137,14 +1142,20 @@ public final class DownloadProvider extends ContentProvider { final SqlSelection selection = getWhereClause(uri, where, whereArgs, match); count = db.update(DB_TABLE, filteredValues, selection.getSelection(), selection.getParameters()); - if (updateSchedule) { + if (updateSchedule || isCompleting) { final long token = Binder.clearCallingIdentity(); - try { - try (Cursor cursor = db.query(DB_TABLE, new String[] { _ID }, - selection.getSelection(), selection.getParameters(), - null, null, null)) { - while (cursor.moveToNext()) { - Helpers.scheduleJob(getContext(), cursor.getInt(0)); + try (Cursor cursor = db.query(DB_TABLE, null, selection.getSelection(), + selection.getParameters(), null, null, null)) { + final DownloadInfo.Reader reader = new DownloadInfo.Reader(resolver, + cursor); + final DownloadInfo info = new DownloadInfo(context); + while (cursor.moveToNext()) { + reader.updateFromDatabase(info); + if (updateSchedule) { + Helpers.scheduleJob(context, info); + } + if (isCompleting) { + info.sendIntentIfRequested(); } } } finally { @@ -1257,8 +1268,12 @@ public final class DownloadProvider extends ContentProvider { } } - // Tell requester that download is finished - info.sendIntentIfRequested(); + // If the download wasn't completed yet, we're + // effectively completing it now, and we need to send + // any requested broadcasts + if (!Downloads.Impl.isStatusCompleted(info.mStatus)) { + info.sendIntentIfRequested(); + } } } diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java index 33436f57..c6b4c71a 100644 --- a/src/com/android/providers/downloads/DownloadThread.java +++ b/src/com/android/providers/downloads/DownloadThread.java @@ -382,11 +382,6 @@ public class DownloadThread extends Thread { } if (Downloads.Impl.isStatusCompleted(mInfoDelta.mStatus)) { - // If download was canceled, we already sent requested intent when - // deleted in the provider - if (mInfoDelta.mStatus != STATUS_CANCELED) { - mInfo.sendIntentIfRequested(); - } if (mInfo.shouldScanFile(mInfoDelta.mStatus)) { DownloadScanner.requestScanBlocking(mContext, mInfo.mId, mInfoDelta.mFileName, mInfoDelta.mMimeType); -- cgit v1.2.3