diff options
Diffstat (limited to 'packages/DocumentsUI')
103 files changed, 4271 insertions, 448 deletions
diff --git a/packages/DocumentsUI/AndroidManifest.xml b/packages/DocumentsUI/AndroidManifest.xml index e95e5ec..bf50017 100644 --- a/packages/DocumentsUI/AndroidManifest.xml +++ b/packages/DocumentsUI/AndroidManifest.xml @@ -40,12 +40,28 @@ <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="vnd.android.document/root" /> </intent-filter> + <intent-filter> + <action android:name="android.provider.action.BROWSE_DOCUMENT_ROOT" /> + <category android:name="android.intent.category.DEFAULT" /> + <data android:mimeType="vnd.android.document/root" /> + </intent-filter> + </activity> + + <activity + android:name=".StandaloneActivity" + android:theme="@style/StandaloneTheme" + android:icon="@drawable/ic_doc_text" + android:enabled="false"> + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> </activity> <provider android:name=".RecentsProvider" android:authorities="com.android.documentsui.recents" - android:exported="false" /> + android:exported="false"/> <receiver android:name=".PackageReceiver"> <intent-filter> @@ -54,5 +70,10 @@ <data android:scheme="package" /> </intent-filter> </receiver> + + <service + android:name=".CopyService" + android:exported="false"> + </service> </application> </manifest> diff --git a/packages/DocumentsUI/res/layout/dialog_create_dir.xml b/packages/DocumentsUI/res/layout/dialog_create_dir.xml index 54e26b4..5ed476f 100644 --- a/packages/DocumentsUI/res/layout/dialog_create_dir.xml +++ b/packages/DocumentsUI/res/layout/dialog_create_dir.xml @@ -22,6 +22,7 @@ <EditText android:id="@android:id/text1" android:layout_width="match_parent" - android:layout_height="wrap_content" /> + android:layout_height="wrap_content" + android:inputType="text" /> </FrameLayout> diff --git a/packages/DocumentsUI/res/layout/fragment_pick.xml b/packages/DocumentsUI/res/layout/fragment_pick.xml index 5735871..87dc4f8 100644 --- a/packages/DocumentsUI/res/layout/fragment_pick.xml +++ b/packages/DocumentsUI/res/layout/fragment_pick.xml @@ -21,12 +21,19 @@ android:baselineAligned="false" android:gravity="center_vertical" android:minHeight="?android:attr/listPreferredItemHeightSmall"> - + <Button + android:id="@android:id/button2" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_weight="1" + android:text="@android:string/cancel" + android:visibility="gone" + style="?android:attr/buttonBarNegativeButtonStyle" /> <Button android:id="@android:id/button1" - android:layout_width="match_parent" + android:layout_width="wrap_content" android:layout_height="match_parent" + android:layout_weight="1" android:textAllCaps="false" style="?android:attr/buttonBarPositiveButtonStyle" /> - </LinearLayout> diff --git a/packages/DocumentsUI/res/menu/activity.xml b/packages/DocumentsUI/res/menu/activity.xml index b9b8054..5b944ab 100644 --- a/packages/DocumentsUI/res/menu/activity.xml +++ b/packages/DocumentsUI/res/menu/activity.xml @@ -60,4 +60,8 @@ <item android:id="@+id/menu_file_size" android:showAsAction="never" /> + <item + android:id="@+id/menu_settings" + android:title="@string/menu_settings" + android:showAsAction="never" /> </menu> diff --git a/packages/DocumentsUI/res/menu/mode_directory.xml b/packages/DocumentsUI/res/menu/mode_directory.xml index 0a3645f..4b89823 100644 --- a/packages/DocumentsUI/res/menu/mode_directory.xml +++ b/packages/DocumentsUI/res/menu/mode_directory.xml @@ -29,4 +29,12 @@ android:icon="@drawable/ic_menu_delete" android:title="@string/menu_delete" android:showAsAction="always" /> + <item + android:id="@+id/menu_select_all" + android:title="@string/menu_select_all" + android:showAsAction="never" /> + <item + android:id="@+id/menu_copy" + android:title="@string/menu_copy" + android:showAsAction="never" /> </menu> diff --git a/packages/DocumentsUI/res/values-af/strings.xml b/packages/DocumentsUI/res/values-af/strings.xml index ca76a7d..b79e1c9 100644 --- a/packages/DocumentsUI/res/values-af/strings.xml +++ b/packages/DocumentsUI/res/values-af/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Deel"</string> <string name="menu_delete" msgid="8138799623850614177">"Vee uit"</string> <string name="menu_select" msgid="8711270657353563424">"Kies \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Kies almal"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopieer na …"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Wys interne berging"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Wys SD-kaart"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Versteek interne berging"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Versteek SD-kaart"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Wys lêergrootte"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Versteek lêergrootte"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopieer"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> gekies"</string> <string name="sort_name" msgid="9183560467917256779">"Volgens naam"</string> <string name="sort_date" msgid="586080032956151448">"Volgens datum gewysig"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Kortpaaie"</string> <string name="root_type_device" msgid="7121342474653483538">"Toestelle"</string> <string name="root_type_apps" msgid="8838065367985945189">"Nog programme"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Wys gevorderde toestelle"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Wys lêergrootte"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Wys toestelgrootte"</string> <string name="empty" msgid="7858882803708117596">"Geen items nie"</string> <string name="toast_no_application" msgid="1339885974067891667">"Kan lêer nie oopmaak nie"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Kan sommige dokumente nie uitvee nie"</string> <string name="share_via" msgid="8966594246261344259">"Deel via"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Kopieer tans lêers"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> oor"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Kopieer tans <xliff:g id="COUNT_1">%1$d</xliff:g> lêers.</item> + <item quantity="one">Kopieer tans <xliff:g id="COUNT_0">%1$d</xliff:g> lêer.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Maak tans gereed vir kopieer …"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Kon <xliff:g id="COUNT_1">%1$d</xliff:g> lêers nie kopieer nie.</item> + <item quantity="one">Kon <xliff:g id="COUNT_0">%1$d</xliff:g> lêer nie kopieer nie.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Raak om besonderhede te bekyk"</string> + <string name="retry" msgid="7564024179122207376">"Herprobeer"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Kon nie lêers kopieer nie"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Die volgende lêers is nie gekopieer nie: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-am/strings.xml b/packages/DocumentsUI/res/values-am/strings.xml index 84879d5..0db718f 100644 --- a/packages/DocumentsUI/res/values-am/strings.xml +++ b/packages/DocumentsUI/res/values-am/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"አጋራ"</string> <string name="menu_delete" msgid="8138799623850614177">"ሰርዝ"</string> <string name="menu_select" msgid="8711270657353563424">"«<xliff:g id="DIRECTORY">^1</xliff:g>»ን ይምረጡ"</string> + <string name="menu_select_all" msgid="4320518282375109902">"ሁሉንም ምረጥ"</string> + <string name="menu_copy" msgid="3612326052677229148">"ቅዳ ወደ…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"ውስጣዊ ማከማቻ አሳይ"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD ካርድ አሳይ"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"ውስጣዊ ማከማቻ ደብቅ"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD ካርድ ደብቅ"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"የፋይል መጠን አሳይ"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"የፋይል መጠን ደብቅ"</string> + <string name="button_copy" msgid="8706475544635021302">"ቅዳ"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ተመርጠዋል"</string> <string name="sort_name" msgid="9183560467917256779">"በስም"</string> <string name="sort_date" msgid="586080032956151448">"በተለወጠበት ቀን"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"አቋራጮች"</string> <string name="root_type_device" msgid="7121342474653483538">"መሣሪያዎች"</string> <string name="root_type_apps" msgid="8838065367985945189">"ተጨማሪ መተግበሪያዎች"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"የላቁ መሳሪያዎችን አሳይ"</string> - <string name="pref_file_size" msgid="2826879315743961459">"የፋይል መጠን አሳይ"</string> - <string name="pref_device_size" msgid="3542106883278997222">"የመሳሪያ መጠን አሳይ"</string> <string name="empty" msgid="7858882803708117596">"ምንም ንጥሎች የሉም"</string> <string name="toast_no_application" msgid="1339885974067891667">"ፋይል መክፈት አይቻልም"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"አንዳንድ ሰነዶችን መሰረዝ አልተቻለም"</string> <string name="share_via" msgid="8966594246261344259">"በሚከተለው በኩል ያጋሩ"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"ፋይሎች በመገልበጥ ላይ"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> ቀርቷል"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> ፋይሎች በመቅዳት ላይ።</item> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ፋይሎች በመቅዳት ላይ።</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"ቅጂ በማዘጋጀት ላይ…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> ፋይሎችን መቅዳት ላይ ስህተት።</item> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ፋይሎችን መቅዳት ላይ ስህተት።</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"ዝርዝሮችን ለመመልከት ይንኩ።"</string> + <string name="retry" msgid="7564024179122207376">"እንደገና ይሞክሩ"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"ፋይሎችን መቅዳት ስህተት"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"የሚከተሉት ፋይሎች አልተቀዱም፦ <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-ar/strings.xml b/packages/DocumentsUI/res/values-ar/strings.xml index 5c5d863..debe04c 100644 --- a/packages/DocumentsUI/res/values-ar/strings.xml +++ b/packages/DocumentsUI/res/values-ar/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"مشاركة"</string> <string name="menu_delete" msgid="8138799623850614177">"حذف"</string> <string name="menu_select" msgid="8711270657353563424">"تحديد \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"تحديد الكل"</string> + <string name="menu_copy" msgid="3612326052677229148">"نسخ إلى…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"إظهار وحدة التخزين الداخلية"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"إظهار بطاقة SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"إخفاء وحدة التخزين الداخلية"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"إخفاء بطاقة SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"إظهار حجم الملف"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"إخفاء حجم الملف"</string> + <string name="button_copy" msgid="8706475544635021302">"نسخ"</string> <string name="mode_selected_count" msgid="459111894725594625">"تم تحديد <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"بحسب الاسم"</string> <string name="sort_date" msgid="586080032956151448">"بحسب تاريخ التعديل"</string> @@ -45,11 +54,31 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"اختصارات"</string> <string name="root_type_device" msgid="7121342474653483538">"أجهزة"</string> <string name="root_type_apps" msgid="8838065367985945189">"المزيد من التطبيقات"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"عرض الأجهزة المتقدمة"</string> - <string name="pref_file_size" msgid="2826879315743961459">"عرض حجم الملف"</string> - <string name="pref_device_size" msgid="3542106883278997222">"عرض حجم الجهاز"</string> <string name="empty" msgid="7858882803708117596">"ليس هناك أي عناصر"</string> <string name="toast_no_application" msgid="1339885974067891667">"لا يمكن فتح الملف"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"تعذر حذف بعض المستندات"</string> <string name="share_via" msgid="8966594246261344259">"مشاركة عبر"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"جارٍ نسخ الملفات"</string> + <string name="copy_remaining" msgid="6283790937387975095">"المدة المتبقية: <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="zero">جارٍ نسخ <xliff:g id="COUNT_1">%1$d</xliff:g> ملفات.</item> + <item quantity="two">جارٍ نسخ ملفين (<xliff:g id="COUNT_1">%1$d</xliff:g>).</item> + <item quantity="few">جارٍ نسخ <xliff:g id="COUNT_1">%1$d</xliff:g> ملفات.</item> + <item quantity="many">جارٍ نسخ <xliff:g id="COUNT_1">%1$d</xliff:g> ملفًا.</item> + <item quantity="other">جارٍ نسخ <xliff:g id="COUNT_1">%1$d</xliff:g> من الملفات.</item> + <item quantity="one">جارٍ نسخ ملف واحد (<xliff:g id="COUNT_0">%1$d</xliff:g>).</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"جارٍ التحضير للنسخ ..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="zero">حدث خطأ أثناء نسخ <xliff:g id="COUNT_1">%1$d</xliff:g> ملفات.</item> + <item quantity="two">حدث خطأ أثناء نسخ ملفين (<xliff:g id="COUNT_1">%1$d</xliff:g>).</item> + <item quantity="few">حدث خطأ أثناء نسخ <xliff:g id="COUNT_1">%1$d</xliff:g> ملفات.</item> + <item quantity="many">حدث خطأ أثناء نسخ <xliff:g id="COUNT_1">%1$d</xliff:g> ملفًا.</item> + <item quantity="other">حدث خطأ أثناء نسخ <xliff:g id="COUNT_1">%1$d</xliff:g> من الملفات.</item> + <item quantity="one">حدث خطأ أثناء نسخ ملف واحد (<xliff:g id="COUNT_0">%1$d</xliff:g>).</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"المس لعرض التفاصيل"</string> + <string name="retry" msgid="7564024179122207376">"إعادة المحاولة"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"حدث خطأ أثناء نسخ الملفات"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"لم يتم نسخ الملفات التالية: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-bg/strings.xml b/packages/DocumentsUI/res/values-bg/strings.xml index d1da879..ae30951 100644 --- a/packages/DocumentsUI/res/values-bg/strings.xml +++ b/packages/DocumentsUI/res/values-bg/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Споделяне"</string> <string name="menu_delete" msgid="8138799623850614177">"Изтриване"</string> <string name="menu_select" msgid="8711270657353563424">"Избиране на „<xliff:g id="DIRECTORY">^1</xliff:g>“"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Избиране на всички"</string> + <string name="menu_copy" msgid="3612326052677229148">"Копиране във…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Вътр. хранилище: Показв."</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD карта: Показване"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Вътр. хранилище: Скрив."</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD карта: Скриване"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Размер на файла: Показв."</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Размер на файла: Скрив."</string> + <string name="button_copy" msgid="8706475544635021302">"Копиране"</string> <string name="mode_selected_count" msgid="459111894725594625">"Избрахте <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"По име"</string> <string name="sort_date" msgid="586080032956151448">"По дата на промяната"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Преки пътища"</string> <string name="root_type_device" msgid="7121342474653483538">"Устройства"</string> <string name="root_type_apps" msgid="8838065367985945189">"Още приложения"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Устройства с разширени ф-ии"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Показване на файловия размер"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Показване на размера на устройството"</string> <string name="empty" msgid="7858882803708117596">"Няма елементи"</string> <string name="toast_no_application" msgid="1339885974067891667">"Файлът не може да се отвори"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Някои документи не могат да бъдат изтрити"</string> <string name="share_via" msgid="8966594246261344259">"Споделяне чрез"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Файловете се копират"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Оставащо време: <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Копират се <xliff:g id="COUNT_1">%1$d</xliff:g> файла.</item> + <item quantity="one">Копира се <xliff:g id="COUNT_0">%1$d</xliff:g> файл.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Подготвя се за копиране…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">При копирането на <xliff:g id="COUNT_1">%1$d</xliff:g> файла възникна грешка.</item> + <item quantity="one">При копирането на <xliff:g id="COUNT_0">%1$d</xliff:g> файл възникна грешка.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Докоснете, за да видите подробностите"</string> + <string name="retry" msgid="7564024179122207376">"Нов опит"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"При копирането на файловете възникна грешка"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Следните файлове не са копирани: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-bn-rBD/strings.xml b/packages/DocumentsUI/res/values-bn-rBD/strings.xml index 3fd50aa..6c5b0cc 100644 --- a/packages/DocumentsUI/res/values-bn-rBD/strings.xml +++ b/packages/DocumentsUI/res/values-bn-rBD/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"ভাগ করুন"</string> <string name="menu_delete" msgid="8138799623850614177">"মুছুন"</string> <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" নির্বাচন করুন"</string> + <string name="menu_select_all" msgid="4320518282375109902">"সমস্ত নির্বাচন করুন"</string> + <string name="menu_copy" msgid="3612326052677229148">"এতে অনুলিপি করুন…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"অভ্যন্তরীণ সঞ্চয়স্থান দেখান"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD কার্ড দেখান"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"অভ্যন্তরীণ সঞ্চয়স্থান লুকান"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD কার্ড লুকান"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"ফাইলের আকার দেখান"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"ফাইলের আকার লুকান"</string> + <string name="button_copy" msgid="8706475544635021302">"অনুলিপি করুন"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> নির্বাচন করা হয়েছে"</string> <string name="sort_name" msgid="9183560467917256779">"নামের দ্বারা"</string> <string name="sort_date" msgid="586080032956151448">"পরিবর্তনের তারিখ দ্বারা"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"শর্টকাটগুলি"</string> <string name="root_type_device" msgid="7121342474653483538">"ডিভাইসগুলি"</string> <string name="root_type_apps" msgid="8838065367985945189">"আরো অ্যাপ্লিকেশান"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"উন্নত ডিভাইসগুলি প্রদর্শন করে"</string> - <string name="pref_file_size" msgid="2826879315743961459">"ফাইলের আকার প্রদর্শন করে"</string> - <string name="pref_device_size" msgid="3542106883278997222">"ডিভাইসের মাপ প্রদর্শন করে"</string> <string name="empty" msgid="7858882803708117596">"কোনো আইটেম নেই"</string> <string name="toast_no_application" msgid="1339885974067891667">"ফাইল খোলা যাবে না"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"কিছু দস্তাবেজ মুছতে অসমর্থ"</string> <string name="share_via" msgid="8966594246261344259">"এর মাধ্যমে ভাগ করুন"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"ফাইলগুলি অনুলিপি করা হচ্ছে"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> বাকি"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g>টি ফাইল অনুলিপি করা হচ্ছে৷</item> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g>টি ফাইল অনুলিপি করা হচ্ছে৷</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"অনুলিপি করার জন্য প্রস্তুত করা হচ্ছে..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g>টি ফাইল অনুলিপি করার সময় ত্রুটি হয়েছে৷</item> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g>টি ফাইল অনুলিপি করার সময় ত্রুটি হয়েছে৷</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"বিশদ বিবরণ দেখতে স্পর্শ করুন"</string> + <string name="retry" msgid="7564024179122207376">"পুনরায় চেষ্টা করুন"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"ফাইলগুলি অনুলিপি করার সময় ত্রুটি হয়েছে"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"নিম্নলিখিত ফাইলগুলি অনুলিপি করা হয়নি: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-ca/strings.xml b/packages/DocumentsUI/res/values-ca/strings.xml index 23e7284..69a65bd 100644 --- a/packages/DocumentsUI/res/values-ca/strings.xml +++ b/packages/DocumentsUI/res/values-ca/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Comparteix"</string> <string name="menu_delete" msgid="8138799623850614177">"Suprimeix"</string> <string name="menu_select" msgid="8711270657353563424">"Selecciona \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Selecciona\'ls tots"</string> + <string name="menu_copy" msgid="3612326052677229148">"Copia a…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostra emmagatz. intern"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostra la targeta SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Amaga emmagatz. intern"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Amaga la targeta SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Mostra la mida de fitxer"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Amaga la mida del fitxer"</string> + <string name="button_copy" msgid="8706475544635021302">"Copia"</string> <string name="mode_selected_count" msgid="459111894725594625">"Seleccionats: <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"Per nom"</string> <string name="sort_date" msgid="586080032956151448">"Per data de modificació"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Dreceres"</string> <string name="root_type_device" msgid="7121342474653483538">"Dispositius"</string> <string name="root_type_apps" msgid="8838065367985945189">"Més aplicacions"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Mostra els dispositius avançats"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Mostra la mida del fitxer"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Mostra la mida del dispositiu"</string> <string name="empty" msgid="7858882803708117596">"Sense elements"</string> <string name="toast_no_application" msgid="1339885974067891667">"No es pot obrir el fitxer."</string> <string name="toast_failed_delete" msgid="2180678019407244069">"No es poden suprimir alguns documents."</string> <string name="share_via" msgid="8966594246261344259">"Comparteix mitjançant"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"S\'estan copiant fitxers"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Temps restant: <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">S\'estan copiant <xliff:g id="COUNT_1">%1$d</xliff:g> fitxers.</item> + <item quantity="one">S\'està copiant <xliff:g id="COUNT_0">%1$d</xliff:g> fitxer.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"S\'està preparant una còpia…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">S\'ha produït un error en copiar <xliff:g id="COUNT_1">%1$d</xliff:g> fitxers.</item> + <item quantity="one">S\'ha produït un error en copiar <xliff:g id="COUNT_0">%1$d</xliff:g> fitxer.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Toca per veure els detalls"</string> + <string name="retry" msgid="7564024179122207376">"Torna-ho a provar"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"S\'ha produït un error en copiar els fitxers"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Els fitxers següents no s\'han copiat: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-cs/strings.xml b/packages/DocumentsUI/res/values-cs/strings.xml index ad8897a..00bc43b 100644 --- a/packages/DocumentsUI/res/values-cs/strings.xml +++ b/packages/DocumentsUI/res/values-cs/strings.xml @@ -17,10 +17,10 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_label" msgid="2783841764617238354">"Dokumenty"</string> - <string name="title_open" msgid="4353228937663917801">"Otevřít z"</string> + <string name="title_open" msgid="4353228937663917801">"Otevřít"</string> <string name="title_save" msgid="2433679664882857999">"Uložit do"</string> <string name="menu_create_dir" msgid="5947289605844398389">"Vytvořit složku"</string> - <string name="menu_grid" msgid="6878021334497835259">"Mřížka"</string> + <string name="menu_grid" msgid="6878021334497835259">"Mřížkové zobrazení"</string> <string name="menu_list" msgid="7279285939892417279">"Seznam"</string> <string name="menu_sort" msgid="7677740407158414452">"Řadit podle"</string> <string name="menu_search" msgid="3816712084502856974">"Hledat"</string> @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Sdílet"</string> <string name="menu_delete" msgid="8138799623850614177">"Smazat"</string> <string name="menu_select" msgid="8711270657353563424">"Vyberte adresář <xliff:g id="DIRECTORY">^1</xliff:g>"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Vybrat vše"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopírovat do…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Zobrazit inter. úložiště"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Zobrazit SD kartu"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Skrýt interní úložiště"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skrýt SD kartu"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Zobrazit velikost souboru"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Skrýt velikost souboru"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopírovat"</string> <string name="mode_selected_count" msgid="459111894725594625">"Vybráno: <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"Podle názvu"</string> <string name="sort_date" msgid="586080032956151448">"Podle data úpravy"</string> @@ -40,16 +49,32 @@ <string name="create_error" msgid="3735649141335444215">"Složku se nepodařilo vytvořit"</string> <string name="query_error" msgid="1222448261663503501">"Seznam dokumentů se nepodařilo načíst"</string> <string name="root_recent" msgid="4470053704320518133">"Poslední"</string> - <string name="root_available_bytes" msgid="8568452858617033281">"Volný prostor: <xliff:g id="SIZE">%1$s</xliff:g>"</string> + <string name="root_available_bytes" msgid="8568452858617033281">"Volné místo: <xliff:g id="SIZE">%1$s</xliff:g>"</string> <string name="root_type_service" msgid="2178854894416775409">"Služby úložiště"</string> <string name="root_type_shortcut" msgid="3318760609471618093">"Klávesové zkratky"</string> <string name="root_type_device" msgid="7121342474653483538">"Zařízení"</string> <string name="root_type_apps" msgid="8838065367985945189">"Další aplikace"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Zobrazit pokročilá zařízení"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Zobrazit velikost souboru"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Zobrazit velikost zařízení"</string> <string name="empty" msgid="7858882803708117596">"Žádné položky"</string> <string name="toast_no_application" msgid="1339885974067891667">"Soubor nelze otevřít"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Některé dokumenty nelze smazat"</string> <string name="share_via" msgid="8966594246261344259">"Sdílet pomocí"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Kopírování souborů"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Zbývající čas: <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="few">Kopírování <xliff:g id="COUNT_1">%1$d</xliff:g> souborů</item> + <item quantity="many">Kopírování <xliff:g id="COUNT_1">%1$d</xliff:g> souboru</item> + <item quantity="other">Kopírování <xliff:g id="COUNT_1">%1$d</xliff:g> souborů</item> + <item quantity="one">Kopírování <xliff:g id="COUNT_0">%1$d</xliff:g> souboru</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Příprava na kopírování…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="few">Při kopírování <xliff:g id="COUNT_1">%1$d</xliff:g> souborů došlo k chybě.</item> + <item quantity="many">Při kopírování <xliff:g id="COUNT_1">%1$d</xliff:g> souboru došlo k chybě.</item> + <item quantity="other">Při kopírování <xliff:g id="COUNT_1">%1$d</xliff:g> souborů došlo k chybě.</item> + <item quantity="one">Při kopírování <xliff:g id="COUNT_0">%1$d</xliff:g> souboru došlo k chybě.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Podrobnosti zobrazíte klepnutím"</string> + <string name="retry" msgid="7564024179122207376">"Opakovat"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Při kopírování souborů došlo k chybě"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Následující soubory nebyly zkopírovány: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-da/strings.xml b/packages/DocumentsUI/res/values-da/strings.xml index 7ae5d1e..2394c36 100644 --- a/packages/DocumentsUI/res/values-da/strings.xml +++ b/packages/DocumentsUI/res/values-da/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Del"</string> <string name="menu_delete" msgid="8138799623850614177">"Slet"</string> <string name="menu_select" msgid="8711270657353563424">"Vælg \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Vælg alle"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopiér til…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Vis intern lagerplads"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Vis SD-kort"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Skjul intern lagerplads"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skjul SD-kort"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Vis filstørrelse"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Skjul filstørrelse"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopiér"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> er valgt"</string> <string name="sort_name" msgid="9183560467917256779">"Efter navn"</string> <string name="sort_date" msgid="586080032956151448">"Efter ændringsdato"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Genveje"</string> <string name="root_type_device" msgid="7121342474653483538">"Enheder"</string> <string name="root_type_apps" msgid="8838065367985945189">"Flere apps"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Vis avancerede enheder"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Vis filstørrelse"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Vis enhedens størrelse"</string> <string name="empty" msgid="7858882803708117596">"Ingen elementer"</string> <string name="toast_no_application" msgid="1339885974067891667">"Filen kan ikke åbnes"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Nogle dokumenter kan ikke slettes"</string> <string name="share_via" msgid="8966594246261344259">"Del via"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Kopierer filer"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> tilbage"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Kopierer <xliff:g id="COUNT_1">%1$d</xliff:g> filer.</item> + <item quantity="other">Kopierer <xliff:g id="COUNT_1">%1$d</xliff:g> filer.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Forbereder kopiering…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Fejl i forbindelse med kopiering af <xliff:g id="COUNT_1">%1$d</xliff:g> filer.</item> + <item quantity="other">Fejl i forbindelse med kopiering af <xliff:g id="COUNT_1">%1$d</xliff:g> filer.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Tryk for at se yderligere oplysninger."</string> + <string name="retry" msgid="7564024179122207376">"Prøv igen"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Fejl i forbindelse med kopiering af filer"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Følgende filer blev ikke kopieret: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-de/strings.xml b/packages/DocumentsUI/res/values-de/strings.xml index 98c1787..fa74ae3 100644 --- a/packages/DocumentsUI/res/values-de/strings.xml +++ b/packages/DocumentsUI/res/values-de/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Teilen"</string> <string name="menu_delete" msgid="8138799623850614177">"Löschen"</string> <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" auswählen"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Alle auswählen"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopieren nach..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Int. Speicher anzeigen"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD-Karte anzeigen"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Int. Speicher ausblenden"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD-Karte ausblenden"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Dateigröße anzeigen"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Dateigröße ausblenden"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopieren"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ausgewählt"</string> <string name="sort_name" msgid="9183560467917256779">"Nach Name"</string> <string name="sort_date" msgid="586080032956151448">"Nach Änderungsdatum"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Verknüpfungen"</string> <string name="root_type_device" msgid="7121342474653483538">"Geräte"</string> <string name="root_type_apps" msgid="8838065367985945189">"Weitere Apps"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Erweiterte Geräte anzeigen"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Dateigröße anzeigen"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Geräteabmessungen anzeigen"</string> <string name="empty" msgid="7858882803708117596">"Keine Dokumente"</string> <string name="toast_no_application" msgid="1339885974067891667">"Datei kann nicht geöffnet werden."</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Einige Dokumente konnten nicht gelöscht werden."</string> <string name="share_via" msgid="8966594246261344259">"Teilen über"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Dateien werden kopiert"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Noch <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> Dateien werden kopiert.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> Datei wird kopiert.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Kopieren wird vorbereitet…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Fehler beim Kopieren von <xliff:g id="COUNT_1">%1$d</xliff:g> Dateien</item> + <item quantity="one">Fehler beim Kopieren von <xliff:g id="COUNT_0">%1$d</xliff:g> Datei</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Zum Einblenden von Details tippen"</string> + <string name="retry" msgid="7564024179122207376">"Erneut versuchen"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Fehler beim Kopieren von Dateien"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Folgende Dateien wurden nicht kopiert: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-el/strings.xml b/packages/DocumentsUI/res/values-el/strings.xml index 24d66ce..0f99cb7 100644 --- a/packages/DocumentsUI/res/values-el/strings.xml +++ b/packages/DocumentsUI/res/values-el/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Κοινή χρήση"</string> <string name="menu_delete" msgid="8138799623850614177">"Διαγραφή"</string> <string name="menu_select" msgid="8711270657353563424">"Επιλογή \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Επιλογή όλων"</string> + <string name="menu_copy" msgid="3612326052677229148">"Αντιγραφή σε…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Εμφ.εσωτ.χώρου αποθήκ."</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Εμφάνιση κάρτας SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Απόκρ.εσωτ.χώρου αποθήκ."</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Απόκρυψη κάρτας SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Εμφ. μεγέθους αρχείου"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Απόκρ. μεγέθους αρχείου"</string> + <string name="button_copy" msgid="8706475544635021302">"Αντιγραφή"</string> <string name="mode_selected_count" msgid="459111894725594625">"Επιλέχθηκαν <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"Κατά όνομα"</string> <string name="sort_date" msgid="586080032956151448">"Κατά ημερομηνία τροποποίησης"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Συντομεύσεις"</string> <string name="root_type_device" msgid="7121342474653483538">"Συσκευές"</string> <string name="root_type_apps" msgid="8838065367985945189">"Περισσότερες εφαρμογές"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Εμφάνιση προηγμένων συσκευών"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Εμφάνιση μεγέθους αρχείου"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Εμφάνιση μεγέθους συσκευής"</string> <string name="empty" msgid="7858882803708117596">"Δεν υπάρχουν στοιχεία"</string> <string name="toast_no_application" msgid="1339885974067891667">"Δεν είναι δυνατό το άνοιγμα του αρχείου"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Δεν είναι δυνατή η διαγραφή ορισμένων εγγράφων"</string> <string name="share_via" msgid="8966594246261344259">"Κοινή χρήση μέσω"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Αντιγραφή αρχείων"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Απομένουν <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Αντιγραφή <xliff:g id="COUNT_1">%1$d</xliff:g> αρχείων.</item> + <item quantity="one">Αντιγραφή <xliff:g id="COUNT_0">%1$d</xliff:g> αρχείου.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Προετοιμασία για αντιγραφή…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Σφάλμα κατά την αντιγραφή <xliff:g id="COUNT_1">%1$d</xliff:g> αρχείων.</item> + <item quantity="one">Σφάλμα κατά την αντιγραφή <xliff:g id="COUNT_0">%1$d</xliff:g> αρχείου.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Αγγίξτε για προβολή λεπτομερειών"</string> + <string name="retry" msgid="7564024179122207376">"Επανάληψη"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Σφάλμα κατά την αντιγραφή των αρχείων"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Τα παρακάτω αρχεία δεν αντιγράφηκαν: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-en-rAU/strings.xml b/packages/DocumentsUI/res/values-en-rAU/strings.xml new file mode 100644 index 0000000..80f13b4 --- /dev/null +++ b/packages/DocumentsUI/res/values-en-rAU/strings.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Copyright (C) 2013 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string name="app_label" msgid="2783841764617238354">"Documents"</string> + <string name="title_open" msgid="4353228937663917801">"Open from"</string> + <string name="title_save" msgid="2433679664882857999">"Save to"</string> + <string name="menu_create_dir" msgid="5947289605844398389">"Create folder"</string> + <string name="menu_grid" msgid="6878021334497835259">"Grid view"</string> + <string name="menu_list" msgid="7279285939892417279">"List view"</string> + <string name="menu_sort" msgid="7677740407158414452">"Sort by"</string> + <string name="menu_search" msgid="3816712084502856974">"Search"</string> + <string name="menu_settings" msgid="6008033148948428823">"Settings"</string> + <string name="menu_open" msgid="432922957274920903">"Open"</string> + <string name="menu_save" msgid="2394743337684426338">"Save"</string> + <string name="menu_share" msgid="3075149983979628146">"Share"</string> + <string name="menu_delete" msgid="8138799623850614177">"Delete"</string> + <string name="menu_select" msgid="8711270657353563424">"Select \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Select All"</string> + <string name="menu_copy" msgid="3612326052677229148">"Copy to…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Show internal storage"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Show SD card"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Hide internal storage"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Hide SD card"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Show file size"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Hide file size"</string> + <string name="button_copy" msgid="8706475544635021302">"Copy"</string> + <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selected"</string> + <string name="sort_name" msgid="9183560467917256779">"By name"</string> + <string name="sort_date" msgid="586080032956151448">"By date modified"</string> + <string name="sort_size" msgid="3350681319735474741">"By size"</string> + <string name="drawer_open" msgid="4545466532430226949">"Show roots"</string> + <string name="drawer_close" msgid="7602734368552123318">"Hide roots"</string> + <string name="save_error" msgid="6167009778003223664">"Failed to save document"</string> + <string name="create_error" msgid="3735649141335444215">"Failed to create folder"</string> + <string name="query_error" msgid="1222448261663503501">"Failed to query documents"</string> + <string name="root_recent" msgid="4470053704320518133">"Recent"</string> + <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> free"</string> + <string name="root_type_service" msgid="2178854894416775409">"Storage services"</string> + <string name="root_type_shortcut" msgid="3318760609471618093">"Shortcuts"</string> + <string name="root_type_device" msgid="7121342474653483538">"Devices"</string> + <string name="root_type_apps" msgid="8838065367985945189">"More apps"</string> + <string name="empty" msgid="7858882803708117596">"No items"</string> + <string name="toast_no_application" msgid="1339885974067891667">"Cannot open file"</string> + <string name="toast_failed_delete" msgid="2180678019407244069">"Unable to delete some documents"</string> + <string name="share_via" msgid="8966594246261344259">"Share via"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Copying files"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> left"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Copying <xliff:g id="COUNT_1">%1$d</xliff:g> files.</item> + <item quantity="one">Copying <xliff:g id="COUNT_0">%1$d</xliff:g> file.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Preparing for copy…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Error copying <xliff:g id="COUNT_1">%1$d</xliff:g> files.</item> + <item quantity="one">Error copying <xliff:g id="COUNT_0">%1$d</xliff:g> file.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Touch to view details"</string> + <string name="retry" msgid="7564024179122207376">"Retry"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Error copying files"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Following files are not copied: <xliff:g id="LIST">%1$s</xliff:g>"</string> +</resources> diff --git a/packages/DocumentsUI/res/values-en-rGB/strings.xml b/packages/DocumentsUI/res/values-en-rGB/strings.xml index d2af473..80f13b4 100644 --- a/packages/DocumentsUI/res/values-en-rGB/strings.xml +++ b/packages/DocumentsUI/res/values-en-rGB/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Share"</string> <string name="menu_delete" msgid="8138799623850614177">"Delete"</string> <string name="menu_select" msgid="8711270657353563424">"Select \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Select All"</string> + <string name="menu_copy" msgid="3612326052677229148">"Copy to…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Show internal storage"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Show SD card"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Hide internal storage"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Hide SD card"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Show file size"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Hide file size"</string> + <string name="button_copy" msgid="8706475544635021302">"Copy"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selected"</string> <string name="sort_name" msgid="9183560467917256779">"By name"</string> <string name="sort_date" msgid="586080032956151448">"By date modified"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Shortcuts"</string> <string name="root_type_device" msgid="7121342474653483538">"Devices"</string> <string name="root_type_apps" msgid="8838065367985945189">"More apps"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Display advanced devices"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Display file size"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Display device size"</string> <string name="empty" msgid="7858882803708117596">"No items"</string> <string name="toast_no_application" msgid="1339885974067891667">"Cannot open file"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Unable to delete some documents"</string> <string name="share_via" msgid="8966594246261344259">"Share via"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Copying files"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> left"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Copying <xliff:g id="COUNT_1">%1$d</xliff:g> files.</item> + <item quantity="one">Copying <xliff:g id="COUNT_0">%1$d</xliff:g> file.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Preparing for copy…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Error copying <xliff:g id="COUNT_1">%1$d</xliff:g> files.</item> + <item quantity="one">Error copying <xliff:g id="COUNT_0">%1$d</xliff:g> file.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Touch to view details"</string> + <string name="retry" msgid="7564024179122207376">"Retry"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Error copying files"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Following files are not copied: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-en-rIN/strings.xml b/packages/DocumentsUI/res/values-en-rIN/strings.xml index d2af473..80f13b4 100644 --- a/packages/DocumentsUI/res/values-en-rIN/strings.xml +++ b/packages/DocumentsUI/res/values-en-rIN/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Share"</string> <string name="menu_delete" msgid="8138799623850614177">"Delete"</string> <string name="menu_select" msgid="8711270657353563424">"Select \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Select All"</string> + <string name="menu_copy" msgid="3612326052677229148">"Copy to…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Show internal storage"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Show SD card"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Hide internal storage"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Hide SD card"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Show file size"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Hide file size"</string> + <string name="button_copy" msgid="8706475544635021302">"Copy"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selected"</string> <string name="sort_name" msgid="9183560467917256779">"By name"</string> <string name="sort_date" msgid="586080032956151448">"By date modified"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Shortcuts"</string> <string name="root_type_device" msgid="7121342474653483538">"Devices"</string> <string name="root_type_apps" msgid="8838065367985945189">"More apps"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Display advanced devices"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Display file size"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Display device size"</string> <string name="empty" msgid="7858882803708117596">"No items"</string> <string name="toast_no_application" msgid="1339885974067891667">"Cannot open file"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Unable to delete some documents"</string> <string name="share_via" msgid="8966594246261344259">"Share via"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Copying files"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> left"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Copying <xliff:g id="COUNT_1">%1$d</xliff:g> files.</item> + <item quantity="one">Copying <xliff:g id="COUNT_0">%1$d</xliff:g> file.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Preparing for copy…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Error copying <xliff:g id="COUNT_1">%1$d</xliff:g> files.</item> + <item quantity="one">Error copying <xliff:g id="COUNT_0">%1$d</xliff:g> file.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Touch to view details"</string> + <string name="retry" msgid="7564024179122207376">"Retry"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Error copying files"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Following files are not copied: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-es-rUS/strings.xml b/packages/DocumentsUI/res/values-es-rUS/strings.xml index daf18cf..c2ef612 100644 --- a/packages/DocumentsUI/res/values-es-rUS/strings.xml +++ b/packages/DocumentsUI/res/values-es-rUS/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Compartir"</string> <string name="menu_delete" msgid="8138799623850614177">"Eliminar"</string> <string name="menu_select" msgid="8711270657353563424">"Seleccionar \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Seleccionar todos"</string> + <string name="menu_copy" msgid="3612326052677229148">"Copiar a…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostrar almacen. interno"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostrar tarjeta SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ocultar almacen. interno"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar tarjeta SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tamaño archivos"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tamaño archivos"</string> + <string name="button_copy" msgid="8706475544635021302">"Copiar"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> seleccionado(s)"</string> <string name="sort_name" msgid="9183560467917256779">"Por nombre"</string> <string name="sort_date" msgid="586080032956151448">"Por fecha de modificación"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Accesos directos"</string> <string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string> <string name="root_type_apps" msgid="8838065367985945189">"Más aplicaciones"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Mostrar dispositivos avanzados"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Mostrar tamaño del archivo"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Mostrar tamaño del dispositivo"</string> <string name="empty" msgid="7858882803708117596">"Sin elementos"</string> <string name="toast_no_application" msgid="1339885974067891667">"No se puede abrir el archivo."</string> <string name="toast_failed_delete" msgid="2180678019407244069">"No es posible eliminar algunos documentos."</string> <string name="share_via" msgid="8966594246261344259">"Compartir mediante"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Copiando archivos"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Faltan <xliff:g id="DURATION">%s</xliff:g>."</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Copiando <xliff:g id="COUNT_1">%1$d</xliff:g> archivos</item> + <item quantity="one">Copiando <xliff:g id="COUNT_0">%1$d</xliff:g> archivo</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Preparando para copiar…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Se produjo un error al copiar <xliff:g id="COUNT_1">%1$d</xliff:g> archivos</item> + <item quantity="one">Se produjo un error al copiar <xliff:g id="COUNT_0">%1$d</xliff:g> archivo</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Toca el elemento para ver más información."</string> + <string name="retry" msgid="7564024179122207376">"Reintentar"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Se produjo un error al copiar archivos"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"No se copiaron los siguientes archivos: <xliff:g id="LIST">%1$s</xliff:g>."</string> </resources> diff --git a/packages/DocumentsUI/res/values-es/strings.xml b/packages/DocumentsUI/res/values-es/strings.xml index 573ee41..3aa0779 100644 --- a/packages/DocumentsUI/res/values-es/strings.xml +++ b/packages/DocumentsUI/res/values-es/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Compartir"</string> <string name="menu_delete" msgid="8138799623850614177">"Eliminar"</string> <string name="menu_select" msgid="8711270657353563424">"Selecciona \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Seleccionar todo"</string> + <string name="menu_copy" msgid="3612326052677229148">"Copiar en…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostrar almac. interno"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostrar tarjeta SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ocultar almac. interno"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar tarjeta SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tamaño archivo"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tamaño archivo"</string> + <string name="button_copy" msgid="8706475544635021302">"Copiar"</string> <string name="mode_selected_count" msgid="459111894725594625">"Seleccionado: <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"Por nombre"</string> <string name="sort_date" msgid="586080032956151448">"Por fecha de modificación"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Accesos directos"</string> <string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string> <string name="root_type_apps" msgid="8838065367985945189">"Más aplicaciones"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Mostrar dispositivos avanzados"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Mostrar tamaño del archivo"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Mostrar tamaño del dispositivo"</string> <string name="empty" msgid="7858882803708117596">"Sin elementos"</string> <string name="toast_no_application" msgid="1339885974067891667">"Error al abrir el archivo"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"No es posible eliminar algunos documentos"</string> <string name="share_via" msgid="8966594246261344259">"Compartir a través de"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Copiando archivos"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Tiempo restante: <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Copiando <xliff:g id="COUNT_1">%1$d</xliff:g> archivos.</item> + <item quantity="one">Copiando <xliff:g id="COUNT_0">%1$d</xliff:g> archivo.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Preparando para copiar..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Error al copiar <xliff:g id="COUNT_1">%1$d</xliff:g> archivos.</item> + <item quantity="one">Error al copiar <xliff:g id="COUNT_0">%1$d</xliff:g> archivo.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Toca para ver más información"</string> + <string name="retry" msgid="7564024179122207376">"Volver a intentar"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Error al copiar archivos"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"No se han copiado los siguientes archivos: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-et-rEE/strings.xml b/packages/DocumentsUI/res/values-et-rEE/strings.xml index dae965a0..91ebfd1 100644 --- a/packages/DocumentsUI/res/values-et-rEE/strings.xml +++ b/packages/DocumentsUI/res/values-et-rEE/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Jaga"</string> <string name="menu_delete" msgid="8138799623850614177">"Kustuta"</string> <string name="menu_select" msgid="8711270657353563424">"Kataloogi „<xliff:g id="DIRECTORY">^1</xliff:g>” valimine"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Vali kõik"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopeeri asukohta ..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Kuva sis. salvestusruum"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Kuva SD-kaart"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Peida sis. salvestusruum"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Peida SD-kaart"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Kuva faili suurus"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Peida faili suurus"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopeeri"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> on valitud"</string> <string name="sort_name" msgid="9183560467917256779">"Nime järgi"</string> <string name="sort_date" msgid="586080032956151448">"Muutmiskuupäeva järgi"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Otseteed"</string> <string name="root_type_device" msgid="7121342474653483538">"Seadmed"</string> <string name="root_type_apps" msgid="8838065367985945189">"Rohkem rakendusi"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Kuva tippseadmed"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Kuva faili suurus"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Kuva seadme suurus"</string> <string name="empty" msgid="7858882803708117596">"Üksusi ei ole"</string> <string name="toast_no_application" msgid="1339885974067891667">"Faili ei saa avada"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Mõnda dokumenti ei õnnestu kustutada"</string> <string name="share_via" msgid="8966594246261344259">"Jagage teenusega"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Failide kopeerimine"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Jäänud on <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> faili kopeerimine.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> faili kopeerimine.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Kopeerimise ettevalmistamine …"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Viga <xliff:g id="COUNT_1">%1$d</xliff:g> faili kopeerimisel.</item> + <item quantity="one">Viga <xliff:g id="COUNT_0">%1$d</xliff:g> faili kopeerimisel.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Puudutage üksikasjade vaatamiseks"</string> + <string name="retry" msgid="7564024179122207376">"Proovi uuesti"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Viga failide kopeerimisel"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Järgmiseid faile ei kopeeritud: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-eu-rES/strings.xml b/packages/DocumentsUI/res/values-eu-rES/strings.xml index 582bf73..fdb2585 100644 --- a/packages/DocumentsUI/res/values-eu-rES/strings.xml +++ b/packages/DocumentsUI/res/values-eu-rES/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Partekatu"</string> <string name="menu_delete" msgid="8138799623850614177">"Ezabatu"</string> <string name="menu_select" msgid="8711270657353563424">"Hautatu \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Hautatu guztiak"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopiatu hemen…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Erakutsi barneko memoria"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Erakutsi SD txartela"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ezkutatu barneko memoria"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ezkutatu SD txartela"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Erakutsi fitxategi-tamaina"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Ezkutatu fitxategi-tamaina"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopiatu"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> hautatuta"</string> <string name="sort_name" msgid="9183560467917256779">"Izenaren arabera"</string> <string name="sort_date" msgid="586080032956151448">"Aldatze-dataren arabera"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Lasterbideak"</string> <string name="root_type_device" msgid="7121342474653483538">"Gailuak"</string> <string name="root_type_apps" msgid="8838065367985945189">"Aplikazio gehiago"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Bistaratu gailu aurreratuak"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Bistaratu fitxategiaren tamaina"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Bistaratu gailuaren tamaina"</string> <string name="empty" msgid="7858882803708117596">"Ez dago elementurik"</string> <string name="toast_no_application" msgid="1339885974067891667">"Ezin da fitxategia ireki"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Ezin izan dira dokumentu batzuk ezabatu"</string> <string name="share_via" msgid="8966594246261344259">"Partekatu honen bidez:"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Fitxategiak kopiatzen"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Falta den denbora: <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> fitxategi kopiatzen.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> fitxategi kopiatzen.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Kopiatzeko prestatzen…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Errore bat gertatu da <xliff:g id="COUNT_1">%1$d</xliff:g> fitxategi kopiatzean.</item> + <item quantity="one">Errore bat gertatu da <xliff:g id="COUNT_0">%1$d</xliff:g> fitxategi kopiatzean.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Xehetasunak ikusteko, ukitu hau."</string> + <string name="retry" msgid="7564024179122207376">"Saiatu berriro"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Errore bat gertatu da fitxategiak kopiatzean"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Ez dira kopiatu fitxategi hauek: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-fa/strings.xml b/packages/DocumentsUI/res/values-fa/strings.xml index a646eda..096d53f 100644 --- a/packages/DocumentsUI/res/values-fa/strings.xml +++ b/packages/DocumentsUI/res/values-fa/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"اشتراکگذاری"</string> <string name="menu_delete" msgid="8138799623850614177">"حذف"</string> <string name="menu_select" msgid="8711270657353563424">"انتخاب «<xliff:g id="DIRECTORY">^1</xliff:g>»"</string> + <string name="menu_select_all" msgid="4320518282375109902">"انتخاب همه"</string> + <string name="menu_copy" msgid="3612326052677229148">"کپی در..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"نمایش فضای ذخیرهسازی داخلی"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"نمایش کارت SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"پنهان کردن فضای ذخیرهسازی داخلی"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"پنهان کردن کارت SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"نمایش اندازه فایل"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"پنهان کردن اندازه فایل"</string> + <string name="button_copy" msgid="8706475544635021302">"کپی"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> انتخاب شد"</string> <string name="sort_name" msgid="9183560467917256779">"بر اساس نام"</string> <string name="sort_date" msgid="586080032956151448">"بر اساس تاریخ اصلاح"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"میانبرها"</string> <string name="root_type_device" msgid="7121342474653483538">"دستگاهها"</string> <string name="root_type_apps" msgid="8838065367985945189">"برنامههای بیشتر"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"نمایش دستگاههای پیشرفته"</string> - <string name="pref_file_size" msgid="2826879315743961459">"نمایش اندازه فایل"</string> - <string name="pref_device_size" msgid="3542106883278997222">"نمایش اندازه صفحه نمایش"</string> <string name="empty" msgid="7858882803708117596">"موردی موجود نیست"</string> <string name="toast_no_application" msgid="1339885974067891667">"فایل باز نمیشود"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"برخی از اسناد حذف نمیشوند"</string> <string name="share_via" msgid="8966594246261344259">"اشتراکگذاری از طریق"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"در حال کپی کردن فایلها"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> باقیمانده"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">در حال کپی کردن <xliff:g id="COUNT_1">%1$d</xliff:g> فایل.</item> + <item quantity="other">در حال کپی کردن <xliff:g id="COUNT_1">%1$d</xliff:g> فایل.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"در حال آمادهسازی برای کپی..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">خطا هنگام کپی کردن <xliff:g id="COUNT_1">%1$d</xliff:g> فایل.</item> + <item quantity="other">خطا هنگام کپی کردن <xliff:g id="COUNT_1">%1$d</xliff:g> فایل.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"برای مشاهده جزئیات لمس کنید"</string> + <string name="retry" msgid="7564024179122207376">"امتحان مجدد"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"خطا هنگام کپی کردن فایلها"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"فایلهای زیر کپی نشد: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-fi/strings.xml b/packages/DocumentsUI/res/values-fi/strings.xml index ae04e32..ea4a572 100644 --- a/packages/DocumentsUI/res/values-fi/strings.xml +++ b/packages/DocumentsUI/res/values-fi/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Jaa"</string> <string name="menu_delete" msgid="8138799623850614177">"Poista"</string> <string name="menu_select" msgid="8711270657353563424">"Valitse <xliff:g id="DIRECTORY">^1</xliff:g>"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Valitse kaikki"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopioi kohteeseen…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Näytä sis. tallennustila"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Näytä SD-kortti"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Piilota sis. tallennust."</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Piilota SD-kortti"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Näytä tiedostokoko"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Piilota tiedostokoko"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopioi"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> valittua"</string> <string name="sort_name" msgid="9183560467917256779">"Nimen mukaan"</string> <string name="sort_date" msgid="586080032956151448">"Muokkauspäivän mukaan"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Pikakuvakkeet"</string> <string name="root_type_device" msgid="7121342474653483538">"Laitteet"</string> <string name="root_type_apps" msgid="8838065367985945189">"Lisää sovelluksia"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Näytä kehittyneet laitteet"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Näytä tiedoston koko"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Näytä laitteen koko"</string> <string name="empty" msgid="7858882803708117596">"Ei kohteita"</string> <string name="toast_no_application" msgid="1339885974067891667">"Tiedostoa ei voi avata"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Joitakin asiakirjoja ei voi poistaa"</string> <string name="share_via" msgid="8966594246261344259">"Jaa sovelluksessa"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Kopioidaan tiedostoja"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> jäljellä"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Kopioidaan <xliff:g id="COUNT_1">%1$d</xliff:g> tiedostoa.</item> + <item quantity="one">Kopioidaan <xliff:g id="COUNT_0">%1$d</xliff:g> tiedosto.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Valmistellaan kopiointia…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Virhe kopioitaessa <xliff:g id="COUNT_1">%1$d</xliff:g> tiedostoa.</item> + <item quantity="one">Virhe kopioitaessa <xliff:g id="COUNT_0">%1$d</xliff:g> tiedostoa.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Lue lisätietoja koskettamalla"</string> + <string name="retry" msgid="7564024179122207376">"Yritä uudelleen"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Virhe kopioitaessa tiedostoja"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Seuraavia tiedostoja ei kopioitu: <xliff:g id="LIST">%1$s</xliff:g>."</string> </resources> diff --git a/packages/DocumentsUI/res/values-fr-rCA/strings.xml b/packages/DocumentsUI/res/values-fr-rCA/strings.xml index b370a1e..e3d36c0 100644 --- a/packages/DocumentsUI/res/values-fr-rCA/strings.xml +++ b/packages/DocumentsUI/res/values-fr-rCA/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Partager"</string> <string name="menu_delete" msgid="8138799623850614177">"Supprimer"</string> <string name="menu_select" msgid="8711270657353563424">"Sélectionner « <xliff:g id="DIRECTORY">^1</xliff:g> »"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Tout sélectionner"</string> + <string name="menu_copy" msgid="3612326052677229148">"Copier vers..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Aff. mém. stock. interne"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Afficher la carte SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Masquer mém. stock. int."</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Masquer la carte SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Afficher taille fichier"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Masquer taille fichier"</string> + <string name="button_copy" msgid="8706475544635021302">"Copier"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> sélectionné(s)"</string> <string name="sort_name" msgid="9183560467917256779">"Par nom"</string> <string name="sort_date" msgid="586080032956151448">"Par date de modification"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Raccourcis"</string> <string name="root_type_device" msgid="7121342474653483538">"Appareils"</string> <string name="root_type_apps" msgid="8838065367985945189">"Plus d\'applications"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Afficher les appareils avancés"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Afficher la taille du fichier"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Taille de l\'écran de l\'appareil"</string> <string name="empty" msgid="7858882803708117596">"Aucun élément"</string> <string name="toast_no_application" msgid="1339885974067891667">"Impossible d\'ouvrir le fichier"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Impossible de supprimer certains documents"</string> <string name="share_via" msgid="8966594246261344259">"Partager par"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Copie de fichiers..."</string> + <string name="copy_remaining" msgid="6283790937387975095">"Durée restante : <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Copier de <xliff:g id="COUNT_1">%1$d</xliff:g> fichier en cours.</item> + <item quantity="other">Copier de <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers en cours.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Préparation de la copie en cours"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Erreur lors de la copie de <xliff:g id="COUNT_1">%1$d</xliff:g> fichier.</item> + <item quantity="other">Erreur lors de la copie de <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Touchez ici pour afficher les détails"</string> + <string name="retry" msgid="7564024179122207376">"Réessayer"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Erreur lors de la copie des fichiers"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Les fichiers suivants n\'ont pas été copiés : <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-fr/strings.xml b/packages/DocumentsUI/res/values-fr/strings.xml index b85b518..987f1f4 100644 --- a/packages/DocumentsUI/res/values-fr/strings.xml +++ b/packages/DocumentsUI/res/values-fr/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Partager"</string> <string name="menu_delete" msgid="8138799623850614177">"Supprimer"</string> <string name="menu_select" msgid="8711270657353563424">"Sélectionner \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Tout sélectionner"</string> + <string name="menu_copy" msgid="3612326052677229148">"Copier vers…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Aff. mém. stock. interne"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Afficher la carte SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Masquer mém. stock. int."</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Masquer la carte SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Afficher taille fichier"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Masquer taille fichier"</string> + <string name="button_copy" msgid="8706475544635021302">"Copier"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> élément(s) sélectionné(s)"</string> <string name="sort_name" msgid="9183560467917256779">"Par nom"</string> <string name="sort_date" msgid="586080032956151448">"Par date de modification"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Raccourcis"</string> <string name="root_type_device" msgid="7121342474653483538">"Appareils"</string> <string name="root_type_apps" msgid="8838065367985945189">"Autres applications"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Afficher les appareils avancés"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Afficher la taille des fichiers"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Afficher la capacité de stockage des appareils"</string> <string name="empty" msgid="7858882803708117596">"Aucun élément"</string> <string name="toast_no_application" msgid="1339885974067891667">"Impossible d\'ouvrir le fichier."</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Impossible de supprimer certains documents."</string> <string name="share_via" msgid="8966594246261344259">"Partager via"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Copie de fichiers en cours"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Temps restant : <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Copie de <xliff:g id="COUNT_1">%1$d</xliff:g> fichier en cours…</item> + <item quantity="other">Copie de <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers en cours…</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Préparation de la copie en cours…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Erreur lors de la copie de <xliff:g id="COUNT_1">%1$d</xliff:g> fichier</item> + <item quantity="other">Erreur lors de la copie de <xliff:g id="COUNT_1">%1$d</xliff:g> fichiers</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Appuyez pour en savoir plus."</string> + <string name="retry" msgid="7564024179122207376">"Réessayer"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Erreur lors de la copie des fichiers"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Les fichiers suivants n\'ont pas été copiés : <xliff:g id="LIST">%1$s</xliff:g>."</string> </resources> diff --git a/packages/DocumentsUI/res/values-gl-rES/strings.xml b/packages/DocumentsUI/res/values-gl-rES/strings.xml index b1cf76b..dcd9235 100644 --- a/packages/DocumentsUI/res/values-gl-rES/strings.xml +++ b/packages/DocumentsUI/res/values-gl-rES/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Compartir"</string> <string name="menu_delete" msgid="8138799623850614177">"Eliminar"</string> <string name="menu_select" msgid="8711270657353563424">"Selecciona \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Seleccionar todos"</string> + <string name="menu_copy" msgid="3612326052677229148">"Copiar en…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostrar almacen. interno"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostrar tarxeta SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ocultar almacen. interno"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar tarxeta SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tamaño ficheiro"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tamaño ficheiro"</string> + <string name="button_copy" msgid="8706475544635021302">"Copiar"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> seleccionados"</string> <string name="sort_name" msgid="9183560467917256779">"Por nome"</string> <string name="sort_date" msgid="586080032956151448">"Por data de modificación"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Atallos"</string> <string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string> <string name="root_type_apps" msgid="8838065367985945189">"Máis aplicacións"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Mostrar dispositivos avanzados"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Mostrar tamaño do ficheiro"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Mostrar tamaño do dispositivo"</string> <string name="empty" msgid="7858882803708117596">"Ningún elemento"</string> <string name="toast_no_application" msgid="1339885974067891667">"Non se pode abrir o ficheiro"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Non se poden eliminar algúns documentos"</string> <string name="share_via" msgid="8966594246261344259">"Compartir a través de"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Copiando ficheiros"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Tempo restante: <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Copiando <xliff:g id="COUNT_1">%1$d</xliff:g> ficheiros.</item> + <item quantity="one">Copianto <xliff:g id="COUNT_0">%1$d</xliff:g> ficheiro.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Preparando para copiar…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Produciuse un erro ao copiar <xliff:g id="COUNT_1">%1$d</xliff:g> ficheiros.</item> + <item quantity="one">Produciuse un erro ao copiar <xliff:g id="COUNT_0">%1$d</xliff:g> ficheiro.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Toca para ver detalles"</string> + <string name="retry" msgid="7564024179122207376">"Tentar de novo"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Produciuse un erro ao copiar ficheiros"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Os seguintes ficheiros non se copiaron: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-hi/strings.xml b/packages/DocumentsUI/res/values-hi/strings.xml index 66c707e..f9c2ff0 100644 --- a/packages/DocumentsUI/res/values-hi/strings.xml +++ b/packages/DocumentsUI/res/values-hi/strings.xml @@ -18,7 +18,7 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_label" msgid="2783841764617238354">"दस्तावेज़"</string> <string name="title_open" msgid="4353228937663917801">"यहां से खोलें"</string> - <string name="title_save" msgid="2433679664882857999">"यहां सहेजें"</string> + <string name="title_save" msgid="2433679664882857999">"यहां जोड़ें"</string> <string name="menu_create_dir" msgid="5947289605844398389">"फ़ोल्डर बनाएं"</string> <string name="menu_grid" msgid="6878021334497835259">"ग्रिड दृश्य"</string> <string name="menu_list" msgid="7279285939892417279">"सूची दृश्य"</string> @@ -26,10 +26,19 @@ <string name="menu_search" msgid="3816712084502856974">"खोजें"</string> <string name="menu_settings" msgid="6008033148948428823">"सेटिंग"</string> <string name="menu_open" msgid="432922957274920903">"खोलें"</string> - <string name="menu_save" msgid="2394743337684426338">"सहेजें"</string> + <string name="menu_save" msgid="2394743337684426338">"जोड़ें"</string> <string name="menu_share" msgid="3075149983979628146">"साझा करें"</string> <string name="menu_delete" msgid="8138799623850614177">"हटाएं"</string> <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" चुनें"</string> + <string name="menu_select_all" msgid="4320518282375109902">"सभी चुनें"</string> + <string name="menu_copy" msgid="3612326052677229148">"इनकी कॉपी बनाएं..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"आंतरिक मेमोरी दिखाएं"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD कार्ड दिखाएं"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"आंतरिक मेमोरी छिपाएं"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD कार्ड छिपाएं"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"फ़ाइल आकार दिखाएं"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"फ़ाइल आकार छिपाएं"</string> + <string name="button_copy" msgid="8706475544635021302">"कॉपी करें"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> चयनित"</string> <string name="sort_name" msgid="9183560467917256779">"नाम के अनुसार"</string> <string name="sort_date" msgid="586080032956151448">"बदलाव के दिनांक के अनुसार"</string> @@ -40,16 +49,28 @@ <string name="create_error" msgid="3735649141335444215">"फ़ोल्डर बनाने में विफल"</string> <string name="query_error" msgid="1222448261663503501">"दस्तावेजों के लिए क्वेरी करने में विफल रहा"</string> <string name="root_recent" msgid="4470053704320518133">"हाल ही के"</string> - <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> रिक्त"</string> - <string name="root_type_service" msgid="2178854894416775409">"संग्रहण सेवाएं"</string> + <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> खाली"</string> + <string name="root_type_service" msgid="2178854894416775409">"मेमोरी सेवाएं"</string> <string name="root_type_shortcut" msgid="3318760609471618093">"शॉर्टकट"</string> - <string name="root_type_device" msgid="7121342474653483538">"उपकरण"</string> + <string name="root_type_device" msgid="7121342474653483538">"डिवाइस"</string> <string name="root_type_apps" msgid="8838065367985945189">"अधिक ऐप्स"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"उन्नत उपकरणों को दिखाएं"</string> - <string name="pref_file_size" msgid="2826879315743961459">"फ़ाइल का आकार दिखाएं"</string> - <string name="pref_device_size" msgid="3542106883278997222">"उपकरण का आकार दिखाएं"</string> <string name="empty" msgid="7858882803708117596">"कोई आइटम नहीं"</string> <string name="toast_no_application" msgid="1339885974067891667">"फ़ाइल नहीं खोली जा सकती"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"कुछ दस्तावेज़ों को हटाने में अक्षम"</string> <string name="share_via" msgid="8966594246261344259">"इसके द्वारा साझा करें"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"फ़ाइलें कॉपी हो रही हैं"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> शेष"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> फ़ाइलें कॉपी की जा रही हैं.</item> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> फ़ाइलें कॉपी की जा रही हैं.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"कॉपी करने की तैयारी हो रही है…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> फ़ाइलें कॉपी करने में त्रुटि हुई.</item> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> फ़ाइलें कॉपी करने में त्रुटि हुई.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"विवरण देखने के लिए स्पर्श करें"</string> + <string name="retry" msgid="7564024179122207376">"पुन: प्रयास करें"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"फ़ाइलें कॉपी करने में त्रुटि हुई"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"निम्न फ़ाइलें कॉपी नहीं की गईं: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-hr/strings.xml b/packages/DocumentsUI/res/values-hr/strings.xml index 3438e73..0ad4599 100644 --- a/packages/DocumentsUI/res/values-hr/strings.xml +++ b/packages/DocumentsUI/res/values-hr/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Dijeli"</string> <string name="menu_delete" msgid="8138799623850614177">"Izbriši"</string> <string name="menu_select" msgid="8711270657353563424">"Odaberi \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Odaberi sve"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopiraj u…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Pokaži internu pohranu"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Pokaži SD karticu"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Sakrij internu pohranu"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Sakrij SD karticu"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Pokaži veličinu datoteke"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Sakrij veličinu datoteke"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopiraj"</string> <string name="mode_selected_count" msgid="459111894725594625">"Odabrano: <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"Po korisniku"</string> <string name="sort_date" msgid="586080032956151448">"Po datumu izmjene"</string> @@ -45,11 +54,25 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Prečaci"</string> <string name="root_type_device" msgid="7121342474653483538">"Uređaji"</string> <string name="root_type_apps" msgid="8838065367985945189">"Više aplikacija"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Prikaži napredne uređaje"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Prikaži veličinu datoteke"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Prikaži veličinu uređaja"</string> <string name="empty" msgid="7858882803708117596">"Nema stavki"</string> <string name="toast_no_application" msgid="1339885974067891667">"Datoteku nije moguće otvoriti"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Nije moguće izbrisati neke dokumente"</string> <string name="share_via" msgid="8966594246261344259">"Dijeli putem"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Kopiranje datoteka"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Još <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Kopiranje <xliff:g id="COUNT_1">%1$d</xliff:g> datoteke.</item> + <item quantity="few">Kopiranje <xliff:g id="COUNT_1">%1$d</xliff:g> datoteke.</item> + <item quantity="other">Kopiranje <xliff:g id="COUNT_1">%1$d</xliff:g> datoteka.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Priprema za kopiranje…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Pogreška prilikom kopiranja <xliff:g id="COUNT_1">%1$d</xliff:g> datoteke.</item> + <item quantity="few">Pogreška prilikom kopiranja <xliff:g id="COUNT_1">%1$d</xliff:g> datoteka.</item> + <item quantity="other">Pogreška prilikom kopiranja <xliff:g id="COUNT_1">%1$d</xliff:g> datoteka.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Dodirnite da biste vidjeli pojedinosti"</string> + <string name="retry" msgid="7564024179122207376">"Pokušaj ponovo"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Pogreška prilikom kopiranja datoteka"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Sljedeće datoteke nisu kopirane: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-hu/strings.xml b/packages/DocumentsUI/res/values-hu/strings.xml index 2af559b..76f732d 100644 --- a/packages/DocumentsUI/res/values-hu/strings.xml +++ b/packages/DocumentsUI/res/values-hu/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Megosztás"</string> <string name="menu_delete" msgid="8138799623850614177">"Törlés"</string> <string name="menu_select" msgid="8711270657353563424">"A(z) „<xliff:g id="DIRECTORY">^1</xliff:g>” mappa kiválasztása"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Az összes kijelölése"</string> + <string name="menu_copy" msgid="3612326052677229148">"Másolás ide…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Belső tárhely"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD-kártya megjelenítése"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Belső tárhely elrejtése"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD-kártya elrejtése"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Fájlméret megjelenítése"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Fájlméret elrejtése"</string> + <string name="button_copy" msgid="8706475544635021302">"Másolás"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> kiválasztva"</string> <string name="sort_name" msgid="9183560467917256779">"Név szerint"</string> <string name="sort_date" msgid="586080032956151448">"Módosítás dátuma szerint"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Parancsikonok"</string> <string name="root_type_device" msgid="7121342474653483538">"Eszközök"</string> <string name="root_type_apps" msgid="8838065367985945189">"További alkalmazások"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Speciális eszközök megjelenítése"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Fájlméret megjelenítése"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Eszközméret megjelenítése"</string> <string name="empty" msgid="7858882803708117596">"Nincsenek elemek"</string> <string name="toast_no_application" msgid="1339885974067891667">"A fájlt nem lehet megnyitni"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Néhány dokumentumot nem lehet törölni"</string> <string name="share_via" msgid="8966594246261344259">"Megosztás itt:"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Fájlok másolása"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> van hátra"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> fájl másolása.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> fájl másolása.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Felkészülés a másolásra…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Hiba <xliff:g id="COUNT_1">%1$d</xliff:g> fájl átmásolása közben.</item> + <item quantity="one">Hiba <xliff:g id="COUNT_0">%1$d</xliff:g> fájl átmásolása közben.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Érintse meg a részletek megtekintéséhez"</string> + <string name="retry" msgid="7564024179122207376">"Újra"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Hiba a fájlok másolásakor"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"A következő fájlok nem lettek átmásolva: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-hy-rAM/strings.xml b/packages/DocumentsUI/res/values-hy-rAM/strings.xml index 67a1f7e..3a804b1 100644 --- a/packages/DocumentsUI/res/values-hy-rAM/strings.xml +++ b/packages/DocumentsUI/res/values-hy-rAM/strings.xml @@ -19,8 +19,8 @@ <string name="app_label" msgid="2783841764617238354">"Փաստաթղթեր"</string> <string name="title_open" msgid="4353228937663917801">"Բացել այստեղից"</string> <string name="title_save" msgid="2433679664882857999">"Պահել այստեղ"</string> - <string name="menu_create_dir" msgid="5947289605844398389">"Ստեղծել թղթապանակ"</string> - <string name="menu_grid" msgid="6878021334497835259">"Ցանցային տեսք"</string> + <string name="menu_create_dir" msgid="5947289605844398389">"Ստեղծել պանակ"</string> + <string name="menu_grid" msgid="6878021334497835259">"Ցանցի տեսք"</string> <string name="menu_list" msgid="7279285939892417279">"Ցուցակի տեսք"</string> <string name="menu_sort" msgid="7677740407158414452">"Դասավորել ըստ"</string> <string name="menu_search" msgid="3816712084502856974">"Որոնել"</string> @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Համօգտագործել"</string> <string name="menu_delete" msgid="8138799623850614177">"Ջնջել"</string> <string name="menu_select" msgid="8711270657353563424">"Ընտրել «<xliff:g id="DIRECTORY">^1</xliff:g>»"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Ընտրել բոլորը"</string> + <string name="menu_copy" msgid="3612326052677229148">"Պատճենել…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Ցույց տալ ներքին պահոցը"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Ցույց տալ SD քարտը"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Թաքցնել ներքին պահոցը"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Թաքցնել SD քարտը"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Ցույց տալ ֆայլի չափը"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Թաքցնել ֆայլի չափը"</string> + <string name="button_copy" msgid="8706475544635021302">"Պատճենել"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ընտրված"</string> <string name="sort_name" msgid="9183560467917256779">"Ըստ անվան"</string> <string name="sort_date" msgid="586080032956151448">"Ըստ փոփոխման ամսաթվի"</string> @@ -37,7 +46,7 @@ <string name="drawer_open" msgid="4545466532430226949">"Ցույց տալ արմատները"</string> <string name="drawer_close" msgid="7602734368552123318">"Թաքցնել արմատները"</string> <string name="save_error" msgid="6167009778003223664">"Չհաջողվեց պահել փաստաթուղթը"</string> - <string name="create_error" msgid="3735649141335444215">"Չհաջողվեց ստեղծել թղթապանակը"</string> + <string name="create_error" msgid="3735649141335444215">"Չհաջողվեց ստեղծել պանակը"</string> <string name="query_error" msgid="1222448261663503501">"Փաստաթղթերին հարցում կատարելիս սխալ տեղի ունեցավ"</string> <string name="root_recent" msgid="4470053704320518133">"Վերջին"</string> <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> ազատ է"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Դյուրանցումներ"</string> <string name="root_type_device" msgid="7121342474653483538">"Սարքեր"</string> <string name="root_type_apps" msgid="8838065367985945189">"Հավելյալ ծրագրեր"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Ցուցադրել ընդլայնված սարքերը"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Ցուցադրել ֆայլի չափը"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Ցուցադրել սարքի չափը"</string> <string name="empty" msgid="7858882803708117596">"Տարրեր չկան"</string> <string name="toast_no_application" msgid="1339885974067891667">"Հնարավոր չէ բացել ֆայլը"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Անհնար է ջնջել որոշ փաստաթղթեր"</string> <string name="share_via" msgid="8966594246261344259">"Տարածել"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Ֆայլերի պատճենում"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Մնացել է <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> ֆայլի պատճենում:</item> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ֆայլի պատճենում:</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Պատճենման նախապատրաստում…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Սխալ առաջացավ <xliff:g id="COUNT_1">%1$d</xliff:g> ֆայլ պատճենելիս:</item> + <item quantity="other">Սխալ առաջացավ <xliff:g id="COUNT_1">%1$d</xliff:g> ֆայլ պատճենելիս:</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Հպեք՝ մանրամասները դիտելու համար"</string> + <string name="retry" msgid="7564024179122207376">"Կրկնել"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Սխալ առաջացավ ֆայլերը պատճենելիս"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Հետևյալ ֆայլերը չեն պատճենվել՝ <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-in/strings.xml b/packages/DocumentsUI/res/values-in/strings.xml index 62057c7..18e7896 100644 --- a/packages/DocumentsUI/res/values-in/strings.xml +++ b/packages/DocumentsUI/res/values-in/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Bagikan"</string> <string name="menu_delete" msgid="8138799623850614177">"Hapus"</string> <string name="menu_select" msgid="8711270657353563424">"Pilih \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Pilih Semua"</string> + <string name="menu_copy" msgid="3612326052677229148">"Salin ke…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Tampilkan simpanan internal"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Tampilkan kartu SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Sembunyikan simpanan internal"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Sembunyikan kartu SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Tampilkan ukuran file"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Sembunyikan ukuran file"</string> + <string name="button_copy" msgid="8706475544635021302">"Salin"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> dipilih"</string> <string name="sort_name" msgid="9183560467917256779">"Menurut nama"</string> <string name="sort_date" msgid="586080032956151448">"Menurut tanggal diubah"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Pintasan"</string> <string name="root_type_device" msgid="7121342474653483538">"Perangkat"</string> <string name="root_type_apps" msgid="8838065367985945189">"Aplikasi lain"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Tampilkan perangkat lanjutan"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Tampilkan ukuran file"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Tampilkan ukuran perangkat"</string> <string name="empty" msgid="7858882803708117596">"Tidak ada item"</string> <string name="toast_no_application" msgid="1339885974067891667">"Tidak dapat membuka file"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Tidak dapat menghapus beberapa dokumen"</string> <string name="share_via" msgid="8966594246261344259">"Bagikan melalui"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Menyalin file"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> lagi"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Menyalin <xliff:g id="COUNT_1">%1$d</xliff:g> file.</item> + <item quantity="one">Menyalin <xliff:g id="COUNT_0">%1$d</xliff:g> file.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Menyiapkan salinan..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Ada kesalahan saat menyalin <xliff:g id="COUNT_1">%1$d</xliff:g> file.</item> + <item quantity="one">Ada kesalahan saat menyalin <xliff:g id="COUNT_0">%1$d</xliff:g> file.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Sentuh untuk melihat detail"</string> + <string name="retry" msgid="7564024179122207376">"Coba lagi"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Ada kesalahan saat menyalin file"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"File berikut tidak disalin: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-is-rIS/strings.xml b/packages/DocumentsUI/res/values-is-rIS/strings.xml index 4f6878c..9b3799f 100644 --- a/packages/DocumentsUI/res/values-is-rIS/strings.xml +++ b/packages/DocumentsUI/res/values-is-rIS/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Deila"</string> <string name="menu_delete" msgid="8138799623850614177">"Eyða"</string> <string name="menu_select" msgid="8711270657353563424">"Velja „<xliff:g id="DIRECTORY">^1</xliff:g>“"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Velja allt"</string> + <string name="menu_copy" msgid="3612326052677229148">"Afrita í ..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Sýna innbyggða geymslu"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Sýna SD-kort"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Fela innbyggða geymslu"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Fela SD-kort"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Sýna skráarstærð"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Fela skráarstærð"</string> + <string name="button_copy" msgid="8706475544635021302">"Afrita"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> valin"</string> <string name="sort_name" msgid="9183560467917256779">"Eftir heiti"</string> <string name="sort_date" msgid="586080032956151448">"Eftir breytingadags."</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Flýtileiðir"</string> <string name="root_type_device" msgid="7121342474653483538">"Tæki"</string> <string name="root_type_apps" msgid="8838065367985945189">"Fleiri forrit"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Sýna ítarleg tæki"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Sýna skráarstærð"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Sýna stærð tækis"</string> <string name="empty" msgid="7858882803708117596">"Engin atriði"</string> <string name="toast_no_application" msgid="1339885974067891667">"Ekki er hægt að opna skrána"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Ekki er hægt að eyða einhverjum skjölum"</string> <string name="share_via" msgid="8966594246261344259">"Deila í gegnum"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Afritar skrár"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> eftir"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Afritar <xliff:g id="COUNT_1">%1$d</xliff:g> skrá.</item> + <item quantity="other">Afritar <xliff:g id="COUNT_1">%1$d</xliff:g> skrár.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Undirbúningur fyrir afritun…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Villa við afritun á <xliff:g id="COUNT_1">%1$d</xliff:g> skrá.</item> + <item quantity="other">Villa við afritun á <xliff:g id="COUNT_1">%1$d</xliff:g> skrám.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Snertu til að skoða nánari upplýsingar"</string> + <string name="retry" msgid="7564024179122207376">"Reyna aftur"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Villa við að afrita skrár"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Eftirfarandi skrár eru ekki afritaðar: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-it/strings.xml b/packages/DocumentsUI/res/values-it/strings.xml index bec4d00..e889da0 100644 --- a/packages/DocumentsUI/res/values-it/strings.xml +++ b/packages/DocumentsUI/res/values-it/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Condividi"</string> <string name="menu_delete" msgid="8138799623850614177">"Elimina"</string> <string name="menu_select" msgid="8711270657353563424">"Seleziona \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Seleziona tutti"</string> + <string name="menu_copy" msgid="3612326052677229148">"Copia in…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostra memoria interna"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostra scheda SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Nascondi memoria interna"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Nascondi scheda SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Mostra dimensioni file"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Nascondi dimensioni file"</string> + <string name="button_copy" msgid="8706475544635021302">"Copia"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selezionati"</string> <string name="sort_name" msgid="9183560467917256779">"Per nome"</string> <string name="sort_date" msgid="586080032956151448">"Per data di modifica"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Scorciatoie"</string> <string name="root_type_device" msgid="7121342474653483538">"Dispositivi"</string> <string name="root_type_apps" msgid="8838065367985945189">"Altre app"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Visualizza dispositivi avanzati"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Visualizza dimensioni file"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Visualizza dimensioni dispositivi"</string> <string name="empty" msgid="7858882803708117596">"Nessun articolo"</string> <string name="toast_no_application" msgid="1339885974067891667">"Impossibile aprire il file"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Impossibile eliminare alcuni documenti"</string> <string name="share_via" msgid="8966594246261344259">"Condividi via"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Copia di file in corso"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> rimanenti"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Copia di <xliff:g id="COUNT_1">%1$d</xliff:g> file in corso.</item> + <item quantity="one">Copia di <xliff:g id="COUNT_0">%1$d</xliff:g> file in corso.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Preparazione alla copia…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Errore durante la copia di <xliff:g id="COUNT_1">%1$d</xliff:g> file.</item> + <item quantity="one">Errore durante la copia di <xliff:g id="COUNT_0">%1$d</xliff:g> file.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Tocca per visualizzare i dettagli"</string> + <string name="retry" msgid="7564024179122207376">"Riprova"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Errore durante la copia dei file"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"I seguenti file non sono stati copiati: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-iw/strings.xml b/packages/DocumentsUI/res/values-iw/strings.xml index c8a3fb9..f04dabd 100644 --- a/packages/DocumentsUI/res/values-iw/strings.xml +++ b/packages/DocumentsUI/res/values-iw/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"שתף"</string> <string name="menu_delete" msgid="8138799623850614177">"מחק"</string> <string name="menu_select" msgid="8711270657353563424">"בחר ב-\"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"בחר הכל"</string> + <string name="menu_copy" msgid="3612326052677229148">"העתק אל…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"הצג אחסון פנימי"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"הצג כרטיס SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"הסתר אחסון פנימי"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"הסתר כרטיס SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"הצג גודל קובץ"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"הסתר גודל קובץ"</string> + <string name="button_copy" msgid="8706475544635021302">"העתק"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> נבחרו"</string> <string name="sort_name" msgid="9183560467917256779">"לפי שם"</string> <string name="sort_date" msgid="586080032956151448">"לפי תאריך שינוי"</string> @@ -45,11 +54,27 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"קיצורי דרך"</string> <string name="root_type_device" msgid="7121342474653483538">"מכשירים"</string> <string name="root_type_apps" msgid="8838065367985945189">"עוד אפליקציות"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"הצג מכשירים מתקדמים"</string> - <string name="pref_file_size" msgid="2826879315743961459">"הצג את גודל הקובץ"</string> - <string name="pref_device_size" msgid="3542106883278997222">"הצג את גודל המכשיר"</string> <string name="empty" msgid="7858882803708117596">"אין פריטים"</string> <string name="toast_no_application" msgid="1339885974067891667">"לא ניתן לפתוח את הקובץ"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"לא ניתן למחוק חלק מהמסמכים"</string> <string name="share_via" msgid="8966594246261344259">"שתף באמצעות"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"מעתיק קבצים"</string> + <string name="copy_remaining" msgid="6283790937387975095">"זמן נותר: <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="two">מעתיק <xliff:g id="COUNT_1">%1$d</xliff:g> קבצים.</item> + <item quantity="many">מעתיק <xliff:g id="COUNT_1">%1$d</xliff:g> קבצים.</item> + <item quantity="other">מעתיק <xliff:g id="COUNT_1">%1$d</xliff:g> קבצים.</item> + <item quantity="one">מעתיק קובץ <xliff:g id="COUNT_0">%1$d</xliff:g>.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"מתכונן להעתקה..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="two">אירעה שגיאה בהעתקה של <xliff:g id="COUNT_1">%1$d</xliff:g> קבצים.</item> + <item quantity="many">אירעה שגיאה בהעתקה של <xliff:g id="COUNT_1">%1$d</xliff:g> קבצים.</item> + <item quantity="other">אירעה שגיאה בהעתקה של <xliff:g id="COUNT_1">%1$d</xliff:g> קבצים.</item> + <item quantity="one">אירעה שגיאה בהעתקה של קובץ <xliff:g id="COUNT_0">%1$d</xliff:g>.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"גע כדי להציג את הפרטים"</string> + <string name="retry" msgid="7564024179122207376">"נסה שוב"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"אירעה שגיאה בהעתקת קבצים"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"הקבצים הבאים לא הועתקו: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-ja/strings.xml b/packages/DocumentsUI/res/values-ja/strings.xml index 1475005..da9fbb5 100644 --- a/packages/DocumentsUI/res/values-ja/strings.xml +++ b/packages/DocumentsUI/res/values-ja/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"共有"</string> <string name="menu_delete" msgid="8138799623850614177">"削除"</string> <string name="menu_select" msgid="8711270657353563424">"「<xliff:g id="DIRECTORY">^1</xliff:g>」を選択"</string> + <string name="menu_select_all" msgid="4320518282375109902">"すべて選択"</string> + <string name="menu_copy" msgid="3612326052677229148">"コピー…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"内部ストレージを表示"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SDカードを表示"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"内部ストレージを非表示"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SDカードを非表示"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"ファイルサイズを表示"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"ファイルサイズを非表示"</string> + <string name="button_copy" msgid="8706475544635021302">"コピー"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g>件選択済み"</string> <string name="sort_name" msgid="9183560467917256779">"名前順"</string> <string name="sort_date" msgid="586080032956151448">"更新日順"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"ショートカット"</string> <string name="root_type_device" msgid="7121342474653483538">"端末"</string> <string name="root_type_apps" msgid="8838065367985945189">"その他のアプリ"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"端末の詳細設定を表示"</string> - <string name="pref_file_size" msgid="2826879315743961459">"ファイルのサイズを表示"</string> - <string name="pref_device_size" msgid="3542106883278997222">"端末のサイズを表示"</string> <string name="empty" msgid="7858882803708117596">"アイテムがありません"</string> <string name="toast_no_application" msgid="1339885974067891667">"ファイルを開けません"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"一部のドキュメントを削除できません"</string> <string name="share_via" msgid="8966594246261344259">"共有ツール"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"ファイルのコピー中"</string> + <string name="copy_remaining" msgid="6283790937387975095">"残り<xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g>個のファイルをコピーしています。</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g>個のファイルをコピーしています。</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"コピーの準備をしています…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g>個のファイルのコピー中にエラーが発生しました</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g>個のファイルのコピー中にエラーが発生しました</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"タップして詳細をご覧ください"</string> + <string name="retry" msgid="7564024179122207376">"再試行"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"ファイルのコピーエラー"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"次のファイルはコピーされていません。<xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-ka-rGE/strings.xml b/packages/DocumentsUI/res/values-ka-rGE/strings.xml index c90768f..2214f5a 100644 --- a/packages/DocumentsUI/res/values-ka-rGE/strings.xml +++ b/packages/DocumentsUI/res/values-ka-rGE/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"გაზიარება"</string> <string name="menu_delete" msgid="8138799623850614177">"წაშლა"</string> <string name="menu_select" msgid="8711270657353563424">"„<xliff:g id="DIRECTORY">^1</xliff:g>“-ის არჩევა"</string> + <string name="menu_select_all" msgid="4320518282375109902">"ყველას არჩევა"</string> + <string name="menu_copy" msgid="3612326052677229148">"კოპირება…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"შიდა საცავის ჩვენება"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD ბარათის ჩვენება"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"შიდა მეხსიერების დამალვა"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD ბარათის დამალვა"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"ფაილის ზომის ჩვენება"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"ფაილის ზომის დამალვა"</string> + <string name="button_copy" msgid="8706475544635021302">"კოპირება"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> მონიშნული"</string> <string name="sort_name" msgid="9183560467917256779">"სახელით"</string> <string name="sort_date" msgid="586080032956151448">"ცვლილების თარიღით"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"მალსახმობები"</string> <string name="root_type_device" msgid="7121342474653483538">"მოწყობილობები"</string> <string name="root_type_apps" msgid="8838065367985945189">"მეტი აპები"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"კომპლექსური მოწყობილობების ჩვენება"</string> - <string name="pref_file_size" msgid="2826879315743961459">"ფაილის ზომის ჩვენება"</string> - <string name="pref_device_size" msgid="3542106883278997222">"მოწყობილობის ზომის ჩვენება"</string> <string name="empty" msgid="7858882803708117596">"ერთეულები არ არის"</string> <string name="toast_no_application" msgid="1339885974067891667">"ფაილის გახსნა ვერ ხერხდება"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"ზოგიერთი დოკუმენტის წაშლა ვერ ხერხდება"</string> <string name="share_via" msgid="8966594246261344259">"გაზიარება:"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"მიმდ. ფაილების კოპირება"</string> + <string name="copy_remaining" msgid="6283790937387975095">"დარჩა <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">მიმდინარეობს <xliff:g id="COUNT_1">%1$d</xliff:g> ფაილის კოპირება.</item> + <item quantity="one">მიმდინარეობს <xliff:g id="COUNT_0">%1$d</xliff:g> ფაილის კოპირება.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"მომზადება კოპირებისთვის…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">შეცდომა მოხდა <xliff:g id="COUNT_1">%1$d</xliff:g> ფაილის კოპირებისა.</item> + <item quantity="one">შეცდომა მოხდა <xliff:g id="COUNT_0">%1$d</xliff:g> ფაილის კოპირებისას.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"შეეხეთ მონაცემების სანახავად."</string> + <string name="retry" msgid="7564024179122207376">"ხელახლა ცდა"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"ფაილების გადაწერისას მოხდა შეცდომა"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"შემდეგი ფაილები არ გადაიწერა: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-kk-rKZ/strings.xml b/packages/DocumentsUI/res/values-kk-rKZ/strings.xml index d60c4b3..e3653e6 100644 --- a/packages/DocumentsUI/res/values-kk-rKZ/strings.xml +++ b/packages/DocumentsUI/res/values-kk-rKZ/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Бөлісу"</string> <string name="menu_delete" msgid="8138799623850614177">"Жою"</string> <string name="menu_select" msgid="8711270657353563424">"«<xliff:g id="DIRECTORY">^1</xliff:g>» таңдау"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Барлығын таңдау"</string> + <string name="menu_copy" msgid="3612326052677229148">"Көшіру орны…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Ішкі жадты көрсету"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD картасын көрсету"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ішкі жадты жасыру"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD картасын жасыру"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Файл өлшемін көрсету"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Файл өлшемін жасыру"</string> + <string name="button_copy" msgid="8706475544635021302">"Көшіру"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> таңдалды"</string> <string name="sort_name" msgid="9183560467917256779">"Атауы бойынша"</string> <string name="sort_date" msgid="586080032956151448">"Өзгертілген мерзімі бойынша"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Төте пернелер"</string> <string name="root_type_device" msgid="7121342474653483538">"Құрылғылар"</string> <string name="root_type_apps" msgid="8838065367985945189">"Басқа қолданбалар"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Жетілдірілген құрылғыларды көрсету"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Файл өлшемін көрсету"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Құрылғы өлшемін көрсету"</string> <string name="empty" msgid="7858882803708117596">"Бос"</string> <string name="toast_no_application" msgid="1339885974067891667">"Файлды аша алмады"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Кейбір құжаттарды жою мүмкін болмады"</string> <string name="share_via" msgid="8966594246261344259">"арқылы бөлісу"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Файлдарды көшіру"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> қалды"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> файлды көшіру.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> файлды көшіру.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Көшіруге дайындау…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> файлды көшіру қатесі.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> файлды көшіру қатесі.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Толығырақ мәліметті көру үшін түртіңіз"</string> + <string name="retry" msgid="7564024179122207376">"Қайталау"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Файлдарды көшіру қатесі"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Келесі файлдар көшірілмейді: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-km-rKH/strings.xml b/packages/DocumentsUI/res/values-km-rKH/strings.xml index 8c9030d..b5688a2 100644 --- a/packages/DocumentsUI/res/values-km-rKH/strings.xml +++ b/packages/DocumentsUI/res/values-km-rKH/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"ចែករំលែក"</string> <string name="menu_delete" msgid="8138799623850614177">"លុប"</string> <string name="menu_select" msgid="8711270657353563424">"ជ្រើស \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"ជ្រើសរើសទាំងអស់"</string> + <string name="menu_copy" msgid="3612326052677229148">"ថតចម្លងទៅ…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"បង្ហាញឧបករណ៍ផ្ទុកខាងក្នុង"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"បង្ហាញកាតអេសឌី"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"លាក់ឧបករណ៍ផ្ទុកខាងក្នុង"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"លាក់កាតអេសឌី"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"បង្ហាញទំហំឯកសារ"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"លាក់ទំហំឯកសារ"</string> + <string name="button_copy" msgid="8706475544635021302">"ចម្លង"</string> <string name="mode_selected_count" msgid="459111894725594625">"បានជ្រើស <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"តាមឈ្មោះ"</string> <string name="sort_date" msgid="586080032956151448">"តាមកាលបរិច្ឆេទបានកែប្រែ"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"ផ្លូវកាត់"</string> <string name="root_type_device" msgid="7121342474653483538">"ឧបករណ៍"</string> <string name="root_type_apps" msgid="8838065367985945189">"កម្មវិធីច្រើនទៀត"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"បង្ហាញឧបករណ៍កម្រិតខ្ពស់"</string> - <string name="pref_file_size" msgid="2826879315743961459">"បង្ហាញទំហំឯកសារ"</string> - <string name="pref_device_size" msgid="3542106883278997222">"បង្ហាញទំហំឧបករណ៍"</string> <string name="empty" msgid="7858882803708117596">"គ្មានធាតុ"</string> <string name="toast_no_application" msgid="1339885974067891667">"មិនអាចបើកឯកសារ"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"មិនអាចលុបឯកសារមួយចំនួន"</string> <string name="share_via" msgid="8966594246261344259">"ចែករំលែកតាម"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"កំពុងថតចម្លងឯកសារ"</string> + <string name="copy_remaining" msgid="6283790937387975095">"នៅសល់ <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">កំពុងថតចម្លងឯកសារចំនួន <xliff:g id="COUNT_1">%1$d</xliff:g> ។</item> + <item quantity="one">កំពុងថតចម្លងឯកសារចំនួន <xliff:g id="COUNT_0">%1$d</xliff:g> ។</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"កំពុងរៀបចំចម្លង…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">កំហុសក្នុងការចម្លងឯកសារ <xliff:g id="COUNT_1">%1$d</xliff:g>។</item> + <item quantity="one">កំហុសក្នុងការចម្លងឯកសារ <xliff:g id="COUNT_0">%1$d</xliff:g>។</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"ប៉ះ ដើម្បីមើលព័ត៌មានលម្អិត"</string> + <string name="retry" msgid="7564024179122207376">"ព្យាយាមម្ដងទៀត"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"កំហុសក្នុងការចម្លងឯកសារ"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"ឯកសារខាងក្រោមមិនត្រូវបានចម្លងទេ៖ <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-kn-rIN/strings.xml b/packages/DocumentsUI/res/values-kn-rIN/strings.xml index 70fc185..ae5d02b 100644 --- a/packages/DocumentsUI/res/values-kn-rIN/strings.xml +++ b/packages/DocumentsUI/res/values-kn-rIN/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"ಹಂಚು"</string> <string name="menu_delete" msgid="8138799623850614177">"ಅಳಿಸು"</string> <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" ಆಯ್ಕೆಮಾಡಿ"</string> + <string name="menu_select_all" msgid="4320518282375109902">"ಎಲ್ಲವನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string> + <string name="menu_copy" msgid="3612326052677229148">"ಇದಕ್ಕೆ ನಕಲಿಸಿ…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"ಆಂತರಿಕ ಸಂಗ್ರಹಣೆಯನ್ನು ತೋರಿಸು"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD ಕಾಡ್ ಅನ್ನು ತೋರಿಸು"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"ಆಂತರಿಕ ಸಂಗ್ರಹಣೆಯನ್ನು ಮರೆಮಾಡಿ"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD ಕಾರ್ಡ್ ಅನ್ನು ಮರೆಮಾಡಿ"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"ಫೈಲ್ ಗಾತ್ರವನ್ನು ತೋರಿಸು"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"ಫೈಲ್ ಗಾತ್ರವನ್ನು ಮರೆಮಾಡಿ"</string> + <string name="button_copy" msgid="8706475544635021302">"ನಕಲಿಸು"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ"</string> <string name="sort_name" msgid="9183560467917256779">"ಹೆಸರಿನ ಪ್ರಕಾರ"</string> <string name="sort_date" msgid="586080032956151448">"ಮಾರ್ಪಡಿಸಿರುವ ದಿನಾಂಕದ ಪ್ರಕಾರ"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"ಶಾರ್ಟ್ಕಟ್ಗಳು"</string> <string name="root_type_device" msgid="7121342474653483538">"ಸಾಧನಗಳು"</string> <string name="root_type_apps" msgid="8838065367985945189">"ಇನ್ನಷ್ಟು ಅಪ್ಲಿಕೇಶನ್ಗಳು"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"ಸುಧಾರಿತ ಸಾಧನಗಳನ್ನು ಪ್ರದರ್ಶಿಸಿ"</string> - <string name="pref_file_size" msgid="2826879315743961459">"ಫೈಲ್ ಗಾತ್ರವನ್ನು ಪ್ರದರ್ಶಿಸಿ"</string> - <string name="pref_device_size" msgid="3542106883278997222">"ಸಾಧನದ ಗಾತ್ರವನ್ನು ಪ್ರದರ್ಶಿಸಿ"</string> <string name="empty" msgid="7858882803708117596">"ಯಾವುದೇ ಐಟಂಗಳಿಲ್ಲ"</string> <string name="toast_no_application" msgid="1339885974067891667">"ಫೈಲ್ ತೆರೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"ಕೆಲವು ಡಾಕ್ಯುಮೆಂಟ್ಗಳನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string> <string name="share_via" msgid="8966594246261344259">"ಈ ಮೂಲಕ ಹಂಚಿಕೊಳ್ಳಿ"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"ಫೈಲ್ಗಳನ್ನು ನಕಲಿಸಲಾಗುತ್ತಿದೆ"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> ಉಳಿದಿದೆ"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one"> <xliff:g id="COUNT_1">%1$d</xliff:g> ಫೈಲ್ಗಳನ್ನು ನಕಲಿಸಲಾಗುತ್ತಿದೆ.</item> + <item quantity="other"> <xliff:g id="COUNT_1">%1$d</xliff:g> ಫೈಲ್ಗಳನ್ನು ನಕಲಿಸಲಾಗುತ್ತಿದೆ.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"ನಕಲಿಸಲು ಸಿದ್ಧಪಡಿಸಲಾಗುತ್ತಿದೆ..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one"> <xliff:g id="COUNT_1">%1$d</xliff:g> ಫೈಲ್ಗಳನ್ನು ನಕಲಿಸುವಲ್ಲಿ ದೋಷ.</item> + <item quantity="other"> <xliff:g id="COUNT_1">%1$d</xliff:g> ಫೈಲ್ಗಳನ್ನು ನಕಲಿಸುವಲ್ಲಿ ದೋಷ.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"ವಿವರಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಸ್ಪರ್ಶಿಸಿ"</string> + <string name="retry" msgid="7564024179122207376">"ಮರುಪ್ರಯತ್ನಿಸು"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"ಫೈಲ್ಗಳನ್ನು ನಕಲಿಸುವಲ್ಲಿ ದೋಷ"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"ಕೆಳಗಿನ ಫೈಲ್ಗಳನ್ನು ನಕಲು ಮಾಡಲಾಗಿಲ್ಲ: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-ko/strings.xml b/packages/DocumentsUI/res/values-ko/strings.xml index 5996e66..d2ff58c 100644 --- a/packages/DocumentsUI/res/values-ko/strings.xml +++ b/packages/DocumentsUI/res/values-ko/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"공유"</string> <string name="menu_delete" msgid="8138799623850614177">"삭제"</string> <string name="menu_select" msgid="8711270657353563424">"\'<xliff:g id="DIRECTORY">^1</xliff:g>\' 선택"</string> + <string name="menu_select_all" msgid="4320518282375109902">"모두 선택"</string> + <string name="menu_copy" msgid="3612326052677229148">"복사…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"내부 저장소 표시"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD 카드 표시"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"내부 저장소 숨기기"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD 카드 숨기기"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"파일 크기 표시"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"파일 크기 숨기기"</string> + <string name="button_copy" msgid="8706475544635021302">"복사"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g>개 선택됨"</string> <string name="sort_name" msgid="9183560467917256779">"이름순"</string> <string name="sort_date" msgid="586080032956151448">"수정된 날짜순"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"바로가기"</string> <string name="root_type_device" msgid="7121342474653483538">"기기"</string> <string name="root_type_apps" msgid="8838065367985945189">"앱 더보기"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"고급 기기 표시"</string> - <string name="pref_file_size" msgid="2826879315743961459">"파일 크기 표시"</string> - <string name="pref_device_size" msgid="3542106883278997222">"기기 크기 표시"</string> <string name="empty" msgid="7858882803708117596">"항목 없음"</string> <string name="toast_no_application" msgid="1339885974067891667">"파일을 열 수 없음"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"일부 문서를 삭제할 수 없음"</string> <string name="share_via" msgid="8966594246261344259">"공유 방법"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"파일 복사 중"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> 남음"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">파일 <xliff:g id="COUNT_1">%1$d</xliff:g>개를 복사합니다.</item> + <item quantity="one">파일 <xliff:g id="COUNT_0">%1$d</xliff:g>개를 복사합니다.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"사본 준비 중…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">파일 <xliff:g id="COUNT_1">%1$d</xliff:g>개 복사 중 오류가 발생했습니다.</item> + <item quantity="one">파일 <xliff:g id="COUNT_0">%1$d</xliff:g>개 복사 중 오류가 발생했습니다.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"세부정보를 보려면 터치하세요."</string> + <string name="retry" msgid="7564024179122207376">"다시 시도"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"파일 복사 중 오류 발생"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"다음 파일이 복사되지 않았습니다. <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-ky-rKG/strings.xml b/packages/DocumentsUI/res/values-ky-rKG/strings.xml index 1fe7183..b9569c5 100644 --- a/packages/DocumentsUI/res/values-ky-rKG/strings.xml +++ b/packages/DocumentsUI/res/values-ky-rKG/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Бөлүшүү"</string> <string name="menu_delete" msgid="8138799623850614177">"Өчүрүү"</string> <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" тандоо"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Бардыгын тандоо"</string> + <string name="menu_copy" msgid="3612326052677229148">"Төмөнкүгө көчүрүү…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Ички сактагычты көрсөтүү"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD картаны көрсөтүү"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ички эстутумду жашыруу"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD картаны жашыруу"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Файл өлчөмүн көрсөтүү"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Файл өлчөмүн жашыруу"</string> + <string name="button_copy" msgid="8706475544635021302">"Көчүрүү"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> тандалды"</string> <string name="sort_name" msgid="9183560467917256779">"Аты боюнча"</string> <string name="sort_date" msgid="586080032956151448">"Өзгөртүлгөн күнү боюнча"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Тез чакырмалар"</string> <string name="root_type_device" msgid="7121342474653483538">"Түзмөктөр"</string> <string name="root_type_apps" msgid="8838065367985945189">"Көбүрөөк колдонмолор"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Жакшыртылган түзмөктөр"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Файл өлчөмүн көрсөтүү"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Түзмөк өлчөмүн көрсөтүү"</string> <string name="empty" msgid="7858882803708117596">"Эч нерсе жок"</string> <string name="toast_no_application" msgid="1339885974067891667">"Файл ачылбады"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Кээ бир документтерди өчүрүү кыйрады"</string> <string name="share_via" msgid="8966594246261344259">"Кийинки аркылуу бөлүшүү:"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Файлдар көчүрүлүүдө"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> калды"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> файл көчүрүлүүдө.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> файл көчүрүлүүдө.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Көчүрүүгө даярдалууда…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> файлды көчүрүүдөгү ката.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> файлды көчүрүүдөгү ката.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Чоо-жайын билүү үчүн тийип коюңуз"</string> + <string name="retry" msgid="7564024179122207376">"Дагы аракет кылуу"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Файлдарды көчүрүүдөгү ката"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Төмөнкү файлдар көчүрүлгөн жок: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-lo-rLA/strings.xml b/packages/DocumentsUI/res/values-lo-rLA/strings.xml index 8452ae1..03b9f2e 100644 --- a/packages/DocumentsUI/res/values-lo-rLA/strings.xml +++ b/packages/DocumentsUI/res/values-lo-rLA/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"ແບ່ງປັນ"</string> <string name="menu_delete" msgid="8138799623850614177">"ລຶບ"</string> <string name="menu_select" msgid="8711270657353563424">"ເລືອກ \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"ເລືອກທັງຫມົດ"</string> + <string name="menu_copy" msgid="3612326052677229148">"ອັດສຳເນົາໃສ່…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"ສະແດງໂຕເກັບຂໍ້ມູນພາຍໃນ"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"ສະແດງ SD Card"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"ເຊື່ອງໂຕເກັບຂໍ້ມູນພາຍໃນ"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"ເຊື່ອງ SD Card"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"ສະແດງຂະໜາດໄຟລ໌"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"ເຊື່ອງຂະຫນາດໄຟລ໌"</string> + <string name="button_copy" msgid="8706475544635021302">"ສຳເນົາ"</string> <string name="mode_selected_count" msgid="459111894725594625">"ເລືອກແລ້ວ <xliff:g id="COUNT">%1$d</xliff:g> ລາຍການ"</string> <string name="sort_name" msgid="9183560467917256779">"ຕາມຊື່"</string> <string name="sort_date" msgid="586080032956151448">"ຕາມວັນທີທີ່ແກ້ໄຂ"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"ທາງລັດ"</string> <string name="root_type_device" msgid="7121342474653483538">"ອຸປະກອນ"</string> <string name="root_type_apps" msgid="8838065367985945189">"ແອັບຯອື່ນໆ"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"ສະແດງອຸປະກອນຂັ້ນສູງ"</string> - <string name="pref_file_size" msgid="2826879315743961459">"ສະແດງຂະໜາດໄຟລ໌"</string> - <string name="pref_device_size" msgid="3542106883278997222">"ສະແດງຂະໜາດອຸປະກອນ"</string> <string name="empty" msgid="7858882803708117596">"ບໍ່ມີລາຍການ"</string> <string name="toast_no_application" msgid="1339885974067891667">"ບໍ່ສາມດາເປີດໄຟລ໌ໄດ້"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"ບໍ່ສາມາດລຶບບາງເອກະສານໄດ້"</string> <string name="share_via" msgid="8966594246261344259">"ແບ່ງປັນຜ່ານ"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"ກຳລັງອັດສຳເນົາໄຟລ໌"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> ຍັງເຫຼືອຢູ່"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">ກຳລັງອັດສຳເນົາ <xliff:g id="COUNT_1">%1$d</xliff:g> ໄຟລ໌.</item> + <item quantity="one">ກຳລັງອັດສຳເນົາ <xliff:g id="COUNT_0">%1$d</xliff:g> ໄຟລ໌.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"ກຳລັງກຽມອັດສຳເນົາ…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">ມີຄວາມຜິດພາດການອັດສຳເນົາ <xliff:g id="COUNT_1">%1$d</xliff:g> ໄຟລ໌.</item> + <item quantity="one">ມີຄວາມຜິດພາດການອັດສຳເນົາ <xliff:g id="COUNT_0">%1$d</xliff:g> ໄຟລ໌.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"ສຳພັດເພື່ອເບິ່ງລາຍລະອຽດ"</string> + <string name="retry" msgid="7564024179122207376">"ລອງໃໝ່"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"ມີຂໍ້ຜິດພາດການອັດສຳເນົາ"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"ໄຟລ໌ຕໍ່ໄປນີ້ບໍ່ຖືກອັດສຳເນົາ: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-lt/strings.xml b/packages/DocumentsUI/res/values-lt/strings.xml index 8ec3e0b..d313a9d 100644 --- a/packages/DocumentsUI/res/values-lt/strings.xml +++ b/packages/DocumentsUI/res/values-lt/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Bendrinti"</string> <string name="menu_delete" msgid="8138799623850614177">"Ištrinti"</string> <string name="menu_select" msgid="8711270657353563424">"Pasirinkti katalogą „<xliff:g id="DIRECTORY">^1</xliff:g>“"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Pasirinkti viską"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopijuoti į..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Rodyti vidinę atmintį"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Rodyti SD kortelę"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Slėpti vidinę atmintį"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Slėpti SD kortelę"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Rodyti failo dydį"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Slėpti failo dydį"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopijuoti"</string> <string name="mode_selected_count" msgid="459111894725594625">"Pasirinkta: <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"Pagal pavadinimą"</string> <string name="sort_date" msgid="586080032956151448">"Pagal keitimo datą"</string> @@ -45,11 +54,27 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Spartieji klavišai"</string> <string name="root_type_device" msgid="7121342474653483538">"Įrenginiai"</string> <string name="root_type_apps" msgid="8838065367985945189">"Daugiau programų"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Rodyti išplėstinius įrenginius"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Rodyti failo dydį"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Rodyti įrenginio dydį"</string> <string name="empty" msgid="7858882803708117596">"Nėra elementų"</string> <string name="toast_no_application" msgid="1339885974067891667">"Nepavyksta atidaryti failo"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Nepavyko ištrinti kai kurių dokumentų"</string> <string name="share_via" msgid="8966594246261344259">"Bendrinti naudojant"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Kopijuojami failai"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Liko: <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Kopijuojamas <xliff:g id="COUNT_1">%1$d</xliff:g> failas.</item> + <item quantity="few">Kopijuojami <xliff:g id="COUNT_1">%1$d</xliff:g> failai.</item> + <item quantity="many">Kopijuojama <xliff:g id="COUNT_1">%1$d</xliff:g> failo.</item> + <item quantity="other">Kopijuojama <xliff:g id="COUNT_1">%1$d</xliff:g> failų.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Ruošiamasi kopijuoti…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Klaida kopijuojant <xliff:g id="COUNT_1">%1$d</xliff:g> failą.</item> + <item quantity="few">Klaida kopijuojant <xliff:g id="COUNT_1">%1$d</xliff:g> failus.</item> + <item quantity="many">Klaida kopijuojant <xliff:g id="COUNT_1">%1$d</xliff:g> failo.</item> + <item quantity="other">Klaida kopijuojant <xliff:g id="COUNT_1">%1$d</xliff:g> failų.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Palieskite, kad peržiūr. išsamią informaciją"</string> + <string name="retry" msgid="7564024179122207376">"Bandyti dar kartą"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Klaida kopijuojant failus"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Šie failai nenukopijuoti: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-lv/strings.xml b/packages/DocumentsUI/res/values-lv/strings.xml index caaf8ec..fb92de2 100644 --- a/packages/DocumentsUI/res/values-lv/strings.xml +++ b/packages/DocumentsUI/res/values-lv/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Kopīgot"</string> <string name="menu_delete" msgid="8138799623850614177">"Dzēst"</string> <string name="menu_select" msgid="8711270657353563424">"Atlasīt “<xliff:g id="DIRECTORY">^1</xliff:g>”"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Atlasīt visus"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopēt…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Rādīt iekšējo atmiņu"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Rādīt SD karti"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Paslēpt iekšējo atmiņu"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Paslēpt SD karti"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Rādīt failu lielumu"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Paslēpt failu lielumu"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopēt"</string> <string name="mode_selected_count" msgid="459111894725594625">"Atlasīts: <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"Pēc nosaukuma"</string> <string name="sort_date" msgid="586080032956151448">"Pēc pārveidošanas datuma"</string> @@ -45,11 +54,25 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Saīsnes"</string> <string name="root_type_device" msgid="7121342474653483538">"Ierīces"</string> <string name="root_type_apps" msgid="8838065367985945189">"Vairāk lietotņu"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Attēlot papildu ierīces"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Attēlot faila lielumu"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Attēlot ierīces izmēru"</string> <string name="empty" msgid="7858882803708117596">"Nav vienumu"</string> <string name="toast_no_application" msgid="1339885974067891667">"Nevar atvērt failu."</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Nevar dzēst dažus dokumentus."</string> <string name="share_via" msgid="8966594246261344259">"Kopīgot, izmantojot"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Notiek failu kopēšana"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Atlikušais laiks: <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="zero">Notiek <xliff:g id="COUNT_1">%1$d</xliff:g> failu kopēšana.</item> + <item quantity="one">Notiek <xliff:g id="COUNT_1">%1$d</xliff:g> faila kopēšana.</item> + <item quantity="other">Notiek <xliff:g id="COUNT_1">%1$d</xliff:g> failu kopēšana.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Gatavošanās kopēšanai…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="zero">Kopējot <xliff:g id="COUNT_1">%1$d</xliff:g> failus, radās kļūda.</item> + <item quantity="one">Kopējot <xliff:g id="COUNT_1">%1$d</xliff:g> failu, radās kļūda.</item> + <item quantity="other">Kopējot <xliff:g id="COUNT_1">%1$d</xliff:g> failus, radās kļūda.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Pieskarieties, lai skatītu informāciju"</string> + <string name="retry" msgid="7564024179122207376">"Mēģināt vēlreiz"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Kopējot failus, radās kļūda"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Tālāk norādītie faili netika kopēti: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-mk-rMK/strings.xml b/packages/DocumentsUI/res/values-mk-rMK/strings.xml index 7b50a25..34b2509 100644 --- a/packages/DocumentsUI/res/values-mk-rMK/strings.xml +++ b/packages/DocumentsUI/res/values-mk-rMK/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Сподели"</string> <string name="menu_delete" msgid="8138799623850614177">"Избриши"</string> <string name="menu_select" msgid="8711270657353563424">"Одберете „<xliff:g id="DIRECTORY">^1</xliff:g>“"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Избери ги сите"</string> + <string name="menu_copy" msgid="3612326052677229148">"Копирај во…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Прикажи внатрешна мемор."</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Прикажи СД-картичка"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Скриј внатрешна меморија"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Сoкриј СД-картичка"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Прикажи целосна големина"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Сокриј целосна големина"</string> + <string name="button_copy" msgid="8706475544635021302">"Копирај"</string> <string name="mode_selected_count" msgid="459111894725594625">"Избрани се <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"По име"</string> <string name="sort_date" msgid="586080032956151448">"Изменети по датум"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Кратенки"</string> <string name="root_type_device" msgid="7121342474653483538">"Уреди"</string> <string name="root_type_apps" msgid="8838065367985945189">"Повеќе апликации"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Прикажи напредни уреди"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Прикажи големина на датотека"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Прикажи големина на уред"</string> <string name="empty" msgid="7858882803708117596">"Нема ставки"</string> <string name="toast_no_application" msgid="1339885974067891667">"Датотеката не се отвора"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Некои документи не може да се избришат"</string> <string name="share_via" msgid="8966594246261344259">"Сподели преку"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Се копираат датотеки"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Уште <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Се копира <xliff:g id="COUNT_1">%1$d</xliff:g> датотека.</item> + <item quantity="other">Се копираат <xliff:g id="COUNT_1">%1$d</xliff:g> датотеки.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Се подготвува за копирање…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Грешка при копирање <xliff:g id="COUNT_1">%1$d</xliff:g> датотека.</item> + <item quantity="other">Грешка при копирање <xliff:g id="COUNT_1">%1$d</xliff:g> датотеки.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Допрете за да ги погледнете деталите"</string> + <string name="retry" msgid="7564024179122207376">"Обидете се повторно"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Грешка при копирање датотеки"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Следните датотеки не се копирани: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-ml-rIN/strings.xml b/packages/DocumentsUI/res/values-ml-rIN/strings.xml index f91ad8a..c7bdbad 100644 --- a/packages/DocumentsUI/res/values-ml-rIN/strings.xml +++ b/packages/DocumentsUI/res/values-ml-rIN/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"പങ്കിടുക"</string> <string name="menu_delete" msgid="8138799623850614177">"ഇല്ലാതാക്കുക"</string> <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" തിരഞ്ഞെടുക്കുക"</string> + <string name="menu_select_all" msgid="4320518282375109902">"എല്ലാം തിരഞ്ഞെടുക്കുക"</string> + <string name="menu_copy" msgid="3612326052677229148">"ഇതിൽ പകർത്തുക…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"ആന്തരിക സംഭരണം കാണിക്കുക"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD കാർഡ് കാണിക്കുക"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"ആന്തരിക സംഭരണം മറയ്ക്കുക"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD കാർഡ് മറയ്ക്കുക"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"ഫയൽ വലുപ്പം കാണിക്കുക"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"ഫയൽ വലുപ്പം മറയ്ക്കുക"</string> + <string name="button_copy" msgid="8706475544635021302">"പകര്ത്തുക"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> തിരഞ്ഞെടുത്തു"</string> <string name="sort_name" msgid="9183560467917256779">"പേര് പ്രകാരം"</string> <string name="sort_date" msgid="586080032956151448">"പരിഷ്ക്കരിച്ച തീയതി പ്രകാരം"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"കുറുക്കുവഴികൾ"</string> <string name="root_type_device" msgid="7121342474653483538">"ഉപകരണങ്ങൾ"</string> <string name="root_type_apps" msgid="8838065367985945189">"കൂടുതൽ അപ്ലിക്കേഷനുകൾ"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"വിപുലമായ ഉപകരണങ്ങൾ ദൃശ്യമാക്കുക"</string> - <string name="pref_file_size" msgid="2826879315743961459">"ഫയൽ വലുപ്പം ദൃശ്യമാക്കുക"</string> - <string name="pref_device_size" msgid="3542106883278997222">"ഉപകരണ വലുപ്പം ദൃശ്യമാക്കുക"</string> <string name="empty" msgid="7858882803708117596">"ഇനങ്ങളൊന്നുമില്ല"</string> <string name="toast_no_application" msgid="1339885974067891667">"ഫയൽ തുറക്കാനായില്ല"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"ചില പ്രമാണങ്ങൾ ഇല്ലാതാക്കാനായില്ല"</string> <string name="share_via" msgid="8966594246261344259">"ഇതുവഴി പങ്കിടുക"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"ഫയലുകൾ പകർത്തുന്നു"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> ശേഷിക്കുന്നു"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ഫയലുകൾ പകർത്തുന്നു.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ഫയൽ പകർത്തുന്നു.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"പകർപ്പിനായി തയ്യാറെടുക്കുന്നു…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ഫയലുകൾ പകർത്തുന്നതിൽ പിശക്.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ഫയൽ പകർത്തുന്നതിൽ പിശക്.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"വിശദാംശങ്ങൾ കാണാൻ സ്പർശിക്കുക"</string> + <string name="retry" msgid="7564024179122207376">"വീണ്ടും ശ്രമിക്കുക"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"ഫയലുകൾ പകർത്തുന്നതിൽ പിശക്"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"ഇനിപ്പറയുന്ന ഫയലുകൾ പകർത്തിയില്ല: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-mn-rMN/strings.xml b/packages/DocumentsUI/res/values-mn-rMN/strings.xml index 3d90cc1..850ae55 100644 --- a/packages/DocumentsUI/res/values-mn-rMN/strings.xml +++ b/packages/DocumentsUI/res/values-mn-rMN/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Хуваалцах"</string> <string name="menu_delete" msgid="8138799623850614177">"Устгах"</string> <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\"-г сонгох"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Бүгдийг сонгох"</string> + <string name="menu_copy" msgid="3612326052677229148">"...руу хуулах"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Дотоод санг харуулах"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD картыг харуулах"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Дотоод санг нуух"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD картыг нуух"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Файлын хэмжээг харуулах"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Файлын хэмжээг нуух"</string> + <string name="button_copy" msgid="8706475544635021302">"Хуулах"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> сонгогдсон"</string> <string name="sort_name" msgid="9183560467917256779">"Нэрээр"</string> <string name="sort_date" msgid="586080032956151448">"Өөрчлөгдсөн огноогоор"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Товчлол"</string> <string name="root_type_device" msgid="7121342474653483538">"Төхөөрөмжүүд"</string> <string name="root_type_apps" msgid="8838065367985945189">"Өөр апп-ууд"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Дэвшилтэт төхөөрөмжүүдийг харуулах"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Файлын хэмжээг харуулах"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Төхөөрөмжийн хэмжээг харуулах"</string> <string name="empty" msgid="7858882803708117596">"Хоосон"</string> <string name="toast_no_application" msgid="1339885974067891667">"Файлыг нээх боломжгүй"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Зарим документуудыг устгах боломжгүй"</string> <string name="share_via" msgid="8966594246261344259">"Дараахаар дамжуулан хуваалцах"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Файлуудыг хуулж байна"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> үлдсэн"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"> <xliff:g id="COUNT_1">%1$d</xliff:g> файлуудыг хуулж байна.</item> + <item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> файл хуулж байна.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Хуулбарлахад бэлтгэж байна..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other"> <xliff:g id="COUNT_1">%1$d</xliff:g> файлыг хуулахад алдаа гарлаа.</item> + <item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> Файлыг хуулбарлахад алдаа гарлаа</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Дэлгэрэнгүй мэдээллийг үзэхийн тулд хүрнэ үү."</string> + <string name="retry" msgid="7564024179122207376">"Дахин оролдох"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Файл хуулбарлахад алдаа гарлаа"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Дараах файлуудыг хуулаагүй байна : <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-mr-rIN/strings.xml b/packages/DocumentsUI/res/values-mr-rIN/strings.xml index da7c863..94e3dfe 100644 --- a/packages/DocumentsUI/res/values-mr-rIN/strings.xml +++ b/packages/DocumentsUI/res/values-mr-rIN/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"सामायिक करा"</string> <string name="menu_delete" msgid="8138799623850614177">"हटवा"</string> <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" निवडा"</string> + <string name="menu_select_all" msgid="4320518282375109902">"सर्व निवडा"</string> + <string name="menu_copy" msgid="3612326052677229148">"यावर कॉपी करा…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"अंतर्गत संचयन दर्शवा"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD कार्ड दर्शवा"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"अंतर्गत संचयन लपवा"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD कार्ड लपवा"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"फाईल आकार दर्शवा"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"फाईल आकार लपवा"</string> + <string name="button_copy" msgid="8706475544635021302">"कॉपी करा"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> निवडले"</string> <string name="sort_name" msgid="9183560467917256779">"नावानुसार"</string> <string name="sort_date" msgid="586080032956151448">"सुधारित केलेल्या तारखेनुसार"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"शॉर्टकट"</string> <string name="root_type_device" msgid="7121342474653483538">"डिव्हाइसेस"</string> <string name="root_type_apps" msgid="8838065367985945189">"अधिक अॅप्स"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"प्रगत डिव्हाइसेस प्रदर्शित करा"</string> - <string name="pref_file_size" msgid="2826879315743961459">"फाइल आकार प्रदर्शित करा"</string> - <string name="pref_device_size" msgid="3542106883278997222">"डिव्हाइस आकार प्रदर्शित करा"</string> <string name="empty" msgid="7858882803708117596">"कोणतेही आयटम नाहीत"</string> <string name="toast_no_application" msgid="1339885974067891667">"फाईल उघडू शकत नाही"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"काही दस्तऐवज हटविण्यात अक्षम"</string> <string name="share_via" msgid="8966594246261344259">"द्वारे सामायिक करा"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"फायली कॉपी करीत आहे"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> शिल्लक"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> फाईल कॉपी करीत आहे.</item> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> फायली कॉपी करीत आहे.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"कॉपी करण्यासाठी तयार करीत आहे…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> फाईल कॉपी करताना त्रुटी.</item> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> फायली कॉपी करताना त्रुटी.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"तपशील पाहण्यासाठी स्पर्श करा"</string> + <string name="retry" msgid="7564024179122207376">"पुन्हा प्रयत्न करा"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"फायली कॉपी करताना त्रुटी"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"या फायलींची कॉपी केली नाही: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-ms-rMY/strings.xml b/packages/DocumentsUI/res/values-ms-rMY/strings.xml index 9ea7119..d338ac7 100644 --- a/packages/DocumentsUI/res/values-ms-rMY/strings.xml +++ b/packages/DocumentsUI/res/values-ms-rMY/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Kongsi"</string> <string name="menu_delete" msgid="8138799623850614177">"Padam"</string> <string name="menu_select" msgid="8711270657353563424">"Pilih \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Pilih Semua"</string> + <string name="menu_copy" msgid="3612326052677229148">"Salin ke..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Papar storan dalaman"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Papar kad SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Sembunyikan storan dlmn"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Sembunyikan kad SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Papar saiz fail"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Sembunyikan saiz fail"</string> + <string name="button_copy" msgid="8706475544635021302">"Salin"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> dipilih"</string> <string name="sort_name" msgid="9183560467917256779">"Mengikut nama"</string> <string name="sort_date" msgid="586080032956151448">"Diubah suai mengikut tarikh"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Pintasan"</string> <string name="root_type_device" msgid="7121342474653483538">"Peranti"</string> <string name="root_type_apps" msgid="8838065367985945189">"Lebih banyak apl"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Paparkan peranti terperinci"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Paparkan saiz fail"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Paparkan saiz peranti"</string> <string name="empty" msgid="7858882803708117596">"Tiada item"</string> <string name="toast_no_application" msgid="1339885974067891667">"Tidak dapat membuka fail"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Tidak dapat memadam beberapa dokumen"</string> <string name="share_via" msgid="8966594246261344259">"Kongsi melalui"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Menyalin fail"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> lagi"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Menyalin <xliff:g id="COUNT_1">%1$d</xliff:g> fail.</item> + <item quantity="one">Menyalin <xliff:g id="COUNT_0">%1$d</xliff:g> fail.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Bersedia untuk salin..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Ralat semasa menyalin <xliff:g id="COUNT_1">%1$d</xliff:g> fail.</item> + <item quantity="one">Ralat semasa menyalin <xliff:g id="COUNT_0">%1$d</xliff:g> fail.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Sentuh untuk melihat butiran"</string> + <string name="retry" msgid="7564024179122207376">"Cuba semula"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Ralat semasa menyalin fail"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Fail berikut tidak disalin: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-my-rMM/strings.xml b/packages/DocumentsUI/res/values-my-rMM/strings.xml index c095273..60736fb 100644 --- a/packages/DocumentsUI/res/values-my-rMM/strings.xml +++ b/packages/DocumentsUI/res/values-my-rMM/strings.xml @@ -26,10 +26,19 @@ <string name="menu_search" msgid="3816712084502856974">"ရှာဖွေရန်"</string> <string name="menu_settings" msgid="6008033148948428823">"ဆက်တင်များ"</string> <string name="menu_open" msgid="432922957274920903">"ဖွင့်ရန်"</string> - <string name="menu_save" msgid="2394743337684426338">"သိမ်းဆည်းရန်"</string> + <string name="menu_save" msgid="2394743337684426338">"သိမ်းပါ"</string> <string name="menu_share" msgid="3075149983979628146">"မျှဝေခြင်း"</string> <string name="menu_delete" msgid="8138799623850614177">"ဖျက်ပစ်ရန်"</string> <string name="menu_select" msgid="8711270657353563424">"ရွေးရန်\"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"အားလုံးရွေးရန်"</string> + <string name="menu_copy" msgid="3612326052677229148">"သို့ကူးယူရန်…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"စက်ရှိစတိုရုံ ပြပါ"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD ကဒ် ပြပါ"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"စက်ရှိစတိုရုံ ဖျောက်ထားပါ"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD ကဒ် ဖျောက်ပါ"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"ဖိုင်အရွယ်အစား ပြပါ"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"ဖိုင်အရွယ်အစား ဖျောက်ပါ"</string> + <string name="button_copy" msgid="8706475544635021302">"ကူးယူရန်"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ခရွေးချယ်ပြီး"</string> <string name="sort_name" msgid="9183560467917256779">"အမည်ဖြင့်"</string> <string name="sort_date" msgid="586080032956151448">"ပြင်ဆင်မှု ရက်စွဲဖြင့်"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"အတိုကောက်များ"</string> <string name="root_type_device" msgid="7121342474653483538">"စက်ပစ္စည်းများ"</string> <string name="root_type_apps" msgid="8838065367985945189">"နောက်ထပ်အပလီကေးရှင်းများ"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"အဆင့်မြင့် စက်များ ပြသခြင်း"</string> - <string name="pref_file_size" msgid="2826879315743961459">"ဖိုင် အရွယ်အစား ပြသခြင်း"</string> - <string name="pref_device_size" msgid="3542106883278997222">"စက်ရဲ့ အရွယ်အစား ပြသခြင်း"</string> <string name="empty" msgid="7858882803708117596">"ဘာမှ မရှိပါ"</string> <string name="toast_no_application" msgid="1339885974067891667">"ဖိုင်အား ဖွင့်မရပါ"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"တချို့ စာရွက်စာတန်းများ မဖျက်စီးနိုင်ပါ"</string> <string name="share_via" msgid="8966594246261344259">"မှ ဝေမျှပါ"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"ဖိုင်များကူယူနေသည်"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> ကျန်ရှိသည်"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ဖိုင်များကို ကူးယူနေသည်။</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ဖိုင် ကူးယူနေသည်။</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"မိတ္တူကူးရန်ပြင်ဆင်နေ..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g>ဖိုင်များအား ကူးယူရာတွင် အမှားဖြစ်ပေါ်၏။</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ဖိုင်အား ကူးယူရာတွင် အမှားဖြစ်ပေါ်၏။</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"အသေးစိတ် ကြည့်ရန် ထိပါ။"</string> + <string name="retry" msgid="7564024179122207376">"ထပ်စမ်းရန်"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"ဖိုင်များကူးယူရာတွင် အမှားဖြစ်ပေါ်၏"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"ဖော်ပြပါ ဖိုင်များအား ကူးယူထားခြင်းမရှိပါ- <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-nb/strings.xml b/packages/DocumentsUI/res/values-nb/strings.xml index af7c282..8acbc8e 100644 --- a/packages/DocumentsUI/res/values-nb/strings.xml +++ b/packages/DocumentsUI/res/values-nb/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Del"</string> <string name="menu_delete" msgid="8138799623850614177">"Slett"</string> <string name="menu_select" msgid="8711270657353563424">"Velg «<xliff:g id="DIRECTORY">^1</xliff:g>»"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Velg alle"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopiér til …"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Vis den interne lagringen"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Vis SD-kortet"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Skjul den interne lagringen"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skjul SD-kortet"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Vis filstørrelsen"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Skjul filstørrelsen"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopiér"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> valgt"</string> <string name="sort_name" msgid="9183560467917256779">"Etter navn"</string> <string name="sort_date" msgid="586080032956151448">"«Etter dato» endret"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Snarveier"</string> <string name="root_type_device" msgid="7121342474653483538">"Enheter"</string> <string name="root_type_apps" msgid="8838065367985945189">"Flere apper"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Vis avanserte enheter"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Vis filstørrelse"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Vis enhetsstørrelse"</string> <string name="empty" msgid="7858882803708117596">"Ingen elementer"</string> <string name="toast_no_application" msgid="1339885974067891667">"Kan ikke åpne filen"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Enkelte dokumenter kunne ikke slettes"</string> <string name="share_via" msgid="8966594246261344259">"Del via"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Kopierer filer"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> gjenstår"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Kopierer <xliff:g id="COUNT_1">%1$d</xliff:g> filer.</item> + <item quantity="one">Kopierer <xliff:g id="COUNT_0">%1$d</xliff:g> fil.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Forbereder kopiering …"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Feil ved kopiering av <xliff:g id="COUNT_1">%1$d</xliff:g> filer.</item> + <item quantity="one">Feil ved kopiering av <xliff:g id="COUNT_0">%1$d</xliff:g> fil.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Trykk for å se detaljer"</string> + <string name="retry" msgid="7564024179122207376">"Prøv på nytt"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Feil ved kopiering av filer"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Følgende filer er ikke kopiert: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-ne-rNP/strings.xml b/packages/DocumentsUI/res/values-ne-rNP/strings.xml index d8a873e..c65f554 100644 --- a/packages/DocumentsUI/res/values-ne-rNP/strings.xml +++ b/packages/DocumentsUI/res/values-ne-rNP/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"साझेदारी गर्नुहोस्"</string> <string name="menu_delete" msgid="8138799623850614177">"मेटाउनुहोस्"</string> <string name="menu_select" msgid="8711270657353563424">"चयनगर्नुहोस् \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"सबै चयन गर्नुहोस्"</string> + <string name="menu_copy" msgid="3612326052677229148">"यसमा प्रतिलिपि गर्नुहोस् ..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"आन्तरिक भण्डारण देखाउनुहोस्"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD कार्ड देखाउनुहोस्"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"आन्तरिक भण्डारण लुकाउनुहोस्"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD कार्ड लुकाउनुहोस्"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"फाइल आकार देखाउनुहोस्"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"फाइल आकार लुकाउनुहोस्"</string> + <string name="button_copy" msgid="8706475544635021302">"प्रतिलिपि बनाउनुहोस्"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> चयन गरियो"</string> <string name="sort_name" msgid="9183560467917256779">"नाम अनुसार"</string> <string name="sort_date" msgid="586080032956151448">"परिमार्जित मिति अनुसार"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"सर्टकटहरू"</string> <string name="root_type_device" msgid="7121342474653483538">"उपकरणहरू"</string> <string name="root_type_apps" msgid="8838065367985945189">"थप अनुप्रयोगहरू"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"उन्नत उपकरणहरू प्रदर्शन गर्नुहोस्"</string> - <string name="pref_file_size" msgid="2826879315743961459">"फाइल आकार प्रदर्शन गर्नुहोस्"</string> - <string name="pref_device_size" msgid="3542106883278997222">"उपकरण आकार प्रदर्शन गर्नुहोस्"</string> <string name="empty" msgid="7858882803708117596">"कुनै वस्तु छैन।"</string> <string name="toast_no_application" msgid="1339885974067891667">"फाइल खोल्न सक्दैन"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"केही कागजातहरू मेट्न असमर्थ छ"</string> <string name="share_via" msgid="8966594246261344259">"माध्यमबाट साझेदारी गर्नुहोस्"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"फाइलहरू प्रतिलिपि गर्दै:"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g>बाँकी"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"> <xliff:g id="COUNT_1">%1$d</xliff:g>फाइलहरू प्रतिलिप गर्दै।</item> + <item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> फाइल प्रतिलिपि गर्दै।</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"प्रतिलिपिको लागि तयारी गर्दै ..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> फाइलहरु प्रतिलिपि बनाउदा त्रुटि।</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> फाइल प्रतिलिपि बनाउदा त्रुटि।</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"विवरणहरू हेर्न छुनुहोस्"</string> + <string name="retry" msgid="7564024179122207376">"पुनःप्रयास गर्नुहोस्"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"फाइलहरु प्रतिलिपिमा त्रुटि"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"निम्नलिखित फाइलहरूको प्रतिलिपि बनाइएको छैनन्: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-nl/strings.xml b/packages/DocumentsUI/res/values-nl/strings.xml index a8cf114..29f8e08 100644 --- a/packages/DocumentsUI/res/values-nl/strings.xml +++ b/packages/DocumentsUI/res/values-nl/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Delen"</string> <string name="menu_delete" msgid="8138799623850614177">"Verwijderen"</string> <string name="menu_select" msgid="8711270657353563424">"<xliff:g id="DIRECTORY">^1</xliff:g> selecteren"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Alles selecteren"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopiëren naar…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Interne opslag weergeven"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD-kaart weergeven"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Interne opslag verbergen"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD-kaart verbergen"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Bestandsgrootte weergeven"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Bestandsgrootte verbergen"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopiëren"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> geselecteerd"</string> <string name="sort_name" msgid="9183560467917256779">"Op naam"</string> <string name="sort_date" msgid="586080032956151448">"Op aanpassingsdatum"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Sneltoetsen"</string> <string name="root_type_device" msgid="7121342474653483538">"Apparaten"</string> <string name="root_type_apps" msgid="8838065367985945189">"Meer apps"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Geavanceerde apparaten weergeven"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Bestandsgrootte weergeven"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Apparaatgrootte weergeven"</string> <string name="empty" msgid="7858882803708117596">"Geen items"</string> <string name="toast_no_application" msgid="1339885974067891667">"Kan bestand niet openen"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Kan bepaalde documenten niet verwijderen"</string> <string name="share_via" msgid="8966594246261344259">"Delen via"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Bestanden kopiëren"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> resterend"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> bestanden kopiëren.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> bestand kopiëren.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Kopiëren voorbereiden…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Fout bij kopiëren van <xliff:g id="COUNT_1">%1$d</xliff:g> bestanden.</item> + <item quantity="one">Fout bij kopiëren van <xliff:g id="COUNT_0">%1$d</xliff:g> bestand.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Tik om details weer te geven"</string> + <string name="retry" msgid="7564024179122207376">"Opnieuw proberen"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Fout bij kopiëren van bestanden"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"De volgende bestanden zijn niet gekopieerd: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-pl/strings.xml b/packages/DocumentsUI/res/values-pl/strings.xml index ead40e9..3945199 100644 --- a/packages/DocumentsUI/res/values-pl/strings.xml +++ b/packages/DocumentsUI/res/values-pl/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Udostępnij"</string> <string name="menu_delete" msgid="8138799623850614177">"Usuń"</string> <string name="menu_select" msgid="8711270657353563424">"Zaznacz „<xliff:g id="DIRECTORY">^1</xliff:g>”"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Wybierz wszystko"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopiuj do…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Pokaż pamięć wewnętrzną"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Pokaż kartę SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ukryj pamięć wewnętrzną"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ukryj kartę SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Pokaż rozmiar pliku"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Ukryj rozmiar pliku"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopiuj"</string> <string name="mode_selected_count" msgid="459111894725594625">"Wybrano: <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"Według nazwy"</string> <string name="sort_date" msgid="586080032956151448">"Według daty edycji"</string> @@ -45,11 +54,27 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Skróty"</string> <string name="root_type_device" msgid="7121342474653483538">"Urządzenia"</string> <string name="root_type_apps" msgid="8838065367985945189">"Więcej aplikacji"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Pokaż urządzenia zaawansowane"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Pokaż rozmiar pliku"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Wyświetl rozmiar urządzenia"</string> <string name="empty" msgid="7858882803708117596">"Brak elementów"</string> <string name="toast_no_application" msgid="1339885974067891667">"Nie można otworzyć pliku"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Nie można usunąć niektórych dokumentów"</string> <string name="share_via" msgid="8966594246261344259">"Udostępnij przez"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Kopiowanie plików"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Pozostało: <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="few">Kopiowanie <xliff:g id="COUNT_1">%1$d</xliff:g> plików.</item> + <item quantity="many">Kopiowanie <xliff:g id="COUNT_1">%1$d</xliff:g> plików.</item> + <item quantity="other">Kopiowanie <xliff:g id="COUNT_1">%1$d</xliff:g> pliku.</item> + <item quantity="one">Kopiowanie <xliff:g id="COUNT_0">%1$d</xliff:g> pliku.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Przygotowuję do kopiowania…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="few">Podczas kopiowania <xliff:g id="COUNT_1">%1$d</xliff:g> plików wystąpił błąd.</item> + <item quantity="many">Podczas kopiowania <xliff:g id="COUNT_1">%1$d</xliff:g> plików wystąpił błąd.</item> + <item quantity="other">Podczas kopiowania <xliff:g id="COUNT_1">%1$d</xliff:g> pliku wystąpił błąd.</item> + <item quantity="one">Podczas kopiowania <xliff:g id="COUNT_0">%1$d</xliff:g> pliku wystąpił błąd.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Kliknij, by zobaczyć szczegóły"</string> + <string name="retry" msgid="7564024179122207376">"Ponów"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Błąd podczas kopiowania plików"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Te pliki nie zostały skopiowane: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-pt-rPT/strings.xml b/packages/DocumentsUI/res/values-pt-rPT/strings.xml index 0003c05..982b68e 100644 --- a/packages/DocumentsUI/res/values-pt-rPT/strings.xml +++ b/packages/DocumentsUI/res/values-pt-rPT/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Partilhar"</string> <string name="menu_delete" msgid="8138799623850614177">"Eliminar"</string> <string name="menu_select" msgid="8711270657353563424">"Selecionar \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Selecionar tudo"</string> + <string name="menu_copy" msgid="3612326052677229148">"Copiar para…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostrar mem. armaz. int."</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostrar cartão SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ocultar mem. armaz. int."</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar cartão SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tam. de fich."</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tam. de fich."</string> + <string name="button_copy" msgid="8706475544635021302">"Copiar"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selecionado(s)"</string> <string name="sort_name" msgid="9183560467917256779">"Por nome"</string> <string name="sort_date" msgid="586080032956151448">"Por data de modificação"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Atalhos"</string> <string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string> <string name="root_type_apps" msgid="8838065367985945189">"Mais aplicações"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Ver dispositivos avançados"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Apresentar tamanho do ficheiro"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Apresentar tamanho do dispositivo"</string> <string name="empty" msgid="7858882803708117596">"Sem itens"</string> <string name="toast_no_application" msgid="1339885974067891667">"Não é possível abrir o ficheiro"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Não é possível eliminar alguns documentos"</string> <string name="share_via" msgid="8966594246261344259">"Partilhar através de"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"A copiar ficheiros"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Faltam <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">A copiar <xliff:g id="COUNT_1">%1$d</xliff:g> ficheiros.</item> + <item quantity="one">A copiar <xliff:g id="COUNT_0">%1$d</xliff:g> ficheiro.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"A preparar para copiar…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Erro ao copiar <xliff:g id="COUNT_1">%1$d</xliff:g> ficheiros.</item> + <item quantity="one">Erro ao copiar <xliff:g id="COUNT_0">%1$d</xliff:g> ficheiro.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Toque para ver detalhes"</string> + <string name="retry" msgid="7564024179122207376">"Tentar novamente"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Erro ao copiar os ficheiros"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Os ficheiros seguintes não foram copiados: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-pt/strings.xml b/packages/DocumentsUI/res/values-pt/strings.xml index 4a5c72a..17c8e2b 100644 --- a/packages/DocumentsUI/res/values-pt/strings.xml +++ b/packages/DocumentsUI/res/values-pt/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Compartilhar"</string> <string name="menu_delete" msgid="8138799623850614177">"Excluir"</string> <string name="menu_select" msgid="8711270657353563424">"Selecionar \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Selecionar tudo"</string> + <string name="menu_copy" msgid="3612326052677229148">"Copiar para..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Mostrar armaz. interno"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Mostrar cartão SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ocultar armaz. interno"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ocultar cartão SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Mostrar tam. do arquivo"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Ocultar tam. do arquivo"</string> + <string name="button_copy" msgid="8706475544635021302">"Copiar"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selecionados"</string> <string name="sort_name" msgid="9183560467917256779">"Por nome"</string> <string name="sort_date" msgid="586080032956151448">"Por data de modificação"</string> @@ -44,12 +53,24 @@ <string name="root_type_service" msgid="2178854894416775409">"Serviços de armazenamento"</string> <string name="root_type_shortcut" msgid="3318760609471618093">"Atalhos"</string> <string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string> - <string name="root_type_apps" msgid="8838065367985945189">"Mais aplicativos"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Mostrar dispositivos avançados"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Mostrar tamanho do arquivo"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Mostrar tamanho do dispositivo"</string> + <string name="root_type_apps" msgid="8838065367985945189">"Mais apps"</string> <string name="empty" msgid="7858882803708117596">"Nenhum item"</string> <string name="toast_no_application" msgid="1339885974067891667">"Não é possível abrir o arquivo"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Não foi possível excluir alguns documentos"</string> <string name="share_via" msgid="8966594246261344259">"Compartilhar via"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Copiando arquivos"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> restantes"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Copiando <xliff:g id="COUNT_1">%1$d</xliff:g> arquivos.</item> + <item quantity="other">Copiando <xliff:g id="COUNT_1">%1$d</xliff:g> arquivos.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Preparando para copiar..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Erro ao copiar <xliff:g id="COUNT_1">%1$d</xliff:g> arquivos.</item> + <item quantity="other">Erro ao copiar <xliff:g id="COUNT_1">%1$d</xliff:g> arquivos.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Toque para ver detalhes"</string> + <string name="retry" msgid="7564024179122207376">"Repetir"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Erro ao copiar arquivos"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Os seguintes arquivos não foram copiados: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-ro/strings.xml b/packages/DocumentsUI/res/values-ro/strings.xml index 0dfa11d4..d6cfaee 100644 --- a/packages/DocumentsUI/res/values-ro/strings.xml +++ b/packages/DocumentsUI/res/values-ro/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Distribuiți"</string> <string name="menu_delete" msgid="8138799623850614177">"Ștergeți"</string> <string name="menu_select" msgid="8711270657353563424">"Selectați „<xliff:g id="DIRECTORY">^1</xliff:g>”"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Selectați-le pe toate"</string> + <string name="menu_copy" msgid="3612326052677229148">"Copiați în…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Afișați stocarea internă"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Afișați cardul SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ascundeți stocarea internă"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ascundeți cardul SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Afișați mărime fișiere"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Ascundeți mărime fișiere"</string> + <string name="button_copy" msgid="8706475544635021302">"Copiați"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selectate"</string> <string name="sort_name" msgid="9183560467917256779">"După nume"</string> <string name="sort_date" msgid="586080032956151448">"După data modificării"</string> @@ -45,11 +54,25 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Comenzi rapide"</string> <string name="root_type_device" msgid="7121342474653483538">"Dispozitive"</string> <string name="root_type_apps" msgid="8838065367985945189">"Alte aplicații"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Afișați dispozitive avansate"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Afișați dimensiunile fișierelor"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Afișați capacitatea de stocare a dispozitivelor"</string> <string name="empty" msgid="7858882803708117596">"Nu există elemente"</string> <string name="toast_no_application" msgid="1339885974067891667">"Fișierul nu poate fi deschis"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Unele documente nu au putut fi șterse"</string> <string name="share_via" msgid="8966594246261344259">"Distribuiți prin"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Se copiază fișierele"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Timp rămas: <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="few">Se copiază <xliff:g id="COUNT_1">%1$d</xliff:g> fișiere.</item> + <item quantity="other">Se copiază <xliff:g id="COUNT_1">%1$d</xliff:g> de fișiere.</item> + <item quantity="one">Se copiază <xliff:g id="COUNT_0">%1$d</xliff:g> fișier.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Se pregătește copierea..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="few">Eroare la copiere pentru <xliff:g id="COUNT_1">%1$d</xliff:g> fișiere.</item> + <item quantity="other">Eroare la copiere pentru <xliff:g id="COUNT_1">%1$d</xliff:g> de fișiere.</item> + <item quantity="one">Eroare la copiere pentru <xliff:g id="COUNT_0">%1$d</xliff:g> fișier.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Atingeți pentru a afișa detaliile"</string> + <string name="retry" msgid="7564024179122207376">"Reîncercați"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Eroare la copierea fișierelor"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Următoarele fișiere nu au fost copiate: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-ru/strings.xml b/packages/DocumentsUI/res/values-ru/strings.xml index f86a4af..77dd9c5 100644 --- a/packages/DocumentsUI/res/values-ru/strings.xml +++ b/packages/DocumentsUI/res/values-ru/strings.xml @@ -20,7 +20,7 @@ <string name="title_open" msgid="4353228937663917801">"Открыть"</string> <string name="title_save" msgid="2433679664882857999">"Сохранить"</string> <string name="menu_create_dir" msgid="5947289605844398389">"Новая папка"</string> - <string name="menu_grid" msgid="6878021334497835259">"Таблица"</string> + <string name="menu_grid" msgid="6878021334497835259">"Сетка"</string> <string name="menu_list" msgid="7279285939892417279">"Список"</string> <string name="menu_sort" msgid="7677740407158414452">"Сортировать"</string> <string name="menu_search" msgid="3816712084502856974">"Поиск"</string> @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Поделиться"</string> <string name="menu_delete" msgid="8138799623850614177">"Удалить"</string> <string name="menu_select" msgid="8711270657353563424">"Выбрать папку \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Выбрать все"</string> + <string name="menu_copy" msgid="3612326052677229148">"Копировать в…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Внутренняя память"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD-карта"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Скрыть внутреннюю память"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Скрыть SD-карту"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Показать размер файлов"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Скрыть размер файлов"</string> + <string name="button_copy" msgid="8706475544635021302">"Копировать"</string> <string name="mode_selected_count" msgid="459111894725594625">"Выбрано: <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"По названию"</string> <string name="sort_date" msgid="586080032956151448">"По дате изменения"</string> @@ -45,11 +54,27 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Ярлыки"</string> <string name="root_type_device" msgid="7121342474653483538">"Устройства"</string> <string name="root_type_apps" msgid="8838065367985945189">"Другие приложения"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Показать другие устройства"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Показать размер файла"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Показать размер устройства"</string> <string name="empty" msgid="7858882803708117596">"Ничего нет"</string> <string name="toast_no_application" msgid="1339885974067891667">"Не удалось открыть файл"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Не удалось удалить некоторые документы"</string> <string name="share_via" msgid="8966594246261344259">"Поделиться"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Копирование файлов"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Осталось <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Копируется <xliff:g id="COUNT_1">%1$d</xliff:g> файл...</item> + <item quantity="few">Копируется <xliff:g id="COUNT_1">%1$d</xliff:g> файла...</item> + <item quantity="many">Копируется <xliff:g id="COUNT_1">%1$d</xliff:g> файлов...</item> + <item quantity="other">Копируется <xliff:g id="COUNT_1">%1$d</xliff:g> файла...</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Подготовка к копированию…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Не удалось скопировать <xliff:g id="COUNT_1">%1$d</xliff:g> файл</item> + <item quantity="few">Не удалось скопировать <xliff:g id="COUNT_1">%1$d</xliff:g> файла</item> + <item quantity="many">Не удалось скопировать <xliff:g id="COUNT_1">%1$d</xliff:g> файлов</item> + <item quantity="other">Не удалось скопировать <xliff:g id="COUNT_1">%1$d</xliff:g> файла</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Нажмите, чтобы узнать подробности."</string> + <string name="retry" msgid="7564024179122207376">"Повторить"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Во время копирования файлов произошла ошибка"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Не удалось скопировать следующие файлы: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-si-rLK/strings.xml b/packages/DocumentsUI/res/values-si-rLK/strings.xml index 3d6eadf..0dff55f 100644 --- a/packages/DocumentsUI/res/values-si-rLK/strings.xml +++ b/packages/DocumentsUI/res/values-si-rLK/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"බෙදාගන්න"</string> <string name="menu_delete" msgid="8138799623850614177">"මකන්න"</string> <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" තෝරන්න"</string> + <string name="menu_select_all" msgid="4320518282375109902">"සියල්ල තෝරන්න"</string> + <string name="menu_copy" msgid="3612326052677229148">"වෙත පිටපත් කරන්න..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"අභ්යන්තර ආචයනය පෙන්වන්න"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD කාඩ් පත පෙන්වන්න"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"අභ්යන්තර ආචයනය සඟවන්න"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD කාඩ් පත සඟවන්න"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"ගොනු ප්රමණය පෙන්වන්න"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"ගොනු ප්රමණය සඟවන්න"</string> + <string name="button_copy" msgid="8706475544635021302">"පිටපත් කිරීම"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ක් තෝරාගන්නා ලදි"</string> <string name="sort_name" msgid="9183560467917256779">"නමින්"</string> <string name="sort_date" msgid="586080032956151448">"වෙනස් කරන ලද දිනයෙන්"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"කෙටිමං"</string> <string name="root_type_device" msgid="7121342474653483538">"උපාංග"</string> <string name="root_type_apps" msgid="8838065367985945189">"තවත් යෙදුම්"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"උසස් උපාංග දර්ශනය කරන්න"</string> - <string name="pref_file_size" msgid="2826879315743961459">"ගොනු ප්රමාණය දර්ශනය කරන්න"</string> - <string name="pref_device_size" msgid="3542106883278997222">"උපාංග ප්රමාණය දර්ශනය කරන්න"</string> <string name="empty" msgid="7858882803708117596">"අයිතම නැත"</string> <string name="toast_no_application" msgid="1339885974067891667">"ගොනුව විවෘත කළ නොහැක"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"සමහර ලේඛන මැකීමට නොහැකි විය"</string> <string name="share_via" msgid="8966594246261344259">"හරහා බෙදාගන්න"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"ගොනු පිටපත් කරමින්"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> ඉතිරියි"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">ගොනු <xliff:g id="COUNT_1">%1$d</xliff:g> ක් පිටපත් කරමින්.</item> + <item quantity="other">ගොනු <xliff:g id="COUNT_1">%1$d</xliff:g> ක් පිටපත් කරමින්.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"පිටපතක් සඳහා සූදානම් කරමින්..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">ගොනු <xliff:g id="COUNT_1">%1$d</xliff:g> ක් පිටපත් කිරීමේ දෝෂය</item> + <item quantity="other">ගොනු <xliff:g id="COUNT_1">%1$d</xliff:g> ක් පිටපත් කිරීමේ දෝෂය</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"විස්තර බැලීමට ස්පර්ශ කරන්න"</string> + <string name="retry" msgid="7564024179122207376">"නැවත උත්සාහ කරන්න"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"ගොනු පිටපත් කිරීමේ දෝෂය"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"පහත ගොනු පිටපත් නොකෙරේ: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-sk/strings.xml b/packages/DocumentsUI/res/values-sk/strings.xml index 5d03df6..a4c2b58 100644 --- a/packages/DocumentsUI/res/values-sk/strings.xml +++ b/packages/DocumentsUI/res/values-sk/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Zdieľať"</string> <string name="menu_delete" msgid="8138799623850614177">"Odstrániť"</string> <string name="menu_select" msgid="8711270657353563424">"Vyberte adresár <xliff:g id="DIRECTORY">^1</xliff:g>"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Vybrať všetko"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopírovať do…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Zobraziť interné úložisko"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Zobraziť kartu SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Skryť interné úložisko"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skryť kartu SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Zobraziť veľkosť súboru"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Skryť veľkosť súboru"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopírovať"</string> <string name="mode_selected_count" msgid="459111894725594625">"Vybraté: <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"Podľa názvu"</string> <string name="sort_date" msgid="586080032956151448">"Podľa dátumu zmeny"</string> @@ -45,11 +54,27 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Skratky"</string> <string name="root_type_device" msgid="7121342474653483538">"Zariadenia"</string> <string name="root_type_apps" msgid="8838065367985945189">"Ďalšie aplikácie"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Zobraziť pokročilé zariadenia"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Zobraziť veľkosť súboru"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Zobraziť veľkosť zariadenia"</string> <string name="empty" msgid="7858882803708117596">"Žiadne položky"</string> <string name="toast_no_application" msgid="1339885974067891667">"Súbor sa nepodarilo otvoriť"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Niektoré dokumenty sa nepodarilo odstrániť"</string> <string name="share_via" msgid="8966594246261344259">"Zdieľať pomocou"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Kopírovanie súborov"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Zostáva: <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="few">Kopírujú sa <xliff:g id="COUNT_1">%1$d</xliff:g> súbory.</item> + <item quantity="many">Kopíruje sa <xliff:g id="COUNT_1">%1$d</xliff:g> súboru.</item> + <item quantity="other">Kopíruje sa <xliff:g id="COUNT_1">%1$d</xliff:g> súborov.</item> + <item quantity="one">Kopíruje sa <xliff:g id="COUNT_0">%1$d</xliff:g> súbor.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Pripravuje sa na kopírovanie..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="few">Pri kopírovaní <xliff:g id="COUNT_1">%1$d</xliff:g> súborov sa vyskytla chyba</item> + <item quantity="many">Pri kopírovaní <xliff:g id="COUNT_1">%1$d</xliff:g> súboru sa vyskytla chyba</item> + <item quantity="other">Pri kopírovaní <xliff:g id="COUNT_1">%1$d</xliff:g> súborov sa vyskytla chyba</item> + <item quantity="one">Pri kopírovaní <xliff:g id="COUNT_0">%1$d</xliff:g> súboru sa vyskytla chyba</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Klepnutím zobrazíte podrobné informácie"</string> + <string name="retry" msgid="7564024179122207376">"Skúsiť znova"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Pri kopírovaní súborov sa vyskytla chyba"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Nasledujúce súbory neboli skopírované: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-sl/strings.xml b/packages/DocumentsUI/res/values-sl/strings.xml index b3e52dd..d232ba0 100644 --- a/packages/DocumentsUI/res/values-sl/strings.xml +++ b/packages/DocumentsUI/res/values-sl/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Skupna raba"</string> <string name="menu_delete" msgid="8138799623850614177">"Izbriši"</string> <string name="menu_select" msgid="8711270657353563424">"Izbira mape »<xliff:g id="DIRECTORY">^1</xliff:g>«"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Izberi vse"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopiranje v …"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Pokaži notranjo shrambo"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Pokaži kartico SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Skrij notranjo shrambo"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Skrij kartico SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Pokaži velikost datoteke"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Skrij velikost datoteke"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopiraj"</string> <string name="mode_selected_count" msgid="459111894725594625">"Št. izbranih: <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"Po imenu"</string> <string name="sort_date" msgid="586080032956151448">"Po datumu spremembe"</string> @@ -45,11 +54,27 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Bližnjice"</string> <string name="root_type_device" msgid="7121342474653483538">"Naprave"</string> <string name="root_type_apps" msgid="8838065367985945189">"Več aplikacij"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Prikaz naprednih naprav"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Prikaz velikosti datoteke"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Prikaz velikosti naprave"</string> <string name="empty" msgid="7858882803708117596">"Ni elementov"</string> <string name="toast_no_application" msgid="1339885974067891667">"Datoteke ni mogoče odpreti"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Nekaterih dokumentov ni mogoče izbrisati"</string> <string name="share_via" msgid="8966594246261344259">"Deli z drugimi prek"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Kopiranje datotek"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Še <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Kopiranje <xliff:g id="COUNT_1">%1$d</xliff:g> datoteke.</item> + <item quantity="two">Kopiranje <xliff:g id="COUNT_1">%1$d</xliff:g> datotek.</item> + <item quantity="few">Kopiranje <xliff:g id="COUNT_1">%1$d</xliff:g> datotek.</item> + <item quantity="other">Kopiranje <xliff:g id="COUNT_1">%1$d</xliff:g> datotek.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Pripravljanje na kopiranje …"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Napaka pri kopiranju <xliff:g id="COUNT_1">%1$d</xliff:g> datoteke.</item> + <item quantity="two">Napaka pri kopiranju <xliff:g id="COUNT_1">%1$d</xliff:g> datotek.</item> + <item quantity="few">Napaka pri kopiranju <xliff:g id="COUNT_1">%1$d</xliff:g> datotek.</item> + <item quantity="other">Napaka pri kopiranju <xliff:g id="COUNT_1">%1$d</xliff:g> datotek.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Dotaknite se za ogled podrobnosti"</string> + <string name="retry" msgid="7564024179122207376">"Poskusi znova"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Napaka pri kopiranju datotek"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Te datoteke niso kopirane: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-sr/strings.xml b/packages/DocumentsUI/res/values-sr/strings.xml index 892dbce..80c59ba 100644 --- a/packages/DocumentsUI/res/values-sr/strings.xml +++ b/packages/DocumentsUI/res/values-sr/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Дели"</string> <string name="menu_delete" msgid="8138799623850614177">"Избриши"</string> <string name="menu_select" msgid="8711270657353563424">"Изабери „<xliff:g id="DIRECTORY">^1</xliff:g>“"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Изабери све"</string> + <string name="menu_copy" msgid="3612326052677229148">"Копирај на..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Прикажи интерну меморију"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Прикажи SD картицу"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Сакриј интерну меморију"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Сакриј SD картицу"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Прикажи величину датотеке"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Сакриј величину датотеке"</string> + <string name="button_copy" msgid="8706475544635021302">"Копирај"</string> <string name="mode_selected_count" msgid="459111894725594625">"Изабрано је <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"Према имену"</string> <string name="sort_date" msgid="586080032956151448">"Према датуму измене"</string> @@ -45,11 +54,25 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Пречице"</string> <string name="root_type_device" msgid="7121342474653483538">"Уређаји"</string> <string name="root_type_apps" msgid="8838065367985945189">"Још апликација"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Прикажи напредне уређаје"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Прикажи величину датотеке"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Прикажи величину уређаја"</string> <string name="empty" msgid="7858882803708117596">"Нема ставки"</string> <string name="toast_no_application" msgid="1339885974067891667">"Није могуће отворити датотеку"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Није могуће избрисати неке документе"</string> <string name="share_via" msgid="8966594246261344259">"Делите преко"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Копирање датотека"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Још <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Копирање <xliff:g id="COUNT_1">%1$d</xliff:g> датотеке.</item> + <item quantity="few">Копирање <xliff:g id="COUNT_1">%1$d</xliff:g> датотеке.</item> + <item quantity="other">Копирање <xliff:g id="COUNT_1">%1$d</xliff:g> датотека.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Припрема се копирање…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Грешка при копирању <xliff:g id="COUNT_1">%1$d</xliff:g> датотеке.</item> + <item quantity="few">Грешка при копирању <xliff:g id="COUNT_1">%1$d</xliff:g> датотеке.</item> + <item quantity="other">Грешка при копирању <xliff:g id="COUNT_1">%1$d</xliff:g> датотека.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Додирните да бисте видели детаље"</string> + <string name="retry" msgid="7564024179122207376">"Покушај поново"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Грешка при копирању датотека"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Следеће датотеке нису копиране: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-sv/strings.xml b/packages/DocumentsUI/res/values-sv/strings.xml index fd6457d..509b084 100644 --- a/packages/DocumentsUI/res/values-sv/strings.xml +++ b/packages/DocumentsUI/res/values-sv/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Dela"</string> <string name="menu_delete" msgid="8138799623850614177">"Ta bort"</string> <string name="menu_select" msgid="8711270657353563424">"Välj <xliff:g id="DIRECTORY">^1</xliff:g>"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Markera alla"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopiera till …"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Visa internminne"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Visa SD-kort"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Dölj internminne"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Dölj SD-kort"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Visa filstorlek"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Dölj filstorlek"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopiera"</string> <string name="mode_selected_count" msgid="459111894725594625">"Har valt <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"Efter namn"</string> <string name="sort_date" msgid="586080032956151448">"Efter ändringsdatum"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Genvägar"</string> <string name="root_type_device" msgid="7121342474653483538">"Enheter"</string> <string name="root_type_apps" msgid="8838065367985945189">"Fler appar"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Visa avancerade enheter"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Visa filstorlek"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Bildskärmsstorlek"</string> <string name="empty" msgid="7858882803708117596">"Inga objekt"</string> <string name="toast_no_application" msgid="1339885974067891667">"Det går inte att öppna filen"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Det gick inte att ta bort vissa dokument"</string> <string name="share_via" msgid="8966594246261344259">"Dela via"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Kopierar filer"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> återstår"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Kopierar <xliff:g id="COUNT_1">%1$d</xliff:g> filer.</item> + <item quantity="one">Kopierar <xliff:g id="COUNT_0">%1$d</xliff:g> fil.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Kopieringen förbereds …"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Det gick inte att kopiera <xliff:g id="COUNT_1">%1$d</xliff:g> filer.</item> + <item quantity="one">Det gick inte att kopiera <xliff:g id="COUNT_0">%1$d</xliff:g> fil.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Tryck här om du vill veta mer"</string> + <string name="retry" msgid="7564024179122207376">"Försök igen"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Det gick inte att kopiera filer"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Följande filer kopierades inte: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-sw/strings.xml b/packages/DocumentsUI/res/values-sw/strings.xml index 0948c71..e9711ed 100644 --- a/packages/DocumentsUI/res/values-sw/strings.xml +++ b/packages/DocumentsUI/res/values-sw/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Shiriki"</string> <string name="menu_delete" msgid="8138799623850614177">"Futa"</string> <string name="menu_select" msgid="8711270657353563424">"Chagua \" <xliff:g id="DIRECTORY">^1</xliff:g> \""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Chagua Zote"</string> + <string name="menu_copy" msgid="3612326052677229148">"Nakili kwenda..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Onyesha hifadhi ya ndani"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Onyesha kadi ya SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ficha hifadhi ya ndani"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ficha kadi ya SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Onyesha ukubwa wa faili"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Ficha ukubwa wa faili"</string> + <string name="button_copy" msgid="8706475544635021302">"Nakili"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> zimechaguliwa"</string> <string name="sort_name" msgid="9183560467917256779">"Kwa jina"</string> <string name="sort_date" msgid="586080032956151448">"Kwa tarehe viliporekebishwa"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Njia za mkato"</string> <string name="root_type_device" msgid="7121342474653483538">"Vifaa"</string> <string name="root_type_apps" msgid="8838065367985945189">"Programu zaidi"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Onyesha vifaa mahiri"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Onyesha ukubwa wa faili"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Onyesha ukubwa wa kifaa"</string> <string name="empty" msgid="7858882803708117596">"Hakuna vipengee"</string> <string name="toast_no_application" msgid="1339885974067891667">"Haiwezi kufungua faili"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Imeshindwa kufuta baadhi ya hati"</string> <string name="share_via" msgid="8966594246261344259">"Shiriki kupitia"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Inanakili faili"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Zimesalia <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Inanakili faili <xliff:g id="COUNT_1">%1$d</xliff:g>.</item> + <item quantity="one">Inanakili faili <xliff:g id="COUNT_0">%1$d</xliff:g>.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Inaanda kunakili..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Hitilafu ya kunakili faili <xliff:g id="COUNT_1">%1$d</xliff:g>.</item> + <item quantity="one">Hitilafu ya kunakili faili <xliff:g id="COUNT_0">%1$d</xliff:g>.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Gusa ili uone maelezo"</string> + <string name="retry" msgid="7564024179122207376">"Jaribu tena"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Hitilafu ya kunakili faili"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Faili zifuatazo hazijanakiliwa: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-ta-rIN/strings.xml b/packages/DocumentsUI/res/values-ta-rIN/strings.xml index 221769f..4e74f47 100644 --- a/packages/DocumentsUI/res/values-ta-rIN/strings.xml +++ b/packages/DocumentsUI/res/values-ta-rIN/strings.xml @@ -24,12 +24,21 @@ <string name="menu_list" msgid="7279285939892417279">"பட்டியல்"</string> <string name="menu_sort" msgid="7677740407158414452">"இதன்படி வரிசைப்படுத்து"</string> <string name="menu_search" msgid="3816712084502856974">"தேடு"</string> - <string name="menu_settings" msgid="6008033148948428823">"அமைப்புகள்"</string> + <string name="menu_settings" msgid="6008033148948428823">"அமைப்பு"</string> <string name="menu_open" msgid="432922957274920903">"திற"</string> <string name="menu_save" msgid="2394743337684426338">"சேமி"</string> <string name="menu_share" msgid="3075149983979628146">"பகிர்"</string> <string name="menu_delete" msgid="8138799623850614177">"நீக்கு"</string> <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" ஐத் தேர்ந்தெடு"</string> + <string name="menu_select_all" msgid="4320518282375109902">"எல்லாவற்றையும் தேர்ந்தெடு"</string> + <string name="menu_copy" msgid="3612326052677229148">"இங்கு நகலெடு…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"அகச் சேமிப்பகத்தைக் காட்டு"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD கார்டைக் காட்டு"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"அகச் சேமிப்பகத்தை மறை"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD கார்டை மறை"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"கோப்பு அளவைக் காட்டு"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"கோப்பு அளவை மறை"</string> + <string name="button_copy" msgid="8706475544635021302">"நகலெடு"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> தேர்ந்தெடுக்கப்பட்டன"</string> <string name="sort_name" msgid="9183560467917256779">"பெயரின்படி"</string> <string name="sort_date" msgid="586080032956151448">"தேதியின்படி திருத்தப்பட்டது"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"குறுக்குவழிகள்"</string> <string name="root_type_device" msgid="7121342474653483538">"சாதனங்கள்"</string> <string name="root_type_apps" msgid="8838065367985945189">"மேலும் பயன்பாடுகள்"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"மேம்பட்ட சாதனங்களைக் காட்டு"</string> - <string name="pref_file_size" msgid="2826879315743961459">"கோப்பின் அளவைக் காட்டு"</string> - <string name="pref_device_size" msgid="3542106883278997222">"சாதன அளவைக் காட்டு"</string> <string name="empty" msgid="7858882803708117596">"உருப்படிகள் இல்லை"</string> <string name="toast_no_application" msgid="1339885974067891667">"கோப்பைத் திறக்க முடியவில்லை"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"சில ஆவணங்களை நீக்க முடியவில்லை"</string> <string name="share_via" msgid="8966594246261344259">"இதன் வழியாகப் பகிர்"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"கோப்புகளை நகலெடுத்தல்"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> மீதமுள்ளது"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> கோப்புகளை நகலெடுக்கிறது.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> கோப்பை நகலெடுக்கிறது.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"நகல் தயாராகிறது…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> கோப்புகளை நகலெடுப்பதில் பிழை.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> கோப்பை நகலெடுப்பதில் பிழை.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"விவரங்களைப் பார்க்க, தொடவும்"</string> + <string name="retry" msgid="7564024179122207376">"மீண்டும் முயற்சிக்கவும்"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"கோப்புகளை நகலெடுப்பதில் பிழை"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"பின்வரும் கோப்புகள் நகலெடுக்கப்படவில்லை: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-te-rIN/strings.xml b/packages/DocumentsUI/res/values-te-rIN/strings.xml index 54ce484..7817b05 100644 --- a/packages/DocumentsUI/res/values-te-rIN/strings.xml +++ b/packages/DocumentsUI/res/values-te-rIN/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"భాగస్వామ్యం చేయి"</string> <string name="menu_delete" msgid="8138799623850614177">"తొలగించు"</string> <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\"ని ఎంచుకోండి"</string> + <string name="menu_select_all" msgid="4320518282375109902">"అన్నీ ఎంచుకోండి"</string> + <string name="menu_copy" msgid="3612326052677229148">"ఇక్కడికి కాపీ చేయి…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"అంతర్గత నిల్వను చూపు"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD కార్డ్ను చూపు"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"అంతర్గత నిల్వను దాచు"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD కార్డ్ను దాచు"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"ఫైల్ పరిమాణాన్ని చూపు"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"ఫైల్ పరిమాణాన్ని దాచు"</string> + <string name="button_copy" msgid="8706475544635021302">"కాపీ చేయి"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ఎంచుకోబడ్డాయి"</string> <string name="sort_name" msgid="9183560467917256779">"పేరు ద్వారా"</string> <string name="sort_date" msgid="586080032956151448">"సవరించిన తేదీ ద్వారా"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"సత్వరమార్గాలు"</string> <string name="root_type_device" msgid="7121342474653483538">"పరికరాలు"</string> <string name="root_type_apps" msgid="8838065367985945189">"మరిన్ని అనువర్తనాలు"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"అధునాతన పరికరాలను చూపు"</string> - <string name="pref_file_size" msgid="2826879315743961459">"ఫైల్ పరిమాణాన్ని ప్రదర్శించు"</string> - <string name="pref_device_size" msgid="3542106883278997222">"పరికర పరిమాణాన్ని ప్రదర్శించు"</string> <string name="empty" msgid="7858882803708117596">"అంశాలు లేవు"</string> <string name="toast_no_application" msgid="1339885974067891667">"ఫైల్ను తెరవడం సాధ్యపడదు"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"కొన్ని పత్రాలను తొలగించడం సాధ్యపడలేదు"</string> <string name="share_via" msgid="8966594246261344259">"దీని ద్వారా భాగస్వామ్యం చేయండి"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"ఫైల్లు కాపీ అవుతున్నాయి"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> మిగిలి ఉంది"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ఫైల్లను కాపీ చేస్తోంది.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ఫైల్ను కాపీ చేస్తోంది.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"కాపీ చేయడానికి సిద్ధం చేస్తోంది…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ఫైల్లను కాపీ చేయడంలో లోపం.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ఫైల్ను కాపీ చేయడంలో లోపం.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"వివరాలను వీక్షించడానికి తాకండి"</string> + <string name="retry" msgid="7564024179122207376">"మళ్లీ ప్రయత్నించు"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"ఫైల్లను కాపీ చేయడంలో లోపం"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"క్రింది ఫైల్లు కాపీ చేయబడలేదు: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-th/strings.xml b/packages/DocumentsUI/res/values-th/strings.xml index 4bf3e4f..eea8504 100644 --- a/packages/DocumentsUI/res/values-th/strings.xml +++ b/packages/DocumentsUI/res/values-th/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"แชร์"</string> <string name="menu_delete" msgid="8138799623850614177">"ลบ"</string> <string name="menu_select" msgid="8711270657353563424">"เลือก \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"เลือกทั้งหมด"</string> + <string name="menu_copy" msgid="3612326052677229148">"คัดลอกไปยัง…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"แสดงที่จัดเก็บภายใน"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"แสดงการ์ด SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"ซ่อนที่จัดเก็บภายใน"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"ซ่อนการ์ด SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"แสดงขนาดไฟล์"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"ซ่อนขนาดไฟล์"</string> + <string name="button_copy" msgid="8706475544635021302">"คัดลอก"</string> <string name="mode_selected_count" msgid="459111894725594625">"เลือกไว้ <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"ตามชื่อ"</string> <string name="sort_date" msgid="586080032956151448">"ตามวันที่ที่ปรับเปลี่ยน"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"ทางลัด"</string> <string name="root_type_device" msgid="7121342474653483538">"อุปกรณ์"</string> <string name="root_type_apps" msgid="8838065367985945189">"แอปเพิ่มเติม"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"แสดงอุปกรณ์ขั้นสูง"</string> - <string name="pref_file_size" msgid="2826879315743961459">"แสดงขนาดของไฟล์"</string> - <string name="pref_device_size" msgid="3542106883278997222">"แสดงขนาดของอุปกรณ์"</string> <string name="empty" msgid="7858882803708117596">"ไม่มีรายการ"</string> <string name="toast_no_application" msgid="1339885974067891667">"ไม่สามารถเปิดไฟล์ได้"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"ไม่สามารถลบเอกสารบางรายการ"</string> <string name="share_via" msgid="8966594246261344259">"แชร์ผ่าน"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"กำลังคัดลอกไฟล์"</string> + <string name="copy_remaining" msgid="6283790937387975095">"เหลือ <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">กำลังคัดลอก <xliff:g id="COUNT_1">%1$d</xliff:g> ไฟล์</item> + <item quantity="one">กำลังคัดลอก <xliff:g id="COUNT_0">%1$d</xliff:g> ไฟล์</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"กำลังเตรียมการคัดลอก…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">เกิดข้อผิดพลาดในการคัดลอก <xliff:g id="COUNT_1">%1$d</xliff:g> ไฟล์</item> + <item quantity="one">เกิดข้อผิดพลาดในการคัดลอก <xliff:g id="COUNT_0">%1$d</xliff:g> ไฟล์</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"แตะเพื่อดูรายละเอียด"</string> + <string name="retry" msgid="7564024179122207376">"ลองอีกครั้ง"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"เกิดข้อผิดพลากในการคัดลอกไฟล์"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"ไฟล์ต่อไปนี้ไม่ได้รับการคัดลอก: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-tl/strings.xml b/packages/DocumentsUI/res/values-tl/strings.xml index 8ef8aa5..de0b083 100644 --- a/packages/DocumentsUI/res/values-tl/strings.xml +++ b/packages/DocumentsUI/res/values-tl/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Ibahagi"</string> <string name="menu_delete" msgid="8138799623850614177">"Tanggalin"</string> <string name="menu_select" msgid="8711270657353563424">"Piliin ang \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Piliin Lahat"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopyahin sa..."</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Ipakita internal storage"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Ipakita ang SD card"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Itago internal storage"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Itago ang SD card"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Ipakita ang laki ng file"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Itago ang laki ng file"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopyahin"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ang pinili"</string> <string name="sort_name" msgid="9183560467917256779">"Ayon sa pangalan"</string> <string name="sort_date" msgid="586080032956151448">"Ayon sa petsa ng pagbago"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Mga Shortcut"</string> <string name="root_type_device" msgid="7121342474653483538">"Mga Device"</string> <string name="root_type_apps" msgid="8838065367985945189">"Higit pang apps"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Ipakita ang mga advanced na device"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Ipakita ang laki ng file"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Ipakita ang laki ng device"</string> <string name="empty" msgid="7858882803708117596">"Walang mga item"</string> <string name="toast_no_application" msgid="1339885974067891667">"Hindi mabuksan ang file"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Hindi matanggal ang ilang dokumento"</string> <string name="share_via" msgid="8966594246261344259">"Ibahagi sa pamamagitan ng"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Kinokopya ang mga file"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> na lang ang natitira"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Kumokopya ng <xliff:g id="COUNT_1">%1$d</xliff:g> file.</item> + <item quantity="other">Kumokopya ng <xliff:g id="COUNT_1">%1$d</xliff:g> na file.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Naghahanda para sa pagkopya…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Nagkaroon ng error sa pagkopya sa <xliff:g id="COUNT_1">%1$d</xliff:g> file.</item> + <item quantity="other">Nagkaroon ng error sa pagkopya sa <xliff:g id="COUNT_1">%1$d</xliff:g> na file.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Pindutin upang tingnan ang mga detalye"</string> + <string name="retry" msgid="7564024179122207376">"Subukang muli"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Nagkaroon ng error sa pagkopya sa mga file"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Hindi nakopya ang mga sumusunod na file: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-tr/strings.xml b/packages/DocumentsUI/res/values-tr/strings.xml index 93586d0..fbfdec0 100644 --- a/packages/DocumentsUI/res/values-tr/strings.xml +++ b/packages/DocumentsUI/res/values-tr/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Paylaş"</string> <string name="menu_delete" msgid="8138799623850614177">"Sil"</string> <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" dizinini seç"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Tümünü Seç"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopyala…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Dahili depolamayı göster"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD kartı göster"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Dahili depolamayı gizle"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD kartı gizle"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Dosya boyutunu göster"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Dosya boyutunu gizle"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopyala"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> tane seçildi"</string> <string name="sort_name" msgid="9183560467917256779">"Ada göre"</string> <string name="sort_date" msgid="586080032956151448">"Değişiklik tarihine göre"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Kısayollar"</string> <string name="root_type_device" msgid="7121342474653483538">"Cihazlar"</string> <string name="root_type_apps" msgid="8838065367985945189">"Diğer uygulamalar"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Gelişmiş cihazları göster"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Dosya boyutunu göster"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Cihaz boyutunu göster"</string> <string name="empty" msgid="7858882803708117596">"Öğe yok"</string> <string name="toast_no_application" msgid="1339885974067891667">"Dosya açılamıyor"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Bazı dokümanlar silinemiyor"</string> <string name="share_via" msgid="8966594246261344259">"Şunu kullanarak paylaş:"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Dosyalar kopyalanıyor"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> kaldı"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> dosya kopyalanıyor.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> dosya kopyalanıyor.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Kopyalanmak için hazırlanıyor…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> dosya kopyalanırken hata oluştu.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> dosya kopyalanırken hata oluştu.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Ayrıntıları görüntülemek için dokunun"</string> + <string name="retry" msgid="7564024179122207376">"Yeniden dene"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Dosyalar kopyalanırken hata oluştu"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Şu dosyalar kopyalanmadı: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-uk/strings.xml b/packages/DocumentsUI/res/values-uk/strings.xml index 8f8865b..1108e66 100644 --- a/packages/DocumentsUI/res/values-uk/strings.xml +++ b/packages/DocumentsUI/res/values-uk/strings.xml @@ -17,7 +17,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_label" msgid="2783841764617238354">"Документи"</string> - <string name="title_open" msgid="4353228937663917801">"Відкрити в"</string> + <string name="title_open" msgid="4353228937663917801">"Відкрити"</string> <string name="title_save" msgid="2433679664882857999">"Зберегти в"</string> <string name="menu_create_dir" msgid="5947289605844398389">"Створити папку"</string> <string name="menu_grid" msgid="6878021334497835259">"Режим таблиці"</string> @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Поділитися"</string> <string name="menu_delete" msgid="8138799623850614177">"Видалити"</string> <string name="menu_select" msgid="8711270657353563424">"Вибрати каталог \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Вибрати все"</string> + <string name="menu_copy" msgid="3612326052677229148">"Копіювати в…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Показати внутр. пам’ять"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Показати карту SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Сховати внутр. пам’ять"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Сховати карту SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Показати розмір файлу"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Сховати розмір файлу"</string> + <string name="button_copy" msgid="8706475544635021302">"Копіювати"</string> <string name="mode_selected_count" msgid="459111894725594625">"Вибрано <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"За назвою"</string> <string name="sort_date" msgid="586080032956151448">"За датою змінення"</string> @@ -45,11 +54,27 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Ярлики"</string> <string name="root_type_device" msgid="7121342474653483538">"Пристрої"</string> <string name="root_type_apps" msgid="8838065367985945189">"Інші програми"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Показати покращені пристрої"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Показати розмір файлу"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Показати розмір пристрою"</string> <string name="empty" msgid="7858882803708117596">"Немає елементів"</string> <string name="toast_no_application" msgid="1339885974067891667">"Не вдалося відкрити файл"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Не вдалося видалити деякі документи"</string> <string name="share_via" msgid="8966594246261344259">"Надіслати через"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Копіювання файлів"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Залишилося <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Копіювання <xliff:g id="COUNT_1">%1$d</xliff:g> файлу.</item> + <item quantity="few">Копіювання <xliff:g id="COUNT_1">%1$d</xliff:g> файлів.</item> + <item quantity="many">Копіювання <xliff:g id="COUNT_1">%1$d</xliff:g> файлів.</item> + <item quantity="other">Копіювання <xliff:g id="COUNT_1">%1$d</xliff:g> файлу.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Підготовка до копіювання…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Не вдалося скопіювати <xliff:g id="COUNT_1">%1$d</xliff:g> файл.</item> + <item quantity="few">Не вдалося скопіювати <xliff:g id="COUNT_1">%1$d</xliff:g> файли.</item> + <item quantity="many">Не вдалося скопіювати <xliff:g id="COUNT_1">%1$d</xliff:g> файлів.</item> + <item quantity="other">Не вдалося скопіювати <xliff:g id="COUNT_1">%1$d</xliff:g> файла.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Торкніться, щоб дізнатися більше"</string> + <string name="retry" msgid="7564024179122207376">"Повторити"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Не вдалося скопіювати файли"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Не вдалося скопіювати ці файли: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-ur-rPK/strings.xml b/packages/DocumentsUI/res/values-ur-rPK/strings.xml index a57f5b1..c54cb03 100644 --- a/packages/DocumentsUI/res/values-ur-rPK/strings.xml +++ b/packages/DocumentsUI/res/values-ur-rPK/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"اشتراک کریں"</string> <string name="menu_delete" msgid="8138799623850614177">"حذف کریں"</string> <string name="menu_select" msgid="8711270657353563424">"\"<xliff:g id="DIRECTORY">^1</xliff:g>\" منتخب کریں"</string> + <string name="menu_select_all" msgid="4320518282375109902">"سبھی منتخب کریں"</string> + <string name="menu_copy" msgid="3612326052677229148">"اس پر کاپی ہو رہی ہے…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"داخلی اسٹوریج دکھائیں"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD کارڈ دکھائیں"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"داخلی اسٹوریج چھپائیں"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD کارڈ چھپائیں"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"فائل سائز دکھائیں"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"فائل سائز چھپائیں"</string> + <string name="button_copy" msgid="8706475544635021302">"کاپی کریں"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> کو منتخب کیا گیا"</string> <string name="sort_name" msgid="9183560467917256779">"نام کے لحاظ سے"</string> <string name="sort_date" msgid="586080032956151448">"ترمیم کی تاریخ کے لحاظ سے"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"شارٹ کٹس"</string> <string name="root_type_device" msgid="7121342474653483538">"آلات"</string> <string name="root_type_apps" msgid="8838065367985945189">"مزید ایپس"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"جدید آلات ڈسپلے کریں"</string> - <string name="pref_file_size" msgid="2826879315743961459">"فائل کا سائز ڈسپلے کریں"</string> - <string name="pref_device_size" msgid="3542106883278997222">"آلہ کا سائز ڈسپلے کریں"</string> <string name="empty" msgid="7858882803708117596">"کوئی آئٹمز نہيں ہیں"</string> <string name="toast_no_application" msgid="1339885974067891667">"فائل نہيں کھول سکتے ہیں"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"کچھ دستاویزات کو حذف کرنے سے قاصر"</string> <string name="share_via" msgid="8966594246261344259">"اشتراک کریں بذریعہ"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"فائلیں کاپی ہو رہی ہیں"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> باقی ہے"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> فائلیں کاپی کی جا رہی ہیں۔</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> فائل کاپی کی جا رہی ہے۔</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"کاپی کیلئے تیار ہو رہا ہے…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> فائلز کاپی کرنے میں خرابی پیش آ گئی۔</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> فائل کاپی کرنے میں خرابی پیش آ گئی۔</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"تفصیلات دیکھنے کیلئے ٹچ کریں"</string> + <string name="retry" msgid="7564024179122207376">"دوبارہ کوشش کریں"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"فائلز کاپی کرنے میں خرابی پیش آ گئی"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"مندرجہ ذیل فائلز کاپی نہیں کی گئیں: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-uz-rUZ/strings.xml b/packages/DocumentsUI/res/values-uz-rUZ/strings.xml index 2ba2bab..bf9d24b 100644 --- a/packages/DocumentsUI/res/values-uz-rUZ/strings.xml +++ b/packages/DocumentsUI/res/values-uz-rUZ/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Ulashish"</string> <string name="menu_delete" msgid="8138799623850614177">"O‘chirish"</string> <string name="menu_select" msgid="8711270657353563424">"“<xliff:g id="DIRECTORY">^1</xliff:g>” jildini tanlash"</string> + <string name="menu_select_all" msgid="4320518282375109902">"Barchasini tanlash"</string> + <string name="menu_copy" msgid="3612326052677229148">"...ga nusxalash"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Ichki xotirani ko‘rsatish"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"SD kartani ko‘rsatish"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ichki xotirani berkitish"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"SD kartani berkitish"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Fayl hajmini ko‘rsatish"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Fayl hajmini berkitish"</string> + <string name="button_copy" msgid="8706475544635021302">"Nusxalash"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> belgilandi"</string> <string name="sort_name" msgid="9183560467917256779">"Nomi bo‘yicha"</string> <string name="sort_date" msgid="586080032956151448">"Tahrir sanasi bo‘yicha"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Yorliqlar"</string> <string name="root_type_device" msgid="7121342474653483538">"Qurilmalar"</string> <string name="root_type_apps" msgid="8838065367985945189">"Ko‘proq dasturlar"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Qo‘shimcha qurilmalarni ko‘rsatish"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Fayl hajmini ko‘rsatish"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Qurilma hajmini ko‘rsatish"</string> <string name="empty" msgid="7858882803708117596">"Hech nima yo‘q"</string> <string name="toast_no_application" msgid="1339885974067891667">"Fayl ochilmadi"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Ba’zi hujjatlar o‘chirilmadi"</string> <string name="share_via" msgid="8966594246261344259">"Quyidagi orqali ulashish"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Fayllar nusxalanmoqda"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> qoldi"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other"> <xliff:g id="COUNT_1">%1$d</xliff:g> ta fayl nusxalanmoqda</item> + <item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> ta fayl nusxalanmoqda</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Nuxsa olishga tayyorgarlik..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ta faylni nusxalashda xatolik yuz berdi.</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ta faylni nusxalashda xatolik yuz berdi.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Batafsil ma’lumot olish uchun bosing"</string> + <string name="retry" msgid="7564024179122207376">"Qayta urinish"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Fayllarni nusxalashda xatolik yuz berdi"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Quyidagi fayllarni nusxalab bo‘lmadi: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-vi/strings.xml b/packages/DocumentsUI/res/values-vi/strings.xml index 8b8ff1f..8c0b996 100644 --- a/packages/DocumentsUI/res/values-vi/strings.xml +++ b/packages/DocumentsUI/res/values-vi/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Chia sẻ"</string> <string name="menu_delete" msgid="8138799623850614177">"Xóa"</string> <string name="menu_select" msgid="8711270657353563424">"Chọn \"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Chọn tất cả"</string> + <string name="menu_copy" msgid="3612326052677229148">"Sao chép vào…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Hiển thị bộ nhớ trong"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Hiển thị thẻ SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Ẩn bộ nhớ trong"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Ẩn thẻ SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Hiển thị kích thước tệp"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Ẩn kích thước tệp"</string> + <string name="button_copy" msgid="8706475544635021302">"Sao chép"</string> <string name="mode_selected_count" msgid="459111894725594625">"Đã chọn <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="sort_name" msgid="9183560467917256779">"Theo tên"</string> <string name="sort_date" msgid="586080032956151448">"Theo ngày sửa đổi"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Lối tắt"</string> <string name="root_type_device" msgid="7121342474653483538">"Thiết bị"</string> <string name="root_type_apps" msgid="8838065367985945189">"Các ứng dụng khác"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Hiển thị các thiết bị nâng cao"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Hiển thị kích thước tệp"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Hiển thị kích thước thiết bị"</string> <string name="empty" msgid="7858882803708117596">"Không có mục nào"</string> <string name="toast_no_application" msgid="1339885974067891667">"Không thể mở tệp"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Không thể xóa một số tài liệu"</string> <string name="share_via" msgid="8966594246261344259">"Chia sẻ qua"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Đang sao chép tệp"</string> + <string name="copy_remaining" msgid="6283790937387975095">"Còn <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">Đang sao chép <xliff:g id="COUNT_1">%1$d</xliff:g> tệp.</item> + <item quantity="one">Đang sao chép <xliff:g id="COUNT_0">%1$d</xliff:g> tệp.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Đang chuẩn bị sao chép…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">Lỗi khi sao chép <xliff:g id="COUNT_1">%1$d</xliff:g> tệp.</item> + <item quantity="one">Lỗi khi sao chép <xliff:g id="COUNT_0">%1$d</xliff:g> tệp.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Chạm để xem chi tiết"</string> + <string name="retry" msgid="7564024179122207376">"Thử lại"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Lỗi khi sao chép tệp"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Các tệp sau không được sao chép: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-zh-rCN/strings.xml b/packages/DocumentsUI/res/values-zh-rCN/strings.xml index 68ab5f8..c0a0a40 100644 --- a/packages/DocumentsUI/res/values-zh-rCN/strings.xml +++ b/packages/DocumentsUI/res/values-zh-rCN/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"分享"</string> <string name="menu_delete" msgid="8138799623850614177">"删除"</string> <string name="menu_select" msgid="8711270657353563424">"选择“<xliff:g id="DIRECTORY">^1</xliff:g>”"</string> + <string name="menu_select_all" msgid="4320518282375109902">"全选"</string> + <string name="menu_copy" msgid="3612326052677229148">"复制到…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"显示内部存储设备"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"显示SD卡"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"隐藏内部存储设备"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"隐藏SD卡"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"显示文件大小"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"隐藏文件大小"</string> + <string name="button_copy" msgid="8706475544635021302">"复制"</string> <string name="mode_selected_count" msgid="459111894725594625">"已选择<xliff:g id="COUNT">%1$d</xliff:g>项"</string> <string name="sort_name" msgid="9183560467917256779">"按名称"</string> <string name="sort_date" msgid="586080032956151448">"按修改日期"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"捷径"</string> <string name="root_type_device" msgid="7121342474653483538">"设备"</string> <string name="root_type_apps" msgid="8838065367985945189">"更多应用"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"显示高级设备"</string> - <string name="pref_file_size" msgid="2826879315743961459">"显示文件大小"</string> - <string name="pref_device_size" msgid="3542106883278997222">"显示设备大小"</string> <string name="empty" msgid="7858882803708117596">"无任何文件"</string> <string name="toast_no_application" msgid="1339885974067891667">"无法打开文件"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"无法删除部分文档"</string> <string name="share_via" msgid="8966594246261344259">"分享方式"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"正在复制文件"</string> + <string name="copy_remaining" msgid="6283790937387975095">"剩余时间:<xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">正在复制 <xliff:g id="COUNT_1">%1$d</xliff:g> 个文件。</item> + <item quantity="one">正在复制 <xliff:g id="COUNT_0">%1$d</xliff:g> 个文件。</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"正在准备复制…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">复制 <xliff:g id="COUNT_1">%1$d</xliff:g> 个文件时出错。</item> + <item quantity="one">复制 <xliff:g id="COUNT_0">%1$d</xliff:g> 个文件时出错。</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"触摸可查看详情"</string> + <string name="retry" msgid="7564024179122207376">"重试"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"复制文件时出错"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"以下文件未复制成功:<xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-zh-rHK/strings.xml b/packages/DocumentsUI/res/values-zh-rHK/strings.xml index 4aefd0d..fe6e35b 100644 --- a/packages/DocumentsUI/res/values-zh-rHK/strings.xml +++ b/packages/DocumentsUI/res/values-zh-rHK/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"分享"</string> <string name="menu_delete" msgid="8138799623850614177">"刪除"</string> <string name="menu_select" msgid="8711270657353563424">"選取「<xliff:g id="DIRECTORY">^1</xliff:g>」"</string> + <string name="menu_select_all" msgid="4320518282375109902">"全部選取"</string> + <string name="menu_copy" msgid="3612326052677229148">"複製到…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"顯示內部儲存空間"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"顯示 SD 卡"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"隱藏內部儲存空間"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"隱藏 SD 卡"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"顯示檔案大小"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"隱藏檔案大小"</string> + <string name="button_copy" msgid="8706475544635021302">"複製"</string> <string name="mode_selected_count" msgid="459111894725594625">"已選取 <xliff:g id="COUNT">%1$d</xliff:g> 個"</string> <string name="sort_name" msgid="9183560467917256779">"按名稱"</string> <string name="sort_date" msgid="586080032956151448">"按修改日期"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"捷徑"</string> <string name="root_type_device" msgid="7121342474653483538">"裝置"</string> <string name="root_type_apps" msgid="8838065367985945189">"更多應用程式"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"顯示進階裝置"</string> - <string name="pref_file_size" msgid="2826879315743961459">"顯示檔案大小"</string> - <string name="pref_device_size" msgid="3542106883278997222">"顯示裝置大小"</string> <string name="empty" msgid="7858882803708117596">"沒有項目"</string> <string name="toast_no_application" msgid="1339885974067891667">"無法開啟檔案"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"無法刪除部分文件"</string> <string name="share_via" msgid="8966594246261344259">"分享方式:"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"正在複製檔案"</string> + <string name="copy_remaining" msgid="6283790937387975095">"剩餘 <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">正在複製 <xliff:g id="COUNT_1">%1$d</xliff:g> 個檔案。</item> + <item quantity="one">正在複製 <xliff:g id="COUNT_0">%1$d</xliff:g> 個檔案。</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"正在準備複製…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">複製<xliff:g id="COUNT_1">%1$d</xliff:g>個檔案時出現錯誤。</item> + <item quantity="one">複製<xliff:g id="COUNT_0">%1$d</xliff:g>個檔案時出現錯誤。</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"輕觸即可查看詳情"</string> + <string name="retry" msgid="7564024179122207376">"重試"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"複製檔案時出現錯誤"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"未有複製以下檔案:<xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-zh-rTW/strings.xml b/packages/DocumentsUI/res/values-zh-rTW/strings.xml index 2e77f21..6abe011 100644 --- a/packages/DocumentsUI/res/values-zh-rTW/strings.xml +++ b/packages/DocumentsUI/res/values-zh-rTW/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"共用"</string> <string name="menu_delete" msgid="8138799623850614177">"刪除"</string> <string name="menu_select" msgid="8711270657353563424">"選取「<xliff:g id="DIRECTORY">^1</xliff:g>」"</string> + <string name="menu_select_all" msgid="4320518282375109902">"全選"</string> + <string name="menu_copy" msgid="3612326052677229148">"複製到…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"顯示內部儲存空間"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"顯示 SD 卡"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"隱藏內部儲存空間"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"隱藏 SD 卡"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"顯示檔案大小"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"隱藏檔案大小"</string> + <string name="button_copy" msgid="8706475544635021302">"複製"</string> <string name="mode_selected_count" msgid="459111894725594625">"已選取 <xliff:g id="COUNT">%1$d</xliff:g> 個項目"</string> <string name="sort_name" msgid="9183560467917256779">"依名稱"</string> <string name="sort_date" msgid="586080032956151448">"依修改日期"</string> @@ -39,17 +48,29 @@ <string name="save_error" msgid="6167009778003223664">"無法儲存文件"</string> <string name="create_error" msgid="3735649141335444215">"無法建立資料夾"</string> <string name="query_error" msgid="1222448261663503501">"無法查詢文件"</string> - <string name="root_recent" msgid="4470053704320518133">"最近存取過"</string> + <string name="root_recent" msgid="4470053704320518133">"最近"</string> <string name="root_available_bytes" msgid="8568452858617033281">"可用空間:<xliff:g id="SIZE">%1$s</xliff:g>"</string> <string name="root_type_service" msgid="2178854894416775409">"儲存空間服務"</string> <string name="root_type_shortcut" msgid="3318760609471618093">"捷徑"</string> <string name="root_type_device" msgid="7121342474653483538">"裝置"</string> <string name="root_type_apps" msgid="8838065367985945189">"更多應用程式"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"顯示進階裝置"</string> - <string name="pref_file_size" msgid="2826879315743961459">"顯示檔案大小"</string> - <string name="pref_device_size" msgid="3542106883278997222">"顯示裝置大小"</string> <string name="empty" msgid="7858882803708117596">"沒有任何項目"</string> <string name="toast_no_application" msgid="1339885974067891667">"無法開啟檔案"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"無法刪除部分文件"</string> <string name="share_via" msgid="8966594246261344259">"分享方式:"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"複製檔案"</string> + <string name="copy_remaining" msgid="6283790937387975095">"剩餘 <xliff:g id="DURATION">%s</xliff:g>"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="other">正在複製 <xliff:g id="COUNT_1">%1$d</xliff:g> 個檔案。</item> + <item quantity="one">正在複製 <xliff:g id="COUNT_0">%1$d</xliff:g> 個檔案。</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"正在準備複製…"</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="other">複製 <xliff:g id="COUNT_1">%1$d</xliff:g> 個檔案時發生錯誤。</item> + <item quantity="one">複製 <xliff:g id="COUNT_0">%1$d</xliff:g> 個檔案時發生錯誤。</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"輕觸即可查看詳細資料"</string> + <string name="retry" msgid="7564024179122207376">"重試"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"複製檔案時發生錯誤"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"無法複製以下檔案:<xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values-zu/strings.xml b/packages/DocumentsUI/res/values-zu/strings.xml index 55e2c75..cdca5af 100644 --- a/packages/DocumentsUI/res/values-zu/strings.xml +++ b/packages/DocumentsUI/res/values-zu/strings.xml @@ -30,6 +30,15 @@ <string name="menu_share" msgid="3075149983979628146">"Yabelana"</string> <string name="menu_delete" msgid="8138799623850614177">"Susa"</string> <string name="menu_select" msgid="8711270657353563424">"Khetha i-\"<xliff:g id="DIRECTORY">^1</xliff:g>\""</string> + <string name="menu_select_all" msgid="4320518282375109902">"Khetha konke"</string> + <string name="menu_copy" msgid="3612326052677229148">"Kopishela ku…"</string> + <string name="menu_advanced_show" product="nosdcard" msgid="4693652895715631401">"Bonisa isitoreji sangaphakathi"</string> + <string name="menu_advanced_show" product="default" msgid="5792182900084144261">"Bonisa ikhadi le-SD"</string> + <string name="menu_advanced_hide" product="nosdcard" msgid="4218809952721972589">"Fihla isitoreji sangaphakathi"</string> + <string name="menu_advanced_hide" product="default" msgid="4845869969015718848">"Fihla ikhadi le-SD"</string> + <string name="menu_file_size_show" msgid="3240323619260823076">"Bonisa usayizi wefayela"</string> + <string name="menu_file_size_hide" msgid="8881975928502581042">"Fihla usayizi wefayela"</string> + <string name="button_copy" msgid="8706475544635021302">"Kopisha"</string> <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> okukhethiwe"</string> <string name="sort_name" msgid="9183560467917256779">"Ngegama"</string> <string name="sort_date" msgid="586080032956151448">"Ngedethi yokuguqula"</string> @@ -45,11 +54,23 @@ <string name="root_type_shortcut" msgid="3318760609471618093">"Izinqamuleli"</string> <string name="root_type_device" msgid="7121342474653483538">"Amadivayisi"</string> <string name="root_type_apps" msgid="8838065367985945189">"Izinhlelo zokusebenza eziningi"</string> - <string name="pref_advanced_devices" msgid="903257239609301276">"Bonisa amadivayisi aphakeme"</string> - <string name="pref_file_size" msgid="2826879315743961459">"Bonisa usayizi wefayela"</string> - <string name="pref_device_size" msgid="3542106883278997222">"Bonisa usayizi wedivayisi"</string> <string name="empty" msgid="7858882803708117596">"Azikho izinto"</string> <string name="toast_no_application" msgid="1339885974067891667">"Ayikwazi ukuvula ifayela"</string> <string name="toast_failed_delete" msgid="2180678019407244069">"Ayikwazi ukususa amanye amadokhumenti"</string> <string name="share_via" msgid="8966594246261344259">"Yabelana nge-"</string> + <string name="copy_notification_title" msgid="6374299806748219777">"Ikopisha amafayela"</string> + <string name="copy_remaining" msgid="6283790937387975095">"<xliff:g id="DURATION">%s</xliff:g> okusele"</string> + <plurals name="copy_begin" formatted="false" msgid="9071199452634086365"> + <item quantity="one">Ikopisha amafayela angu-<xliff:g id="COUNT_1">%1$d</xliff:g>.</item> + <item quantity="other">Ikopisha amafayela angu-<xliff:g id="COUNT_1">%1$d</xliff:g>.</item> + </plurals> + <string name="copy_preparing" msgid="3896202461003039386">"Ilungiselela ukukopisha..."</string> + <plurals name="copy_error_notification_title" formatted="false" msgid="4911333304372840735"> + <item quantity="one">Iphutha lokukopisha amafayela angu-<xliff:g id="COUNT_1">%1$d</xliff:g>.</item> + <item quantity="other">Iphutha lokukopisha amafayela angu-<xliff:g id="COUNT_1">%1$d</xliff:g>.</item> + </plurals> + <string name="notification_touch_for_details" msgid="4483108577842961665">"Thinta ukuze ubuke imininingwane"</string> + <string name="retry" msgid="7564024179122207376">"Zama futhi"</string> + <string name="copy_failure_alert_title" msgid="616726451967793549">"Iphutha lokukopisha amafayela"</string> + <string name="copy_failure_alert_content" msgid="2655232627616241542">"Amafayela alandelayo awakopishiwe: <xliff:g id="LIST">%1$s</xliff:g>"</string> </resources> diff --git a/packages/DocumentsUI/res/values/strings.xml b/packages/DocumentsUI/res/values/strings.xml index 268ce18..062d433 100644 --- a/packages/DocumentsUI/res/values/strings.xml +++ b/packages/DocumentsUI/res/values/strings.xml @@ -46,6 +46,10 @@ <string name="menu_delete">Delete</string> <!-- Menu item title that selects the current directory [CHAR LIMIT=48] --> <string name="menu_select">Select \"<xliff:g id="directory" example="My Directory">^1</xliff:g>\"</string> + <!-- Menu item title that selects all documents in the current directory [CHAR LIMIT=24] --> + <string name="menu_select_all">Select All</string> + <!-- Menu item title that copies the selected documents [CHAR LIMIT=24] --> + <string name="menu_copy">Copy to\u2026</string> <!-- Menu item that reveals internal storage built into the device [CHAR LIMIT=24] --> <string name="menu_advanced_show" product="nosdcard">Show internal storage</string> @@ -61,6 +65,9 @@ <!-- Menu item that hides the sizes of displayed files [CHAR LIMIT=24] --> <string name="menu_file_size_hide">Hide file size</string> + <!-- Button label that copies files to the current directory [CHAR LIMIT=48] --> + <string name="button_copy">Copy</string> + <!-- Action mode title summarizing the number of documents selected [CHAR LIMIT=32] --> <string name="mode_selected_count"><xliff:g id="count" example="3">%1$d</xliff:g> selected</string> @@ -108,4 +115,28 @@ <!-- Title of dialog when prompting user to select an app to share documents with [CHAR LIMIT=32] --> <string name="share_via">Share via</string> + <!-- Title of the copy notification [CHAR LIMIT=24] --> + <string name="copy_notification_title">Copying files</string> + <!-- Text shown on the copy notification to indicate remaining time, in minutes [CHAR LIMIT=24] --> + <string name="copy_remaining"><xliff:g id="duration" example="3 minutes">%s</xliff:g> left</string> + <!-- Toast shown when a file copy is kicked off --> + <plurals name="copy_begin"> + <item quantity="one">Copying <xliff:g id="count" example="1">%1$d</xliff:g> file.</item> + <item quantity="other">Copying <xliff:g id="count" example="3">%1$d</xliff:g> files.</item> + </plurals> + <!-- Text shown on the copy notification while DocumentsUI performs setup in preparation for copying files [CHAR LIMIT=32] --> + <string name="copy_preparing">Preparing for copy\u2026</string> + <!-- Title of the copy error notification [CHAR LIMIT=48] --> + <plurals name="copy_error_notification_title"> + <item quantity="one">Error copying <xliff:g id="count" example="1">%1$d</xliff:g> file.</item> + <item quantity="other">Error copying <xliff:g id="count" example="1">%1$d</xliff:g> files.</item> + </plurals> + <!-- Second line for notifications saying that more information will be shown after touching [CHAR LIMIT=48] --> + <string name="notification_touch_for_details">Touch to view details</string> + <!-- Label of a dialog button for retrying a failed operation [CHAR LIMIT=24] --> + <string name="retry">Retry</string> + <!-- Title of the copying failure alert dialog. [CHAR LIMIT=48] --> + <string name="copy_failure_alert_title">Error copying files</string> + <!-- Contents of the copying failure alert dialog. [CHAR LIMIT=48] --> + <string name="copy_failure_alert_content">Following files are not copied: <xliff:g id="list">%1$s</xliff:g></string> </resources> diff --git a/packages/DocumentsUI/res/values/styles.xml b/packages/DocumentsUI/res/values/styles.xml index 04692f6..39c958e 100644 --- a/packages/DocumentsUI/res/values/styles.xml +++ b/packages/DocumentsUI/res/values/styles.xml @@ -43,4 +43,22 @@ <item name="android:windowSoftInputMode">stateUnspecified|adjustUnspecified</item> </style> + <style name="StandaloneTheme" parent="android:Theme.DeviceDefault.Light"> + <item name="android:actionBarWidgetTheme">@null</item> + <item name="android:actionBarTheme">@*android:style/ThemeOverlay.Material.Dark.ActionBar</item> + <item name="android:actionBarPopupTheme">@*android:style/ThemeOverlay.Material.Light</item> + + <item name="android:colorPrimaryDark">@*android:color/material_blue_grey_900</item> + <item name="android:colorPrimary">@*android:color/material_blue_grey_800</item> + <item name="android:colorAccent">@*android:color/material_deep_teal_500</item> + + <item name="android:listDivider">@*android:drawable/list_divider_material</item> + + <item name="android:windowActionBar">false</item> + <item name="android:windowActionModeOverlay">true</item> + <item name="android:windowNoTitle">true</item> + + <item name="android:windowSoftInputMode">stateUnspecified|adjustUnspecified</item> + </style> + </resources> diff --git a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java new file mode 100644 index 0000000..8039b71 --- /dev/null +++ b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java @@ -0,0 +1,172 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.documentsui; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import android.app.Activity; +import android.app.Fragment; +import android.content.pm.ResolveInfo; +import android.os.Parcel; +import android.os.Parcelable; +import android.util.SparseArray; + +import com.android.documentsui.model.DocumentInfo; +import com.android.documentsui.model.DocumentStack; +import com.android.documentsui.model.DurableUtils; +import com.android.documentsui.model.RootInfo; +import com.google.common.collect.Maps; + +abstract class BaseActivity extends Activity { + public abstract State getDisplayState(); + public abstract RootInfo getCurrentRoot(); + public abstract void onStateChanged(); + public abstract void setRootsDrawerOpen(boolean open); + public abstract void onDocumentPicked(DocumentInfo doc); + public abstract void onDocumentsPicked(List<DocumentInfo> docs); + public abstract DocumentInfo getCurrentDirectory(); + public abstract void setPending(boolean pending); + public abstract void onStackPicked(DocumentStack stack); + public abstract void onPickRequested(DocumentInfo pickTarget); + public abstract void onAppPicked(ResolveInfo info); + public abstract void onRootPicked(RootInfo root, boolean closeDrawer); + public abstract void onSaveRequested(DocumentInfo replaceTarget); + public abstract void onSaveRequested(String mimeType, String displayName); + + public static BaseActivity get(Fragment fragment) { + return (BaseActivity) fragment.getActivity(); + } + + public static abstract class DocumentsIntent { + /** Intent action name to open copy destination. */ + public static String ACTION_OPEN_COPY_DESTINATION = + "com.android.documentsui.OPEN_COPY_DESTINATION"; + + /** + * Extra boolean flag for ACTION_OPEN_COPY_DESTINATION_STRING, which + * specifies if the destination directory needs to create new directory or not. + */ + public static String EXTRA_DIRECTORY_COPY = "com.android.documentsui.DIRECTORY_COPY"; + } + + public static class State implements android.os.Parcelable { + public int action; + public String[] acceptMimes; + + /** Explicit user choice */ + public int userMode = MODE_UNKNOWN; + /** Derived after loader */ + public int derivedMode = MODE_LIST; + + /** Explicit user choice */ + public int userSortOrder = SORT_ORDER_UNKNOWN; + /** Derived after loader */ + public int derivedSortOrder = SORT_ORDER_DISPLAY_NAME; + + public boolean allowMultiple = false; + public boolean showSize = false; + public boolean localOnly = false; + public boolean forceAdvanced = false; + public boolean showAdvanced = false; + public boolean stackTouched = false; + public boolean restored = false; + public boolean directoryCopy = false; + + /** Current user navigation stack; empty implies recents. */ + public DocumentStack stack = new DocumentStack(); + /** Currently active search, overriding any stack. */ + public String currentSearch; + + /** Instance state for every shown directory */ + public HashMap<String, SparseArray<Parcelable>> dirState = Maps.newHashMap(); + + /** Currently copying file */ + public List<DocumentInfo> selectedDocumentsForCopy = new ArrayList<DocumentInfo>(); + + public static final int ACTION_OPEN = 1; + public static final int ACTION_CREATE = 2; + public static final int ACTION_GET_CONTENT = 3; + public static final int ACTION_OPEN_TREE = 4; + public static final int ACTION_MANAGE = 5; + public static final int ACTION_BROWSE = 6; + public static final int ACTION_BROWSE_ALL = 7; + public static final int ACTION_OPEN_COPY_DESTINATION = 8; + + public static final int MODE_UNKNOWN = 0; + public static final int MODE_LIST = 1; + public static final int MODE_GRID = 2; + + public static final int SORT_ORDER_UNKNOWN = 0; + public static final int SORT_ORDER_DISPLAY_NAME = 1; + public static final int SORT_ORDER_LAST_MODIFIED = 2; + public static final int SORT_ORDER_SIZE = 3; + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + out.writeInt(action); + out.writeInt(userMode); + out.writeStringArray(acceptMimes); + out.writeInt(userSortOrder); + out.writeInt(allowMultiple ? 1 : 0); + out.writeInt(showSize ? 1 : 0); + out.writeInt(localOnly ? 1 : 0); + out.writeInt(forceAdvanced ? 1 : 0); + out.writeInt(showAdvanced ? 1 : 0); + out.writeInt(stackTouched ? 1 : 0); + out.writeInt(restored ? 1 : 0); + DurableUtils.writeToParcel(out, stack); + out.writeString(currentSearch); + out.writeMap(dirState); + out.writeList(selectedDocumentsForCopy); + } + + public static final Creator<State> CREATOR = new Creator<State>() { + @Override + public State createFromParcel(Parcel in) { + final State state = new State(); + state.action = in.readInt(); + state.userMode = in.readInt(); + state.acceptMimes = in.readStringArray(); + state.userSortOrder = in.readInt(); + state.allowMultiple = in.readInt() != 0; + state.showSize = in.readInt() != 0; + state.localOnly = in.readInt() != 0; + state.forceAdvanced = in.readInt() != 0; + state.showAdvanced = in.readInt() != 0; + state.stackTouched = in.readInt() != 0; + state.restored = in.readInt() != 0; + DurableUtils.readFromParcel(in, state.stack); + state.currentSearch = in.readString(); + in.readMap(state.dirState, null); + in.readList(state.selectedDocumentsForCopy, null); + return state; + } + + @Override + public State[] newArray(int size) { + return new State[size]; + } + }; + } +} diff --git a/packages/DocumentsUI/src/com/android/documentsui/CopyService.java b/packages/DocumentsUI/src/com/android/documentsui/CopyService.java new file mode 100644 index 0000000..a9f03b6 --- /dev/null +++ b/packages/DocumentsUI/src/com/android/documentsui/CopyService.java @@ -0,0 +1,467 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.documentsui; + +import static com.android.documentsui.model.DocumentInfo.getCursorLong; +import static com.android.documentsui.model.DocumentInfo.getCursorString; + +import android.app.IntentService; +import android.app.Notification; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.ContentProviderClient; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; +import android.net.Uri; +import android.os.CancellationSignal; +import android.os.ParcelFileDescriptor; +import android.os.Parcelable; +import android.os.RemoteException; +import android.os.SystemClock; +import android.provider.DocumentsContract; +import android.provider.DocumentsContract.Document; +import android.text.format.DateUtils; +import android.util.Log; + +import com.android.documentsui.model.DocumentInfo; +import com.android.documentsui.model.DocumentStack; + +import libcore.io.IoUtils; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +public class CopyService extends IntentService { + public static final String TAG = "CopyService"; + + private static final String EXTRA_CANCEL = "com.android.documentsui.CANCEL"; + public static final String EXTRA_SRC_LIST = "com.android.documentsui.SRC_LIST"; + public static final String EXTRA_STACK = "com.android.documentsui.STACK"; + public static final String EXTRA_FAILURE = "com.android.documentsui.FAILURE"; + + // TODO: Move it to a shared file when more operations are implemented. + public static final int FAILURE_COPY = 1; + + private NotificationManager mNotificationManager; + private Notification.Builder mProgressBuilder; + + // Jobs are serialized but a job ID is used, to avoid mixing up cancellation requests. + private String mJobId; + private volatile boolean mIsCancelled; + // Parameters of the copy job. Requests to an IntentService are serialized so this code only + // needs to deal with one job at a time. + private final ArrayList<Uri> mFailedFiles; + private long mBatchSize; + private long mBytesCopied; + private long mStartTime; + private long mLastNotificationTime; + // Speed estimation + private long mBytesCopiedSample; + private long mSampleTime; + private long mSpeed; + private long mRemainingTime; + // Provider clients are acquired for the duration of each copy job. Note that there is an + // implicit assumption that all srcs come from the same authority. + private ContentProviderClient mSrcClient; + private ContentProviderClient mDstClient; + + public CopyService() { + super("CopyService"); + + mFailedFiles = new ArrayList<Uri>(); + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + if (intent.hasExtra(EXTRA_CANCEL)) { + handleCancel(intent); + } + return super.onStartCommand(intent, flags, startId); + } + + @Override + protected void onHandleIntent(Intent intent) { + if (intent.hasExtra(EXTRA_CANCEL)) { + handleCancel(intent); + return; + } + + final ArrayList<DocumentInfo> srcs = intent.getParcelableArrayListExtra(EXTRA_SRC_LIST); + final DocumentStack stack = intent.getParcelableExtra(EXTRA_STACK); + + try { + // Acquire content providers. + mSrcClient = DocumentsApplication.acquireUnstableProviderOrThrow(getContentResolver(), + srcs.get(0).authority); + mDstClient = DocumentsApplication.acquireUnstableProviderOrThrow(getContentResolver(), + stack.peek().authority); + + setupCopyJob(srcs, stack); + + for (int i = 0; i < srcs.size() && !mIsCancelled; ++i) { + copy(srcs.get(i), stack.peek()); + } + } catch (Exception e) { + // Catch-all to prevent any copy errors from wedging the app. + Log.e(TAG, "Exceptions occurred during copying", e); + } finally { + ContentProviderClient.releaseQuietly(mSrcClient); + ContentProviderClient.releaseQuietly(mDstClient); + + // Dismiss the ongoing copy notification when the copy is done. + mNotificationManager.cancel(mJobId, 0); + + if (mFailedFiles.size() > 0) { + final Context context = getApplicationContext(); + final Intent navigateIntent = new Intent(context, StandaloneActivity.class); + navigateIntent.putExtra(EXTRA_STACK, (Parcelable) stack); + navigateIntent.putExtra(EXTRA_FAILURE, FAILURE_COPY); + navigateIntent.putParcelableArrayListExtra(EXTRA_SRC_LIST, mFailedFiles); + + final Notification.Builder errorBuilder = new Notification.Builder(this) + .setContentTitle(context.getResources(). + getQuantityString(R.plurals.copy_error_notification_title, + mFailedFiles.size(), mFailedFiles.size())) + .setContentText(getString(R.string.notification_touch_for_details)) + .setContentIntent(PendingIntent.getActivity(context, 0, navigateIntent, + PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT)) + .setCategory(Notification.CATEGORY_ERROR) + .setSmallIcon(R.drawable.ic_menu_copy) + .setAutoCancel(true); + mNotificationManager.notify(mJobId, 0, errorBuilder.build()); + } + + // TODO: Display a toast if the copy was cancelled. + } + } + + @Override + public void onCreate() { + super.onCreate(); + mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + } + + /** + * Sets up the CopyService to start tracking and sending notifications for the given batch of + * files. + * + * @param srcs A list of src files to copy. + * @param stack The copy destination stack. + * @throws RemoteException + */ + private void setupCopyJob(ArrayList<DocumentInfo> srcs, DocumentStack stack) + throws RemoteException { + // Create an ID for this copy job. Use the timestamp. + mJobId = String.valueOf(SystemClock.elapsedRealtime()); + // Reset the cancellation flag. + mIsCancelled = false; + + final Context context = getApplicationContext(); + final Intent navigateIntent = new Intent(context, StandaloneActivity.class); + navigateIntent.putExtra(EXTRA_STACK, (Parcelable) stack); + + mProgressBuilder = new Notification.Builder(this) + .setContentTitle(getString(R.string.copy_notification_title)) + .setContentIntent(PendingIntent.getActivity(context, 0, navigateIntent, 0)) + .setCategory(Notification.CATEGORY_PROGRESS) + .setSmallIcon(R.drawable.ic_menu_copy) + .setOngoing(true); + + final Intent cancelIntent = new Intent(this, CopyService.class); + cancelIntent.putExtra(EXTRA_CANCEL, mJobId); + mProgressBuilder.addAction(R.drawable.ic_cab_cancel, + getString(android.R.string.cancel), PendingIntent.getService(this, 0, + cancelIntent, + PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_CANCEL_CURRENT)); + + // Send an initial progress notification. + mProgressBuilder.setProgress(0, 0, true); // Indeterminate progress while setting up. + mProgressBuilder.setContentText(getString(R.string.copy_preparing)); + mNotificationManager.notify(mJobId, 0, mProgressBuilder.build()); + + // Reset batch parameters. + mFailedFiles.clear(); + mBatchSize = calculateFileSizes(srcs); + mBytesCopied = 0; + mStartTime = SystemClock.elapsedRealtime(); + mLastNotificationTime = 0; + mBytesCopiedSample = 0; + mSampleTime = 0; + mSpeed = 0; + mRemainingTime = 0; + + // TODO: Check preconditions for copy. + // - check that the destination has enough space and is writeable? + // - check MIME types? + } + + /** + * Calculates the cumulative size of all the documents in the list. Directories are recursed + * into and totaled up. + * + * @param srcs + * @return Size in bytes. + * @throws RemoteException + */ + private long calculateFileSizes(List<DocumentInfo> srcs) throws RemoteException { + long result = 0; + for (DocumentInfo src : srcs) { + if (Document.MIME_TYPE_DIR.equals(src.mimeType)) { + // Directories need to be recursed into. + result += calculateFileSizesHelper(src.derivedUri); + } else { + result += src.size; + } + } + return result; + } + + /** + * Calculates (recursively) the cumulative size of all the files under the given directory. + * + * @throws RemoteException + */ + private long calculateFileSizesHelper(Uri uri) throws RemoteException { + final String authority = uri.getAuthority(); + final Uri queryUri = DocumentsContract.buildChildDocumentsUri(authority, + DocumentsContract.getDocumentId(uri)); + final String queryColumns[] = new String[] { + Document.COLUMN_DOCUMENT_ID, + Document.COLUMN_MIME_TYPE, + Document.COLUMN_SIZE + }; + + long result = 0; + Cursor cursor = null; + try { + cursor = mSrcClient.query(queryUri, queryColumns, null, null, null); + while (cursor.moveToNext()) { + if (Document.MIME_TYPE_DIR.equals( + getCursorString(cursor, Document.COLUMN_MIME_TYPE))) { + // Recurse into directories. + final Uri subdirUri = DocumentsContract.buildDocumentUri(authority, + getCursorString(cursor, Document.COLUMN_DOCUMENT_ID)); + result += calculateFileSizesHelper(subdirUri); + } else { + // This may return -1 if the size isn't defined. Ignore those cases. + long size = getCursorLong(cursor, Document.COLUMN_SIZE); + result += size > 0 ? size : 0; + } + } + } finally { + IoUtils.closeQuietly(cursor); + } + + return result; + } + + /** + * Cancels the current copy job, if its ID matches the given ID. + * + * @param intent The cancellation intent. + */ + private void handleCancel(Intent intent) { + final String cancelledId = intent.getStringExtra(EXTRA_CANCEL); + // Do nothing if the cancelled ID doesn't match the current job ID. This prevents racey + // cancellation requests from affecting unrelated copy jobs. + if (Objects.equals(mJobId, cancelledId)) { + // Set the cancel flag. This causes the copy loops to exit. + mIsCancelled = true; + // Dismiss the progress notification here rather than in the copy loop. This preserves + // interactivity for the user in case the copy loop is stalled. + mNotificationManager.cancel(mJobId, 0); + } + } + + /** + * Logs progress on the current copy operation. Displays/Updates the progress notification. + * + * @param bytesCopied + */ + private void makeProgress(long bytesCopied) { + mBytesCopied += bytesCopied; + double done = (double) mBytesCopied / mBatchSize; + String percent = NumberFormat.getPercentInstance().format(done); + + // Update time estimate + long currentTime = SystemClock.elapsedRealtime(); + long elapsedTime = currentTime - mStartTime; + + // Send out progress notifications once a second. + if (currentTime - mLastNotificationTime > 1000) { + updateRemainingTimeEstimate(elapsedTime); + mProgressBuilder.setProgress(100, (int) (done * 100), false); + mProgressBuilder.setContentInfo(percent); + if (mRemainingTime > 0) { + mProgressBuilder.setContentText(getString(R.string.copy_remaining, + DateUtils.formatDuration(mRemainingTime))); + } else { + mProgressBuilder.setContentText(null); + } + mNotificationManager.notify(mJobId, 0, mProgressBuilder.build()); + mLastNotificationTime = currentTime; + } + } + + /** + * Generates an estimate of the remaining time in the copy. + * + * @param elapsedTime The time elapsed so far. + */ + private void updateRemainingTimeEstimate(long elapsedTime) { + final long sampleDuration = elapsedTime - mSampleTime; + final long sampleSpeed = ((mBytesCopied - mBytesCopiedSample) * 1000) / sampleDuration; + if (mSpeed == 0) { + mSpeed = sampleSpeed; + } else { + mSpeed = ((3 * mSpeed) + sampleSpeed) / 4; + } + + if (mSampleTime > 0 && mSpeed > 0) { + mRemainingTime = ((mBatchSize - mBytesCopied) * 1000) / mSpeed; + } else { + mRemainingTime = 0; + } + + mSampleTime = elapsedTime; + mBytesCopiedSample = mBytesCopied; + } + + /** + * Copies a the given documents to the given location. + * + * @param srcInfo DocumentInfos for the documents to copy. + * @param dstDirInfo The destination directory. + * @throws RemoteException + */ + private void copy(DocumentInfo srcInfo, DocumentInfo dstDirInfo) throws RemoteException { + final Uri dstUri = DocumentsContract.createDocument(mDstClient, dstDirInfo.derivedUri, + srcInfo.mimeType, srcInfo.displayName); + if (dstUri == null) { + // If this is a directory, the entire subdir will not be copied over. + Log.e(TAG, "Error while copying " + srcInfo.displayName); + mFailedFiles.add(srcInfo.derivedUri); + return; + } + + if (Document.MIME_TYPE_DIR.equals(srcInfo.mimeType)) { + copyDirectoryHelper(srcInfo.derivedUri, dstUri); + } else { + copyFileHelper(srcInfo.derivedUri, dstUri); + } + } + + /** + * Handles recursion into a directory and copying its contents. Note that in linux terms, this + * does the equivalent of "cp src/* dst", not "cp -r src dst". + * + * @param srcDirUri URI of the directory to copy from. The routine will copy the directory's + * contents, not the directory itself. + * @param dstDirUri URI of the directory to copy to. Must be created beforehand. + * @throws RemoteException + */ + private void copyDirectoryHelper(Uri srcDirUri, Uri dstDirUri) throws RemoteException { + // Recurse into directories. Copy children into the new subdirectory. + final String queryColumns[] = new String[] { + Document.COLUMN_DISPLAY_NAME, + Document.COLUMN_DOCUMENT_ID, + Document.COLUMN_MIME_TYPE, + Document.COLUMN_SIZE + }; + final Uri queryUri = DocumentsContract.buildChildDocumentsUri(srcDirUri.getAuthority(), + DocumentsContract.getDocumentId(srcDirUri)); + Cursor cursor = null; + try { + // Iterate over srcs in the directory; copy to the destination directory. + cursor = mSrcClient.query(queryUri, queryColumns, null, null, null); + while (cursor.moveToNext()) { + final String childMimeType = getCursorString(cursor, Document.COLUMN_MIME_TYPE); + final Uri dstUri = DocumentsContract.createDocument(mDstClient, dstDirUri, + childMimeType, getCursorString(cursor, Document.COLUMN_DISPLAY_NAME)); + final Uri childUri = DocumentsContract.buildDocumentUri(srcDirUri.getAuthority(), + getCursorString(cursor, Document.COLUMN_DOCUMENT_ID)); + if (Document.MIME_TYPE_DIR.equals(childMimeType)) { + copyDirectoryHelper(childUri, dstUri); + } else { + copyFileHelper(childUri, dstUri); + } + } + } finally { + IoUtils.closeQuietly(cursor); + } + } + + /** + * Handles copying a single file. + * + * @param srcUri URI of the file to copy from. + * @param dstUri URI of the *file* to copy to. Must be created beforehand. + * @throws RemoteException + */ + private void copyFileHelper(Uri srcUri, Uri dstUri) throws RemoteException { + // Copy an individual file. + CancellationSignal canceller = new CancellationSignal(); + ParcelFileDescriptor srcFile = null; + ParcelFileDescriptor dstFile = null; + InputStream src = null; + OutputStream dst = null; + + boolean errorOccurred = false; + try { + srcFile = mSrcClient.openFile(srcUri, "r", canceller); + dstFile = mDstClient.openFile(dstUri, "w", canceller); + src = new ParcelFileDescriptor.AutoCloseInputStream(srcFile); + dst = new ParcelFileDescriptor.AutoCloseOutputStream(dstFile); + + byte[] buffer = new byte[8192]; + int len; + while (!mIsCancelled && ((len = src.read(buffer)) != -1)) { + dst.write(buffer, 0, len); + makeProgress(len); + } + srcFile.checkError(); + dstFile.checkError(); + } catch (IOException e) { + errorOccurred = true; + Log.e(TAG, "Error while copying " + srcUri.toString(), e); + mFailedFiles.add(srcUri); + } finally { + // This also ensures the file descriptors are closed. + IoUtils.closeQuietly(src); + IoUtils.closeQuietly(dst); + } + + if (errorOccurred || mIsCancelled) { + // Clean up half-copied files. + canceller.cancel(); + try { + DocumentsContract.deleteDocument(mDstClient, dstUri); + } catch (RemoteException e) { + Log.w(TAG, "Failed to clean up: " + srcUri, e); + // RemoteExceptions usually signal that the connection is dead, so there's no point + // attempting to continue. Propagate the exception up so the copy job is cancelled. + throw e; + } + } + } +} diff --git a/packages/DocumentsUI/src/com/android/documentsui/CreateDirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/CreateDirectoryFragment.java index ba8c35f..1a17ee0 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/CreateDirectoryFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/CreateDirectoryFragment.java @@ -70,7 +70,7 @@ public class CreateDirectoryFragment extends DialogFragment { public void onClick(DialogInterface dialog, int which) { final String displayName = text1.getText().toString(); - final DocumentsActivity activity = (DocumentsActivity) getActivity(); + final BaseActivity activity = (BaseActivity) getActivity(); final DocumentInfo cwd = activity.getCurrentDirectory(); new CreateDirectoryTask(activity, cwd, displayName).executeOnExecutor( @@ -83,12 +83,12 @@ public class CreateDirectoryFragment extends DialogFragment { } private class CreateDirectoryTask extends AsyncTask<Void, Void, DocumentInfo> { - private final DocumentsActivity mActivity; + private final BaseActivity mActivity; private final DocumentInfo mCwd; private final String mDisplayName; public CreateDirectoryTask( - DocumentsActivity activity, DocumentInfo cwd, String displayName) { + BaseActivity activity, DocumentInfo cwd, String displayName) { mActivity = activity; mCwd = cwd; mDisplayName = displayName; diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java index 39c2252..37a14c6 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java @@ -16,17 +16,20 @@ package com.android.documentsui; +import static com.android.documentsui.BaseActivity.State.ACTION_BROWSE; +import static com.android.documentsui.BaseActivity.State.ACTION_BROWSE_ALL; +import static com.android.documentsui.BaseActivity.State.ACTION_CREATE; +import static com.android.documentsui.BaseActivity.State.ACTION_MANAGE; +import static com.android.documentsui.BaseActivity.State.MODE_GRID; +import static com.android.documentsui.BaseActivity.State.MODE_LIST; +import static com.android.documentsui.BaseActivity.State.MODE_UNKNOWN; +import static com.android.documentsui.BaseActivity.State.SORT_ORDER_UNKNOWN; import static com.android.documentsui.DocumentsActivity.TAG; -import static com.android.documentsui.DocumentsActivity.State.ACTION_CREATE; -import static com.android.documentsui.DocumentsActivity.State.ACTION_MANAGE; -import static com.android.documentsui.DocumentsActivity.State.MODE_GRID; -import static com.android.documentsui.DocumentsActivity.State.MODE_LIST; -import static com.android.documentsui.DocumentsActivity.State.MODE_UNKNOWN; -import static com.android.documentsui.DocumentsActivity.State.SORT_ORDER_UNKNOWN; import static com.android.documentsui.model.DocumentInfo.getCursorInt; import static com.android.documentsui.model.DocumentInfo.getCursorLong; import static com.android.documentsui.model.DocumentInfo.getCursorString; +import android.app.Activity; import android.app.ActivityManager; import android.app.Fragment; import android.app.FragmentManager; @@ -76,7 +79,7 @@ import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; -import com.android.documentsui.DocumentsActivity.State; +import com.android.documentsui.BaseActivity.State; import com.android.documentsui.ProviderExecutor.Preemptable; import com.android.documentsui.RecentsProvider.StateColumns; import com.android.documentsui.model.DocumentInfo; @@ -106,6 +109,8 @@ public class DirectoryFragment extends Fragment { public static final int ANIM_DOWN = 3; public static final int ANIM_UP = 4; + public static final int REQUEST_COPY_DESTINATION = 1; + private int mType = TYPE_NORMAL; private String mStateKey; @@ -301,13 +306,13 @@ public class DirectoryFragment extends Fragment { state.derivedMode = result.mode; } state.derivedSortOrder = result.sortOrder; - ((DocumentsActivity) context).onStateChanged(); + ((BaseActivity) context).onStateChanged(); updateDisplayState(); // When launched into empty recents, show drawer if (mType == TYPE_RECENT_OPEN && mAdapter.isEmpty() && !state.stackTouched) { - ((DocumentsActivity) context).setRootsDrawerOpen(true); + ((BaseActivity) context).setRootsDrawerOpen(true); } // Restore any previous instance state @@ -335,6 +340,33 @@ public class DirectoryFragment extends Fragment { } @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + final Context context = getActivity(); + final Resources res = context.getResources(); + + // There's only one request code right now. Replace this with a switch statement or + // something more scalable when more codes are added. + if (requestCode != REQUEST_COPY_DESTINATION) { + return; + } + if (resultCode == Activity.RESULT_CANCELED || data == null) { + // User pressed the back button or otherwise cancelled the destination pick. Don't + // proceed with the copy. + return; + } + + final List<DocumentInfo> docs = getDisplayState(this).selectedDocumentsForCopy; + final Intent copyIntent = new Intent(context, CopyService.class); + copyIntent.putParcelableArrayListExtra(CopyService.EXTRA_SRC_LIST, new ArrayList<DocumentInfo>(docs)); + copyIntent.putExtra(CopyService.EXTRA_STACK, data.getParcelableExtra(CopyService.EXTRA_STACK)); + + Toast.makeText(context, + res.getQuantityString(R.plurals.copy_begin, docs.size(), docs.size()), + Toast.LENGTH_SHORT).show(); + context.startService(copyIntent); + } + + @Override public void onStop() { super.onStop(); @@ -386,7 +418,7 @@ public class DirectoryFragment extends Fragment { // Mode change is just visual change; no need to kick loader, and // deliver change event immediately. state.derivedMode = state.userMode; - ((DocumentsActivity) getActivity()).onStateChanged(); + ((BaseActivity) getActivity()).onStateChanged(); updateDisplayState(); } @@ -441,7 +473,7 @@ public class DirectoryFragment extends Fragment { final int docFlags = getCursorInt(cursor, Document.COLUMN_FLAGS); if (isDocumentEnabled(docMimeType, docFlags)) { final DocumentInfo doc = DocumentInfo.fromDirectoryCursor(cursor); - ((DocumentsActivity) getActivity()).onDocumentPicked(doc); + ((BaseActivity) getActivity()).onDocumentPicked(doc); } } } @@ -463,11 +495,15 @@ public class DirectoryFragment extends Fragment { final MenuItem open = menu.findItem(R.id.menu_open); final MenuItem share = menu.findItem(R.id.menu_share); final MenuItem delete = menu.findItem(R.id.menu_delete); + final MenuItem copy = menu.findItem(R.id.menu_copy); + + final boolean manageOrBrowse = (state.action == ACTION_MANAGE + || state.action == ACTION_BROWSE || state.action == ACTION_BROWSE_ALL); - final boolean manageMode = state.action == ACTION_MANAGE; - open.setVisible(!manageMode); - share.setVisible(manageMode); - delete.setVisible(manageMode); + open.setVisible(!manageOrBrowse); + share.setVisible(manageOrBrowse); + delete.setVisible(manageOrBrowse); + copy.setVisible(manageOrBrowse); return true; } @@ -487,7 +523,7 @@ public class DirectoryFragment extends Fragment { final int id = item.getItemId(); if (id == R.id.menu_open) { - DocumentsActivity.get(DirectoryFragment.this).onDocumentsPicked(docs); + BaseActivity.get(DirectoryFragment.this).onDocumentsPicked(docs); mode.finish(); return true; @@ -501,6 +537,19 @@ public class DirectoryFragment extends Fragment { mode.finish(); return true; + } else if (id == R.id.menu_copy) { + onCopyDocuments(docs); + mode.finish(); + return true; + + } else if (id == R.id.menu_select_all) { + int count = mCurrentView.getCount(); + for (int i = 0; i < count; i++) { + mCurrentView.setItemChecked(i, true); + } + updateDisplayState(); + return true; + } else { return false; } @@ -522,9 +571,7 @@ public class DirectoryFragment extends Fragment { if (cursor != null) { final String docMimeType = getCursorString(cursor, Document.COLUMN_MIME_TYPE); final int docFlags = getCursorInt(cursor, Document.COLUMN_FLAGS); - if (!Document.MIME_TYPE_DIR.equals(docMimeType)) { - valid = isDocumentEnabled(docMimeType, docFlags); - } + valid = isDocumentEnabled(docMimeType, docFlags); } if (!valid) { @@ -553,8 +600,17 @@ public class DirectoryFragment extends Fragment { private void onShareDocuments(List<DocumentInfo> docs) { Intent intent; - if (docs.size() == 1) { - final DocumentInfo doc = docs.get(0); + + // Filter out directories - those can't be shared. + List<DocumentInfo> docsForSend = Lists.newArrayList(); + for (DocumentInfo doc: docs) { + if (!Document.MIME_TYPE_DIR.equals(doc.mimeType)) { + docsForSend.add(doc); + } + } + + if (docsForSend.size() == 1) { + final DocumentInfo doc = docsForSend.get(0); intent = new Intent(Intent.ACTION_SEND); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); @@ -562,14 +618,14 @@ public class DirectoryFragment extends Fragment { intent.setType(doc.mimeType); intent.putExtra(Intent.EXTRA_STREAM, doc.derivedUri); - } else if (docs.size() > 1) { + } else if (docsForSend.size() > 1) { intent = new Intent(Intent.ACTION_SEND_MULTIPLE); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.addCategory(Intent.CATEGORY_DEFAULT); final ArrayList<String> mimeTypes = Lists.newArrayList(); final ArrayList<Uri> uris = Lists.newArrayList(); - for (DocumentInfo doc : docs) { + for (DocumentInfo doc : docsForSend) { mimeTypes.add(doc.mimeType); uris.add(doc.derivedUri); } @@ -615,8 +671,29 @@ public class DirectoryFragment extends Fragment { } } + private void onCopyDocuments(List<DocumentInfo> docs) { + getDisplayState(this).selectedDocumentsForCopy = docs; + + // Pop up a dialog to pick a destination. This is inadequate but works for now. + // TODO: Implement a picker that is to spec. + final Intent intent = new Intent( + BaseActivity.DocumentsIntent.ACTION_OPEN_COPY_DESTINATION, + Uri.EMPTY, + getActivity(), + DocumentsActivity.class); + boolean directoryCopy = false; + for (DocumentInfo info : docs) { + if (Document.MIME_TYPE_DIR.equals(info.mimeType)) { + directoryCopy = true; + break; + } + } + intent.putExtra(BaseActivity.DocumentsIntent.EXTRA_DIRECTORY_COPY, directoryCopy); + startActivityForResult(intent, REQUEST_COPY_DESTINATION); + } + private static State getDisplayState(Fragment fragment) { - return ((DocumentsActivity) fragment.getActivity()).getDisplayState(); + return ((BaseActivity) fragment.getActivity()).getDisplayState(); } private static abstract class Footer { diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryLoader.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryLoader.java index 163615d..8e4ec8c 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryLoader.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryLoader.java @@ -17,11 +17,11 @@ package com.android.documentsui; import static com.android.documentsui.DocumentsActivity.TAG; -import static com.android.documentsui.DocumentsActivity.State.MODE_UNKNOWN; -import static com.android.documentsui.DocumentsActivity.State.SORT_ORDER_DISPLAY_NAME; -import static com.android.documentsui.DocumentsActivity.State.SORT_ORDER_LAST_MODIFIED; -import static com.android.documentsui.DocumentsActivity.State.SORT_ORDER_SIZE; -import static com.android.documentsui.DocumentsActivity.State.SORT_ORDER_UNKNOWN; +import static com.android.documentsui.BaseActivity.State.MODE_UNKNOWN; +import static com.android.documentsui.BaseActivity.State.SORT_ORDER_DISPLAY_NAME; +import static com.android.documentsui.BaseActivity.State.SORT_ORDER_LAST_MODIFIED; +import static com.android.documentsui.BaseActivity.State.SORT_ORDER_SIZE; +import static com.android.documentsui.BaseActivity.State.SORT_ORDER_UNKNOWN; import static com.android.documentsui.model.DocumentInfo.getCursorInt; import android.content.AsyncTaskLoader; @@ -36,7 +36,7 @@ import android.provider.DocumentsContract; import android.provider.DocumentsContract.Document; import android.util.Log; -import com.android.documentsui.DocumentsActivity.State; +import com.android.documentsui.BaseActivity.State; import com.android.documentsui.RecentsProvider.StateColumns; import com.android.documentsui.model.DocumentInfo; import com.android.documentsui.model.RootInfo; diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryView.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryView.java index 4f52a03..4893652 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryView.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryView.java @@ -17,9 +17,6 @@ package com.android.documentsui; import android.content.Context; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; -import android.graphics.drawable.InsetDrawable; import android.util.AttributeSet; import android.widget.FrameLayout; diff --git a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java index 8778f11..a2a789f 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java @@ -16,20 +16,21 @@ package com.android.documentsui; +import static com.android.documentsui.BaseActivity.State.ACTION_BROWSE; +import static com.android.documentsui.BaseActivity.State.ACTION_CREATE; +import static com.android.documentsui.BaseActivity.State.ACTION_GET_CONTENT; +import static com.android.documentsui.BaseActivity.State.ACTION_MANAGE; +import static com.android.documentsui.BaseActivity.State.ACTION_OPEN; +import static com.android.documentsui.BaseActivity.State.ACTION_OPEN_TREE; +import static com.android.documentsui.BaseActivity.State.ACTION_OPEN_COPY_DESTINATION; +import static com.android.documentsui.BaseActivity.State.MODE_GRID; +import static com.android.documentsui.BaseActivity.State.MODE_LIST; import static com.android.documentsui.DirectoryFragment.ANIM_DOWN; import static com.android.documentsui.DirectoryFragment.ANIM_NONE; import static com.android.documentsui.DirectoryFragment.ANIM_SIDE; import static com.android.documentsui.DirectoryFragment.ANIM_UP; -import static com.android.documentsui.DocumentsActivity.State.ACTION_CREATE; -import static com.android.documentsui.DocumentsActivity.State.ACTION_GET_CONTENT; -import static com.android.documentsui.DocumentsActivity.State.ACTION_MANAGE; -import static com.android.documentsui.DocumentsActivity.State.ACTION_OPEN; -import static com.android.documentsui.DocumentsActivity.State.ACTION_OPEN_TREE; -import static com.android.documentsui.DocumentsActivity.State.MODE_GRID; -import static com.android.documentsui.DocumentsActivity.State.MODE_LIST; import android.app.Activity; -import android.app.Fragment; import android.app.FragmentManager; import android.content.ActivityNotFoundException; import android.content.ClipData; @@ -46,7 +47,6 @@ import android.graphics.Point; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; -import android.os.Parcel; import android.os.Parcelable; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Root; @@ -54,7 +54,6 @@ import android.support.v4.app.ActionBarDrawerToggle; import android.support.v4.widget.DrawerLayout; import android.support.v4.widget.DrawerLayout.DrawerListener; import android.util.Log; -import android.util.SparseArray; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; @@ -73,25 +72,23 @@ import android.widget.TextView; import android.widget.Toast; import android.widget.Toolbar; +import libcore.io.IoUtils; + import com.android.documentsui.RecentsProvider.RecentColumns; import com.android.documentsui.RecentsProvider.ResumeColumns; import com.android.documentsui.model.DocumentInfo; import com.android.documentsui.model.DocumentStack; import com.android.documentsui.model.DurableUtils; import com.android.documentsui.model.RootInfo; -import com.google.common.collect.Maps; - -import libcore.io.IoUtils; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Arrays; import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.concurrent.Executor; -public class DocumentsActivity extends Activity { +public class DocumentsActivity extends BaseActivity { public static final String TAG = "Documents"; private static final String EXTRA_STATE = "state"; @@ -182,7 +179,7 @@ public class DocumentsActivity extends Activity { setActionBar(mToolbar); // Hide roots when we're managing a specific root - if (mState.action == ACTION_MANAGE) { + if (mState.action == ACTION_MANAGE || mState.action == ACTION_BROWSE) { if (mShowAsDialog) { findViewById(R.id.container_roots).setVisibility(View.GONE); } else { @@ -194,7 +191,8 @@ public class DocumentsActivity extends Activity { final String mimeType = getIntent().getType(); final String title = getIntent().getStringExtra(Intent.EXTRA_TITLE); SaveFragment.show(getFragmentManager(), mimeType, title); - } else if (mState.action == ACTION_OPEN_TREE) { + } else if (mState.action == ACTION_OPEN_TREE || + mState.action == ACTION_OPEN_COPY_DESTINATION) { PickFragment.show(getFragmentManager()); } @@ -203,13 +201,15 @@ public class DocumentsActivity extends Activity { moreApps.setComponent(null); moreApps.setPackage(null); RootsFragment.show(getFragmentManager(), moreApps); - } else if (mState.action == ACTION_OPEN || mState.action == ACTION_CREATE - || mState.action == ACTION_OPEN_TREE) { + } else if (mState.action == ACTION_OPEN || + mState.action == ACTION_CREATE || + mState.action == ACTION_OPEN_TREE || + mState.action == ACTION_OPEN_COPY_DESTINATION) { RootsFragment.show(getFragmentManager(), null); } if (!mState.restored) { - if (mState.action == ACTION_MANAGE) { + if (mState.action == ACTION_MANAGE || mState.action == ACTION_BROWSE) { final Uri rootUri = getIntent().getData(); new RestoreRootTask(rootUri).executeOnExecutor(getCurrentExecutor()); } else { @@ -235,6 +235,10 @@ public class DocumentsActivity extends Activity { mState.action = ACTION_OPEN_TREE; } else if (DocumentsContract.ACTION_MANAGE_ROOT.equals(action)) { mState.action = ACTION_MANAGE; + } else if (DocumentsContract.ACTION_BROWSE_DOCUMENT_ROOT.equals(action)) { + mState.action = ACTION_BROWSE; + } else if (DocumentsIntent.ACTION_OPEN_COPY_DESTINATION.equals(action)) { + mState.action = ACTION_OPEN_COPY_DESTINATION; } if (mState.action == ACTION_OPEN || mState.action == ACTION_GET_CONTENT) { @@ -242,7 +246,7 @@ public class DocumentsActivity extends Activity { Intent.EXTRA_ALLOW_MULTIPLE, false); } - if (mState.action == ACTION_MANAGE) { + if (mState.action == ACTION_MANAGE || mState.action == ACTION_BROWSE) { mState.acceptMimes = new String[] { "*/*" }; mState.allowMultiple = true; } else if (intent.hasExtra(Intent.EXTRA_MIME_TYPES)) { @@ -256,11 +260,15 @@ public class DocumentsActivity extends Activity { mState.showAdvanced = mState.forceAdvanced | LocalPreferences.getDisplayAdvancedDevices(this); - if (mState.action == ACTION_MANAGE) { + if (mState.action == ACTION_MANAGE || mState.action == ACTION_BROWSE) { mState.showSize = true; } else { mState.showSize = LocalPreferences.getDisplayFileSize(this); } + if (mState.action == ACTION_OPEN_COPY_DESTINATION) { + mState.directoryCopy = intent.getBooleanExtra( + BaseActivity.DocumentsIntent.EXTRA_DIRECTORY_COPY, false); + } } private class RestoreRootTask extends AsyncTask<Void, Void, RootInfo> { @@ -389,6 +397,7 @@ public class DocumentsActivity extends Activity { updateActionBar(); } + @Override public void setRootsDrawerOpen(boolean open) { if (!mShowAsDialog) { if (open) { @@ -409,16 +418,19 @@ public class DocumentsActivity extends Activity { public void updateActionBar() { if (mRootsToolbar != null) { - if (mState.action == ACTION_OPEN || mState.action == ACTION_GET_CONTENT - || mState.action == ACTION_OPEN_TREE) { + if (mState.action == ACTION_OPEN || + mState.action == ACTION_GET_CONTENT || + mState.action == ACTION_OPEN_TREE) { mRootsToolbar.setTitle(R.string.title_open); - } else if (mState.action == ACTION_CREATE) { + } else if (mState.action == ACTION_CREATE || + mState.action == ACTION_OPEN_COPY_DESTINATION) { mRootsToolbar.setTitle(R.string.title_save); } } final RootInfo root = getCurrentRoot(); - final boolean showRootIcon = mShowAsDialog || (mState.action == ACTION_MANAGE); + final boolean showRootIcon = mShowAsDialog + || (mState.action == ACTION_MANAGE || mState.action == ACTION_BROWSE); if (showRootIcon) { mToolbar.setNavigationIcon( root != null ? root.loadToolbarIcon(mToolbar.getContext()) : null); @@ -549,6 +561,7 @@ public class DocumentsActivity extends Activity { final MenuItem list = menu.findItem(R.id.menu_list); final MenuItem advanced = menu.findItem(R.id.menu_advanced); final MenuItem fileSize = menu.findItem(R.id.menu_file_size); + final MenuItem settings = menu.findItem(R.id.menu_settings); sort.setVisible(cwd != null); grid.setVisible(mState.derivedMode != MODE_GRID); @@ -576,7 +589,8 @@ public class DocumentsActivity extends Activity { sortSize.setVisible(mState.showSize); boolean searchVisible; - boolean fileSizeVisible = mState.action != ACTION_MANAGE; + boolean fileSizeVisible = !(mState.action == ACTION_MANAGE + || mState.action == ACTION_BROWSE); if (mState.action == ACTION_CREATE || mState.action == ACTION_OPEN_TREE) { createDir.setVisible(cwd != null && cwd.isCreateSupported()); searchVisible = false; @@ -606,9 +620,12 @@ public class DocumentsActivity extends Activity { fileSize.setTitle(LocalPreferences.getDisplayFileSize(this) ? R.string.menu_file_size_hide : R.string.menu_file_size_show); - advanced.setVisible(mState.action != ACTION_MANAGE); + advanced.setVisible(!(mState.action == ACTION_MANAGE || mState.action == ACTION_BROWSE)); fileSize.setVisible(fileSizeVisible); + settings.setVisible((mState.action == ACTION_MANAGE || mState.action == ACTION_BROWSE) + && (root.flags & Root.FLAG_HAS_SETTINGS) != 0); + return true; } @@ -648,6 +665,13 @@ public class DocumentsActivity extends Activity { } else if (id == R.id.menu_file_size) { setDisplayFileSize(!LocalPreferences.getDisplayFileSize(this)); return true; + } else if (id == R.id.menu_settings) { + final RootInfo root = getCurrentRoot(); + final Intent intent = new Intent(DocumentsContract.ACTION_DOCUMENT_ROOT_SETTINGS); + intent.setDataAndType(DocumentsContract.buildRootUri(root.authority, root.rootId), + DocumentsContract.Root.MIME_TYPE_ITEM); + startActivity(intent); + return true; } else { return super.onOptionsItemSelected(item); } @@ -667,9 +691,7 @@ public class DocumentsActivity extends Activity { invalidateOptionsMenu(); } - /** - * Update UI to reflect internal state changes not from user. - */ + @Override public void onStateChanged() { invalidateOptionsMenu(); } @@ -690,6 +712,7 @@ public class DocumentsActivity extends Activity { DirectoryFragment.get(getFragmentManager()).onUserModeChanged(); } + @Override public void setPending(boolean pending) { final SaveFragment save = SaveFragment.get(getFragmentManager()); if (save != null) { @@ -808,6 +831,7 @@ public class DocumentsActivity extends Activity { } }; + @Override public RootInfo getCurrentRoot() { if (mState.stack.root != null) { return mState.stack.root; @@ -816,6 +840,7 @@ public class DocumentsActivity extends Activity { } } + @Override public DocumentInfo getCurrentDirectory() { return mState.stack.peek(); } @@ -834,6 +859,7 @@ public class DocumentsActivity extends Activity { } } + @Override public State getDisplayState() { return mState; } @@ -847,7 +873,9 @@ public class DocumentsActivity extends Activity { if (cwd == null) { // No directory means recents - if (mState.action == ACTION_CREATE || mState.action == ACTION_OPEN_TREE) { + if (mState.action == ACTION_CREATE || + mState.action == ACTION_OPEN_TREE || + mState.action == ACTION_OPEN_COPY_DESTINATION) { RecentsCreateFragment.show(fm); } else { DirectoryFragment.showRecentsOpen(fm, anim); @@ -876,12 +904,13 @@ public class DocumentsActivity extends Activity { } } - if (mState.action == ACTION_OPEN_TREE) { + if (mState.action == ACTION_OPEN_TREE || + mState.action == ACTION_OPEN_COPY_DESTINATION) { final PickFragment pick = PickFragment.get(fm); if (pick != null) { final CharSequence displayName = (mState.stack.size() <= 1) ? root.title : cwd.displayName; - pick.setPickTarget(cwd, displayName); + pick.setPickTarget(mState.action, cwd, displayName); } } @@ -895,6 +924,7 @@ public class DocumentsActivity extends Activity { dumpStack(); } + @Override public void onStackPicked(DocumentStack stack) { try { // Update the restored stack to ensure we have freshest data @@ -909,6 +939,7 @@ public class DocumentsActivity extends Activity { } } + @Override public void onRootPicked(RootInfo root, boolean closeDrawer) { // Clear entire backstack and start in new root mState.stack.root = root; @@ -955,6 +986,7 @@ public class DocumentsActivity extends Activity { } } + @Override public void onAppPicked(ResolveInfo info) { final Intent intent = new Intent(getIntent()); intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_FORWARD_RESULT); @@ -985,6 +1017,7 @@ public class DocumentsActivity extends Activity { } } + @Override public void onDocumentPicked(DocumentInfo doc) { final FragmentManager fm = getFragmentManager(); if (doc.isDirectory()) { @@ -1017,9 +1050,21 @@ public class DocumentsActivity extends Activity { Toast.makeText(this, R.string.toast_no_application, Toast.LENGTH_SHORT).show(); } } + } else if (mState.action == ACTION_BROWSE) { + // Go straight to viewing + final Intent view = new Intent(Intent.ACTION_VIEW); + view.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + view.setData(doc.derivedUri); + + try { + startActivity(view); + } catch (ActivityNotFoundException ex) { + Toast.makeText(this, R.string.toast_no_application, Toast.LENGTH_SHORT).show(); + } } } + @Override public void onDocumentsPicked(List<DocumentInfo> docs) { if (mState.action == ACTION_OPEN || mState.action == ACTION_GET_CONTENT) { final int size = docs.size(); @@ -1031,18 +1076,29 @@ public class DocumentsActivity extends Activity { } } + @Override public void onSaveRequested(DocumentInfo replaceTarget) { new ExistingFinishTask(replaceTarget.derivedUri).executeOnExecutor(getCurrentExecutor()); } + @Override public void onSaveRequested(String mimeType, String displayName) { new CreateFinishTask(mimeType, displayName).executeOnExecutor(getCurrentExecutor()); } + @Override public void onPickRequested(DocumentInfo pickTarget) { - final Uri viaUri = DocumentsContract.buildTreeDocumentUri(pickTarget.authority, - pickTarget.documentId); - new PickFinishTask(viaUri).executeOnExecutor(getCurrentExecutor()); + Uri result; + if (mState.action == ACTION_OPEN_TREE) { + result = DocumentsContract.buildTreeDocumentUri( + pickTarget.authority, pickTarget.documentId); + } else if (mState.action == ACTION_OPEN_COPY_DESTINATION) { + result = pickTarget.derivedUri; + } else { + // Should not be reached. + throw new IllegalStateException("Invalid mState.action."); + } + new PickFinishTask(result).executeOnExecutor(getCurrentExecutor()); } private void saveStackBlocking() { @@ -1050,7 +1106,9 @@ public class DocumentsActivity extends Activity { final ContentValues values = new ContentValues(); final byte[] rawStack = DurableUtils.writeToArrayOrNull(mState.stack); - if (mState.action == ACTION_CREATE || mState.action == ACTION_OPEN_TREE) { + if (mState.action == ACTION_CREATE || + mState.action == ACTION_OPEN_TREE || + mState.action == ACTION_OPEN_COPY_DESTINATION) { // Remember stack for last create values.clear(); values.put(RecentColumns.KEY, mState.stack.buildKey()); @@ -1083,11 +1141,14 @@ public class DocumentsActivity extends Activity { if (mState.action == ACTION_GET_CONTENT) { intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); - } else if (mState.action == ACTION_OPEN_TREE) { + } else if (mState.action == ACTION_OPEN_TREE || + mState.action == ACTION_OPEN_COPY_DESTINATION) { intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION | Intent.FLAG_GRANT_PREFIX_URI_PERMISSION); + // TODO: Move passing the stack to the separate ACTION_COPY action once it's implemented. + intent.putExtra(CopyService.EXTRA_STACK, (Parcelable)mState.stack); } else { intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION @@ -1188,102 +1249,6 @@ public class DocumentsActivity extends Activity { } } - public static class State implements android.os.Parcelable { - public int action; - public String[] acceptMimes; - - /** Explicit user choice */ - public int userMode = MODE_UNKNOWN; - /** Derived after loader */ - public int derivedMode = MODE_LIST; - - /** Explicit user choice */ - public int userSortOrder = SORT_ORDER_UNKNOWN; - /** Derived after loader */ - public int derivedSortOrder = SORT_ORDER_DISPLAY_NAME; - - public boolean allowMultiple = false; - public boolean showSize = false; - public boolean localOnly = false; - public boolean forceAdvanced = false; - public boolean showAdvanced = false; - public boolean stackTouched = false; - public boolean restored = false; - - /** Current user navigation stack; empty implies recents. */ - public DocumentStack stack = new DocumentStack(); - /** Currently active search, overriding any stack. */ - public String currentSearch; - - /** Instance state for every shown directory */ - public HashMap<String, SparseArray<Parcelable>> dirState = Maps.newHashMap(); - - public static final int ACTION_OPEN = 1; - public static final int ACTION_CREATE = 2; - public static final int ACTION_GET_CONTENT = 3; - public static final int ACTION_OPEN_TREE = 4; - public static final int ACTION_MANAGE = 5; - - public static final int MODE_UNKNOWN = 0; - public static final int MODE_LIST = 1; - public static final int MODE_GRID = 2; - - public static final int SORT_ORDER_UNKNOWN = 0; - public static final int SORT_ORDER_DISPLAY_NAME = 1; - public static final int SORT_ORDER_LAST_MODIFIED = 2; - public static final int SORT_ORDER_SIZE = 3; - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel out, int flags) { - out.writeInt(action); - out.writeInt(userMode); - out.writeStringArray(acceptMimes); - out.writeInt(userSortOrder); - out.writeInt(allowMultiple ? 1 : 0); - out.writeInt(showSize ? 1 : 0); - out.writeInt(localOnly ? 1 : 0); - out.writeInt(forceAdvanced ? 1 : 0); - out.writeInt(showAdvanced ? 1 : 0); - out.writeInt(stackTouched ? 1 : 0); - out.writeInt(restored ? 1 : 0); - DurableUtils.writeToParcel(out, stack); - out.writeString(currentSearch); - out.writeMap(dirState); - } - - public static final Creator<State> CREATOR = new Creator<State>() { - @Override - public State createFromParcel(Parcel in) { - final State state = new State(); - state.action = in.readInt(); - state.userMode = in.readInt(); - state.acceptMimes = in.readStringArray(); - state.userSortOrder = in.readInt(); - state.allowMultiple = in.readInt() != 0; - state.showSize = in.readInt() != 0; - state.localOnly = in.readInt() != 0; - state.forceAdvanced = in.readInt() != 0; - state.showAdvanced = in.readInt() != 0; - state.stackTouched = in.readInt() != 0; - state.restored = in.readInt() != 0; - DurableUtils.readFromParcel(in, state.stack); - state.currentSearch = in.readString(); - in.readMap(state.dirState, null); - return state; - } - - @Override - public State[] newArray(int size) { - return new State[size]; - } - }; - } - private void dumpStack() { Log.d(TAG, "Current stack: "); Log.d(TAG, " * " + mState.stack.root); @@ -1291,8 +1256,4 @@ public class DocumentsActivity extends Activity { Log.d(TAG, " +-- " + doc); } } - - public static DocumentsActivity get(Fragment fragment) { - return (DocumentsActivity) fragment.getActivity(); - } } diff --git a/packages/DocumentsUI/src/com/android/documentsui/FailureDialogFragment.java b/packages/DocumentsUI/src/com/android/documentsui/FailureDialogFragment.java new file mode 100644 index 0000000..1748c9c --- /dev/null +++ b/packages/DocumentsUI/src/com/android/documentsui/FailureDialogFragment.java @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.documentsui; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.DialogFragment; +import android.app.FragmentManager; +import android.app.FragmentTransaction; +import android.content.DialogInterface; +import android.net.Uri; +import android.os.Bundle; +import android.text.Html; + +import com.android.documentsui.model.DocumentInfo; + +import java.io.FileNotFoundException; +import java.util.ArrayList; + +/** + * Alert dialog for failed operations. + */ +public class FailureDialogFragment extends DialogFragment + implements DialogInterface.OnClickListener { + private static final String TAG = "FailureDialogFragment"; + + private int mFailure; + private ArrayList<Uri> mFailedSrcList; + + public static void show(FragmentManager fm, int failure, ArrayList<Uri> failedSrcList) { + // TODO: Add support for other failures than copy. + if (failure != CopyService.FAILURE_COPY) { + return; + } + + final Bundle args = new Bundle(); + args.putInt(CopyService.EXTRA_FAILURE, failure); + args.putParcelableArrayList(CopyService.EXTRA_SRC_LIST, failedSrcList); + + final FragmentTransaction ft = fm.beginTransaction(); + final FailureDialogFragment fragment = new FailureDialogFragment(); + fragment.setArguments(args); + + ft.add(fragment, TAG); + ft.commitAllowingStateLoss(); + } + + @Override + public void onClick(DialogInterface dialog, int whichButton) { + // TODO: Pass mFailure and mFailedSrcList to the parent fragment. + } + + @Override + public Dialog onCreateDialog(Bundle inState) { + super.onCreate(inState); + + mFailure = getArguments().getInt(CopyService.EXTRA_FAILURE); + mFailedSrcList = getArguments().getParcelableArrayList(CopyService.EXTRA_SRC_LIST); + + final StringBuilder list = new StringBuilder("<p>"); + for (Uri documentUri : mFailedSrcList) { + try { + final DocumentInfo documentInfo = DocumentInfo.fromUri( + getActivity().getContentResolver(), documentUri); + list.append(String.format("• %s<br>", documentInfo.displayName)); + } + catch (FileNotFoundException ignore) { + // Source file most probably gone. + } + } + list.append("</p>"); + final String message = String.format(getString(R.string.copy_failure_alert_content), + list.toString()); + + return new AlertDialog.Builder(getActivity()) + .setTitle(getString(R.string.copy_failure_alert_title)) + .setMessage(Html.fromHtml(message)) + // TODO: Implement retrying the copy operation. + .setPositiveButton(R.string.retry, this) + .setNegativeButton(android.R.string.cancel, this) + .setIcon(android.R.drawable.ic_dialog_alert) + .create(); + } +} diff --git a/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java b/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java index 416aeb0..b43fedf 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java +++ b/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java @@ -19,7 +19,6 @@ package com.android.documentsui; import android.content.Context; import android.content.pm.PackageManager; import android.content.pm.ProviderInfo; -import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.provider.DocumentsContract.Document; import android.util.TypedValue; @@ -269,7 +268,7 @@ public class IconUtils { public static Drawable applyTintColor(Context context, int drawableId, int tintColorId) { final Drawable icon = context.getDrawable(drawableId); icon.mutate(); - icon.setTintList(context.getResources().getColorStateList(tintColorId)); + icon.setTintList(context.getColorStateList(tintColorId)); return icon; } diff --git a/packages/DocumentsUI/src/com/android/documentsui/PickFragment.java b/packages/DocumentsUI/src/com/android/documentsui/PickFragment.java index 5112c92..7ea51b9 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/PickFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/PickFragment.java @@ -16,6 +16,8 @@ package com.android.documentsui; +import android.R.string; +import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; @@ -40,6 +42,7 @@ public class PickFragment extends Fragment { private View mContainer; private Button mPick; + private Button mCancel; public static void show(FragmentManager fm) { final PickFragment fragment = new PickFragment(); @@ -61,7 +64,10 @@ public class PickFragment extends Fragment { mPick = (Button) mContainer.findViewById(android.R.id.button1); mPick.setOnClickListener(mPickListener); - setPickTarget(null, null); + mCancel = (Button) mContainer.findViewById(android.R.id.button2); + mCancel.setOnClickListener(mCancelListener); + + setPickTarget(0, null, null); return mContainer; } @@ -69,23 +75,49 @@ public class PickFragment extends Fragment { private View.OnClickListener mPickListener = new View.OnClickListener() { @Override public void onClick(View v) { - final DocumentsActivity activity = DocumentsActivity.get(PickFragment.this); + final BaseActivity activity = BaseActivity.get(PickFragment.this); activity.onPickRequested(mPickTarget); } }; - public void setPickTarget(DocumentInfo pickTarget, CharSequence displayName) { - mPickTarget = pickTarget; + private View.OnClickListener mCancelListener = new View.OnClickListener() { + @Override + public void onClick(View v) { + final BaseActivity activity = BaseActivity.get(PickFragment.this); + activity.setResult(Activity.RESULT_CANCELED); + activity.finish(); + } + }; + /** + * @param action Which action defined in BaseActivity.State is the picker shown for. + */ + public void setPickTarget(int action, + DocumentInfo pickTarget, + CharSequence displayName) { if (mContainer != null) { - if (mPickTarget != null) { - mContainer.setVisibility(View.VISIBLE); + if (pickTarget != null) { final Locale locale = getResources().getConfiguration().locale; - final String raw = getString(R.string.menu_select).toUpperCase(locale); - mPick.setText(TextUtils.expandTemplate(raw, displayName)); + switch (action) { + case BaseActivity.State.ACTION_OPEN_TREE: + final String raw = getString(R.string.menu_select).toUpperCase(locale); + mPick.setText(TextUtils.expandTemplate(raw, displayName)); + mCancel.setVisibility(View.GONE); + break; + case BaseActivity.State.ACTION_OPEN_COPY_DESTINATION: + mPick.setText(getString(R.string.button_copy).toUpperCase(locale)); + mCancel.setVisibility(View.VISIBLE); + break; + default: + throw new IllegalArgumentException("Illegal action for PickFragment."); + } + } + if (pickTarget != null && pickTarget.isCreateSupported()) { + mContainer.setVisibility(View.VISIBLE); } else { mContainer.setVisibility(View.GONE); } } + mPickTarget = pickTarget; } } diff --git a/packages/DocumentsUI/src/com/android/documentsui/RecentLoader.java b/packages/DocumentsUI/src/com/android/documentsui/RecentLoader.java index 34ce42d..f5908c5 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RecentLoader.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RecentLoader.java @@ -17,7 +17,7 @@ package com.android.documentsui; import static com.android.documentsui.DocumentsActivity.TAG; -import static com.android.documentsui.DocumentsActivity.State.SORT_ORDER_LAST_MODIFIED; +import static com.android.documentsui.BaseActivity.State.SORT_ORDER_LAST_MODIFIED; import android.app.ActivityManager; import android.content.AsyncTaskLoader; @@ -34,7 +34,7 @@ import android.provider.DocumentsContract.Root; import android.text.format.DateUtils; import android.util.Log; -import com.android.documentsui.DocumentsActivity.State; +import com.android.documentsui.BaseActivity.State; import com.android.documentsui.model.RootInfo; import com.google.android.collect.Maps; import com.google.common.collect.Lists; diff --git a/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java index dd75dbd..26aecc5 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java @@ -45,7 +45,7 @@ import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; -import com.android.documentsui.DocumentsActivity.State; +import com.android.documentsui.BaseActivity.State; import com.android.documentsui.RecentsProvider.RecentColumns; import com.android.documentsui.model.DocumentStack; import com.android.documentsui.model.DurableUtils; @@ -95,7 +95,7 @@ public class RecentsCreateFragment extends Fragment { mListView.setAdapter(mAdapter); final RootsCache roots = DocumentsApplication.getRootsCache(context); - final State state = ((DocumentsActivity) getActivity()).getDisplayState(); + final State state = ((BaseActivity) getActivity()).getDisplayState(); mCallbacks = new LoaderCallbacks<List<DocumentStack>>() { @Override @@ -110,7 +110,7 @@ public class RecentsCreateFragment extends Fragment { // When launched into empty recents, show drawer if (mAdapter.isEmpty() && !state.stackTouched) { - ((DocumentsActivity) context).setRootsDrawerOpen(true); + ((BaseActivity) context).setRootsDrawerOpen(true); } } @@ -139,7 +139,7 @@ public class RecentsCreateFragment extends Fragment { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { final DocumentStack stack = mAdapter.getItem(position); - ((DocumentsActivity) getActivity()).onStackPicked(stack); + ((BaseActivity) getActivity()).onStackPicked(stack); } }; diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java index d72db1d..27e8f20 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java @@ -36,7 +36,7 @@ import android.provider.DocumentsContract; import android.provider.DocumentsContract.Root; import android.util.Log; -import com.android.documentsui.DocumentsActivity.State; +import com.android.documentsui.BaseActivity.State; import com.android.documentsui.model.RootInfo; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; @@ -360,14 +360,20 @@ public class RootsCache { // Exclude read-only devices when creating if (state.action == State.ACTION_CREATE && !supportsCreate) continue; + if (state.action == State.ACTION_OPEN_COPY_DESTINATION && !supportsCreate) continue; // Exclude roots that don't support directory picking if (state.action == State.ACTION_OPEN_TREE && !supportsIsChild) continue; // Exclude advanced devices when not requested if (!state.showAdvanced && advanced) continue; // Exclude non-local devices when local only if (state.localOnly && !localOnly) continue; + // Exclude downloads roots that don't support directory creation + // TODO: Add flag to check the root supports directory creation or not. + if (state.directoryCopy && root.isDownloads()) continue; // Only show empty roots when creating - if (state.action != State.ACTION_CREATE && empty) continue; + if ((state.action != State.ACTION_CREATE || + state.action != State.ACTION_OPEN_TREE || + state.action != State.ACTION_OPEN_COPY_DESTINATION) && empty) continue; // Only include roots that serve requested content final boolean overlap = diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java index 884cf31..ed5e123 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java @@ -16,8 +16,6 @@ package com.android.documentsui; -import static com.android.documentsui.DocumentsActivity.State.ACTION_GET_CONTENT; - import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; @@ -43,7 +41,7 @@ import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; -import com.android.documentsui.DocumentsActivity.State; +import com.android.documentsui.BaseActivity.State; import com.android.documentsui.model.DocumentInfo; import com.android.documentsui.model.RootInfo; import com.google.common.collect.Lists; @@ -101,7 +99,7 @@ public class RootsFragment extends Fragment { final Context context = getActivity(); final RootsCache roots = DocumentsApplication.getRootsCache(context); - final State state = ((DocumentsActivity) context).getDisplayState(); + final State state = ((BaseActivity) context).getDisplayState(); mCallbacks = new LoaderCallbacks<Collection<RootInfo>>() { @Override @@ -138,9 +136,9 @@ public class RootsFragment extends Fragment { public void onDisplayStateChanged() { final Context context = getActivity(); - final State state = ((DocumentsActivity) context).getDisplayState(); + final State state = ((BaseActivity) context).getDisplayState(); - if (state.action == ACTION_GET_CONTENT) { + if (state.action == State.ACTION_GET_CONTENT) { mList.setOnItemLongClickListener(mItemLongClickListener); } else { mList.setOnItemLongClickListener(null); @@ -153,7 +151,7 @@ public class RootsFragment extends Fragment { public void onCurrentRootChanged() { if (mAdapter == null) return; - final RootInfo root = ((DocumentsActivity) getActivity()).getCurrentRoot(); + final RootInfo root = ((BaseActivity) getActivity()).getCurrentRoot(); for (int i = 0; i < mAdapter.getCount(); i++) { final Object item = mAdapter.getItem(i); if (item instanceof RootItem) { @@ -176,7 +174,7 @@ public class RootsFragment extends Fragment { private OnItemClickListener mItemListener = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { - final DocumentsActivity activity = DocumentsActivity.get(RootsFragment.this); + final BaseActivity activity = BaseActivity.get(RootsFragment.this); final Item item = mAdapter.getItem(position); if (item instanceof RootItem) { activity.onRootPicked(((RootItem) item).root, true); diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsLoader.java b/packages/DocumentsUI/src/com/android/documentsui/RootsLoader.java index 8d37cdf..49651b4 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RootsLoader.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RootsLoader.java @@ -19,7 +19,7 @@ package com.android.documentsui; import android.content.AsyncTaskLoader; import android.content.Context; -import com.android.documentsui.DocumentsActivity.State; +import com.android.documentsui.BaseActivity.State; import com.android.documentsui.model.RootInfo; import java.util.Collection; diff --git a/packages/DocumentsUI/src/com/android/documentsui/SaveFragment.java b/packages/DocumentsUI/src/com/android/documentsui/SaveFragment.java index ce98db2..a13fccc 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/SaveFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/SaveFragment.java @@ -113,7 +113,7 @@ public class SaveFragment extends Fragment { private View.OnClickListener mSaveListener = new View.OnClickListener() { @Override public void onClick(View v) { - final DocumentsActivity activity = DocumentsActivity.get(SaveFragment.this); + final BaseActivity activity = BaseActivity.get(SaveFragment.this); if (mReplaceTarget != null) { activity.onSaveRequested(mReplaceTarget); } else { diff --git a/packages/DocumentsUI/src/com/android/documentsui/SortingCursorWrapper.java b/packages/DocumentsUI/src/com/android/documentsui/SortingCursorWrapper.java index 6c8ca20..3ec3d1c 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/SortingCursorWrapper.java +++ b/packages/DocumentsUI/src/com/android/documentsui/SortingCursorWrapper.java @@ -16,9 +16,9 @@ package com.android.documentsui; -import static com.android.documentsui.DocumentsActivity.State.SORT_ORDER_DISPLAY_NAME; -import static com.android.documentsui.DocumentsActivity.State.SORT_ORDER_LAST_MODIFIED; -import static com.android.documentsui.DocumentsActivity.State.SORT_ORDER_SIZE; +import static com.android.documentsui.BaseActivity.State.SORT_ORDER_DISPLAY_NAME; +import static com.android.documentsui.BaseActivity.State.SORT_ORDER_LAST_MODIFIED; +import static com.android.documentsui.BaseActivity.State.SORT_ORDER_SIZE; import static com.android.documentsui.model.DocumentInfo.getCursorLong; import static com.android.documentsui.model.DocumentInfo.getCursorString; diff --git a/packages/DocumentsUI/src/com/android/documentsui/StandaloneActivity.java b/packages/DocumentsUI/src/com/android/documentsui/StandaloneActivity.java new file mode 100644 index 0000000..976f21d --- /dev/null +++ b/packages/DocumentsUI/src/com/android/documentsui/StandaloneActivity.java @@ -0,0 +1,937 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.documentsui; + + +import static com.android.documentsui.DirectoryFragment.ANIM_DOWN; +import static com.android.documentsui.DirectoryFragment.ANIM_NONE; +import static com.android.documentsui.DirectoryFragment.ANIM_SIDE; +import static com.android.documentsui.DirectoryFragment.ANIM_UP; +import android.app.Activity; +import android.app.Fragment; +import android.app.FragmentManager; +import android.content.ActivityNotFoundException; +import android.content.ClipData; +import android.content.ComponentName; +import android.content.ContentProviderClient; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.content.Intent; +import android.content.pm.ResolveInfo; +import android.content.res.Resources; +import android.database.Cursor; +import android.graphics.Point; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Bundle; +import android.os.Debug; +import android.provider.DocumentsContract; +import android.support.v4.app.ActionBarDrawerToggle; +import android.support.v4.widget.DrawerLayout; +import android.support.v4.widget.DrawerLayout.DrawerListener; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MenuItem.OnActionExpandListener; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemSelectedListener; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.SearchView; +import android.widget.SearchView.OnQueryTextListener; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.Toast; +import android.widget.Toolbar; + +import com.android.documentsui.FailureDialogFragment; +import com.android.documentsui.RecentsProvider.ResumeColumns; +import com.android.documentsui.model.DocumentInfo; +import com.android.documentsui.model.DocumentStack; +import com.android.documentsui.model.DurableUtils; +import com.android.documentsui.model.RootInfo; + +import libcore.io.IoUtils; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.Executor; + +public class StandaloneActivity extends BaseActivity { + public static final String TAG = "StandaloneFileManagement"; + + private static final String EXTRA_STATE = "state"; + + private static final int CODE_FORWARD = 42; + + private SearchView mSearchView; + + private Toolbar mToolbar; + private Spinner mToolbarStack; + + private Toolbar mRootsToolbar; + + private ActionBarDrawerToggle mDrawerToggle; + + private DirectoryContainerView mDirectoryContainer; + + private boolean mIgnoreNextNavigation; + private boolean mIgnoreNextClose; + private boolean mIgnoreNextCollapse; + + private boolean mSearchExpanded; + + private RootsCache mRoots; + private State mState; + + @Override + public void onCreate(Bundle icicle) { + // Debug.waitForDebugger(); + super.onCreate(icicle); + + mRoots = DocumentsApplication.getRootsCache(this); + + setResult(Activity.RESULT_CANCELED); + setContentView(R.layout.activity); + + final Context context = this; + final Resources res = getResources(); + + // Strongly define our horizontal dimension; we leave vertical as + final WindowManager.LayoutParams a = getWindow().getAttributes(); + + final Point size = new Point(); + getWindowManager().getDefaultDisplay().getSize(size); + // a.width = (int) res.getFraction(R.dimen.dialog_width, size.x, size.x); + + getWindow().setAttributes(a); + + mDirectoryContainer = (DirectoryContainerView) findViewById(R.id.container_directory); + + if (icicle != null) { + mState = icicle.getParcelable(EXTRA_STATE); + } else { + buildDefaultState(); + } + + mToolbar = (Toolbar) findViewById(R.id.toolbar); + mToolbar.setTitleTextAppearance(context, + android.R.style.TextAppearance_DeviceDefault_Widget_ActionBar_Title); + + mToolbarStack = (Spinner) findViewById(R.id.stack); + mToolbarStack.setOnItemSelectedListener(mStackListener); + + mRootsToolbar = (Toolbar) findViewById(R.id.roots_toolbar); + if (mRootsToolbar != null) { + mRootsToolbar.setTitleTextAppearance(context, + android.R.style.TextAppearance_DeviceDefault_Widget_ActionBar_Title); + } + + setActionBar(mToolbar); + + RootsFragment.show(getFragmentManager(), null); + if (!mState.restored) { + new RestoreStackTask().execute(); + final Intent intent = getIntent(); + final int failure = intent.getIntExtra(CopyService.EXTRA_FAILURE, 0); + if (failure != 0) { + final ArrayList<Uri> failedSrcList = intent.getParcelableArrayListExtra( + CopyService.EXTRA_SRC_LIST); + FailureDialogFragment.show(getFragmentManager(), failure, failedSrcList); + } + } else { + onCurrentDirectoryChanged(ANIM_NONE); + } + } + + private void buildDefaultState() { + mState = new State(); + + final Intent intent = getIntent(); + mState.action = State.ACTION_BROWSE_ALL; + mState.acceptMimes = new String[] { "*/*" }; + mState.allowMultiple = true; + mState.acceptMimes = new String[] { intent.getType() }; + mState.localOnly = intent.getBooleanExtra(Intent.EXTRA_LOCAL_ONLY, false); + mState.forceAdvanced = intent.getBooleanExtra(DocumentsContract.EXTRA_SHOW_ADVANCED, false); + mState.showAdvanced = mState.forceAdvanced + | LocalPreferences.getDisplayAdvancedDevices(this); + mState.showSize = true; + final DocumentStack stack = intent.getParcelableExtra(CopyService.EXTRA_STACK); + if (stack != null) + mState.stack = stack; + } + + private class RestoreStackTask extends AsyncTask<Void, Void, Void> { + private volatile boolean mRestoredStack; + private volatile boolean mExternal; + + @Override + protected Void doInBackground(Void... params) { + // Restore last stack for calling package + final String packageName = getCallingPackageMaybeExtra(); + final Cursor cursor = getContentResolver() + .query(RecentsProvider.buildResume(packageName), null, null, null, null); + try { + if (cursor.moveToFirst()) { + mExternal = cursor.getInt(cursor.getColumnIndex(ResumeColumns.EXTERNAL)) != 0; + final byte[] rawStack = cursor.getBlob( + cursor.getColumnIndex(ResumeColumns.STACK)); + DurableUtils.readFromArray(rawStack, mState.stack); + mRestoredStack = true; + } + } catch (IOException e) { + Log.w(TAG, "Failed to resume: " + e); + } finally { + IoUtils.closeQuietly(cursor); + } + + if (mRestoredStack) { + // Update the restored stack to ensure we have freshest data + final Collection<RootInfo> matchingRoots = mRoots.getMatchingRootsBlocking(mState); + try { + mState.stack.updateRoot(matchingRoots); + mState.stack.updateDocuments(getContentResolver()); + } catch (FileNotFoundException e) { + Log.w(TAG, "Failed to restore stack: " + e); + mState.stack.reset(); + mRestoredStack = false; + } + } + + return null; + } + + @Override + protected void onPostExecute(Void result) { + if (isDestroyed()) return; + mState.restored = true; + onCurrentDirectoryChanged(ANIM_NONE); + } + } + + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + if (mDrawerToggle != null) { + mDrawerToggle.syncState(); + } + updateActionBar(); + } + + @Override + public void setRootsDrawerOpen(boolean open) { + Log.w(TAG, "Trying to change state of roots drawer to > " + (open ? "open" : "closed")); + // throw new UnsupportedOperationException(); + } + + public void updateActionBar() { + final RootInfo root = getCurrentRoot(); + mToolbar.setNavigationIcon( + root != null ? root.loadToolbarIcon(mToolbar.getContext()) : null); + mToolbar.setNavigationContentDescription(R.string.drawer_open); + mToolbar.setNavigationOnClickListener(null); + + if (mSearchExpanded) { + mToolbar.setTitle(null); + mToolbarStack.setVisibility(View.GONE); + mToolbarStack.setAdapter(null); + } else { + if (mState.stack.size() <= 1) { + mToolbar.setTitle(root.title); + mToolbarStack.setVisibility(View.GONE); + mToolbarStack.setAdapter(null); + } else { + mToolbar.setTitle(null); + mToolbarStack.setVisibility(View.VISIBLE); + mToolbarStack.setAdapter(mStackAdapter); + + mIgnoreNextNavigation = true; + mToolbarStack.setSelection(mStackAdapter.getCount() - 1); + } + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + super.onCreateOptionsMenu(menu); + getMenuInflater().inflate(R.menu.activity, menu); + + for (int i = 0; i < menu.size(); i++) { + final MenuItem item = menu.getItem(i); + switch (item.getItemId()) { + case R.id.menu_advanced: + case R.id.menu_file_size: + break; + default: + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + } + } + + final MenuItem searchMenu = menu.findItem(R.id.menu_search); + mSearchView = (SearchView) searchMenu.getActionView(); + mSearchView.setOnQueryTextListener(new OnQueryTextListener() { + @Override + public boolean onQueryTextSubmit(String query) { + mSearchExpanded = true; + mState.currentSearch = query; + mSearchView.clearFocus(); + onCurrentDirectoryChanged(ANIM_NONE); + return true; + } + + @Override + public boolean onQueryTextChange(String newText) { + return false; + } + }); + + searchMenu.setOnActionExpandListener(new OnActionExpandListener() { + @Override + public boolean onMenuItemActionExpand(MenuItem item) { + mSearchExpanded = true; + updateActionBar(); + return true; + } + + @Override + public boolean onMenuItemActionCollapse(MenuItem item) { + mSearchExpanded = false; + if (mIgnoreNextCollapse) { + mIgnoreNextCollapse = false; + return true; + } + + mState.currentSearch = null; + onCurrentDirectoryChanged(ANIM_NONE); + return true; + } + }); + + mSearchView.setOnCloseListener(new SearchView.OnCloseListener() { + @Override + public boolean onClose() { + mSearchExpanded = false; + if (mIgnoreNextClose) { + mIgnoreNextClose = false; + return false; + } + + mState.currentSearch = null; + onCurrentDirectoryChanged(ANIM_NONE); + return false; + } + }); + + return true; + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + super.onPrepareOptionsMenu(menu); + + final FragmentManager fm = getFragmentManager(); + + final RootInfo root = getCurrentRoot(); + final DocumentInfo cwd = getCurrentDirectory(); + + final MenuItem createDir = menu.findItem(R.id.menu_create_dir); + final MenuItem search = menu.findItem(R.id.menu_search); + final MenuItem sort = menu.findItem(R.id.menu_sort); + final MenuItem sortSize = menu.findItem(R.id.menu_sort_size); + final MenuItem grid = menu.findItem(R.id.menu_grid); + final MenuItem list = menu.findItem(R.id.menu_list); + final MenuItem advanced = menu.findItem(R.id.menu_advanced); + final MenuItem fileSize = menu.findItem(R.id.menu_file_size); + + sort.setVisible(cwd != null); + grid.setVisible(mState.derivedMode != State.MODE_GRID); + list.setVisible(mState.derivedMode != State.MODE_LIST); + + if (mState.currentSearch != null) { + // Search uses backend ranking; no sorting + sort.setVisible(false); + + search.expandActionView(); + + mSearchView.setIconified(false); + mSearchView.clearFocus(); + mSearchView.setQuery(mState.currentSearch, false); + } else { + mIgnoreNextClose = true; + mSearchView.setIconified(true); + mSearchView.clearFocus(); + + mIgnoreNextCollapse = true; + search.collapseActionView(); + } + + // Only sort by size when visible + sortSize.setVisible(mState.showSize); + + fileSize.setVisible(true); + search.setVisible(true); + createDir.setVisible(true); + advanced.setVisible(true); + + advanced.setTitle(LocalPreferences.getDisplayAdvancedDevices(this) + ? R.string.menu_advanced_hide : R.string.menu_advanced_show); + fileSize.setTitle(LocalPreferences.getDisplayFileSize(this) + ? R.string.menu_file_size_hide : R.string.menu_file_size_show); + + + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (mDrawerToggle != null && mDrawerToggle.onOptionsItemSelected(item)) { + return true; + } + + final int id = item.getItemId(); + if (id == android.R.id.home) { + onBackPressed(); + return true; + } else if (id == R.id.menu_create_dir) { + CreateDirectoryFragment.show(getFragmentManager()); + return true; + } else if (id == R.id.menu_search) { + return false; + } else if (id == R.id.menu_sort_name) { + setUserSortOrder(State.SORT_ORDER_DISPLAY_NAME); + return true; + } else if (id == R.id.menu_sort_date) { + setUserSortOrder(State.SORT_ORDER_LAST_MODIFIED); + return true; + } else if (id == R.id.menu_sort_size) { + setUserSortOrder(State.SORT_ORDER_SIZE); + return true; + } else if (id == R.id.menu_grid) { + setUserMode(State.MODE_GRID); + return true; + } else if (id == R.id.menu_list) { + setUserMode(State.MODE_LIST); + return true; + } else if (id == R.id.menu_advanced) { + setDisplayAdvancedDevices(!LocalPreferences.getDisplayAdvancedDevices(this)); + return true; + } else if (id == R.id.menu_file_size) { + setDisplayFileSize(!LocalPreferences.getDisplayFileSize(this)); + return true; + } else { + return super.onOptionsItemSelected(item); + } + } + + private void setDisplayAdvancedDevices(boolean display) { + LocalPreferences.setDisplayAdvancedDevices(this, display); + mState.showAdvanced = mState.forceAdvanced | display; + RootsFragment.get(getFragmentManager()).onDisplayStateChanged(); + invalidateOptionsMenu(); + } + + private void setDisplayFileSize(boolean display) { + LocalPreferences.setDisplayFileSize(this, display); + mState.showSize = display; + DirectoryFragment.get(getFragmentManager()).onDisplayStateChanged(); + invalidateOptionsMenu(); + } + + @Override + public void onStateChanged() { + invalidateOptionsMenu(); + } + + /** + * Set state sort order based on explicit user action. + */ + private void setUserSortOrder(int sortOrder) { + mState.userSortOrder = sortOrder; + DirectoryFragment.get(getFragmentManager()).onUserSortOrderChanged(); + } + + /** + * Set state mode based on explicit user action. + */ + private void setUserMode(int mode) { + mState.userMode = mode; + DirectoryFragment.get(getFragmentManager()).onUserModeChanged(); + } + + @Override + public void setPending(boolean pending) { + final SaveFragment save = SaveFragment.get(getFragmentManager()); + if (save != null) { + save.setPending(pending); + } + } + + @Override + public void onBackPressed() { + if (!mState.stackTouched) { + super.onBackPressed(); + return; + } + + final int size = mState.stack.size(); + if (size > 1) { + mState.stack.pop(); + onCurrentDirectoryChanged(ANIM_UP); + } else { + super.onBackPressed(); + } + } + + @Override + protected void onSaveInstanceState(Bundle state) { + super.onSaveInstanceState(state); + state.putParcelable(EXTRA_STATE, mState); + } + + @Override + protected void onRestoreInstanceState(Bundle state) { + super.onRestoreInstanceState(state); + } + + private BaseAdapter mStackAdapter = new BaseAdapter() { + @Override + public int getCount() { + return mState.stack.size(); + } + + @Override + public DocumentInfo getItem(int position) { + return mState.stack.get(mState.stack.size() - position - 1); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + if (convertView == null) { + convertView = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.item_subdir_title, parent, false); + } + + final TextView title = (TextView) convertView.findViewById(android.R.id.title); + final DocumentInfo doc = getItem(position); + + if (position == 0) { + final RootInfo root = getCurrentRoot(); + title.setText(root.title); + } else { + title.setText(doc.displayName); + } + + return convertView; + } + + @Override + public View getDropDownView(int position, View convertView, ViewGroup parent) { + if (convertView == null) { + convertView = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.item_subdir, parent, false); + } + + final ImageView subdir = (ImageView) convertView.findViewById(R.id.subdir); + final TextView title = (TextView) convertView.findViewById(android.R.id.title); + final DocumentInfo doc = getItem(position); + + if (position == 0) { + final RootInfo root = getCurrentRoot(); + title.setText(root.title); + subdir.setVisibility(View.GONE); + } else { + title.setText(doc.displayName); + subdir.setVisibility(View.VISIBLE); + } + + return convertView; + } + }; + + private OnItemSelectedListener mStackListener = new OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { + if (mIgnoreNextNavigation) { + mIgnoreNextNavigation = false; + return; + } + + while (mState.stack.size() > position + 1) { + mState.stackTouched = true; + mState.stack.pop(); + } + onCurrentDirectoryChanged(ANIM_UP); + } + + @Override + public void onNothingSelected(AdapterView<?> parent) { + // Ignored + } + }; + + @Override + public RootInfo getCurrentRoot() { + if (mState.stack.root != null) { + return mState.stack.root; + } else { + return mRoots.getRecentsRoot(); + } + } + + public DocumentInfo getCurrentDirectory() { + return mState.stack.peek(); + } + + private String getCallingPackageMaybeExtra() { + final String extra = getIntent().getStringExtra(DocumentsContract.EXTRA_PACKAGE_NAME); + return (extra != null) ? extra : getCallingPackage(); + } + + public Executor getCurrentExecutor() { + final DocumentInfo cwd = getCurrentDirectory(); + if (cwd != null && cwd.authority != null) { + return ProviderExecutor.forAuthority(cwd.authority); + } else { + return AsyncTask.THREAD_POOL_EXECUTOR; + } + } + + @Override + public State getDisplayState() { + return mState; + } + + private void onCurrentDirectoryChanged(int anim) { + final FragmentManager fm = getFragmentManager(); + final RootInfo root = getCurrentRoot(); + final DocumentInfo cwd = getCurrentDirectory(); + + mDirectoryContainer.setDrawDisappearingFirst(anim == ANIM_DOWN); + + if (cwd == null) { + DirectoryFragment.showRecentsOpen(fm, anim); + + // Start recents in grid when requesting visual things + final boolean visualMimes = MimePredicate.mimeMatches( + MimePredicate.VISUAL_MIMES, mState.acceptMimes); + mState.userMode = visualMimes ? State.MODE_GRID : State.MODE_LIST; + mState.derivedMode = mState.userMode; + } else { + if (mState.currentSearch != null) { + // Ongoing search + DirectoryFragment.showSearch(fm, root, mState.currentSearch, anim); + } else { + // Normal boring directory + DirectoryFragment.showNormal(fm, root, cwd, anim); + } + } + + final RootsFragment roots = RootsFragment.get(fm); + if (roots != null) { + roots.onCurrentRootChanged(); + } + + updateActionBar(); + invalidateOptionsMenu(); + dumpStack(); + } + + @Override + public void onStackPicked(DocumentStack stack) { + try { + // Update the restored stack to ensure we have freshest data + stack.updateDocuments(getContentResolver()); + + mState.stack = stack; + mState.stackTouched = true; + onCurrentDirectoryChanged(ANIM_SIDE); + + } catch (FileNotFoundException e) { + Log.w(TAG, "Failed to restore stack: " + e); + } + } + + @Override + public void onRootPicked(RootInfo root, boolean closeDrawer) { + // Clear entire backstack and start in new root + mState.stack.root = root; + mState.stack.clear(); + mState.stackTouched = true; + + if (!mRoots.isRecentsRoot(root)) { + new PickRootTask(root).executeOnExecutor(getCurrentExecutor()); + } else { + onCurrentDirectoryChanged(ANIM_SIDE); + } + } + + private class PickRootTask extends AsyncTask<Void, Void, DocumentInfo> { + private RootInfo mRoot; + + public PickRootTask(RootInfo root) { + mRoot = root; + } + + @Override + protected DocumentInfo doInBackground(Void... params) { + try { + final Uri uri = DocumentsContract.buildDocumentUri( + mRoot.authority, mRoot.documentId); + return DocumentInfo.fromUri(getContentResolver(), uri); + } catch (FileNotFoundException e) { + Log.w(TAG, "Failed to find root", e); + return null; + } + } + + @Override + protected void onPostExecute(DocumentInfo result) { + if (result != null) { + mState.stack.push(result); + mState.stackTouched = true; + onCurrentDirectoryChanged(ANIM_SIDE); + } + } + } + + @Override + public void onAppPicked(ResolveInfo info) { + final Intent intent = new Intent(getIntent()); + intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_FORWARD_RESULT); + intent.setComponent(new ComponentName( + info.activityInfo.applicationInfo.packageName, info.activityInfo.name)); + startActivityForResult(intent, CODE_FORWARD); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + Log.d(TAG, "onActivityResult() code=" + resultCode); + + // Only relay back results when not canceled; otherwise stick around to + // let the user pick another app/backend. + if (requestCode == CODE_FORWARD && resultCode != RESULT_CANCELED) { + + // Remember that we last picked via external app + final String packageName = getCallingPackageMaybeExtra(); + final ContentValues values = new ContentValues(); + values.put(ResumeColumns.EXTERNAL, 1); + getContentResolver().insert(RecentsProvider.buildResume(packageName), values); + + // Pass back result to original caller + setResult(resultCode, data); + finish(); + } else { + super.onActivityResult(requestCode, resultCode, data); + } + } + + @Override + public void onDocumentPicked(DocumentInfo doc) { + final FragmentManager fm = getFragmentManager(); + if (doc.isDirectory()) { + mState.stack.push(doc); + mState.stackTouched = true; + onCurrentDirectoryChanged(ANIM_DOWN); + } else { + // Fall back to viewing + final Intent view = new Intent(Intent.ACTION_VIEW); + view.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + view.setData(doc.derivedUri); + + try { + startActivity(view); + } catch (ActivityNotFoundException ex2) { + Toast.makeText(this, R.string.toast_no_application, Toast.LENGTH_SHORT).show(); + } + } + } + + public void onDocumentsPicked(List<DocumentInfo> docs) { + // TODO + } + + @Override + public void onSaveRequested(DocumentInfo replaceTarget) { + new ExistingFinishTask(replaceTarget.derivedUri).executeOnExecutor(getCurrentExecutor()); + } + + @Override + public void onSaveRequested(String mimeType, String displayName) { + new CreateFinishTask(mimeType, displayName).executeOnExecutor(getCurrentExecutor()); + } + + @Override + public void onPickRequested(DocumentInfo pickTarget) { + final Uri viaUri = DocumentsContract.buildTreeDocumentUri(pickTarget.authority, + pickTarget.documentId); + new PickFinishTask(viaUri).executeOnExecutor(getCurrentExecutor()); + } + + private void saveStackBlocking() { + final ContentResolver resolver = getContentResolver(); + final ContentValues values = new ContentValues(); + + final byte[] rawStack = DurableUtils.writeToArrayOrNull(mState.stack); + + // Remember location for next app launch + final String packageName = getCallingPackageMaybeExtra(); + values.clear(); + values.put(ResumeColumns.STACK, rawStack); + values.put(ResumeColumns.EXTERNAL, 0); + resolver.insert(RecentsProvider.buildResume(packageName), values); + } + + private void onFinished(Uri... uris) { + Log.d(TAG, "onFinished() " + Arrays.toString(uris)); + + final Intent intent = new Intent(); + if (uris.length == 1) { + intent.setData(uris[0]); + } else if (uris.length > 1) { + final ClipData clipData = new ClipData( + null, mState.acceptMimes, new ClipData.Item(uris[0])); + for (int i = 1; i < uris.length; i++) { + clipData.addItem(new ClipData.Item(uris[i])); + } + intent.setClipData(clipData); + } + + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION + | Intent.FLAG_GRANT_WRITE_URI_PERMISSION + | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION); + + setResult(Activity.RESULT_OK, intent); + finish(); + } + + private class CreateFinishTask extends AsyncTask<Void, Void, Uri> { + private final String mMimeType; + private final String mDisplayName; + + public CreateFinishTask(String mimeType, String displayName) { + mMimeType = mimeType; + mDisplayName = displayName; + } + + @Override + protected void onPreExecute() { + setPending(true); + } + + @Override + protected Uri doInBackground(Void... params) { + final ContentResolver resolver = getContentResolver(); + final DocumentInfo cwd = getCurrentDirectory(); + + ContentProviderClient client = null; + Uri childUri = null; + try { + client = DocumentsApplication.acquireUnstableProviderOrThrow( + resolver, cwd.derivedUri.getAuthority()); + childUri = DocumentsContract.createDocument( + client, cwd.derivedUri, mMimeType, mDisplayName); + } catch (Exception e) { + Log.w(TAG, "Failed to create document", e); + } finally { + ContentProviderClient.releaseQuietly(client); + } + + if (childUri != null) { + saveStackBlocking(); + } + + return childUri; + } + + @Override + protected void onPostExecute(Uri result) { + if (result != null) { + onFinished(result); + } else { + Toast.makeText(StandaloneActivity.this, R.string.save_error, Toast.LENGTH_SHORT) + .show(); + } + + setPending(false); + } + } + + private class ExistingFinishTask extends AsyncTask<Void, Void, Void> { + private final Uri[] mUris; + + public ExistingFinishTask(Uri... uris) { + mUris = uris; + } + + @Override + protected Void doInBackground(Void... params) { + saveStackBlocking(); + return null; + } + + @Override + protected void onPostExecute(Void result) { + onFinished(mUris); + } + } + + private class PickFinishTask extends AsyncTask<Void, Void, Void> { + private final Uri mUri; + + public PickFinishTask(Uri uri) { + mUri = uri; + } + + @Override + protected Void doInBackground(Void... params) { + saveStackBlocking(); + return null; + } + + @Override + protected void onPostExecute(Void result) { + onFinished(mUri); + } + } + + private void dumpStack() { + Log.d(TAG, "Current stack: "); + Log.d(TAG, " * " + mState.stack.root); + for (DocumentInfo doc : mState.stack) { + Log.d(TAG, " +-- " + doc); + } + } + + public static BaseActivity get(Fragment fragment) { + return (BaseActivity) fragment.getActivity(); + } +} diff --git a/packages/DocumentsUI/src/com/android/documentsui/model/DocumentInfo.java b/packages/DocumentsUI/src/com/android/documentsui/model/DocumentInfo.java index 1c5ca86..5d5f2eb 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/model/DocumentInfo.java +++ b/packages/DocumentsUI/src/com/android/documentsui/model/DocumentInfo.java @@ -24,6 +24,7 @@ import android.os.Parcel; import android.os.Parcelable; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Document; +import android.provider.DocumentsContract.Root; import android.provider.DocumentsProvider; import android.text.TextUtils; @@ -161,8 +162,6 @@ public class DocumentInfo implements Durable, Parcelable { this.authority = authority; this.documentId = getCursorString(cursor, Document.COLUMN_DOCUMENT_ID); this.mimeType = getCursorString(cursor, Document.COLUMN_MIME_TYPE); - this.documentId = getCursorString(cursor, Document.COLUMN_DOCUMENT_ID); - this.mimeType = getCursorString(cursor, Document.COLUMN_MIME_TYPE); this.displayName = getCursorString(cursor, Document.COLUMN_DISPLAY_NAME); this.lastModified = getCursorLong(cursor, Document.COLUMN_LAST_MODIFIED); this.flags = getCursorInt(cursor, Document.COLUMN_FLAGS); diff --git a/packages/DocumentsUI/src/com/android/documentsui/model/DocumentStack.java b/packages/DocumentsUI/src/com/android/documentsui/model/DocumentStack.java index 28bab6c..34bd696 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/model/DocumentStack.java +++ b/packages/DocumentsUI/src/com/android/documentsui/model/DocumentStack.java @@ -17,6 +17,8 @@ package com.android.documentsui.model; import android.content.ContentResolver; +import android.os.Parcel; +import android.os.Parcelable; import android.provider.DocumentsProvider; import java.io.DataInputStream; @@ -31,7 +33,7 @@ import java.util.LinkedList; * Representation of a stack of {@link DocumentInfo}, usually the result of a * user-driven traversal. */ -public class DocumentStack extends LinkedList<DocumentInfo> implements Durable { +public class DocumentStack extends LinkedList<DocumentInfo> implements Durable, Parcelable { private static final int VERSION_INIT = 1; private static final int VERSION_ADD_ROOT = 2; @@ -135,4 +137,28 @@ public class DocumentStack extends LinkedList<DocumentInfo> implements Durable { doc.write(out); } } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + DurableUtils.writeToParcel(dest, this); + } + + public static final Creator<DocumentStack> CREATOR = new Creator<DocumentStack>() { + @Override + public DocumentStack createFromParcel(Parcel in) { + final DocumentStack stack = new DocumentStack(); + DurableUtils.readFromParcel(in, stack); + return stack; + } + + @Override + public DocumentStack[] newArray(int size) { + return new DocumentStack[size]; + } + }; } diff --git a/packages/DocumentsUI/tests/AndroidManifest.xml b/packages/DocumentsUI/tests/AndroidManifest.xml index 81a2889..a312427 100644 --- a/packages/DocumentsUI/tests/AndroidManifest.xml +++ b/packages/DocumentsUI/tests/AndroidManifest.xml @@ -4,6 +4,17 @@ <application> <uses-library android:name="android.test.runner" /> + <provider + android:name="com.android.documentsui.StubProvider" + android:authorities="com.android.documentsui.stubprovider" + android:exported="true" + android:grantUriPermissions="true" + android:permission="android.permission.MANAGE_DOCUMENTS" + android:enabled="true"> + <intent-filter> + <action android:name="android.content.action.DOCUMENTS_PROVIDER" /> + </intent-filter> + </provider> </application> <instrumentation android:name="android.test.InstrumentationTestRunner" diff --git a/packages/DocumentsUI/tests/src/com/android/documentsui/RootsCacheTest.java b/packages/DocumentsUI/tests/src/com/android/documentsui/RootsCacheTest.java index cdb6b33..7faa3ce 100644 --- a/packages/DocumentsUI/tests/src/com/android/documentsui/RootsCacheTest.java +++ b/packages/DocumentsUI/tests/src/com/android/documentsui/RootsCacheTest.java @@ -19,7 +19,7 @@ package com.android.documentsui; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.SmallTest; -import com.android.documentsui.DocumentsActivity.State; +import com.android.documentsui.BaseActivity.State; import com.android.documentsui.model.RootInfo; import com.google.android.collect.Lists; diff --git a/packages/DocumentsUI/tests/src/com/android/documentsui/StubProvider.java b/packages/DocumentsUI/tests/src/com/android/documentsui/StubProvider.java new file mode 100644 index 0000000..75effa7 --- /dev/null +++ b/packages/DocumentsUI/tests/src/com/android/documentsui/StubProvider.java @@ -0,0 +1,316 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.documentsui; + +import android.content.Context; +import android.content.pm.ProviderInfo; +import android.content.res.AssetFileDescriptor; +import android.database.Cursor; +import android.database.MatrixCursor.RowBuilder; +import android.database.MatrixCursor; +import android.graphics.Point; +import android.os.CancellationSignal; +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.DocumentsContract.Root; +import android.provider.DocumentsProvider; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; + +public class StubProvider extends DocumentsProvider { + private static int STORAGE_SIZE = 1024 * 1024; // 1 MB. + private static final String TAG = "StubProvider"; + private static final String MY_ROOT_ID = "myRoot"; + + private static final String[] DEFAULT_ROOT_PROJECTION = new String[] { + Root.COLUMN_ROOT_ID, Root.COLUMN_FLAGS, Root.COLUMN_TITLE, Root.COLUMN_DOCUMENT_ID, + Root.COLUMN_AVAILABLE_BYTES + }; + private static final String[] DEFAULT_DOCUMENT_PROJECTION = new String[] { + Document.COLUMN_DOCUMENT_ID, Document.COLUMN_MIME_TYPE, Document.COLUMN_DISPLAY_NAME, + Document.COLUMN_LAST_MODIFIED, Document.COLUMN_FLAGS, Document.COLUMN_SIZE, + }; + + private String mRootDocumentId; + private HashMap<String, StubDocument> mStorage = new HashMap<String, StubDocument>(); + private int mStorageUsedBytes; + private Object mWriteLock = new Object(); + private String mAuthority; + + @Override + public void attachInfo(Context context, ProviderInfo info) { + mAuthority = info.authority; + super.attachInfo(context, info); + } + + @Override + public boolean onCreate() { + final File cacheDir = getContext().getCacheDir(); + removeRecursively(cacheDir); + final StubDocument document = new StubDocument(cacheDir, Document.MIME_TYPE_DIR, null); + mRootDocumentId = document.documentId; + mStorage.put(mRootDocumentId, document); + return true; + } + + @Override + public Cursor queryRoots(String[] projection) throws FileNotFoundException { + final MatrixCursor result = new MatrixCursor(projection != null ? projection : DEFAULT_ROOT_PROJECTION); + final RowBuilder row = result.newRow(); + row.add(Root.COLUMN_ROOT_ID, MY_ROOT_ID); + row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_CREATE | Root.FLAG_SUPPORTS_IS_CHILD); + row.add(Root.COLUMN_TITLE, "Foobar SD 4GB"); + row.add(Root.COLUMN_DOCUMENT_ID, mRootDocumentId); + row.add(Root.COLUMN_AVAILABLE_BYTES, STORAGE_SIZE - mStorageUsedBytes); + return result; + } + + @Override + public Cursor queryDocument(String documentId, String[] projection) throws FileNotFoundException { + final MatrixCursor result = new MatrixCursor(projection != null ? projection : DEFAULT_DOCUMENT_PROJECTION); + final StubDocument file = mStorage.get(documentId); + if (file == null) { + throw new FileNotFoundException(); + } + includeDocument(result, file); + return result; + } + + @Override + public boolean isChildDocument(String parentDocId, String docId) { + final StubDocument parentDocument = mStorage.get(parentDocId); + final StubDocument childDocument = mStorage.get(docId); + return FileUtils.contains(parentDocument.file, childDocument.file); + } + + @Override + public String createDocument(String parentDocumentId, String mimeType, String displayName) + throws FileNotFoundException { + final StubDocument parentDocument = mStorage.get(parentDocumentId); + if (parentDocument == null || !parentDocument.file.isDirectory()) { + throw new FileNotFoundException(); + } + final File file = new File(parentDocument.file, displayName); + if (mimeType.equals(Document.MIME_TYPE_DIR)) { + if (!file.mkdirs()) { + throw new FileNotFoundException(); + } + } else { + try { + if (!file.createNewFile()) { + throw new FileNotFoundException(); + } + } + catch (IOException e) { + throw new FileNotFoundException(); + } + } + + final StubDocument document = new StubDocument(file, mimeType, parentDocument); + mStorage.put(document.documentId, document); + notifyParentChanged(document.parentId); + return document.documentId; + } + + @Override + public void deleteDocument(String documentId) + throws FileNotFoundException { + final StubDocument document = mStorage.get(documentId); + final long fileSize = document.file.length(); + if (document == null || !document.file.delete()) + throw new FileNotFoundException(); + synchronized (mWriteLock) { + mStorageUsedBytes -= fileSize; + } + notifyParentChanged(document.parentId); + } + + @Override + public Cursor queryChildDocuments(String parentDocumentId, String[] projection, String sortOrder) + throws FileNotFoundException { + final StubDocument parentDocument = mStorage.get(parentDocumentId); + if (parentDocument == null || parentDocument.file.isFile()) { + throw new FileNotFoundException(); + } + final MatrixCursor result = new MatrixCursor(projection != null ? projection : DEFAULT_DOCUMENT_PROJECTION); + result.setNotificationUri(getContext().getContentResolver(), + DocumentsContract.buildChildDocumentsUri(mAuthority, parentDocumentId)); + StubDocument document; + for (File file : parentDocument.file.listFiles()) { + document = mStorage.get(StubDocument.getDocumentIdForFile(file)); + if (document != null) { + includeDocument(result, document); + } + } + return result; + } + + @Override + public Cursor queryRecentDocuments(String rootId, String[] projection) + throws FileNotFoundException { + throw new FileNotFoundException(); + } + + @Override + public ParcelFileDescriptor openDocument(String docId, String mode, CancellationSignal signal) + throws FileNotFoundException { + final StubDocument document = mStorage.get(docId); + if (document == null || !document.file.isFile()) + throw new FileNotFoundException(); + + if ("r".equals(mode)) { + return ParcelFileDescriptor.open(document.file, ParcelFileDescriptor.MODE_READ_ONLY); + } + if ("w".equals(mode)) { + return startWrite(document); + } + + throw new FileNotFoundException(); + } + + @Override + public AssetFileDescriptor openDocumentThumbnail( + String docId, Point sizeHint, CancellationSignal signal) throws FileNotFoundException { + throw new FileNotFoundException(); + } + + private ParcelFileDescriptor startWrite(final StubDocument document) + throws FileNotFoundException { + ParcelFileDescriptor[] pipe; + try { + pipe = ParcelFileDescriptor.createReliablePipe(); + } + catch (IOException exception) { + throw new FileNotFoundException(); + } + final ParcelFileDescriptor readPipe = pipe[0]; + final ParcelFileDescriptor writePipe = pipe[1]; + + new Thread() { + @Override + public void run() { + try { + final FileInputStream inputStream = new FileInputStream(readPipe.getFileDescriptor()); + final FileOutputStream outputStream = new FileOutputStream(document.file); + byte[] buffer = new byte[32 * 1024]; + int bytesToRead; + int bytesRead = 0; + while (bytesRead != -1) { + synchronized (mWriteLock) { + bytesToRead = Math.min(STORAGE_SIZE - mStorageUsedBytes, buffer.length); + if (bytesToRead == 0) { + closePipeWithErrorSilently(readPipe, "Not enough space."); + break; + } + bytesRead = inputStream.read(buffer, 0, bytesToRead); + if (bytesRead == -1) { + break; + } + outputStream.write(buffer, 0, bytesRead); + mStorageUsedBytes += bytesRead; + } + } + } + catch (IOException e) { + closePipeWithErrorSilently(readPipe, e.getMessage()); + } + finally { + closePipeSilently(readPipe); + notifyParentChanged(document.parentId); + } + } + }.start(); + + return writePipe; + } + + private void closePipeWithErrorSilently(ParcelFileDescriptor pipe, String error) { + try { + pipe.closeWithError(error); + } + catch (IOException ignore) { + } + } + + private void closePipeSilently(ParcelFileDescriptor pipe) { + try { + pipe.close(); + } + catch (IOException ignore) { + } + } + + private void notifyParentChanged(String parentId) { + getContext().getContentResolver().notifyChange( + DocumentsContract.buildChildDocumentsUri(mAuthority, parentId), null, false); + // Notify also about possible change in remaining space on the root. + getContext().getContentResolver().notifyChange(DocumentsContract.buildRootsUri(mAuthority), null, false); + } + + private void includeDocument(MatrixCursor result, StubDocument document) { + final RowBuilder row = result.newRow(); + row.add(Document.COLUMN_DOCUMENT_ID, document.documentId); + row.add(Document.COLUMN_DISPLAY_NAME, document.file.getName()); + row.add(Document.COLUMN_SIZE, document.file.length()); + row.add(Document.COLUMN_MIME_TYPE, document.mimeType); + int flags = Document.FLAG_SUPPORTS_DELETE; + // TODO: Add support for renaming. + if (document.file.isDirectory()) { + flags |= Document.FLAG_DIR_SUPPORTS_CREATE; + } else { + flags |= Document.FLAG_SUPPORTS_WRITE; + } + row.add(Document.COLUMN_FLAGS, flags); + row.add(Document.COLUMN_LAST_MODIFIED, document.file.lastModified()); + } + + private void removeRecursively(File file) { + for (File childFile : file.listFiles()) { + if (childFile.isDirectory()) { + removeRecursively(childFile); + } + childFile.delete(); + } + } +} + +class StubDocument { + public final File file; + public final String mimeType; + public final String documentId; + public final String parentId; + + StubDocument(File file, String mimeType, StubDocument parent) { + this.file = file; + this.mimeType = mimeType; + this.documentId = getDocumentIdForFile(file); + this.parentId = parent != null ? parent.documentId : null; + } + + public static String getDocumentIdForFile(File file) { + return file.getAbsolutePath(); + } +} |
