diff options
312 files changed, 4410 insertions, 1758 deletions
diff --git a/Android.bp b/Android.bp index f3fd86397..8445c89d8 100644 --- a/Android.bp +++ b/Android.bp @@ -37,8 +37,6 @@ java_defaults { }, sdk_version: "system_current", - min_sdk_version: "28", - target_sdk_version: "28", plugins: ["java_api_finder"], } @@ -61,7 +59,7 @@ java_library { genrule { name: "statslog-docsui-java-gen", tools: ["stats-log-api-gen"], - cmd: "$(location stats-log-api-gen) --java $(out) --module docsui --javaPackage com.android.documentsui --javaClass DocumentsStatsLog", + cmd: "$(location stats-log-api-gen) --java $(out) --module docsui --javaPackage com.android.documentsui --javaClass DocumentsStatsLog --supportQ", out: ["com/android/documentsui/DocumentsStatsLog.java"], } @@ -83,8 +81,6 @@ android_library { "--auto-add-overlay", ], - min_sdk_version: "28", - target_sdk_version: "28", sdk_version: "system_current", } diff --git a/AndroidManifest.xml b/AndroidManifest.xml index a2b01f33a..c5de57c7f 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -26,6 +26,7 @@ <uses-permission android:name="android.permission.CACHE_CONTENT" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.CHANGE_OVERLAY_PACKAGES" /> + <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> <application android:name=".DocumentsApplication" @@ -44,13 +45,13 @@ android:name=".picker.PickActivity" android:theme="@style/DocumentsTheme" android:visibleToInstantApps="true"> - <intent-filter> + <intent-filter android:priority="100"> <action android:name="android.intent.action.OPEN_DOCUMENT" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.OPENABLE" /> <data android:mimeType="*/*" /> </intent-filter> - <intent-filter> + <intent-filter android:priority="100"> <action android:name="android.intent.action.CREATE_DOCUMENT" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.OPENABLE" /> @@ -62,7 +63,7 @@ <category android:name="android.intent.category.OPENABLE" /> <data android:mimeType="*/*" /> </intent-filter> - <intent-filter> + <intent-filter android:priority="100"> <action android:name="android.intent.action.OPEN_DOCUMENT_TREE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> diff --git a/TEST_MAPPING b/TEST_MAPPING new file mode 100644 index 000000000..742f12eab --- /dev/null +++ b/TEST_MAPPING @@ -0,0 +1,8 @@ +{ + "postsubmit": [ + { + "name": "DocumentsUIGoogleTests", + "keywords": ["primary-device"] + } + ] +} diff --git a/res/drawable/ic_chip_from_this_week.xml b/res/drawable/ic_chip_from_this_week.xml new file mode 100644 index 000000000..8d799df60 --- /dev/null +++ b/res/drawable/ic_chip_from_this_week.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2019 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. + --> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="#5F6368" + android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l4,3.99L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.25,2.52 0.77,-1.28 -3.52,-2.09L13.5,8z"/> +</vector>
\ No newline at end of file diff --git a/res/drawable/ic_chip_large_files.xml b/res/drawable/ic_chip_large_files.xml new file mode 100644 index 000000000..1accc73ce --- /dev/null +++ b/res/drawable/ic_chip_large_files.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2019 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. +--> + +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + <path + android:fillColor="#5F6368" + android:pathData="M21.41,11.58l-9,-9C12.05,2.22 11.55,2 11,2H4c-1.1,0 -2,0.9 -2,2v7c0,0.55 0.22,1.05 0.59,1.42l9,9c0.36,0.36 0.86,0.58 1.41,0.58s1.05,-0.22 1.41,-0.59l7,-7c0.37,-0.36 0.59,-0.86 0.59,-1.41s-0.23,-1.06 -0.59,-1.42zM13,20.01L4,11V4h7v-0.01l9,9 -7,7.02zM8,6.5C8,7.33 7.33,8 6.5,8S5,7.33 5,6.5 5.67,5 6.5,5 8,5.67 8,6.5z"/> +</vector>
\ No newline at end of file diff --git a/res/drawable/ic_create_new_folder.xml b/res/drawable/ic_create_new_folder.xml new file mode 100644 index 000000000..26dbcd393 --- /dev/null +++ b/res/drawable/ic_create_new_folder.xml @@ -0,0 +1,26 @@ +<!-- + ~ Copyright (C) 2019 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. + --> + +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M20,6h-8l-2,-2L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,8c0,-1.11 -0.89,-2 -2,-2zM19,14h-3v3h-2v-3h-3v-2h3L14,9h2v3h3v2z"/> +</vector>
\ No newline at end of file diff --git a/res/drawable/ic_menu_view_grid.xml b/res/drawable/ic_menu_view_grid.xml index 4279bfedf..82af2c351 100644 --- a/res/drawable/ic_menu_view_grid.xml +++ b/res/drawable/ic_menu_view_grid.xml @@ -21,5 +21,5 @@ android:viewportHeight="24"> <path android:fillColor="?android:attr/colorControlNormal" - android:pathData="M4,11h5L9,5L4,5v6zM4,18h5v-6L4,12v6zM10,18h5v-6h-5v6zM16,18h5v-6h-5v6zM10,11h5L15,5h-5v6zM16,5v6h5L21,5h-5z"/> + android:pathData="M4,5v13h17L21,5L4,5zM14,7v3.5h-3L11,7h3zM6,7h3v3.5L6,10.5L6,7zM6,16v-3.5h3L9,16L6,16zM11,16v-3.5h3L14,16h-3zM19,16h-3v-3.5h3L19,16zM16,10.5L16,7h3v3.5h-3z"/> </vector>
\ No newline at end of file diff --git a/res/drawable/ic_menu_view_list.xml b/res/drawable/ic_menu_view_list.xml index 7428c55fe..3b0c4fc8d 100644 --- a/res/drawable/ic_menu_view_list.xml +++ b/res/drawable/ic_menu_view_list.xml @@ -21,5 +21,5 @@ android:viewportHeight="24"> <path android:fillColor="?android:attr/colorControlNormal" - android:pathData="M4,14h2c0.55,0 1,-0.45 1,-1v-2c0,-0.55 -0.45,-1 -1,-1H4c-0.55,0 -1,0.45 -1,1v2C3,13.55 3.45,14 4,14zM4,19h2c0.55,0 1,-0.45 1,-1v-2c0,-0.55 -0.45,-1 -1,-1H4c-0.55,0 -1,0.45 -1,1v2C3,18.55 3.45,19 4,19zM4,9h2c0.55,0 1,-0.45 1,-1V6c0,-0.55 -0.45,-1 -1,-1H4C3.45,5 3,5.45 3,6v2C3,8.55 3.45,9 4,9zM9,14h10c0.55,0 1,-0.45 1,-1v-2c0,-0.55 -0.45,-1 -1,-1H9c-0.55,0 -1,0.45 -1,1v2C8,13.55 8.45,14 9,14zM9,19h10c0.55,0 1,-0.45 1,-1v-2c0,-0.55 -0.45,-1 -1,-1H9c-0.55,0 -1,0.45 -1,1v2C8,18.55 8.45,19 9,19zM8,6v2c0,0.55 0.45,1 1,1h10c0.55,0 1,-0.45 1,-1V6c0,-0.55 -0.45,-1 -1,-1H9C8.45,5 8,5.45 8,6z"/> + android:pathData="M3,5v14h17L20,5L3,5zM7,7v2L5,9L5,7h2zM5,13v-2h2v2L5,13zM5,15h2v2L5,17v-2zM18,17L9,17v-2h9v2zM18,13L9,13v-2h9v2zM18,9L9,9L9,7h9v2z"/> </vector>
\ No newline at end of file diff --git a/res/drawable/ic_root_bugreport.xml b/res/drawable/ic_root_bugreport.xml new file mode 100644 index 000000000..bc6fc3a18 --- /dev/null +++ b/res/drawable/ic_root_bugreport.xml @@ -0,0 +1,25 @@ +<!-- + ~ Copyright (C) 2019 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. + --> + +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0"> + <path + android:fillColor="#5F6368" + android:pathData="M20 10V8h-2.81c-.45-.78-1.07-1.46-1.82-1.96L17 4.41 15.59 3l-2.17 2.17c-.03-.01-.05-.01-.08-.01-.16-.04-.32-.06-.49-.09l-.17-.03C12.46 5.02 12.23 5 12 5c-.49 0-.97.07-1.42.18l.02-.01L8.41 3 7 4.41l1.62 1.63h.01c-.75.5-1.37 1.18-1.82 1.96H4v2h2.09c-.06.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20zm-4 5c0 2.21-1.79 4-4 4s-4-1.79-4-4v-4c0-2.21 1.79-4 4-4s4 1.79 4 4v4zm-6-1h4v2h-4zm0-4h4v2h-4z" /> +</vector> diff --git a/res/drawable/ic_sort.xml b/res/drawable/ic_sort.xml new file mode 100644 index 000000000..12ad81742 --- /dev/null +++ b/res/drawable/ic_sort.xml @@ -0,0 +1,26 @@ +<!-- + ~ Copyright (C) 2019 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. + --> + +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24.0" + android:viewportHeight="24.0" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M3,18h6v-2L3,16v2zM3,6v2h18L21,6L3,6zM3,13h12v-2L3,11v2z"/> +</vector>
\ No newline at end of file diff --git a/res/layout-sw720dp/directory_app_bar.xml b/res/layout-sw720dp/directory_app_bar.xml index 4bb63613a..928659793 100644 --- a/res/layout-sw720dp/directory_app_bar.xml +++ b/res/layout-sw720dp/directory_app_bar.xml @@ -31,6 +31,7 @@ android:theme="?actionBarTheme" android:popupTheme="?actionBarPopupTheme" android:elevation="3dp" + app:collapseContentDescription="@string/button_back" app:titleTextAppearance="@style/ToolbarTitle" app:layout_collapseMode="pin"> @@ -47,15 +48,6 @@ android:drawableStart="@drawable/ic_menu_search" android:drawablePadding="@dimen/search_bar_icon_padding"/> - <com.android.documentsui.DropdownBreadcrumb - android:id="@+id/dropdown_breadcrumb" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:layout_marginStart="4dp" - android:popupTheme="?actionBarPopupTheme" - android:background="@android:color/transparent" - android:overlapAnchor="true"/> - </androidx.appcompat.widget.Toolbar> <include layout="@layout/directory_header"/> diff --git a/res/layout/apps_item.xml b/res/layout/apps_item.xml index 91d94a3f4..61241f761 100644 --- a/res/layout/apps_item.xml +++ b/res/layout/apps_item.xml @@ -45,13 +45,15 @@ android:ellipsize="end" android:gravity="center"/> - <ImageView - android:id="@+id/exit_icon" - android:layout_width="@dimen/apps_row_exit_icon_size" - android:layout_height="@dimen/apps_row_exit_icon_size" - android:layout_marginTop="@dimen/apps_row_exit_icon_margin_top" - android:scaleType="centerInside" - android:src="@drawable/ic_exit_to_app" - android:tint="?android:textColorSecondary"/> + <TextView + android:id="@+id/summary" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/apps_row_item_text_margin_horizontal" + android:layout_marginEnd="@dimen/apps_row_item_text_margin_horizontal" + android:textAppearance="@style/AppsItemSubText" + android:maxLines="1" + android:ellipsize="end" + android:gravity="center"/> </LinearLayout>
\ No newline at end of file diff --git a/res/layout/directory_app_bar.xml b/res/layout/directory_app_bar.xml index 45864e969..9dbff3bf7 100644 --- a/res/layout/directory_app_bar.xml +++ b/res/layout/directory_app_bar.xml @@ -48,6 +48,7 @@ android:theme="?actionBarTheme" android:popupTheme="?actionBarPopupTheme" android:elevation="3dp" + app:collapseContentDescription="@string/button_back" app:titleTextAppearance="@style/ToolbarTitle" app:layout_collapseMode="pin"> @@ -59,15 +60,6 @@ android:text="@string/search_bar_hint" android:textAppearance="@style/SearchBarTitle"/> - <com.android.documentsui.DropdownBreadcrumb - android:id="@+id/dropdown_breadcrumb" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:layout_marginStart="4dp" - android:popupTheme="?actionBarPopupTheme" - android:background="@android:color/transparent" - android:overlapAnchor="true"/> - </androidx.appcompat.widget.Toolbar> </com.google.android.material.appbar.CollapsingToolbarLayout> diff --git a/res/layout/directory_header.xml b/res/layout/directory_header.xml index c13e887ce..41088c137 100644 --- a/res/layout/directory_header.xml +++ b/res/layout/directory_header.xml @@ -19,6 +19,12 @@ android:layout_marginTop="@dimen/action_bar_space_margin" android:orientation="vertical"> + <com.android.documentsui.HorizontalBreadcrumb + android:id="@+id/horizontal_breadcrumb" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?android:attr/colorBackground"/> + <!-- used for search chip. --> <include layout="@layout/search_chip_row"/> diff --git a/res/layout/fixed_layout.xml b/res/layout/fixed_layout.xml index 7f7547fd4..10a569d54 100644 --- a/res/layout/fixed_layout.xml +++ b/res/layout/fixed_layout.xml @@ -38,6 +38,7 @@ android:elevation="3dp" android:theme="?actionBarTheme" android:popupTheme="?actionBarPopupTheme" + app:collapseContentDescription="@string/button_back" app:titleTextAppearance="@style/ToolbarTitle"> <TextView @@ -53,12 +54,6 @@ android:drawableStart="@drawable/ic_menu_search" android:drawablePadding="@dimen/search_bar_icon_padding"/> - <com.android.documentsui.HorizontalBreadcrumb - android:id="@+id/horizontal_breadcrumb" - android:layout_marginRight="20dp" - android:layout_width="match_parent" - android:layout_height="match_parent" /> - </androidx.appcompat.widget.Toolbar> <LinearLayout diff --git a/res/layout/fragment_search.xml b/res/layout/fragment_search.xml index c6377aefc..ca6895fe5 100644 --- a/res/layout/fragment_search.xml +++ b/res/layout/fragment_search.xml @@ -29,7 +29,7 @@ android:layout_margin="@dimen/search_bar_margin" android:theme="?actionBarTheme" app:navigationIcon="@drawable/ic_arrow_back" - app:navigationContentDescription="@string/abc_toolbar_collapse_description"> + app:navigationContentDescription="@string/button_back"> <androidx.appcompat.widget.SearchView android:id="@+id/search_view" diff --git a/res/layout/item_doc_header_message.xml b/res/layout/item_doc_header_message.xml index 352d50cfb..7c31ff4a6 100644 --- a/res/layout/item_doc_header_message.xml +++ b/res/layout/item_doc_header_message.xml @@ -13,37 +13,59 @@ See the License for the specific language governing permissions and limitations under the License. --> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:animateLayoutChanges="true" - android:id="@+id/message_container" - android:layout_height="wrap_content" + +<FrameLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:id="@+id/item_root" android:layout_width="match_parent" - android:minHeight="?android:attr/listPreferredItemHeightSmall"> - - <ImageView - android:contentDescription="@null" - android:id="@+id/message_icon" - android:layout_height="@dimen/icon_size" - android:layout_width="@dimen/icon_size" - android:layout_marginStart="@dimen/list_item_padding" - android:layout_marginEnd="@dimen/list_item_padding" - android:scaleType="centerInside"/> - - <TextView - android:id="@+id/message_textview" - android:layout_height="wrap_content" - android:layout_width="wrap_content" - android:layout_marginStart="0dp" - android:layout_marginEnd="@dimen/list_item_padding" - android:layout_toEndOf="@+id/message_icon" - android:selectAllOnFocus="true"/> - - <Button - android:id="@+id/button_dismiss" + android:layout_height="wrap_content"> + + <com.google.android.material.card.MaterialCardView + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_width="wrap_content" - android:layout_alignEnd="@+id/message_textview" - android:layout_below="@+id/message_textview" - android:text="@android:string/ok" - style="?attr/materialButtonStyle"/> -</RelativeLayout> + android:layout_margin="4dp" + android:elevation="0dp" + android:duplicateParentState="true" + app:cardElevation="0dp" + app:strokeWidth="1dp" + app:strokeColor="?android:strokeColor"> + + <RelativeLayout + android:animateLayoutChanges="true" + android:id="@+id/message_container" + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:minHeight="?android:attr/listPreferredItemHeightSmall"> + + <ImageView + android:contentDescription="@null" + android:id="@+id/message_icon" + android:layout_height="@dimen/icon_size" + android:layout_width="@dimen/icon_size" + android:layout_marginStart="0dp" + android:layout_marginEnd="10dp" + android:layout_marginTop="4dp" + android:scaleType="centerInside"/> + + <TextView + android:id="@+id/message_textview" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:layout_toEndOf="@+id/message_icon" + android:layout_marginStart="0dp" + android:layout_marginEnd="8dp" + android:layout_marginTop="12dp" + android:selectAllOnFocus="true"/> + + <Button + android:id="@+id/button_dismiss" + android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:layout_alignEnd="@+id/message_textview" + android:layout_below="@+id/message_textview" + android:text="@android:string/ok" + style="@style/DialogTextButton"/> + </RelativeLayout> + </com.google.android.material.card.MaterialCardView> +</FrameLayout> diff --git a/res/layout/navigation_breadcrumb_item.xml b/res/layout/navigation_breadcrumb_item.xml index 1dd6d921f..a424a66ec 100644 --- a/res/layout/navigation_breadcrumb_item.xml +++ b/res/layout/navigation_breadcrumb_item.xml @@ -28,26 +28,28 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" - android:layout_height="@dimen/breadcrumb_item_height" - android:layout_alignParentTop="true" + android:layout_height="wrap_content" + android:minHeight="48dp" android:focusable="true" android:gravity="center_vertical" android:orientation="horizontal"> - <com.android.documentsui.DragOverTextView + <TextView android:id="@+id/breadcrumb_text" android:layout_width="wrap_content" android:layout_height="match_parent" + android:maxWidth="275dp" android:gravity="center_vertical" android:duplicateParentState="true" - android:textAppearance="@android:style/TextAppearance.Material.Widget.ActionBar.Title" + android:maxLines="1" + android:ellipsize="end" + android:textAppearance="@style/BreadcrumbText" android:background="@drawable/breadcrumb_item_background" /> <ImageView android:id="@+id/breadcrumb_arrow" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/ic_breadcrumb_arrow" - android:layout_marginTop="2dp" /> + android:src="@drawable/ic_breadcrumb_arrow"/> </LinearLayout>
\ No newline at end of file diff --git a/res/menu/action_mode_menu.xml b/res/menu/action_mode_menu.xml index f0ae09e46..49a9ade70 100644 --- a/res/menu/action_mode_menu.xml +++ b/res/menu/action_mode_menu.xml @@ -31,6 +31,7 @@ android:showAsAction="always" /> <item android:id="@+id/action_menu_sort" + android:icon="@drawable/ic_sort" android:title="@string/menu_sort" android:showAsAction="never" /> <item @@ -42,6 +43,10 @@ android:title="@string/menu_select_all" android:showAsAction="never" /> <item + android:id="@+id/action_menu_deselect_all" + android:title="@string/menu_deselect_all" + android:showAsAction="never" /> + <item android:id="@+id/action_menu_copy_to" android:title="@string/menu_copy" android:showAsAction="never" diff --git a/res/menu/activity.xml b/res/menu/activity.xml index 349aa936e..9e2fdd66f 100644 --- a/res/menu/activity.xml +++ b/res/menu/activity.xml @@ -50,12 +50,14 @@ <item android:id="@+id/option_menu_create_dir" android:title="@string/menu_create_dir" + android:icon="@drawable/ic_create_new_folder" android:alphabeticShortcut="e" android:visible="false" app:showAsAction="never"/> <item android:id="@+id/option_menu_sort" android:title="@string/menu_sort" + android:icon="@drawable/ic_sort" android:showAsAction="never" android:visible="false" /> <item @@ -78,5 +80,9 @@ android:title="@string/menu_inspect" android:visible="false" app:showAsAction="never"/> + <item + android:id="@+id/option_menu_launcher" + android:visible="false" + app:showAsAction="never"/> </group> </menu> diff --git a/res/menu/container_context_menu.xml b/res/menu/container_context_menu.xml index 2f70d822b..bd8b6c35e 100644 --- a/res/menu/container_context_menu.xml +++ b/res/menu/container_context_menu.xml @@ -34,6 +34,10 @@ <item android:id="@+id/dir_menu_select_all" android:title="@string/menu_select_all" /> + + <item + android:id="@+id/dir_menu_deselect_all" + android:title="@string/menu_deselect_all" /> </group> <group android:id="@+id/menu_extras_group"> diff --git a/res/values-af/inspector_strings.xml b/res/values-af/inspector_strings.xml index 24dcc70d3..aea6f16d3 100644 --- a/res/values-af/inspector_strings.xml +++ b/res/values-af/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Komponis"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Ligging"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Stroomtipes"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Onverwerkte grootte (grepe)"</string> </resources> diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml index 62932cb3d..4f64e8b00 100644 --- a/res/values-af/strings.xml +++ b/res/values-af/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Deel"</string> <string name="menu_delete" msgid="1022254131543256626">"Vee uit"</string> <string name="menu_select_all" msgid="7600576812185570403">"Kies almal"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Ontkies alles"</string> <string name="menu_select" msgid="1366061076507142387">"Kies"</string> <string name="menu_sort" msgid="3362419226163725275">"Rangskik volgens …"</string> <string name="menu_copy" msgid="7404820171352314754">"Kopieer na …"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Probeer weer"</string> <string name="button_clear" msgid="5412304437764369441">"Vee uit"</string> <string name="button_show_provider" msgid="6905880493806292753">"Wys in verskaffer"</string> + <string name="button_back" msgid="1888621708934742182">"Terug"</string> <string name="not_sorted" msgid="7813496644889115530">"Nie gerangskik nie"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Naam"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Opsomming"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Kan lêer nie oopmaak nie"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Kan nie lêers in argiewe oopmaak nie"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Kan sommige dokumente nie uitvee nie"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Kan nie meer as <xliff:g id="COUNT">%1$d</xliff:g> lêers deel nie"</string> <string name="share_via" msgid="8725082736005677161">"Deel via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopieer tans lêers"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Pers tans lêers saam"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Onlangse lêers op foon"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Lêers op foon"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> op foon"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Lêers in Aflaaie"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Lêers op <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Lêers in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Lêers vanaf <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Lêers vanaf <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Onlangse prente op foon"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Prente op foon"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Prente in Aflaaie"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Prente op <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Prente in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Prente vanaf <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Prente vanaf <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Prente"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Oudio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Video\'s"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumente"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Groot lêers"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Hierdie week"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Vouernaam"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nuwe naam"</string> <string name="preview_file" msgid="4056622696305432343">"Voorbeskou die lêer <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Blaai deur lêers in ander programme"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anoniem"</string> - <string name="open_tree_button" msgid="19992834788135845">"Gee toegang tot \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Gee toegang tot \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" op \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Dit sal \"<xliff:g id="APPNAME">%1$s</xliff:g>\" volle toegang gee tot alle lêers wat tans onder hierdie ligging geberg word, asook enige toekomstige inhoud wat hier geberg word."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Gebruik hierdie vouer"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Gee <xliff:g id="APPNAME">%1$s</xliff:g> toegang tot lêers in <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Dit sal <xliff:g id="APPNAME">%1$s</xliff:g> toegang gee tot huidige en toekomstige inhoud wat in <xliff:g id="DIRECTORY">%2$s</xliff:g> geberg word."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Deursoek hierdie foon"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Vee soekgeskiedenis uit: <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-am/inspector_strings.xml b/res/values-am/inspector_strings.xml index 423b6da4c..7fe5c0620 100644 --- a/res/values-am/inspector_strings.xml +++ b/res/values-am/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"የሙዚቃ ደራሲ"</string> <string name="metadata_album" msgid="1661699531214720236">"አልበም"</string> <string name="metadata_address" msgid="1849921023707744640">"አካባቢ"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"የዥረት አይነቶች"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"የጥሬ መጠን (ባይት)"</string> </resources> diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml index 5960e118a..e38bd4bba 100644 --- a/res/values-am/strings.xml +++ b/res/values-am/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"አጋራ"</string> <string name="menu_delete" msgid="1022254131543256626">"ሰርዝ"</string> <string name="menu_select_all" msgid="7600576812185570403">"ሁሉንም ምረጥ"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"ሁሉንም አትምረጥ"</string> <string name="menu_select" msgid="1366061076507142387">"ይምረጡ"</string> <string name="menu_sort" msgid="3362419226163725275">"ደርድር በ..."</string> <string name="menu_copy" msgid="7404820171352314754">"ቅዳ ወደ…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"እንደገና ይሞክሩ"</string> <string name="button_clear" msgid="5412304437764369441">"አጽዳ"</string> <string name="button_show_provider" msgid="6905880493806292753">"በአቅራቢ ውስጥ አሳይ"</string> + <string name="button_back" msgid="1888621708934742182">"ተመለስ"</string> <string name="not_sorted" msgid="7813496644889115530">"አልተደረደረም"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"ስም"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"ማጠቃለያ"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"ፋይሉን መክፈት አይቻልም"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"በማህደሮች ውስጥ ያሉ ፋይሎችን መክፈት አይቻልም"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"አንዳንድ ሰነዶችን መሰረዝ አልተቻለም"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"ከ <xliff:g id="COUNT">%1$d</xliff:g> በላይ ፋይሎች ማጋራት አይቻልም"</string> <string name="share_via" msgid="8725082736005677161">"በዚህ በኩል ያጋሩ፦"</string> <string name="copy_notification_title" msgid="52256435625098456">"ፋይሎችን በመቅዳት ላይ"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ፋይሎችን በመጭመቅ ላይ"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"በስልክ ላይ የቅርብ ጊዜ ፋይሎች"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"በስልክ ላይ ያሉ ፋይሎች"</string> <string name="root_info_header_media" msgid="2774453755906260852">"በስልክ ላይ <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"በማውረዶች ውስጥ ያሉ ፋይሎች"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"በ<xliff:g id="DEVICE">%1$s</xliff:g> ላይ ያሉ ፋይሎች"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"በ <xliff:g id="FOLDER">%1$s</xliff:g> ውስጥ ያሉ ፋይሎች"</string> <string name="root_info_header_app" msgid="2125422047558420885">"ከ<xliff:g id="LABEL">%1$s</xliff:g> የመጡ ፋይሎች"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"ከ<xliff:g id="LABEL">%1$s</xliff:g> የመጡ ፋይሎች / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"በስልክ ላይ ያሉ የቅርብ ጊዜ ምስሎች"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"በስልኩ ላይ ያሉ ምስሎች"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"በማውረዶች ውስጥ ያሉ ምስሎች"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"በ<xliff:g id="DEVICE">%1$s</xliff:g> ላይ ያሉ ምስሎች"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"ምስሎች በ <xliff:g id="FOLDER">%1$s</xliff:g> ውስጥ"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"የ<xliff:g id="LABEL">%1$s</xliff:g> ምስሎች"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"ምስሎች ከ<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"ምስሎች"</string> <string name="chip_title_audio" msgid="1032801828748235436">"ኦዲዮ"</string> <string name="chip_title_videos" msgid="7011260091979776447">"ቪዲዮዎች"</string> <string name="chip_title_documents" msgid="7432457563000753983">"ሰነዶች"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"ትላልቅ ፋይሎች"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"በዚህ ሳምንት"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"የአቃፊ ስም"</string> <string name="input_hint_rename" msgid="8390711744270994452">"አዲስ ስም"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> ፋይሉን በቅድመ እይታ ይመልከቱ"</string> <string name="apps_row_title" msgid="3340490016663092925">"ፋይሎችን በሌሎች መተግበሪያዎች ውስጥ ያስሱ"</string> <string name="anonymous_application" msgid="7633027057951625862">"ስም-አልባ"</string> - <string name="open_tree_button" msgid="19992834788135845">"የ«<xliff:g id="DIRECTORY">%1$s</xliff:g>» መዳረሻን ፍቀድ"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"በ«<xliff:g id="ROOT">%2$s</xliff:g>» ላይ የ«<xliff:g id="DIRECTORY">%1$s</xliff:g>» መዳረሻ ይፈቀድ?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"«<xliff:g id="APPNAME">%1$s</xliff:g>» በአሁኑ ጊዜ በዚህ ቦታ ላይ የተከማቹ እና ወደፊት በዚህ ላይ የሚከማቹ ማናቸውም ሁሉም ፋይሎች ሙሉ መዳረሻ እንዲኖረው ያስችላል።"</string> + <string name="open_tree_button" msgid="6402871398424497776">"ይህን አቃፊ ተጠቀም"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g> በ <xliff:g id="DIRECTORY">%2$s</xliff:g> ውስጥ ፋይሎችን ለመድረስ ይፈቀድለት?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"ይህ <xliff:g id="APPNAME">%1$s</xliff:g> በ <xliff:g id="DIRECTORY">%2$s</xliff:g> ውስጥ የተከማቹ አሁን ያሉ እና ወደፊት የሚኖሩ ይዘቶችን መድረስ እንዲችል ያደርገዋል።"</string> <string name="search_bar_hint" msgid="4517366509897977321">"ይህን ስልክ ይፈልጉ"</string> + <string name="delete_search_history" msgid="2202015025607694515">"የፍለጋ ታሪክ ይሰርዙ <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-ar/inspector_strings.xml b/res/values-ar/inspector_strings.xml index ffae9de02..c0842b95a 100644 --- a/res/values-ar/inspector_strings.xml +++ b/res/values-ar/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"الملحّن"</string> <string name="metadata_album" msgid="1661699531214720236">"الألبوم"</string> <string name="metadata_address" msgid="1849921023707744640">"الموقع الجغرافي"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"أنواع سلسلة البطاقات"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"الحجم الأولي (بالبايت)"</string> </resources> diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index 1117399ec..c3392a4ef 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -35,9 +35,10 @@ <string name="menu_save" msgid="5195367497138965168">"حفظ"</string> <string name="menu_share" msgid="4307140947108068356">"مشاركة"</string> <string name="menu_delete" msgid="1022254131543256626">"حذف"</string> - <string name="menu_select_all" msgid="7600576812185570403">"تحديد الكل"</string> + <string name="menu_select_all" msgid="7600576812185570403">"اختيار الكل"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"إلغاء اختيار الكلّ"</string> <string name="menu_select" msgid="1366061076507142387">"اختيار"</string> - <string name="menu_sort" msgid="3362419226163725275">"ترتيب حسب..."</string> + <string name="menu_sort" msgid="3362419226163725275">"الترتيب حسب..."</string> <string name="menu_copy" msgid="7404820171352314754">"نسخ إلى…"</string> <string name="menu_move" msgid="2310760789561129882">"نقل إلى..."</string> <string name="menu_compress" msgid="37539111904724188">"ضغط"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"إعادة المحاولة"</string> <string name="button_clear" msgid="5412304437764369441">"محو"</string> <string name="button_show_provider" msgid="6905880493806292753">"عرض في مقدم الخدمة"</string> + <string name="button_back" msgid="1888621708934742182">"رجوع"</string> <string name="not_sorted" msgid="7813496644889115530">"بدون ترتيب"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"الاسم"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"الملخص"</string> @@ -70,12 +72,12 @@ <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"اسم الملف (من الألف للياء)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"النوع (من الألف إلى الياء)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"الحجم (الأصغر أولاً)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"تواريخ معدلة (الأقدم أولاً)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"تاريخ التعديل (الأقدم أولاً)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"اسم الملف (من الياء للألف)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"النوع (من الياء إلى الألف)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"الحجم (الأكبر أولاً)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"تواريخ معدلة (الأحدث أولاً)"</string> - <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"ترتيب بحسب"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"تاريخ التعديل (الأحدث أولاً)"</string> + <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"الترتيب حسب"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"الترتيب بحسب <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"عدد العناصر"</string> <string name="sort_direction_ascending" msgid="5882787683763248102">"تصاعدي"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"يتعذر فتح الملف"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"يتعذر فتح الملفات في الأرشيف"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"تعذر حذف بعض المستندات"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"لا يمكن مشاركة أكثر من <xliff:g id="COUNT">%1$d</xliff:g> ملف."</string> <string name="share_via" msgid="8725082736005677161">"مشاركة عبر"</string> <string name="copy_notification_title" msgid="52256435625098456">"جارٍ نسخ الملفات"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ضغط الملفات"</string> @@ -257,7 +260,7 @@ <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> + <item quantity="one">تم تحديد عنصر واحد (<xliff:g id="COUNT_0">%1$d</xliff:g>)</item> </plurals> <plurals name="elements_dragged" formatted="false" msgid="5932571296037626279"> <item quantity="zero"><xliff:g id="COUNT_1">%1$d</xliff:g> عنصر</item> @@ -297,7 +300,7 @@ <string name="archive_loading_failed" msgid="7243436722828766996">"يتعذر فتح الأرشيف وتصفحه. ربما يكون الملف تالفًا أو بتنسيق غير متوافق."</string> <string name="name_conflict" msgid="28407269328862986">"هناك ملف بالاسم نفسه."</string> <string name="authentication_required" msgid="8030880723643436099">"لعرض هذا الدليل، يُرجى تسجيل الدخول إلى <xliff:g id="NAME">%1$s</xliff:g>"</string> - <string name="cant_display_content" msgid="8633226333229417237">"يتعذَّر عرض المحتويات"</string> + <string name="cant_display_content" msgid="8633226333229417237">"يتعذَّر عرض المحتوى"</string> <string name="sign_in" msgid="6253762676723505592">"تسجيل الدخول"</string> <string name="new_archive_file_name" msgid="1604650338077249838">"أرشيف<xliff:g id="EXTENSION">%s</xliff:g>"</string> <string name="overwrite_file_confirmation_message" msgid="2496109652768222716">"هل تريد استبدال <xliff:g id="NAME">%1$s</xliff:g>؟"</string> @@ -313,26 +316,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"أحدث الملفات على الهاتف"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"الملفات على الهاتف"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> على الهاتف"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"الملفات في مجلد \"عمليات التنزيل\""</string> <string name="root_info_header_storage" msgid="2989014130584927442">"ملفات على <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"الملفات في <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"ملفات من <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"ملفات من <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"أحدث الصور على الهاتف"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"الصور على الهاتف"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"الصور في \"عمليات التنزيل\""</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"الصور على <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"الصور في <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"الصور من <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"الصور من <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"الصور"</string> <string name="chip_title_audio" msgid="1032801828748235436">"الصوت"</string> <string name="chip_title_videos" msgid="7011260091979776447">"الفيديوهات"</string> <string name="chip_title_documents" msgid="7432457563000753983">"المستندات"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"الملفات الكبيرة"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"هذا الأسبوع"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"اسم المجلد"</string> <string name="input_hint_rename" msgid="8390711744270994452">"اسم جديد"</string> <string name="preview_file" msgid="4056622696305432343">"معاينة الملف <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"تصفّح الملفات في تطبيقات أخرى"</string> <string name="anonymous_application" msgid="7633027057951625862">"مجهول"</string> - <string name="open_tree_button" msgid="19992834788135845">"السماح بالوصول إلى \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"يؤدي ذلك إلى السماح لتطبيق \"<xliff:g id="APPNAME">%1$s</xliff:g>\" بالحصول على إمكانية الدخول الكاملة إلى جميع الملفات المخزَّنة حاليًا ضِمنَ هذا الموقع وإلى أيّ محتوى يُخزَّن هنا في المستقبل."</string> + <string name="open_tree_button" msgid="6402871398424497776">"استخدام هذا المجلد"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"هل تريد السماح لتطبيق <xliff:g id="APPNAME">%1$s</xliff:g> بالوصول إلى <xliff:g id="DIRECTORY">%2$s</xliff:g>؟"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"سيسمح هذا الإجراء لتطبيق <xliff:g id="APPNAME">%1$s</xliff:g> بالوصول إلى المحتوى المخزن في <xliff:g id="DIRECTORY">%2$s</xliff:g> حاليًا وفي المستقبل."</string> <string name="search_bar_hint" msgid="4517366509897977321">"البحث في هذا الهاتف"</string> + <string name="delete_search_history" msgid="2202015025607694515">"حذف سجلّ البحث <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-as/inspector_strings.xml b/res/values-as/inspector_strings.xml index 6d5f90e82..6b465335b 100644 --- a/res/values-as/inspector_strings.xml +++ b/res/values-as/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"সুৰকাৰ"</string> <string name="metadata_album" msgid="1661699531214720236">"এলবাম"</string> <string name="metadata_address" msgid="1849921023707744640">"অৱস্থান"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"ষ্ট্ৰীমৰ প্ৰকাৰ"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"ডিবাগ ফাইলৰ আকাৰ (বাইট)"</string> </resources> diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml index 03985a3a9..d10f804ac 100644 --- a/res/values-as/strings.xml +++ b/res/values-as/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"শ্বেয়াৰ কৰক"</string> <string name="menu_delete" msgid="1022254131543256626">"মচক"</string> <string name="menu_select_all" msgid="7600576812185570403">"সকলো বাছনি কৰক"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"সকলো বাছনি নোহোৱা কৰক"</string> <string name="menu_select" msgid="1366061076507142387">"বাছনি কৰক"</string> <string name="menu_sort" msgid="3362419226163725275">"এই অনুসৰি সজাওক..."</string> <string name="menu_copy" msgid="7404820171352314754">"ইয়াত প্ৰতিলিপি কৰক…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"আকৌ চেষ্টা কৰক"</string> <string name="button_clear" msgid="5412304437764369441">"মচক"</string> <string name="button_show_provider" msgid="6905880493806292753">"যোগানকাৰীত দেখুৱাওক"</string> + <string name="button_back" msgid="1888621708934742182">"উভতি যাওক"</string> <string name="not_sorted" msgid="7813496644889115530">"ক্ৰমবদ্ধ কৰা হোৱা নাই"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"নাম"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"সাৰাংশ"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"ফাইল খুলিব পৰা নাই"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"আৰ্কাইভত থকা ফাইলবোৰ খুলিব নোৱাৰি"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"কিছুমান নথি মচিব পৰা নগ\'ল"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g>টাতকৈ অধিক ফাইল শ্বেয়াৰ কৰিব নোৱাৰি"</string> <string name="share_via" msgid="8725082736005677161">"ইয়াৰ জৰিয়তে শ্বেয়াৰ কৰক"</string> <string name="copy_notification_title" msgid="52256435625098456">"ফাইলসমূহৰ প্ৰতিলিপি কৰি থকা হৈছে"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ফাইলবোৰ সংকুচিত কৰি থকা হৈছে"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"ফ’নত থকা শেহতীয়া ফাইলবোৰ"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"ফ’নত থকা ফাইল"</string> <string name="root_info_header_media" msgid="2774453755906260852">"ফ’নত থকা <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"ডাউনল’ডসমূহত থকা ফাইলসমূহ"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g>ত থকা ফাইল"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g>ত থকা ফাইলসমূহ"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g>ৰ ফাইল"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>ৰ ফাইল"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"ফ’নত থকা শেহতীয়া চিত্ৰ"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"ফ’নত থকা চিত্ৰ"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"ডাউনল’ডসমূহত থকা প্ৰতিচ্ছবিসমূহ"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g>ত থকা চিত্ৰ"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g>ত থকা প্ৰতিচ্ছবিসমূহ"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g>ৰ চিত্ৰ"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>ৰ পৰা চিত্ৰ"</string> <string name="chip_title_images" msgid="7838299046109841015">"প্রতিচ্ছবি"</string> <string name="chip_title_audio" msgid="1032801828748235436">"অডিঅ’"</string> <string name="chip_title_videos" msgid="7011260091979776447">"ভিডিঅ’"</string> <string name="chip_title_documents" msgid="7432457563000753983">"দস্তাবেজ"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"ডাঙৰ ফাইলসমূহ"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"এই সপ্তাহ"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"ফ’ল্ডাৰৰ নাম"</string> <string name="input_hint_rename" msgid="8390711744270994452">"নতুন নাম"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> ফাইলটো পূৰ্বদৰ্শন কৰক"</string> <string name="apps_row_title" msgid="3340490016663092925">"অন্য এপত ফাইল ব্ৰাউজ কৰক"</string> <string name="anonymous_application" msgid="7633027057951625862">"পৰিচয়বিহীন"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" এক্সেছ কৰাৰ অনুমতি দিয়ক"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\"ত থকা \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" এক্সেছ কৰাৰ অনুমতি দিবনে?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"ইয়ে \"<xliff:g id="APPNAME">%1$s</xliff:g>\"ক বৰ্তমান এই অৱস্থানত থকা আৰু ভৱিষ্যতে এই অৱস্থানত জমা কৰা সকলো ফাইল সম্পূৰ্ণভাৱে এক্সেছ কৰাৰ অনুমতি দিব।"</string> + <string name="open_tree_button" msgid="6402871398424497776">"এই ফ\'ল্ডাৰটো ব্যৱহাৰ কৰক"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g>ক <xliff:g id="DIRECTORY">%2$s</xliff:g>ত থকা ফাইলসমূহ এক্সেছ কৰিবলৈ অনুমতি দিবনে?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"এইটোৱে <xliff:g id="APPNAME">%1$s</xliff:g>ক <xliff:g id="DIRECTORY">%2$s</xliff:g>ত ষ্ট\'ৰ কৰি থোৱা বর্তমান আৰু ভৱিষ্যতৰ সমল এক্সেছ কৰিবলৈ দিয়ে।"</string> <string name="search_bar_hint" msgid="4517366509897977321">"এই ফ’নটো সন্ধান কৰক"</string> + <string name="delete_search_history" msgid="2202015025607694515">"সন্ধান ইতিহাস মচক <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-az/inspector_strings.xml b/res/values-az/inspector_strings.xml index 2ae80843b..aae21145d 100644 --- a/res/values-az/inspector_strings.xml +++ b/res/values-az/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Bəstəkar"</string> <string name="metadata_album" msgid="1661699531214720236">"Albom"</string> <string name="metadata_address" msgid="1849921023707744640">"Məkan"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Axın növləri"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Sətir ölçüsü (bayt)"</string> </resources> diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml index 8e44c5946..7623275ef 100644 --- a/res/values-az/strings.xml +++ b/res/values-az/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Paylaşın"</string> <string name="menu_delete" msgid="1022254131543256626">"Sil"</string> <string name="menu_select_all" msgid="7600576812185570403">"Hamısını seçin"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Bütün seçimləri silin"</string> <string name="menu_select" msgid="1366061076507142387">"Seçin"</string> <string name="menu_sort" msgid="3362419226163725275">"Çeşidləyin..."</string> <string name="menu_copy" msgid="7404820171352314754">"Buraya kopyalayın:"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Yenidən cəhd edin"</string> <string name="button_clear" msgid="5412304437764369441">"Silin"</string> <string name="button_show_provider" msgid="6905880493806292753">"Provayderdə göstərin"</string> + <string name="button_back" msgid="1888621708934742182">"Geri"</string> <string name="not_sorted" msgid="7813496644889115530">"Sıralanmayıb"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Ad"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Yekun"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Fayl açılmır"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Arxivdəki faylları açmaq olmur"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Bəzi sənədləri silə bilmir"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Maksimum <xliff:g id="COUNT">%1$d</xliff:g> fayl paylaşıla bilər"</string> <string name="share_via" msgid="8725082736005677161">"Bunun vasitəsilə paylaş:"</string> <string name="copy_notification_title" msgid="52256435625098456">"Fayllar kopyalanır"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Faylların sıxılması"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Telefonda son fayllar"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Telefondakı fayllar"</string> <string name="root_info_header_media" msgid="2774453755906260852">"Telefondakı <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Endirmələrdə olan fayllar"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> cihazındakı fayllar"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> qovluğundakı fayllar"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> tətbiqindəki fayllar"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> ünvanındakı fayllar"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Telefondakı ən son şəkillər"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Telefondakı şəkillər"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Endirmələrdə olan şəkillər"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> cihazındakı şəkillər"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> qovluğundakı şəkillər"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g> ünvanındakı şəkillər"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g> ünvanındakı şəkillər"</string> <string name="chip_title_images" msgid="7838299046109841015">"Şəkillər"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videolar"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Sənədlər"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Böyük fayllar"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Bu həftə"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Qovluq adı"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Yeni ad"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> faylını önizləyin"</string> <string name="apps_row_title" msgid="3340490016663092925">"Faylları digər tətbiqlərdə axtarın"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonim"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" girişinə icazə verin"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\" ünvanında \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" girişinə icazə verilsin?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Bu, \"<xliff:g id="APPNAME">%1$s</xliff:g>\" tətbiqinin hazırda bu ünvanda saxlanılmış bütün fayllara və gələcəkdə saxlanılacaq kontentə girişinə icazə verəcək."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Bu qovluğu istifadə edin"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g> tətbiqinə <xliff:g id="DIRECTORY">%2$s</xliff:g> bölməsində saxlanmış fayllara giriş icazəsi verilsin?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"<xliff:g id="APPNAME">%1$s</xliff:g> tətbiqinə <xliff:g id="DIRECTORY">%2$s</xliff:g> bölməsində saxlanmış və saxlanacaq məzmuna giriş icazəsi veriləcək."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Bu telefonu axtarın"</string> + <string name="delete_search_history" msgid="2202015025607694515">"<xliff:g id="TEXT">%1$s</xliff:g> üçün axtarış tarixçəsini silin"</string> </resources> diff --git a/res/values-b+sr+Latn/inspector_strings.xml b/res/values-b+sr+Latn/inspector_strings.xml index 133f533e9..5bc9b8cb6 100644 --- a/res/values-b+sr+Latn/inspector_strings.xml +++ b/res/values-b+sr+Latn/inspector_strings.xml @@ -33,7 +33,7 @@ <string name="metadata_camera" msgid="2363009732801281319">"Kamera"</string> <string name="metadata_camera_format" msgid="1494489751904311612">"<xliff:g id="MAKE">%1$s</xliff:g> <xliff:g id="MODEL">%2$s</xliff:g>"</string> <string name="metadata_aperture" msgid="6538741952698935357">"Otvor blende"</string> - <string name="metadata_shutter_speed" msgid="8204739885103326131">"Brzina zatvarača"</string> + <string name="metadata_shutter_speed" msgid="8204739885103326131">"Brzina okidača"</string> <string name="metadata_duration" msgid="3115494422055472715">"Trajanje"</string> <string name="metadata_date_time" msgid="1090351199248114406">"Snimljeno"</string> <string name="metadata_focal_length" msgid="3440735161407699893">"Žižna daljina"</string> @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Kompozitor"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Lokacija"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Tipovi strimova"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Veličina RAW datoteke (u bajtovima)"</string> </resources> diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml index 6a5b14b75..2c606b18b 100644 --- a/res/values-b+sr+Latn/strings.xml +++ b/res/values-b+sr+Latn/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Deli"</string> <string name="menu_delete" msgid="1022254131543256626">"Izbriši"</string> <string name="menu_select_all" msgid="7600576812185570403">"Izaberi sve"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Poništi izbor svih stavki"</string> <string name="menu_select" msgid="1366061076507142387">"Izaberi"</string> <string name="menu_sort" msgid="3362419226163725275">"Sortiraj prema..."</string> <string name="menu_copy" msgid="7404820171352314754">"Kopiraj u…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Probaj ponovo"</string> <string name="button_clear" msgid="5412304437764369441">"Obriši"</string> <string name="button_show_provider" msgid="6905880493806292753">"Prikaži u aplikaciji dobavljača"</string> + <string name="button_back" msgid="1888621708934742182">"Nazad"</string> <string name="not_sorted" msgid="7813496644889115530">"Nisu sortirani"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Naziv"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Rezime"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Otvaranje datoteke nije uspelo"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Ne možete da otvarate datoteke u arhivama"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Nije moguće izbrisati neke dokumente"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Maksimalan broj datoteka za deljenje je <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="share_via" msgid="8725082736005677161">"Deljenje preko"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopiramo datoteke"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Datoteke se komprimuju"</string> @@ -247,25 +250,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Nedavne datoteke na telefonu"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Datoteke na telefonu"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> na telefonu"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Datoteke u Preuzimanjima"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Datoteke na uređaju <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Datoteke u direktorijumu <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Datoteke iz aplikacije <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Datoteke iz aplikacije <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Nedavne slike na telefonu"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Slike na telefonu"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Slike u Preuzimanjima"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Slike na uređaju <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Slike u direktorijumu <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Slike iz: <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Slike iz: <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Slike"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Zvuk"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Video snimci"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumenti"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Velike datoteke"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Ove nedelje"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Naziv direktorijuma"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Novi naziv"</string> <string name="preview_file" msgid="4056622696305432343">"Pregledajte datoteku <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Pregledajte datoteke u drugim aplikacijama"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonimna"</string> - <string name="open_tree_button" msgid="19992834788135845">"Dozvolite pristup direktorijumu „<xliff:g id="DIRECTORY">%1$s</xliff:g>“"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Želite li da dozvolite pristup direktorijumu „<xliff:g id="DIRECTORY">%1$s</xliff:g>“ na „<xliff:g id="ROOT">%2$s</xliff:g>“?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"To će dozvoliti aplikaciji „<xliff:g id="APPNAME">%1$s</xliff:g>“ da ima potpun pristup svim datotekama koje se trenutno čuvaju na ovoj lokaciji, kao i bilo kom sadržaju koji će se tu čuvati u budućnosti."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Koristi ovaj direktorijum"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Dozvolićete da <xliff:g id="APPNAME">%1$s</xliff:g> pristupa datotekama u direktorijumu <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Ovo će omogućiti aplikaciji <xliff:g id="APPNAME">%1$s</xliff:g> da pristupa aktuelnom i budućem sadržaju sačuvanom u direktorijumu <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Pretražite ovaj telefon"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Izbrišite istoriju pretrage <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-be/inspector_strings.xml b/res/values-be/inspector_strings.xml index 79cd4f2da..8b0696df2 100644 --- a/res/values-be/inspector_strings.xml +++ b/res/values-be/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Кампазітар"</string> <string name="metadata_album" msgid="1661699531214720236">"Альбом"</string> <string name="metadata_address" msgid="1849921023707744640">"Месцазнаходжанне"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Тыпы плыні"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Памер файла RAW (у байтах)"</string> </resources> diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml index 80364c6a9..34720a82e 100644 --- a/res/values-be/strings.xml +++ b/res/values-be/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Абагуліць"</string> <string name="menu_delete" msgid="1022254131543256626">"Выдаліць"</string> <string name="menu_select_all" msgid="7600576812185570403">"Выбраць усе"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Адмяніць выбар усіх"</string> <string name="menu_select" msgid="1366061076507142387">"Выбраць"</string> <string name="menu_sort" msgid="3362419226163725275">"Сартаваць па…"</string> <string name="menu_copy" msgid="7404820171352314754">"Капіраваць у…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Паўтарыць спробу"</string> <string name="button_clear" msgid="5412304437764369441">"Выдаліць"</string> <string name="button_show_provider" msgid="6905880493806292753">"Паказаць у Правадніку"</string> + <string name="button_back" msgid="1888621708934742182">"Назад"</string> <string name="not_sorted" msgid="7813496644889115530">"Не адсартаваны"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Назва"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Кароткае апісанне"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Немагчыма адкрыць файл"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Немагчыма адкрыць файлы ў архівах"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Немагчыма выдаліць некаторыя дакументы"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Не ўдалося абагуліць, таму што файлаў больш за <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="share_via" msgid="8725082736005677161">"Абагуліць праз"</string> <string name="copy_notification_title" msgid="52256435625098456">"Капіраванне файлаў"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Ідзе сцісканне файлаў"</string> @@ -269,25 +272,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Нядаўнія файлы на тэлефоне"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Файлы на тэлефоне"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> на тэлефоне"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Файлы ў Спампоўках"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Файлы на прыладзе \"<xliff:g id="DEVICE">%1$s</xliff:g>\""</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Файлы ў папцы \"<xliff:g id="FOLDER">%1$s</xliff:g>\""</string> <string name="root_info_header_app" msgid="2125422047558420885">"Файлы з: <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Файлы з: <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Нядаўнія відарысы з тэлефона"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Відарысы на тэлефоне"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Відарысы ў Спампоўках"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Відарысы на прыладзе <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Відарысы ў папцы \"<xliff:g id="FOLDER">%1$s</xliff:g>\""</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Відарысы са сховішча <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Відарысы са сховішча <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Відарысы"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Аўдыя"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Відэа"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Дакументы"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Вялікія файлы"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"На гэтым тыдні"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Назва папкі"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Новая назва"</string> <string name="preview_file" msgid="4056622696305432343">"Папярэдні прагляд файла \"<xliff:g id="FILENAME">%1$s</xliff:g>\""</string> <string name="apps_row_title" msgid="3340490016663092925">"Пошук файлаў у іншых праграмах"</string> <string name="anonymous_application" msgid="7633027057951625862">"Ананімная"</string> - <string name="open_tree_button" msgid="19992834788135845">"Дазволіць доступ да каталога \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Дазволіць доступ да каталога \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" (\"<xliff:g id="ROOT">%2$s</xliff:g>\")?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Гэта дасць праграме \"<xliff:g id="APPNAME">%1$s</xliff:g>\" поўны доступ да ўсіх файлаў, якія захоўваюцца зараз або будуць захаваны ў гэтым месцы."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Выкарыстоўваць гэту папку"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Дазволіць праграме \"<xliff:g id="APPNAME">%1$s</xliff:g>\" мець доступ да файлаў у каталозе \"<xliff:g id="DIRECTORY">%2$s</xliff:g>\"?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Гэта дзеянне адкрые праграме \"<xliff:g id="APPNAME">%1$s</xliff:g>\" доступ да цяперашняга і будучага змесціва ў каталозе \"<xliff:g id="DIRECTORY">%2$s</xliff:g>\"."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Пошук на гэтым тэлефоне"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Выдаліць гісторыю пошуку <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-bg/inspector_strings.xml b/res/values-bg/inspector_strings.xml index 9e6b1e6a8..259ddd1f5 100644 --- a/res/values-bg/inspector_strings.xml +++ b/res/values-bg/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Композитор"</string> <string name="metadata_album" msgid="1661699531214720236">"Албум"</string> <string name="metadata_address" msgid="1849921023707744640">"Местоположение"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Типове поточно предаване"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Необработен размер (байтове)"</string> </resources> diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index 42605527a..39d781c57 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Споделяне"</string> <string name="menu_delete" msgid="1022254131543256626">"Изтриване"</string> <string name="menu_select_all" msgid="7600576812185570403">"Избиране на всичко"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Премахв. на избора от всички"</string> <string name="menu_select" msgid="1366061076507142387">"Избиране"</string> <string name="menu_sort" msgid="3362419226163725275">"Сортиране по..."</string> <string name="menu_copy" msgid="7404820171352314754">"Копиране във…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Нов опит"</string> <string name="button_clear" msgid="5412304437764369441">"Изчистване"</string> <string name="button_show_provider" msgid="6905880493806292753">"Показване чрез доставчик"</string> + <string name="button_back" msgid="1888621708934742182">"Назад"</string> <string name="not_sorted" msgid="7813496644889115530">"Несортирани"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Име"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Обобщена информация"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Файлът не може да се отвори"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Файловете в архиви не могат да се отварят"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Някои документи не могат да бъдат изтрити"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Не могат да се споделят повече от <xliff:g id="COUNT">%1$d</xliff:g> файла"</string> <string name="share_via" msgid="8725082736005677161">"Споделяне чрез"</string> <string name="copy_notification_title" msgid="52256435625098456">"Копиране на файлове"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Файловете се компресират"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Скорошни файлове на телефона"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Файлове на телефона"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> на телефона"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Файлове в изтеглянията"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Файлове от <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Файлове в(ъв) <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Файлове от <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Файлове от <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Скорошни изображения в телефона"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Изображения в телефона"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Изображения в изтеглянията"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Изображения в устройството <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Изображения в(ъв) <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Изображения от <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Изображения от <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Изображения"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Аудио"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Видеоклипове"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Документи"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Големи файлове"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Тази седмица"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Име на папката"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Ново име"</string> <string name="preview_file" msgid="4056622696305432343">"Визуализация на файла <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Преглед на файлове в други приложения"</string> <string name="anonymous_application" msgid="7633027057951625862">"Анонимно"</string> - <string name="open_tree_button" msgid="19992834788135845">"Разрешаване на достъп до „<xliff:g id="DIRECTORY">%1$s</xliff:g>“"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Да се разреши ли достъп до „<xliff:g id="DIRECTORY">%1$s</xliff:g>“ на „<xliff:g id="ROOT">%2$s</xliff:g>“?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Така „<xliff:g id="APPNAME">%1$s</xliff:g>“ ще получи пълен достъп до всички файлове, които понастоящем се съхраняват в това местоположение, както и до всяко съдържание, което ще се съхранява тук в бъдеще."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Използване на тази папка"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Да се разреши ли на <xliff:g id="APPNAME">%1$s</xliff:g> достъп до файловете в(ъв) <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Това ще разреши на <xliff:g id="APPNAME">%1$s</xliff:g> да осъществява достъп до текущото и бъдещото съдържание, което се съхранява в(ъв) <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Търсете в този телефон"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Изтриване на <xliff:g id="TEXT">%1$s</xliff:g> от историята на търсенията"</string> </resources> diff --git a/res/values-bn/inspector_strings.xml b/res/values-bn/inspector_strings.xml index a9d104921..14d3ff26d 100644 --- a/res/values-bn/inspector_strings.xml +++ b/res/values-bn/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"সুরকার"</string> <string name="metadata_album" msgid="1661699531214720236">"অ্যালবাম"</string> <string name="metadata_address" msgid="1849921023707744640">"লোকেশন"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"স্ট্রিমের ধরন"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"RAW এর সাইজ (বাইট)"</string> </resources> diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml index 0fef2a8ba..5aad18cc6 100644 --- a/res/values-bn/strings.xml +++ b/res/values-bn/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"শেয়ার করুন"</string> <string name="menu_delete" msgid="1022254131543256626">"মুছুন"</string> <string name="menu_select_all" msgid="7600576812185570403">"সবগুলি বেছে নিন"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"সব টিকচিহ্ন সরান"</string> <string name="menu_select" msgid="1366061076507142387">"বেছে নিন"</string> <string name="menu_sort" msgid="3362419226163725275">"এই অনুসারে সাজান..."</string> <string name="menu_copy" msgid="7404820171352314754">"এতে কপি করুন…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"আবার চেষ্টা করুন"</string> <string name="button_clear" msgid="5412304437764369441">"সাফ করুন"</string> <string name="button_show_provider" msgid="6905880493806292753">"প্রদানকারীতে দেখুন"</string> + <string name="button_back" msgid="1888621708934742182">"ফিরে যান"</string> <string name="not_sorted" msgid="7813496644889115530">"সাজানো নেই"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"নাম"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"সারাংশ"</string> @@ -92,11 +94,12 @@ <string name="root_type_shortcut" msgid="6059343175525442279">"শর্টকাট"</string> <string name="root_type_device" msgid="1713604128005476585">"ডিভাইস"</string> <string name="root_type_apps" msgid="8646073235029886342">"আরও অ্যাপ্স"</string> - <string name="empty" msgid="5300254272613103004">"কোনো আইটেম নেই"</string> + <string name="empty" msgid="5300254272613103004">"কোনও আইটেম নেই"</string> <string name="no_results" msgid="2371026325236359209">"%1$s এ কোনো মিল নেই"</string> <string name="toast_no_application" msgid="7555319548595113121">"ফাইল খোলা যাবে না"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"আর্কাইভের ফাইলগুলি খোলা যাচ্ছে না"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"কিছু দস্তাবেজ মোছা গেল না"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g>টির বেশি ফাইল শেয়ার করতে পারবেন না"</string> <string name="share_via" msgid="8725082736005677161">"এর মাধ্যমে শেয়ার করুন"</string> <string name="copy_notification_title" msgid="52256435625098456">"ফাইলগুলি কপি করা হচ্ছে"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ফাইলগুলি"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"ফোনে আসা নতুন ফাইল"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"ফোনে সেভ করা ফাইলগুলি"</string> <string name="root_info_header_media" msgid="2774453755906260852">"ফোনে সেভ করা <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"ডাউনলোড ফোল্ডারে ফাইল"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> ডিভাইসে সেভ করা ফাইলগুলি"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g>-এ ফোল্ডার"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g>-এ সেভ করা ফাইলগুলি"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>-এ সেভ করা ফাইলগুলি"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"ফোনে সম্প্রতি আসা ছবি"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"ফোনের ছবি"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"ডাউনলোড ফোল্ডারে ছবি"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g>-এর ছবি"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g>-এ ছবি"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g>-এর ছবি"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>-এর ছবি"</string> <string name="chip_title_images" msgid="7838299046109841015">"ছবি"</string> <string name="chip_title_audio" msgid="1032801828748235436">"অডিও"</string> <string name="chip_title_videos" msgid="7011260091979776447">"ভিডিও"</string> <string name="chip_title_documents" msgid="7432457563000753983">"ডকুমেন্ট"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"বড় ফাইল"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"এই সপ্তাহ"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"ফোল্ডারের নাম"</string> <string name="input_hint_rename" msgid="8390711744270994452">"নতুন নাম"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> ফাইলের প্রিভিউ দেখুন"</string> <string name="apps_row_title" msgid="3340490016663092925">"অন্যান্য অ্যাপে ফাইল ব্রাউজ করুন"</string> <string name="anonymous_application" msgid="7633027057951625862">"বেনামী"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\"-এ অ্যাক্সেসের অনুমতি দিন"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\"-এর <xliff:g id="DIRECTORY">%1$s</xliff:g>-এ অ্যাক্সেস করার অনুমতি দিতে চান?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"এই লোকেশনে বর্তমানে থাকা এবং ভবিষ্যতে রাখা যেকোনও ফাইলে <xliff:g id="APPNAME">%1$s</xliff:g> এর অ্যাক্সেস করার অনুমতি দেয়।"</string> - <string name="search_bar_hint" msgid="4517366509897977321">"এই ফোনটি খুঁজুন"</string> + <string name="open_tree_button" msgid="6402871398424497776">"এই ফোল্ডার ব্যবহার করুন"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="DIRECTORY">%2$s</xliff:g>-তে ফাইল অ্যাক্সেস করার অনুমতি <xliff:g id="APPNAME">%1$s</xliff:g>-কে দেবেন?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"এটি <xliff:g id="APPNAME">%1$s</xliff:g>-কে <xliff:g id="DIRECTORY">%2$s</xliff:g>-তে স্টোর হওয়া বর্তমান এবং ভবিষ্যতের কন্টেন্ট অ্যাক্সেস করতে দেয়।"</string> + <string name="search_bar_hint" msgid="4517366509897977321">"এই ফোনে খুঁজুন"</string> + <string name="delete_search_history" msgid="2202015025607694515">"সার্চের ইতিহাস মুছুন <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-bs/inspector_strings.xml b/res/values-bs/inspector_strings.xml index 3668ec857..dddfb5c78 100644 --- a/res/values-bs/inspector_strings.xml +++ b/res/values-bs/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Kompozitor"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Lokacija"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Vrste prijenosa"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Raw veličina (bajta)"</string> </resources> diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml index fc1b68c82..322a75389 100644 --- a/res/values-bs/strings.xml +++ b/res/values-bs/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Dijeli"</string> <string name="menu_delete" msgid="1022254131543256626">"Izbriši"</string> <string name="menu_select_all" msgid="7600576812185570403">"Odaberi sve"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Poništi sve odabire"</string> <string name="menu_select" msgid="1366061076507142387">"Odaberi"</string> <string name="menu_sort" msgid="3362419226163725275">"Poredaj po…"</string> <string name="menu_copy" msgid="7404820171352314754">"Kopiraj u…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Pokušajte ponovo"</string> <string name="button_clear" msgid="5412304437764369441">"Obriši"</string> <string name="button_show_provider" msgid="6905880493806292753">"Prikaži u pružaocu"</string> + <string name="button_back" msgid="1888621708934742182">"Nazad"</string> <string name="not_sorted" msgid="7813496644889115530">"Nije poredano"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Ime"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Sažetak"</string> @@ -70,11 +72,11 @@ <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Naziv fajla (A – Ž)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Vrsta (A – Ž)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Veličina (prvo najmanje)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Izmijenjeno (prvo najstariji)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Izmijenjeno (prvo najstarije)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Naziv fajla (Ž – A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Vrsta (Ž – A)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Veličina (prvo najveće)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Izmijenjeno (prvo najnoviji)"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Izmijenjeno (prvo najnovije)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Poredaj po"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Poredano po: <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Broj stavki"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Nije moguće otvoriti fajl"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Nije moguće otvoriti fajlove u arhivama"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Nije moguće izbrisati neke dokumente"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Nije moguće dijeliti više od <xliff:g id="COUNT">%1$d</xliff:g> fajl(ova)"</string> <string name="share_via" msgid="8725082736005677161">"Dijeli pomoću aplikacije"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopiraju se fajlovi"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Kompresovanje fajlova"</string> @@ -221,9 +224,9 @@ <item quantity="other">Želite li izbrisati <xliff:g id="COUNT_1">%1$d</xliff:g> fajlova.</item> </plurals> <plurals name="delete_folders_confirmation_message" formatted="false" msgid="1028946402799686388"> - <item quantity="one">Želite li izbrisati <xliff:g id="COUNT_1">%1$d</xliff:g> folder i njihov sadržaj?</item> - <item quantity="few">Želite li izbrisati <xliff:g id="COUNT_1">%1$d</xliff:g> foldera i njihov sadržaj?</item> - <item quantity="other">Želite li izbrisati <xliff:g id="COUNT_1">%1$d</xliff:g> foldera i njihov sadržaj?</item> + <item quantity="one">Izbrisati <xliff:g id="COUNT_1">%1$d</xliff:g> folder i njihov sadržaj?</item> + <item quantity="few">Izbrisati <xliff:g id="COUNT_1">%1$d</xliff:g> foldera i njihov sadržaj?</item> + <item quantity="other">Izbrisati <xliff:g id="COUNT_1">%1$d</xliff:g> foldera i njihov sadržaj?</item> </plurals> <plurals name="delete_items_confirmation_message" formatted="false" msgid="7285090426511028179"> <item quantity="one">Želite li izbrisati <xliff:g id="COUNT_1">%1$d</xliff:g> stavku?</item> @@ -247,25 +250,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Nedavni fajlovi na telefonu"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Fajlovi na telefonu"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> na telefonu"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Fajlovi u Preuzimanjima"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Fajlovi na uređaju <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Fajlovi u folderu <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Fajlovi usluge <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Fajlovi usluge <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Nedavne slike na telefonu"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Slike na telefonu"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Slike u Preuzimanjima"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Slike na uređaju <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Slike u folderu <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Slike s usluge <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Slike s usluge <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Slike"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Zvuk"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videozapisi"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumenti"</string> - <string name="input_hint_new_folder" msgid="479672411219725677">"Ime foldera"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Veliki fajlovi"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Ova sedmica"</string> + <string name="input_hint_new_folder" msgid="479672411219725677">"Naziv foldera"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Novo ime"</string> <string name="preview_file" msgid="4056622696305432343">"Pregled fajla <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Pretraživanje fajlova u drugim aplikacijama"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonimno"</string> - <string name="open_tree_button" msgid="19992834788135845">"Dozvoli pristup direktoriju \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Omogućiti pristup direktoriju \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" na uređaju \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Aplikaciji \"<xliff:g id="APPNAME">%1$s</xliff:g>\" će biti dozvoljen potpuni pristup svim fajlovima koji su trenutno pohranjeni na ovoj lokaciji te bilo kojem sadržaju koji se ubuduće pohrani ovdje."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Koristi ovaj folder"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Dozvoliti aplikaciji <xliff:g id="APPNAME">%1$s</xliff:g> da pristupi fajlovima u direktoriju <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Na ovaj način će se aplikaciji <xliff:g id="APPNAME">%1$s</xliff:g> omogućiti pristup trenutnom i budućem sadržaju pohranjenom u direktoriju <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Pretražite ovaj telefon"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Izbriši historiju pretraživanja <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-ca/inspector_strings.xml b/res/values-ca/inspector_strings.xml index 329f950bf..86b3d9f92 100644 --- a/res/values-ca/inspector_strings.xml +++ b/res/values-ca/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Compositor"</string> <string name="metadata_album" msgid="1661699531214720236">"Àlbum"</string> <string name="metadata_address" msgid="1849921023707744640">"Ubicació"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Tipus de fluxos"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Mida sense processar (bytes)"</string> </resources> diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index ff413b314..8e0150946 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Comparteix"</string> <string name="menu_delete" msgid="1022254131543256626">"Suprimeix"</string> <string name="menu_select_all" msgid="7600576812185570403">"Selecciona-ho tot"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Desselecciona-ho tot"</string> <string name="menu_select" msgid="1366061076507142387">"Selecciona"</string> <string name="menu_sort" msgid="3362419226163725275">"Ordena per..."</string> <string name="menu_copy" msgid="7404820171352314754">"Copia a…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Torna-ho a provar"</string> <string name="button_clear" msgid="5412304437764369441">"Esborra"</string> <string name="button_show_provider" msgid="6905880493806292753">"Mostra al proveïdor"</string> + <string name="button_back" msgid="1888621708934742182">"Enrere"</string> <string name="not_sorted" msgid="7813496644889115530">"Sense ordenar"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nom"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Resum"</string> @@ -70,12 +72,12 @@ <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Nom del fitxer (A-Z)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Tipus (A-Z)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Mida (més petit primer)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Data d\'edició (antics)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Data de modificació (antics primer)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Nom del fitxer (Z-A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Tipus (Z-A)"</string> - <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Mida (més gros primer)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Data d\'edició (recents)"</string> - <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Ordena per:"</string> + <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Mida (més gran primer)"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Data de modificació (recents primer)"</string> + <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Ordena per"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Ordenat per: <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Nombre d\'elements"</string> <string name="sort_direction_ascending" msgid="5882787683763248102">"Ascendent"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"No es pot obrir el fitxer"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"No es poden obrir els fitxers dels arxius"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"No es poden suprimir alguns documents"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Es poden compartir com a màxim <xliff:g id="COUNT">%1$d</xliff:g> fitxers"</string> <string name="share_via" msgid="8725082736005677161">"Comparteix mitjançant"</string> <string name="copy_notification_title" msgid="52256435625098456">"S\'estan copiant fitxers"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Comprimint els fitxers"</string> @@ -225,26 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Fitxers recents del telèfon"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Fitxers al telèfon"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> al telèfon"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Files in Downloads"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Fitxers a <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Fitxers de la carpeta <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Fitxers de: <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Fitxers de: <xliff:g id="LABEL">%1$s</xliff:g> (<xliff:g id="SUMMARY">%2$s</xliff:g>)"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Imatges recents del telèfon"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Imatges del telèfon"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Images in Downloads"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Imatges del dispositiu <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Imatges de la carpeta <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Imatges de: <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Imatges de: <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Imatges"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Àudio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Vídeos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documents"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Fitxers grans"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Aquesta setmana"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Nom de la carpeta"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nom nou"</string> <string name="preview_file" msgid="4056622696305432343">"Previsualitza el fitxer <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Cerca fitxers en altres aplicacions"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anònima"</string> - <string name="open_tree_button" msgid="19992834788135845">"Permet l\'accés a \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Permetrà que <xliff:g id="APPNAME">%1$s</xliff:g> accedeixi a tots els fitxers que hi ha emmagatzemats actualment en aquesta ubicació i a qualsevol contingut que s\'hi emmagatzemi posteriorment."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Utilitza aquesta carpeta"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Vols permetre que <xliff:g id="APPNAME">%1$s</xliff:g> accedeixi als fitxers del directori <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Això permetrà que <xliff:g id="APPNAME">%1$s</xliff:g> accedeixi al contingut emmagatzemat a <xliff:g id="DIRECTORY">%2$s</xliff:g> actualment i en el futur."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Cerca en aquest telèfon"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Suprimeix l\'historial de cerques <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-cs/inspector_strings.xml b/res/values-cs/inspector_strings.xml index 95705e12a..c3e350bda 100644 --- a/res/values-cs/inspector_strings.xml +++ b/res/values-cs/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Skladatel"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Místo"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Typy streamů"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Velikost souboru RAW (bajty)"</string> </resources> diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 9c5e02711..5ec5acbb5 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Sdílet"</string> <string name="menu_delete" msgid="1022254131543256626">"Smazat"</string> <string name="menu_select_all" msgid="7600576812185570403">"Vybrat vše"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Zrušit výběr všech"</string> <string name="menu_select" msgid="1366061076507142387">"Vybrat"</string> <string name="menu_sort" msgid="3362419226163725275">"Řadit podle…"</string> <string name="menu_copy" msgid="7404820171352314754">"Kopírovat do…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Zkusit znovu"</string> <string name="button_clear" msgid="5412304437764369441">"Vymazat"</string> <string name="button_show_provider" msgid="6905880493806292753">"Zobrazit u poskytovatele"</string> + <string name="button_back" msgid="1888621708934742182">"Zpět"</string> <string name="not_sorted" msgid="7813496644889115530">"Neřazeno"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Název"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Souhrn"</string> @@ -70,11 +72,11 @@ <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Název souboru (A–Z)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Typ (A–Z)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Velikost (od nejmenšího)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Úprava (od nejstaršího)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Čas změny (od nejstaršího)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Název souboru (Z–A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Typ (Z–A)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Velikost (od největšího)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Úprava (od nejnovějšího)"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Čas změny (od nejnovějšího)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Řadit podle"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Seřazeno podle: <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Počet položek"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Soubor nelze otevřít"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Soubory v archivu nelze otevírat"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Některé dokumenty nelze smazat"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Sdílet lze maximálně tento počet souborů: <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="share_via" msgid="8725082736005677161">"Sdílet pomocí"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopírování souborů"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Komprimace souborů"</string> @@ -269,25 +272,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Nejnovější soubory v telefonu"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Soubory v telefonu"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> v telefonu"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Soubory ve Stahování"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Soubory v zařízení <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Soubory ve složce <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Soubory ze služby <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Soubory ze služby <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Nejnovější obrázky v telefonu"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Obrázky v telefonu"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Obrázky ve Stahování"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Obrázky v zařízení <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Obrázky ve složce <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Obrázky ze zařízení <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Obrázky ze zařízení <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Obrázky"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Zvuk"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videa"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumenty"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Velké soubory"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Tento týden"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Název složky"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nový název"</string> <string name="preview_file" msgid="4056622696305432343">"Zobrazit náhled souboru <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Procházet soubory v ostatních aplikacích"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonymní"</string> - <string name="open_tree_button" msgid="19992834788135845">"Povolit přístup k adresáři „<xliff:g id="DIRECTORY">%1$s</xliff:g>“"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Povolit přístup k adresáři <xliff:g id="DIRECTORY">%1$s</xliff:g> na zařízení <xliff:g id="ROOT">%2$s</xliff:g>?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Aplikace <xliff:g id="APPNAME">%1$s</xliff:g> získá úplný přístup ke všem souborů, které jsou aktuálně uložené v tomto umístění, a k veškerému obsahu, který zde bude uložen v budoucnu."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Použít tuto složku"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Povolit aplikaci <xliff:g id="APPNAME">%1$s</xliff:g> přístup k souborům v adresáři <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Aplikace <xliff:g id="APPNAME">%1$s</xliff:g> získá přístup ke stávajícímu a budoucímu obsahu adresáře <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Hledat v telefonu"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Vymazat historii vyhledávání <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-da/inspector_strings.xml b/res/values-da/inspector_strings.xml index 582e9d18c..3c0fe5ebe 100644 --- a/res/values-da/inspector_strings.xml +++ b/res/values-da/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Komponist"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Placering"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Streamingtyper"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"RAW-størrelse (i bytes)"</string> </resources> diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index 716c7e766..bf92d4896 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Del"</string> <string name="menu_delete" msgid="1022254131543256626">"Slet"</string> <string name="menu_select_all" msgid="7600576812185570403">"Vælg alle"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Fravælg alle"</string> <string name="menu_select" msgid="1366061076507142387">"Vælg"</string> <string name="menu_sort" msgid="3362419226163725275">"Sortér efter…"</string> <string name="menu_copy" msgid="7404820171352314754">"Kopiér til…"</string> @@ -61,18 +62,19 @@ <string name="button_retry" msgid="4011461781916631389">"Prøv igen"</string> <string name="button_clear" msgid="5412304437764369441">"Ryd"</string> <string name="button_show_provider" msgid="6905880493806292753">"Vis i udbyders tjeneste"</string> + <string name="button_back" msgid="1888621708934742182">"Tilbage"</string> <string name="not_sorted" msgid="7813496644889115530">"Ikke sorteret"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Navn"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Oversigt"</string> <string name="sort_dimension_file_type" msgid="5779709622922085381">"Type"</string> <string name="sort_dimension_size" msgid="2190547351159472884">"Størrelse"</string> <string name="sort_dimension_date" msgid="4231005651895254033">"Ændret"</string> - <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Filnavn (A til Z)"</string> - <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Type (A til Z)"</string> + <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Filnavn (A til Å)"</string> + <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Type (A til Å)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Størrelse (mindste først)"</string> <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Ændret (ældste først)"</string> - <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Filnavn (Z til A)"</string> - <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Type (Z til A)"</string> + <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Filnavn (Å til A)"</string> + <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Type (Z til Å)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Størrelse (største først)"</string> <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Ændret (nyeste først)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Sortér efter"</string> @@ -93,10 +95,11 @@ <string name="root_type_device" msgid="1713604128005476585">"Enheder"</string> <string name="root_type_apps" msgid="8646073235029886342">"Flere apps"</string> <string name="empty" msgid="5300254272613103004">"Ingen elementer"</string> - <string name="no_results" msgid="2371026325236359209">"Ingen kampe i %1$s"</string> + <string name="no_results" msgid="2371026325236359209">"Ingen resultater i %1$s"</string> <string name="toast_no_application" msgid="7555319548595113121">"Filen kan ikke åbnes"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Filer i arkiver kan ikke åbnes"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Nogle dokumenter kan ikke slettes"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Der kan højst deles <xliff:g id="COUNT">%1$d</xliff:g> filer"</string> <string name="share_via" msgid="8725082736005677161">"Del via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopierer filer"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Komprimerer filer"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Seneste filer på telefonen"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Filer på telefonen"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> på telefonen"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Filer i Downloads"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Filer på <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Filer i <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Filer fra <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Filer fra <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Seneste billeder på telefonen"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Billeder på telefonen"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Billeder i Downloads"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Billeder på <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Billeder i <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Billeder fra <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Billeder fra <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Billeder"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Lyd"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videoer"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumenter"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Store filer"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Denne uge"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Mappenavn"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nyt navn"</string> <string name="preview_file" msgid="4056622696305432343">"Se forhåndsvisning af filen <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Gennemse filer i andre apps"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonym"</string> - <string name="open_tree_button" msgid="19992834788135845">"Tillad adgang til \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Vil du tillade adgang til \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" i \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Dette åbner \"<xliff:g id="APPNAME">%1$s</xliff:g>\", så den har fuld adgang til alle filer, der i øjeblikket er gemt på denne placering, og eventuelt fremtidigt indhold, som er gemt her."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Brug denne mappe"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Vil du give <xliff:g id="APPNAME">%1$s</xliff:g> adgang til filerne i <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Dette giver <xliff:g id="APPNAME">%1$s</xliff:g> adgang til aktuelt og fremtidigt indhold, som gemmes i <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Søg på denne telefon"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Slet søgehistorikken <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-de/inspector_strings.xml b/res/values-de/inspector_strings.xml index 9a8356d31..d535efd8a 100644 --- a/res/values-de/inspector_strings.xml +++ b/res/values-de/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Komponist"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Standort"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Streamingtypen"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Unkomprimierte Größe (Byte)"</string> </resources> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 92ca88626..db3381291 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Teilen"</string> <string name="menu_delete" msgid="1022254131543256626">"Löschen"</string> <string name="menu_select_all" msgid="7600576812185570403">"Alle auswählen"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Auswahl für alle aufheben"</string> <string name="menu_select" msgid="1366061076507142387">"Auswählen"</string> <string name="menu_sort" msgid="3362419226163725275">"Sortieren nach…"</string> <string name="menu_copy" msgid="7404820171352314754">"Kopieren nach…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Wiederholen"</string> <string name="button_clear" msgid="5412304437764369441">"Löschen"</string> <string name="button_show_provider" msgid="6905880493806292753">"In App des Anbieters anzeigen"</string> + <string name="button_back" msgid="1888621708934742182">"Zurück"</string> <string name="not_sorted" msgid="7813496644889115530">"Nicht sortiert"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Name"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Zusammenfassung"</string> @@ -70,11 +72,11 @@ <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Dateiname (A bis Z)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Typ (A bis Z)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Größe (kleinste zuerst)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Geändert (älteste zuerst)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Änderungszeitpunkt (älteste zuerst)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Dateiname (Z bis A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Typ (Z bis A)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Größe (größte zuerst)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Geändert (neueste zuerst)"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Änderungszeitpunkt (neueste zuerst)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Sortieren nach"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Nach <xliff:g id="LABEL">%s</xliff:g> sortiert"</string> <string name="directory_items" msgid="6645621978998614003">"Anzahl der Elemente"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Datei kann nicht geöffnet werden"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Dateien in Archiven können nicht geöffnet werden"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Einige Dokumente konnten nicht gelöscht werden"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Du kannst höchstens <xliff:g id="COUNT">%1$d</xliff:g> Dateien teilen"</string> <string name="share_via" msgid="8725082736005677161">"Teilen über"</string> <string name="copy_notification_title" msgid="52256435625098456">"Dateien werden kopiert"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Dateien werden komprimiert"</string> @@ -225,26 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Kürzlich verwendete Dateien auf dem Smartphone"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Dateien auf dem Smartphone"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> auf dem Smartphone"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Dateien in \"Downloads\""</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Dateien auf <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Dateien in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Dateien von <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Dateien von <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Neue Bilder auf dem Smartphone"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Bilder auf dem Smartphone"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Bilder in \"Downloads\""</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Bilder auf <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Bilder in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Bilder aus <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Bilder aus <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Bilder"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumente"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Große Dateien"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Diese Woche"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Ordnername"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Neuer Name"</string> <string name="preview_file" msgid="4056622696305432343">"Datei \"<xliff:g id="FILENAME">%1$s</xliff:g>\" als Vorschau ansehen"</string> <string name="apps_row_title" msgid="3340490016663092925">"Dateien in anderen Apps ansehen"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonym"</string> - <string name="open_tree_button" msgid="19992834788135845">"Zugriff auf \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" erlauben"</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"<xliff:g id="APPNAME">%1$s</xliff:g> hat dann uneingeschränkten Zugriff auf alle Dateien, die aktuell an diesem Ort gespeichert sind, sowie auf sämtliche Inhalte, die zukünftig dort gespeichert werden."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Diesen Ordner verwenden"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g> erlauben, auf Dateien in <xliff:g id="DIRECTORY">%2$s</xliff:g> zuzugreifen?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"<xliff:g id="APPNAME">%1$s</xliff:g> kann dann auf Inhalte zugreifen, die derzeit und zukünftig in <xliff:g id="DIRECTORY">%2$s</xliff:g> gespeichert sind."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Auf diesem Smartphone suchen"</string> + <string name="delete_search_history" msgid="2202015025607694515">"<xliff:g id="TEXT">%1$s</xliff:g>-Suchverlauf löschen"</string> </resources> diff --git a/res/values-el/inspector_strings.xml b/res/values-el/inspector_strings.xml index 7731009b0..29ed7ca66 100644 --- a/res/values-el/inspector_strings.xml +++ b/res/values-el/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Συνθέτης"</string> <string name="metadata_album" msgid="1661699531214720236">"Άλμπουμ"</string> <string name="metadata_address" msgid="1849921023707744640">"Τοποθεσία"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Τύποι ροής"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Μη επεξεργασμένο μέγεθος (byte)"</string> </resources> diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 731e64dd5..838d205d5 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Κοινοποίηση"</string> <string name="menu_delete" msgid="1022254131543256626">"Διαγραφή"</string> <string name="menu_select_all" msgid="7600576812185570403">"Επιλογή όλων"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Αποεπιλογή όλων"</string> <string name="menu_select" msgid="1366061076507142387">"Επιλογή"</string> <string name="menu_sort" msgid="3362419226163725275">"Ταξινόμηση κατά…"</string> <string name="menu_copy" msgid="7404820171352314754">"Αντιγραφή σε…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Δοκιμάστε ξανά"</string> <string name="button_clear" msgid="5412304437764369441">"Διαγραφή"</string> <string name="button_show_provider" msgid="6905880493806292753">"Εμφάνιση στον πάροχο"</string> + <string name="button_back" msgid="1888621708934742182">"Πίσω"</string> <string name="not_sorted" msgid="7813496644889115530">"Χωρίς ταξινόμηση"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Όνομα"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Σύνοψη"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Δεν είναι δυνατό το άνοιγμα του αρχείου"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Αδύνατο άνοιγμα αρχείων σε αρχειοθήκες"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Δεν είναι δυνατή η διαγραφή ορισμένων εγγράφων"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Αδύνατη η κοινοποίηση περισσότερων από <xliff:g id="COUNT">%1$d</xliff:g> αρχείων."</string> <string name="share_via" msgid="8725082736005677161">"Κοινοποίηση μέσω"</string> <string name="copy_notification_title" msgid="52256435625098456">"Αντιγραφή αρχείων"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Συμπίεση αρχείων"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Πρόσφατα αρχεία στο τηλέφωνο"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Αρχεία στο τηλέφωνο"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> στο τηλέφωνο"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Αρχεία στις Λήψεις"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Αρχεία στη συσκευή <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Αρχεία στον φάκελο <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Αρχεία από <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Αρχεία από <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Πρόσφατες εικόνες στο τηλέφωνο"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Εικόνες στο τηλέφωνο"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Εικόνες στις Λήψεις"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Εικόνες στη συσκευή <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Εικόνες στον φάκελο <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Εικόνες από <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Εικόνες από <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Εικόνες"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Ήχος"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Βίντεο"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Έγγραφα"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Μεγάλα αρχεία"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Αυτήν την εβδομάδα"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Όνομα φακέλου"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Νέο όνομα"</string> <string name="preview_file" msgid="4056622696305432343">"Προεπισκόπηση του αρχείου <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Αναζήτηση αρχείων σε άλλες εφαρμογές"</string> <string name="anonymous_application" msgid="7633027057951625862">"Ανώνυμη"</string> - <string name="open_tree_button" msgid="19992834788135845">"Να επιτρέπεται η πρόσβαση σε \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Να επιτρέπεται η πρόσβαση σε \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" στο \"<xliff:g id="ROOT">%2$s</xliff:g>\";"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Θα επιτρέπεται στην εφαρμογή \"<xliff:g id="APPNAME">%1$s</xliff:g>\" να έχει πλήρη πρόσβαση σε όλα τα αρχεία που είναι αποθηκευμένα αυτήν τη στιγμή σε αυτήν την τοποθεσία και τυχόν περιεχόμενο που θα αποθηκευτεί μελλοντικά εδώ."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Χρήση αυτού του φακέλου"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Να έχει η εφαρμογή <xliff:g id="APPNAME">%1$s</xliff:g> πρόσβαση σε αρχεία του καταλόγου <xliff:g id="DIRECTORY">%2$s</xliff:g>;"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Αυτή η ενέργεια θα επιτρέψει στην εφαρμογή <xliff:g id="APPNAME">%1$s</xliff:g> να έχει πρόσβαση σε τρέχον και μελλοντικό περιεχόμενο του καταλόγου <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Αναζήτηση αυτού του τηλεφώνου"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Διαγραφή ιστορικού αναζήτησης <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-en-rAU/inspector_strings.xml b/res/values-en-rAU/inspector_strings.xml index 89d9e7538..e37aab9ee 100644 --- a/res/values-en-rAU/inspector_strings.xml +++ b/res/values-en-rAU/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Composer"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Location"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Stream types"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Raw size (bytes)"</string> </resources> diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml index 3ccf3eb9a..d820cc2a6 100644 --- a/res/values-en-rAU/strings.xml +++ b/res/values-en-rAU/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Shared"</string> <string name="menu_delete" msgid="1022254131543256626">"Delete"</string> <string name="menu_select_all" msgid="7600576812185570403">"Select all"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Deselect all"</string> <string name="menu_select" msgid="1366061076507142387">"Select"</string> <string name="menu_sort" msgid="3362419226163725275">"Sort by..."</string> <string name="menu_copy" msgid="7404820171352314754">"Copy to…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Try again"</string> <string name="button_clear" msgid="5412304437764369441">"Clear"</string> <string name="button_show_provider" msgid="6905880493806292753">"Show in provider"</string> + <string name="button_back" msgid="1888621708934742182">"Back"</string> <string name="not_sorted" msgid="7813496644889115530">"Not sorted"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Name"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Summary"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Can’t open file"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Cannot open files in archives"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Unable to delete some documents"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Can’t share more than <xliff:g id="COUNT">%1$d</xliff:g> files"</string> <string name="share_via" msgid="8725082736005677161">"Share via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Copying files"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Compressing files"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Recent files on phone"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Files on phone"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> on phone"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Files in downloads"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Files on <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Files in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Files from <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Files from <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Recent images on phone"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Images on phone"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Images in downloads"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Images on <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Images in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Images from <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Images from <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Images"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documents"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Large files"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"This week"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Folder name"</string> <string name="input_hint_rename" msgid="8390711744270994452">"New name"</string> <string name="preview_file" msgid="4056622696305432343">"Preview the file <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Browse files in other apps"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonymous"</string> - <string name="open_tree_button" msgid="19992834788135845">"Allow access to \'<xliff:g id="DIRECTORY">%1$s</xliff:g>\'"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Allow access to \'<xliff:g id="DIRECTORY">%1$s</xliff:g>\' on \'<xliff:g id="ROOT">%2$s</xliff:g>\'?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"It will allow \'<xliff:g id="APPNAME">%1$s</xliff:g>\' to have full access to all files currently stored under this location, and any future content stored here."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Use this folder"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Allow <xliff:g id="APPNAME">%1$s</xliff:g> to access files in <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"This will let <xliff:g id="APPNAME">%1$s</xliff:g> access current and future content stored in <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Search this phone"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Delete search history <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-en-rCA/inspector_strings.xml b/res/values-en-rCA/inspector_strings.xml index 89d9e7538..e37aab9ee 100644 --- a/res/values-en-rCA/inspector_strings.xml +++ b/res/values-en-rCA/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Composer"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Location"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Stream types"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Raw size (bytes)"</string> </resources> diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml index 3ccf3eb9a..d820cc2a6 100644 --- a/res/values-en-rCA/strings.xml +++ b/res/values-en-rCA/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Shared"</string> <string name="menu_delete" msgid="1022254131543256626">"Delete"</string> <string name="menu_select_all" msgid="7600576812185570403">"Select all"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Deselect all"</string> <string name="menu_select" msgid="1366061076507142387">"Select"</string> <string name="menu_sort" msgid="3362419226163725275">"Sort by..."</string> <string name="menu_copy" msgid="7404820171352314754">"Copy to…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Try again"</string> <string name="button_clear" msgid="5412304437764369441">"Clear"</string> <string name="button_show_provider" msgid="6905880493806292753">"Show in provider"</string> + <string name="button_back" msgid="1888621708934742182">"Back"</string> <string name="not_sorted" msgid="7813496644889115530">"Not sorted"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Name"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Summary"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Can’t open file"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Cannot open files in archives"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Unable to delete some documents"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Can’t share more than <xliff:g id="COUNT">%1$d</xliff:g> files"</string> <string name="share_via" msgid="8725082736005677161">"Share via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Copying files"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Compressing files"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Recent files on phone"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Files on phone"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> on phone"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Files in downloads"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Files on <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Files in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Files from <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Files from <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Recent images on phone"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Images on phone"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Images in downloads"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Images on <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Images in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Images from <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Images from <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Images"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documents"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Large files"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"This week"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Folder name"</string> <string name="input_hint_rename" msgid="8390711744270994452">"New name"</string> <string name="preview_file" msgid="4056622696305432343">"Preview the file <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Browse files in other apps"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonymous"</string> - <string name="open_tree_button" msgid="19992834788135845">"Allow access to \'<xliff:g id="DIRECTORY">%1$s</xliff:g>\'"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Allow access to \'<xliff:g id="DIRECTORY">%1$s</xliff:g>\' on \'<xliff:g id="ROOT">%2$s</xliff:g>\'?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"It will allow \'<xliff:g id="APPNAME">%1$s</xliff:g>\' to have full access to all files currently stored under this location, and any future content stored here."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Use this folder"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Allow <xliff:g id="APPNAME">%1$s</xliff:g> to access files in <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"This will let <xliff:g id="APPNAME">%1$s</xliff:g> access current and future content stored in <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Search this phone"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Delete search history <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-en-rGB/inspector_strings.xml b/res/values-en-rGB/inspector_strings.xml index 89d9e7538..e37aab9ee 100644 --- a/res/values-en-rGB/inspector_strings.xml +++ b/res/values-en-rGB/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Composer"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Location"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Stream types"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Raw size (bytes)"</string> </resources> diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index 3ccf3eb9a..d820cc2a6 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Shared"</string> <string name="menu_delete" msgid="1022254131543256626">"Delete"</string> <string name="menu_select_all" msgid="7600576812185570403">"Select all"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Deselect all"</string> <string name="menu_select" msgid="1366061076507142387">"Select"</string> <string name="menu_sort" msgid="3362419226163725275">"Sort by..."</string> <string name="menu_copy" msgid="7404820171352314754">"Copy to…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Try again"</string> <string name="button_clear" msgid="5412304437764369441">"Clear"</string> <string name="button_show_provider" msgid="6905880493806292753">"Show in provider"</string> + <string name="button_back" msgid="1888621708934742182">"Back"</string> <string name="not_sorted" msgid="7813496644889115530">"Not sorted"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Name"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Summary"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Can’t open file"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Cannot open files in archives"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Unable to delete some documents"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Can’t share more than <xliff:g id="COUNT">%1$d</xliff:g> files"</string> <string name="share_via" msgid="8725082736005677161">"Share via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Copying files"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Compressing files"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Recent files on phone"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Files on phone"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> on phone"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Files in downloads"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Files on <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Files in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Files from <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Files from <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Recent images on phone"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Images on phone"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Images in downloads"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Images on <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Images in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Images from <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Images from <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Images"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documents"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Large files"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"This week"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Folder name"</string> <string name="input_hint_rename" msgid="8390711744270994452">"New name"</string> <string name="preview_file" msgid="4056622696305432343">"Preview the file <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Browse files in other apps"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonymous"</string> - <string name="open_tree_button" msgid="19992834788135845">"Allow access to \'<xliff:g id="DIRECTORY">%1$s</xliff:g>\'"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Allow access to \'<xliff:g id="DIRECTORY">%1$s</xliff:g>\' on \'<xliff:g id="ROOT">%2$s</xliff:g>\'?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"It will allow \'<xliff:g id="APPNAME">%1$s</xliff:g>\' to have full access to all files currently stored under this location, and any future content stored here."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Use this folder"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Allow <xliff:g id="APPNAME">%1$s</xliff:g> to access files in <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"This will let <xliff:g id="APPNAME">%1$s</xliff:g> access current and future content stored in <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Search this phone"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Delete search history <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-en-rIN/inspector_strings.xml b/res/values-en-rIN/inspector_strings.xml index 89d9e7538..e37aab9ee 100644 --- a/res/values-en-rIN/inspector_strings.xml +++ b/res/values-en-rIN/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Composer"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Location"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Stream types"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Raw size (bytes)"</string> </resources> diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml index 3ccf3eb9a..d820cc2a6 100644 --- a/res/values-en-rIN/strings.xml +++ b/res/values-en-rIN/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Shared"</string> <string name="menu_delete" msgid="1022254131543256626">"Delete"</string> <string name="menu_select_all" msgid="7600576812185570403">"Select all"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Deselect all"</string> <string name="menu_select" msgid="1366061076507142387">"Select"</string> <string name="menu_sort" msgid="3362419226163725275">"Sort by..."</string> <string name="menu_copy" msgid="7404820171352314754">"Copy to…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Try again"</string> <string name="button_clear" msgid="5412304437764369441">"Clear"</string> <string name="button_show_provider" msgid="6905880493806292753">"Show in provider"</string> + <string name="button_back" msgid="1888621708934742182">"Back"</string> <string name="not_sorted" msgid="7813496644889115530">"Not sorted"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Name"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Summary"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Can’t open file"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Cannot open files in archives"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Unable to delete some documents"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Can’t share more than <xliff:g id="COUNT">%1$d</xliff:g> files"</string> <string name="share_via" msgid="8725082736005677161">"Share via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Copying files"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Compressing files"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Recent files on phone"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Files on phone"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> on phone"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Files in downloads"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Files on <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Files in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Files from <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Files from <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Recent images on phone"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Images on phone"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Images in downloads"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Images on <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Images in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Images from <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Images from <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Images"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documents"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Large files"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"This week"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Folder name"</string> <string name="input_hint_rename" msgid="8390711744270994452">"New name"</string> <string name="preview_file" msgid="4056622696305432343">"Preview the file <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Browse files in other apps"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonymous"</string> - <string name="open_tree_button" msgid="19992834788135845">"Allow access to \'<xliff:g id="DIRECTORY">%1$s</xliff:g>\'"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Allow access to \'<xliff:g id="DIRECTORY">%1$s</xliff:g>\' on \'<xliff:g id="ROOT">%2$s</xliff:g>\'?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"It will allow \'<xliff:g id="APPNAME">%1$s</xliff:g>\' to have full access to all files currently stored under this location, and any future content stored here."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Use this folder"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Allow <xliff:g id="APPNAME">%1$s</xliff:g> to access files in <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"This will let <xliff:g id="APPNAME">%1$s</xliff:g> access current and future content stored in <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Search this phone"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Delete search history <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-en-rXC/inspector_strings.xml b/res/values-en-rXC/inspector_strings.xml index 9a1fe47ea..7ceb3c0ad 100644 --- a/res/values-en-rXC/inspector_strings.xml +++ b/res/values-en-rXC/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Composer"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Location"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Stream types"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Raw size (bytes)"</string> </resources> diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml index 8069fb944..85388fdb7 100644 --- a/res/values-en-rXC/strings.xml +++ b/res/values-en-rXC/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Share"</string> <string name="menu_delete" msgid="1022254131543256626">"Delete"</string> <string name="menu_select_all" msgid="7600576812185570403">"Select all"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Deselect all"</string> <string name="menu_select" msgid="1366061076507142387">"Select"</string> <string name="menu_sort" msgid="3362419226163725275">"Sort by..."</string> <string name="menu_copy" msgid="7404820171352314754">"Copy to…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Try Again"</string> <string name="button_clear" msgid="5412304437764369441">"Clear"</string> <string name="button_show_provider" msgid="6905880493806292753">"Show in provider"</string> + <string name="button_back" msgid="1888621708934742182">"Back"</string> <string name="not_sorted" msgid="7813496644889115530">"Not sorted"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Name"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Summary"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Can’t open file"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Cannot open files in archives"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Unable to delete some documents"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Can’t share more than <xliff:g id="COUNT">%1$d</xliff:g> files"</string> <string name="share_via" msgid="8725082736005677161">"Share via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Copying files"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Compressing files"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Recent files on phone"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Files on phone"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> on phone"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Files in Downloads"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Files on <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Files in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Files from <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Files from <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Recent images on phone"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Images on phone"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Images in Downloads"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Images on <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Images in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Images from <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Images from <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Images"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documents"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Large files"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"This week"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Folder name"</string> <string name="input_hint_rename" msgid="8390711744270994452">"New name"</string> <string name="preview_file" msgid="4056622696305432343">"Preview the file <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Browse files in other apps"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonymous"</string> - <string name="open_tree_button" msgid="19992834788135845">"Allow access to \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Allow access to \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" on \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"It will allow \"<xliff:g id="APPNAME">%1$s</xliff:g>\" to have full access to all files currently stored under this location, and any future content stored here."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Use this folder"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Allow <xliff:g id="APPNAME">%1$s</xliff:g> to access files in <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"This will let <xliff:g id="APPNAME">%1$s</xliff:g> access current and future content stored in <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Search this phone"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Delete search history <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-es-rUS/inspector_strings.xml b/res/values-es-rUS/inspector_strings.xml index e82d6047a..f35859315 100644 --- a/res/values-es-rUS/inspector_strings.xml +++ b/res/values-es-rUS/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Compositor"</string> <string name="metadata_album" msgid="1661699531214720236">"Álbum"</string> <string name="metadata_address" msgid="1849921023707744640">"Ubicación"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Tipos de flujo"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Tamaño del archivo RAW (bytes)"</string> </resources> diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index 6acaf45bc..2d101c7f6 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Compartir"</string> <string name="menu_delete" msgid="1022254131543256626">"Borrar"</string> <string name="menu_select_all" msgid="7600576812185570403">"Seleccionar todos"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Anular la selección de todo"</string> <string name="menu_select" msgid="1366061076507142387">"Seleccionar"</string> <string name="menu_sort" msgid="3362419226163725275">"Ordenar por…"</string> <string name="menu_copy" msgid="7404820171352314754">"Copiar a…"</string> @@ -61,7 +62,8 @@ <string name="button_retry" msgid="4011461781916631389">"Volver a intentar"</string> <string name="button_clear" msgid="5412304437764369441">"Borrar"</string> <string name="button_show_provider" msgid="6905880493806292753">"Mostrar en el proveedor"</string> - <string name="not_sorted" msgid="7813496644889115530">"Sin ordernar"</string> + <string name="button_back" msgid="1888621708934742182">"Atrás"</string> + <string name="not_sorted" msgid="7813496644889115530">"Sin ordenar"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nombre"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Resumen"</string> <string name="sort_dimension_file_type" msgid="5779709622922085381">"Tipo"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"No se puede abrir el archivo"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"No se pueden abrir los documentos en Archivos"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"No es posible borrar algunos documentos"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"No puedes compartir más de <xliff:g id="COUNT">%1$d</xliff:g> archivos"</string> <string name="share_via" msgid="8725082736005677161">"Compartir con"</string> <string name="copy_notification_title" msgid="52256435625098456">"Copiando archivos"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Comprimiendo archivos"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Archivos recientes en el teléfono"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Archivos en el teléfono"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> en el teléfono"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Archivos en Descargas"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Archivos en <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Archivos almacenados en <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Archivos de <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Archivos de <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Imágenes recientes en el teléfono"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Imágenes en el teléfono"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Imágenes en Descargas"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Imágenes en <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Imágenes almacenadas en <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Imágenes de <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Imágenes de <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Imágenes"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documentos"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Archivos grandes"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Esta semana"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Nombre de carpeta"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nombre nuevo"</string> <string name="preview_file" msgid="4056622696305432343">"Obtener vista previa del archivo <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Explorar archivos en otras apps"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anónimo"</string> - <string name="open_tree_button" msgid="19992834788135845">"Permitir el acceso a \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"¿Permitir el acceso a \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" en \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Le permitirá a \"<xliff:g id="APPNAME">%1$s</xliff:g>\" tener acceso completo a todos los archivos almacenados actualmente en esta ubicación y a cualquier contenido que se almacene aquí en el futuro."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Usar esta carpeta"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"¿Deseas brindarle a <xliff:g id="APPNAME">%1$s</xliff:g> acceso a los archivos almacenados en <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Se le brindará a <xliff:g id="APPNAME">%1$s</xliff:g> acceso al contenido actual y futuro almacenado en <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Buscar en este teléfono"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Borrar historial de búsqueda de <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-es/inspector_strings.xml b/res/values-es/inspector_strings.xml index fcd3d882f..2e12fdc09 100644 --- a/res/values-es/inspector_strings.xml +++ b/res/values-es/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Compositor"</string> <string name="metadata_album" msgid="1661699531214720236">"Álbum"</string> <string name="metadata_address" msgid="1849921023707744640">"Ubicación"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Stream types"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Tamaño del archivo RAW (bytes)"</string> </resources> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 1a12e8c0d..56d3526c5 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Compartir"</string> <string name="menu_delete" msgid="1022254131543256626">"Eliminar"</string> <string name="menu_select_all" msgid="7600576812185570403">"Seleccionar todo"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Desmarcar todo"</string> <string name="menu_select" msgid="1366061076507142387">"Seleccionar"</string> <string name="menu_sort" msgid="3362419226163725275">"Ordenar por..."</string> <string name="menu_copy" msgid="7404820171352314754">"Copiar en…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Volver a intentarlo"</string> <string name="button_clear" msgid="5412304437764369441">"Borrar"</string> <string name="button_show_provider" msgid="6905880493806292753">"Mostrar en el proveedor"</string> + <string name="button_back" msgid="1888621708934742182">"Atrás"</string> <string name="not_sorted" msgid="7813496644889115530">"Sin ordenar"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nombre"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Resumen"</string> @@ -87,7 +89,7 @@ <string name="create_error" msgid="3092144450044861994">"No se ha podido crear la carpeta"</string> <string name="query_error" msgid="6625421453613879336">"No se puede cargar contenido en este momento"</string> <string name="root_recent" msgid="1080156975424341623">"Reciente"</string> - <string name="root_available_bytes" msgid="8269870862691408864">"<xliff:g id="SIZE">%1$s</xliff:g> libre"</string> + <string name="root_available_bytes" msgid="8269870862691408864">"<xliff:g id="SIZE">%1$s</xliff:g> de espacio libre"</string> <string name="root_type_service" msgid="6521366147466512289">"Servicios almacenamiento"</string> <string name="root_type_shortcut" msgid="6059343175525442279">"Accesos directos"</string> <string name="root_type_device" msgid="1713604128005476585">"Dispositivos"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"No se puede abrir el archivo"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"No se pueden abrir los elementos archivados"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Error al eliminar algunos documentos"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"No se pueden compartir más de <xliff:g id="COUNT">%1$d</xliff:g> archivos"</string> <string name="share_via" msgid="8725082736005677161">"Compartir a través de"</string> <string name="copy_notification_title" msgid="52256435625098456">"Copiando archivos"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Comprimiendo archivos"</string> @@ -225,26 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Archivos recientes del teléfono"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Archivos del teléfono"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> en el teléfono"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Archivos de Descargas"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Archivos de <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Archivos que hay en <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Archivos de <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Archivos de <xliff:g id="LABEL">%1$s</xliff:g> (<xliff:g id="SUMMARY">%2$s</xliff:g>)"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Imágenes recientes del teléfono"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Imágenes del teléfono"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Imágenes de Descargas"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Imágenes del <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Imágenes que hay en <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Imágenes de <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Imágenes de <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Imágenes"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Vídeos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documentos"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Archivos grandes"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Esta semana"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Nombre de la carpeta"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nombre nuevo"</string> <string name="preview_file" msgid="4056622696305432343">"Obtener una vista previa del archivo <xliff:g id="FILENAME">%1$s</xliff:g>"</string> - <string name="apps_row_title" msgid="3340490016663092925">"Consultar archivos en otras aplicaciones"</string> + <string name="apps_row_title" msgid="3340490016663092925">"Ver archivos en otras aplicaciones"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anónimo"</string> - <string name="open_tree_button" msgid="19992834788135845">"Permitir acceso a \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"De este modo, la aplicación \"<xliff:g id="APPNAME">%1$s</xliff:g>\" podrá acceder a todos los archivos almacenados en esta ubicación y al contenido que se almacene en ella en el futuro."</string> - <string name="search_bar_hint" msgid="4517366509897977321">"Buscar este teléfono"</string> + <string name="open_tree_button" msgid="6402871398424497776">"Utilizar esta carpeta"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"¿Quieres permitir que <xliff:g id="APPNAME">%1$s</xliff:g> acceda a los archivos que hay en <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Esto permitirá que <xliff:g id="APPNAME">%1$s</xliff:g> acceda al contenido almacenado en <xliff:g id="DIRECTORY">%2$s</xliff:g> de ahora en adelante."</string> + <string name="search_bar_hint" msgid="4517366509897977321">"Buscar en este teléfono"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Eliminar el historial de búsqueda de <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-et/inspector_strings.xml b/res/values-et/inspector_strings.xml index 010cf9afa..33e638915 100644 --- a/res/values-et/inspector_strings.xml +++ b/res/values-et/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Helilooja"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Asukoht"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Voo tüübid"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Toorandmete maht (baitides)"</string> </resources> diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml index 825d9e7f7..093980729 100644 --- a/res/values-et/strings.xml +++ b/res/values-et/strings.xml @@ -22,7 +22,7 @@ <skip /> <!-- no translation found for launcher_label (799410258349837668) --> <skip /> - <string name="title_open" msgid="3165686459158020921">"Ava asukohas"</string> + <string name="title_open" msgid="3165686459158020921">"Ava asukohast"</string> <string name="title_save" msgid="4384490653102710025">"Salvesta asukohta"</string> <string name="menu_create_dir" msgid="2413624798689091042">"Uus kaust"</string> <string name="menu_grid" msgid="1453636521731880680">"Ruudustikvaade"</string> @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Jaga"</string> <string name="menu_delete" msgid="1022254131543256626">"Kustuta"</string> <string name="menu_select_all" msgid="7600576812185570403">"Vali kõik"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Tühista kõik"</string> <string name="menu_select" msgid="1366061076507142387">"Vali"</string> <string name="menu_sort" msgid="3362419226163725275">"Sortimisalus …"</string> <string name="menu_copy" msgid="7404820171352314754">"Kopeeri asukohta …"</string> @@ -43,7 +44,7 @@ <string name="menu_compress" msgid="37539111904724188">"Tihenda"</string> <string name="menu_extract" msgid="8171946945982532262">"Ekstrakti …"</string> <string name="menu_rename" msgid="1883113442688817554">"Nimeta ümber"</string> - <string name="menu_inspect" msgid="7279855349299446224">"Teabe hankimine"</string> + <string name="menu_inspect" msgid="7279855349299446224">"Hangi teavet"</string> <string name="menu_view_in_owner" msgid="7228948660557554770">"Kuva allikas <xliff:g id="SOURCE">%1$s</xliff:g>"</string> <string name="menu_new_window" msgid="2947837751796109126">"Uus aken"</string> <string name="menu_cut_to_clipboard" msgid="2878752142015026229">"Lõika"</string> @@ -61,18 +62,19 @@ <string name="button_retry" msgid="4011461781916631389">"Proovi uuesti"</string> <string name="button_clear" msgid="5412304437764369441">"Kustuta"</string> <string name="button_show_provider" msgid="6905880493806292753">"Kuva teenuses"</string> + <string name="button_back" msgid="1888621708934742182">"Tagasi"</string> <string name="not_sorted" msgid="7813496644889115530">"Sortimata"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nimi"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Kokkuvõte"</string> <string name="sort_dimension_file_type" msgid="5779709622922085381">"Tüüp"</string> <string name="sort_dimension_size" msgid="2190547351159472884">"Suurus"</string> <string name="sort_dimension_date" msgid="4231005651895254033">"Muudetud"</string> - <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Faili nimi (A–Z)"</string> - <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Tüüp (A–Z)"</string> + <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Faili nimi (A–Y)"</string> + <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Tüüp (A–Y)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Suurus (väikseimad enne)"</string> <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Muudetud (vanimad enne)"</string> - <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Faili nimi (Z–A)"</string> - <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Tüüp (Z–A)"</string> + <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Faili nimi (Y–A)"</string> + <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Tüüp (Y–A)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Suurus (suurimad enne)"</string> <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Muudetud (uusimad enne)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Sortimisalus:"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Faili ei saa avada"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Arhiivides olevaid faile ei saa avada"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Mõnda dokumenti ei saa kustutada"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Jagada ei saa üle <xliff:g id="COUNT">%1$d</xliff:g> faili"</string> <string name="share_via" msgid="8725082736005677161">"Jaga rakendusega"</string> <string name="copy_notification_title" msgid="52256435625098456">"Failide kopeerimine"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Failide tihendamine"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Hiljutised failid telefonis"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Telefonis olevad failid"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> telefonis"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Failid kaustas Allalaadimised"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Seadmes <xliff:g id="DEVICE">%1$s</xliff:g> olevad failid"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Kausta <xliff:g id="FOLDER">%1$s</xliff:g> failid"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Failid teenusest <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Failid teenusest <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Telefonis olevad hiljutised pildid"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Telefonis olevad pildid"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Pildid kaustas Allalaadimised"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Pildid seadmes <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Kausta <xliff:g id="FOLDER">%1$s</xliff:g> pildid"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Pildid asukohast <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Pildid asukohast <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Pildid"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Heli"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videod"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumendid"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Suured failid"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"See nädal"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Kausta nimi"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Uus nimi"</string> <string name="preview_file" msgid="4056622696305432343">"Faili <xliff:g id="FILENAME">%1$s</xliff:g> eelvaade"</string> <string name="apps_row_title" msgid="3340490016663092925">"Failide sirvimine muudes rakendustes"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonüümne"</string> - <string name="open_tree_button" msgid="19992834788135845">"Luba juurdepääs kataloogile „<xliff:g id="DIRECTORY">%1$s</xliff:g>”"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Kas lubada juurdepääs kataloogile „<xliff:g id="DIRECTORY">%1$s</xliff:g>” juurkataloogis „<xliff:g id="ROOT">%2$s</xliff:g>”?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"See annab rakendusele „<xliff:g id="APPNAME">%1$s</xliff:g>” täieliku juurdepääsu kõigile failidele, mis praegu sellesse asukohta on salvestatud (ja muule tulevikus siia salvestatavale sisule)."</string> - <string name="search_bar_hint" msgid="4517366509897977321">"Otsi seda telefoni"</string> + <string name="open_tree_button" msgid="6402871398424497776">"Kasuta seda kausta"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Kas lubada rakendusel <xliff:g id="APPNAME">%1$s</xliff:g> juurde pääseda kataloogi <xliff:g id="DIRECTORY">%2$s</xliff:g> failidele?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"See võimaldab rakendusel <xliff:g id="APPNAME">%1$s</xliff:g> juurde pääseda praegusele ja tulevasele sisule, mis on salvestatud kataloogis <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> + <string name="search_bar_hint" msgid="4517366509897977321">"Otsige sellest telefonist"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Otsinguajaloo kustutamine <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-eu/inspector_strings.xml b/res/values-eu/inspector_strings.xml index 9f51a8c68..ead4789ab 100644 --- a/res/values-eu/inspector_strings.xml +++ b/res/values-eu/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Konpositorea"</string> <string name="metadata_album" msgid="1661699531214720236">"Albuma"</string> <string name="metadata_address" msgid="1849921023707744640">"Kokapena"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Jario motak"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Prozesatu gabeko tamaina (byte-tan)"</string> </resources> diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index 60201dea9..ea379449e 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -30,12 +30,13 @@ <string name="menu_search" msgid="1876699106790719849">"Bilatu"</string> <string name="menu_settings" msgid="6520844520117939047">"Memoriaren ezarpenak"</string> <string name="menu_open" msgid="9092138100049759315">"Ireki"</string> - <string name="menu_open_with" msgid="5507647065467520229">"Ireki honekin:"</string> + <string name="menu_open_with" msgid="5507647065467520229">"Ireki honekin"</string> <string name="menu_open_in_new_window" msgid="6686563636123311276">"Ireki beste leiho batean"</string> <string name="menu_save" msgid="5195367497138965168">"Gorde"</string> <string name="menu_share" msgid="4307140947108068356">"Partekatu"</string> <string name="menu_delete" msgid="1022254131543256626">"Ezabatu"</string> <string name="menu_select_all" msgid="7600576812185570403">"Hautatu guztiak"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Desautatu guztiak"</string> <string name="menu_select" msgid="1366061076507142387">"Hautatu"</string> <string name="menu_sort" msgid="3362419226163725275">"Ordenatzeko irizpidea…"</string> <string name="menu_copy" msgid="7404820171352314754">"Kopiatu hemen…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Saiatu berriro"</string> <string name="button_clear" msgid="5412304437764369441">"Garbitu"</string> <string name="button_show_provider" msgid="6905880493806292753">"Erakutsi hornitzailean"</string> + <string name="button_back" msgid="1888621708934742182">"Atzera"</string> <string name="not_sorted" msgid="7813496644889115530">"Ordenatu gabe"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Izena"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Laburpena"</string> @@ -87,7 +89,7 @@ <string name="create_error" msgid="3092144450044861994">"Ezin izan da sortu karpeta"</string> <string name="query_error" msgid="6625421453613879336">"Une honetan ezin da kargatu edukia"</string> <string name="root_recent" msgid="1080156975424341623">"Azkenak"</string> - <string name="root_available_bytes" msgid="8269870862691408864">"<xliff:g id="SIZE">%1$s</xliff:g> doan"</string> + <string name="root_available_bytes" msgid="8269870862691408864">"<xliff:g id="SIZE">%1$s</xliff:g> erabilgarri"</string> <string name="root_type_service" msgid="6521366147466512289">"Biltegiratze-zerbitzuak"</string> <string name="root_type_shortcut" msgid="6059343175525442279">"Lasterbideak"</string> <string name="root_type_device" msgid="1713604128005476585">"Gailuak"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Ezin da ireki fitxategia"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Ezin dira ireki artxiboetako fitxategiak"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Ezin dira ezabatu dokumentu batzuk"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Ezin dira partekatu <xliff:g id="COUNT">%1$d</xliff:g> fitxategi baino gehiago"</string> <string name="share_via" msgid="8725082736005677161">"Partekatu honekin:"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopiatu fitxategiak"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Fitxategiak konprimatzen"</string> @@ -184,7 +187,7 @@ <string name="notification_copy_files_converted_title" msgid="6916768494891833365">"Artxibo batzuk bihurtu dira"</string> <string name="open_external_dialog_request" msgid="8173558471322861268">"<xliff:g id="APPNAME"><b>^1</b></xliff:g> aplikazioari <xliff:g id="STORAGE"><i>^3</i></xliff:g> unitateko <xliff:g id="DIRECTORY"><i>^2</i></xliff:g> direktoriorako sarbidea eman nahi diozu?"</string> <string name="open_external_dialog_request_primary_volume" msgid="2240992164087948176">"<xliff:g id="APPNAME"><b>^1</b></xliff:g> aplikazioari <xliff:g id="DIRECTORY"><i>^2</i></xliff:g> direktoriorako sarbidea eman nahi diozu?"</string> - <string name="open_external_dialog_root_request" msgid="6776729293982633">"<xliff:g id="APPNAME"><b>^1</b></xliff:g> aplikazioari zure datuak atzitzea baimendu nahi diozu, besteak beste, <xliff:g id="STORAGE"><i>^2</i></xliff:g> biltegian dituzun argazkiak eta bideoak?"</string> + <string name="open_external_dialog_root_request" msgid="6776729293982633">"<xliff:g id="APPNAME"><b>^1</b></xliff:g> aplikazioari zure datuak atzitzeko baimena eman nahi diozu (besteak beste, <xliff:g id="STORAGE"><i>^2</i></xliff:g> biltegian dituzun argazkiak eta bideoak)?"</string> <string name="allow" msgid="1275746941353040309">"Baimendu"</string> <string name="deny" msgid="5127201668078153379">"Ukatu"</string> <plurals name="elements_selected" formatted="false" msgid="4448165978637163692"> @@ -202,8 +205,8 @@ <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> fitxategi ezabatu nahi duzu?</item> </plurals> <plurals name="delete_folders_confirmation_message" formatted="false" msgid="1028946402799686388"> - <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> karpeta eta beren eduki guztia ezabatu nahi duzu?</item> - <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> karpeta eta bere eduki guztia ezabatu nahi duzu?</item> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> karpeta eta bertako eduki guztia ezabatu nahi duzu?</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> karpeta eta bertako eduki guztia ezabatu nahi duzu?</item> </plurals> <plurals name="delete_items_confirmation_message" formatted="false" msgid="7285090426511028179"> <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> elementu ezabatu nahi dituzu?</item> @@ -225,26 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Telefonoko azken fitxategiak"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Telefonoko fitxategiak"</string> <string name="root_info_header_media" msgid="2774453755906260852">"Telefonoko <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Deskargak ataleko fitxategiak"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> gailuko fitxategiak"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> karpetako fitxategiak"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> zerbitzuko fitxategiak"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> zerbitzuko fitxategiak / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Telefonoko azken irudiak"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Telefonoko irudiak"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Deskargak ataleko irudiak"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> gailuko irudiak"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> karpetako irudiak"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g> zerbitzuko irudiak"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g> kokapeneko irudiak"</string> <string name="chip_title_images" msgid="7838299046109841015">"Irudiak"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audioa"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Bideoak"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumentuak"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Fitxategi handiak"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Aste honetakoak"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Karpetaren izena"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Izen berria"</string> <string name="preview_file" msgid="4056622696305432343">"Aurreikusi <xliff:g id="FILENAME">%1$s</xliff:g> fitxategia"</string> <string name="apps_row_title" msgid="3340490016663092925">"Arakatu beste aplikazio batzuetako fitxategiak"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonimoa"</string> - <string name="open_tree_button" msgid="19992834788135845">"Eman \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" direktorioan sartzeko baimena"</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Hemen biltegiratuta dauden fitxategi guztietan sartzeko baimen osoa emango dio \"<xliff:g id="APPNAME">%1$s</xliff:g>\" aplikazioari, baita etorkizunean biltegiratuko den edukirako ere."</string> - <string name="search_bar_hint" msgid="4517366509897977321">"Bilatu telefono hau"</string> + <string name="open_tree_button" msgid="6402871398424497776">"Erabili karpeta hau"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="DIRECTORY">%2$s</xliff:g> direktorioko fitxategiak atzitzeko baimena eman nahi diozu <xliff:g id="APPNAME">%1$s</xliff:g> aplikazioari?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"<xliff:g id="APPNAME">%1$s</xliff:g> aplikazioak <xliff:g id="DIRECTORY">%2$s</xliff:g> direktorioan gordetako uneko eta etorkizuneko edukia atzitu ahalko du."</string> + <string name="search_bar_hint" msgid="4517366509897977321">"Bilatu telefono honetan"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Ezabatu bilaketa-historia (<xliff:g id="TEXT">%1$s</xliff:g>)"</string> </resources> diff --git a/res/values-fa/inspector_strings.xml b/res/values-fa/inspector_strings.xml index e6daea3de..d1608b8d0 100644 --- a/res/values-fa/inspector_strings.xml +++ b/res/values-fa/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"آهنگساز"</string> <string name="metadata_album" msgid="1661699531214720236">"آلبوم"</string> <string name="metadata_address" msgid="1849921023707744640">"مکان"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"انواع پخش جریانی"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"حجم فایل RAW (بایت)"</string> </resources> diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 67f5f84f3..03abbee10 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"اشتراکگذاری"</string> <string name="menu_delete" msgid="1022254131543256626">"حذف"</string> <string name="menu_select_all" msgid="7600576812185570403">"انتخاب همه"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"لغوانتخاب همه"</string> <string name="menu_select" msgid="1366061076507142387">"انتخاب"</string> <string name="menu_sort" msgid="3362419226163725275">"مرتب کردن براساس..."</string> <string name="menu_copy" msgid="7404820171352314754">"کپی در..."</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"دوباره امتحان کنید"</string> <string name="button_clear" msgid="5412304437764369441">"پاک کردن"</string> <string name="button_show_provider" msgid="6905880493806292753">"نمایش در برنامه ارائهدهنده"</string> + <string name="button_back" msgid="1888621708934742182">"برگشت"</string> <string name="not_sorted" msgid="7813496644889115530">"مرتبسازی نشده است"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"نام"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"خلاصه"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"فایل باز نمیشود"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"فایلهای موجود در بایگانیها باز نمیشوند"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"برخی از اسناد حذف نمیشوند"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"نمیتوان بیش از <xliff:g id="COUNT">%1$d</xliff:g> فایل همرسانی کرد"</string> <string name="share_via" msgid="8725082736005677161">"اشتراکگذاری از طریق"</string> <string name="copy_notification_title" msgid="52256435625098456">"در حال کپی کردن فایلها"</string> <string name="compress_notification_title" msgid="6830195148113751021">"درحال فشردهسازی فایلها"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"فایلهای اخیر موجود در تلفن"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"فایلهای موجود در تلفن"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> در تلفن"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"فایلهای موجود در بارگیریها"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"فایلهای موجود در <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"فایلهای موجود در <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"فایلهای <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"فایلهای <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> - <string name="root_info_header_image_recent" msgid="6252335619444758201">"تصاویر اخیر موجود در تلفن"</string> + <string name="root_info_header_image_recent" msgid="6252335619444758201">"تصاویر اخیر در تلفن"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"تصاویر موجود در تلفن"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"تصاویر موجود در بارگیریها"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"تصاویر موجود در <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"تصاویر موجود در <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"تصاویری از <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"تصاویری از <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"تصاویر"</string> <string name="chip_title_audio" msgid="1032801828748235436">"صدا"</string> <string name="chip_title_videos" msgid="7011260091979776447">"ویدیوها"</string> <string name="chip_title_documents" msgid="7432457563000753983">"اسناد"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"فایلهای بزرگ"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"این هفته"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"نام پوشه"</string> <string name="input_hint_rename" msgid="8390711744270994452">"نام جدید"</string> <string name="preview_file" msgid="4056622696305432343">"پیشنمایش فایل <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"مرور فایلها در سایر برنامهها"</string> <string name="anonymous_application" msgid="7633027057951625862">"ناشناس"</string> - <string name="open_tree_button" msgid="19992834788135845">"اجازه دسترسی به «<xliff:g id="DIRECTORY">%1$s</xliff:g>»"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"اجازه دسترسی به «<xliff:g id="DIRECTORY">%1$s</xliff:g>» در «<xliff:g id="ROOT">%2$s</xliff:g>» داده شود؟"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"این کار به «<xliff:g id="APPNAME">%1$s</xliff:g>» اجازه میدهد بهطور کامل به تمام فایلهایی که درحالحاضر در این مکان ذخیره شده است و هر محتوایی که در آینده در اینجا ذخیره میشود دسترسی داشته باشد."</string> + <string name="open_tree_button" msgid="6402871398424497776">"استفاده از این پوشه"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"به <xliff:g id="APPNAME">%1$s</xliff:g> اجازه میدهید به فایلهای موجود در <xliff:g id="DIRECTORY">%2$s</xliff:g> دسترسی داشته باشد؟"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"این کار به <xliff:g id="APPNAME">%1$s</xliff:g> امکان میدهد به محتوای کنونی و آتی ذخیرهشده در <xliff:g id="DIRECTORY">%2$s</xliff:g> دسترسی داشته باشد."</string> <string name="search_bar_hint" msgid="4517366509897977321">"جستجوی این تلفن"</string> + <string name="delete_search_history" msgid="2202015025607694515">"حذف سابقه جستجوی <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-fi/inspector_strings.xml b/res/values-fi/inspector_strings.xml index 1e18204b2..72b065725 100644 --- a/res/values-fi/inspector_strings.xml +++ b/res/values-fi/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Säveltäjä"</string> <string name="metadata_album" msgid="1661699531214720236">"Albumi"</string> <string name="metadata_address" msgid="1849921023707744640">"Sijainti"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Striimaustyypit"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Raaka koko (tavua)"</string> </resources> diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index 3ae98c291..0f98a362c 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Jaa"</string> <string name="menu_delete" msgid="1022254131543256626">"Poista"</string> <string name="menu_select_all" msgid="7600576812185570403">"Valitse kaikki"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Poista valinta kaikista"</string> <string name="menu_select" msgid="1366061076507142387">"Valitse"</string> <string name="menu_sort" msgid="3362419226163725275">"Lajitteluperuste…"</string> <string name="menu_copy" msgid="7404820171352314754">"Kopioi kohteeseen…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Yritä uudelleen"</string> <string name="button_clear" msgid="5412304437764369441">"Tyhjennä"</string> <string name="button_show_provider" msgid="6905880493806292753">"Näytä palveluntarjoajan sovelluksessa"</string> + <string name="button_back" msgid="1888621708934742182">"Takaisin"</string> <string name="not_sorted" msgid="7813496644889115530">"Ei lajittelua"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nimi"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Yhteenveto"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Tiedoston avaaminen epäonnistui."</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Arkistoissa olevia tiedostoja ei voi avata."</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Joidenkin dokumenttien poistaminen epäonnistui."</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Voit jakaa enintään <xliff:g id="COUNT">%1$d</xliff:g> tiedostoa"</string> <string name="share_via" msgid="8725082736005677161">"Jaa sovelluksessa"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopioidaan tiedostoja"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Pakataan tiedostoja"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Puhelimen viimeaikaiset tiedostot"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Tiedostot puhelimessa"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> puhelimessa"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Lataukset-kansion tiedostot"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Tiedostot: <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Tiedostot: <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Tiedostot: <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Tiedostot: <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Puhelimen viimeaikaiset kuvat"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Puhelimen kuvat"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Lataukset-kansion kuvat"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Kuvat: <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Kuvat: <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Kuvat: <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Kuvat: <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Kuvat"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Ääni"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videot"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumentit"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Suuret tiedostot"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Tällä viikolla"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Kansion nimi"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Uusi nimi"</string> <string name="preview_file" msgid="4056622696305432343">"Esikatsele tiedostoa <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Selaa tiedostoja muissa sovelluksissa"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonyymi"</string> - <string name="open_tree_button" msgid="19992834788135845">"Myönnä käyttöoikeus: <xliff:g id="DIRECTORY">%1$s</xliff:g>"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Haluatko, että <xliff:g id="DIRECTORY">%1$s</xliff:g> saa käyttöoikeuden (<xliff:g id="ROOT">%2$s</xliff:g>)?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Sen avulla <xliff:g id="APPNAME">%1$s</xliff:g> saa täydet käyttöoikeudet kaikkiin tiedostoihin, jotka on tällä hetkellä tallennettu tähän sijaintiin, sekä tänne jatkossa tallennettavaan sisältöön."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Käytä tätä kansiota"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Saako <xliff:g id="APPNAME">%1$s</xliff:g> pääsyn tiedostoihin (<xliff:g id="DIRECTORY">%2$s</xliff:g>)?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"<xliff:g id="APPNAME">%1$s</xliff:g> saa pääsyn nykyiseen ja tulevaan sisältöön (<xliff:g id="DIRECTORY">%2$s</xliff:g>)."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Hae tältä puhelimelta"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Poista hakuhistoria <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-fr-rCA/inspector_strings.xml b/res/values-fr-rCA/inspector_strings.xml index d4de8415d..fc49cbe37 100644 --- a/res/values-fr-rCA/inspector_strings.xml +++ b/res/values-fr-rCA/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Compositeur"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Localisation"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Types de flux"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Taille brute (en octets)"</string> </resources> diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index e1b2431f5..f91414bec 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Partager"</string> <string name="menu_delete" msgid="1022254131543256626">"Supprimer"</string> <string name="menu_select_all" msgid="7600576812185570403">"Tout sélectionner"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Tout désélectionner"</string> <string name="menu_select" msgid="1366061076507142387">"Sélectionner"</string> <string name="menu_sort" msgid="3362419226163725275">"Trier par…"</string> <string name="menu_copy" msgid="7404820171352314754">"Copier dans…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Réessayer"</string> <string name="button_clear" msgid="5412304437764369441">"Effacer"</string> <string name="button_show_provider" msgid="6905880493806292753">"Afficher dans l\'application du fournisseur"</string> + <string name="button_back" msgid="1888621708934742182">"Retour"</string> <string name="not_sorted" msgid="7813496644889115530">"Non trié"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nom"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Résumé"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Impossible d\'ouvrir le fichier"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Impossible d\'ouvrir des fichiers dans les archives"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Impossible de supprimer certains documents"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Impossible de partager plus de <xliff:g id="COUNT">%1$d</xliff:g> fichiers"</string> <string name="share_via" msgid="8725082736005677161">"Partager via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Copie de fichiers…"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Compression des fichiers"</string> @@ -225,26 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Fichiers récents sur le téléphone"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Fichiers sur le téléphone"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> sur le téléphone"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Fichiers dans Téléchargements"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Fichiers sur <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Fichiers dans <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Fichiers de <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Fichiers de <xliff:g id="LABEL">%1$s</xliff:g> (<xliff:g id="SUMMARY">%2$s</xliff:g>)"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Images récentes sur le téléphone"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Images sur le téléphone"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Images dans Téléchargements"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Images sur l\'appareil <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Images dans <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Images de <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Images de <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Images"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Vidéos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documents"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Fichiers volumineux"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Cette semaine"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Nom du dossier"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nouveau nom"</string> <string name="preview_file" msgid="4056622696305432343">"Afficher un aperçu du fichier <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Parcourir les fichiers dans d\'autres applications"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonyme"</string> - <string name="open_tree_button" msgid="19992834788135845">"Autoriser l\'accès à « <xliff:g id="DIRECTORY">%1$s</xliff:g> »"</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Cela permettra à « <xliff:g id="APPNAME">%1$s</xliff:g> » d\'accéder à tous les fichiers actuellement stockés sous ce lieu et à tout contenu stocké ici à l\'avenir."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Utiliser ce dossier"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Autoriser <xliff:g id="APPNAME">%1$s</xliff:g> à accéder aux fichiers dans <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Cela permettra à <xliff:g id="APPNAME">%1$s</xliff:g> d\'accéder au contenu actuel et futur stocké dans <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Rechercher sur ce téléphone"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Supprimer l\'historique de recherche <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-fr/inspector_strings.xml b/res/values-fr/inspector_strings.xml index b2fa481d8..df55f4b91 100644 --- a/res/values-fr/inspector_strings.xml +++ b/res/values-fr/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Compositeur"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Localisation"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Types de flux"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Taille brute (octets)"</string> </resources> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index fc95c55a4..53c585230 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -36,8 +36,9 @@ <string name="menu_share" msgid="4307140947108068356">"Partager"</string> <string name="menu_delete" msgid="1022254131543256626">"Supprimer"</string> <string name="menu_select_all" msgid="7600576812185570403">"Tout sélectionner"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Tout désélectionner"</string> <string name="menu_select" msgid="1366061076507142387">"Sélectionner"</string> - <string name="menu_sort" msgid="3362419226163725275">"Trier par"</string> + <string name="menu_sort" msgid="3362419226163725275">"Trier par..."</string> <string name="menu_copy" msgid="7404820171352314754">"Copier vers…"</string> <string name="menu_move" msgid="2310760789561129882">"Déplacer vers…"</string> <string name="menu_compress" msgid="37539111904724188">"Compresser"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Réessayer"</string> <string name="button_clear" msgid="5412304437764369441">"Effacer"</string> <string name="button_show_provider" msgid="6905880493806292753">"Afficher dans le fournisseur"</string> + <string name="button_back" msgid="1888621708934742182">"Retour"</string> <string name="not_sorted" msgid="7813496644889115530">"Non triés"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nom"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Résumé"</string> @@ -69,12 +71,12 @@ <string name="sort_dimension_date" msgid="4231005651895254033">"Dernière modif."</string> <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Nom de fichier (de A à Z)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Type (de A à Z)"</string> - <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Taille (plus petits d\'abord)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Modifiés (plus anciens d\'abord)"</string> + <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Taille (moins volumineux d\'abord)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Date de modification (plus anciens d\'abord)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Nom de fichier (de Z à A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Type (de Z à A)"</string> - <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Taille (plus grands d\'abord)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Modifiés (plus récents d\'abord)"</string> + <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Taille (plus volumineux d\'abord)"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Date de modification (plus récents d\'abord)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Trier par"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Triés par <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Nombre d\'éléments"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Impossible d\'ouvrir le fichier"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Impossible d\'ouvrir un fichier dans une archive"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Impossible de supprimer certains documents"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Impossible de partager plus de <xliff:g id="COUNT">%1$d</xliff:g> fichiers"</string> <string name="share_via" msgid="8725082736005677161">"Partager via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Copie de fichiers…"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Compression de fichiers"</string> @@ -174,8 +177,8 @@ <item quantity="other">Ces fichiers ont été convertis dans un autre format : <xliff:g id="LIST_1">%1$s</xliff:g></item> </plurals> <plurals name="clipboard_files_clipped" formatted="false" msgid="4847061634862926902"> - <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> élément a été copié dans le Presse-papiers.</item> - <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> éléments ont été copiés dans le Presse-papiers.</item> + <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> élément a été copié dans le presse-papiers.</item> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> éléments ont été copiés dans le presse-papiers.</item> </plurals> <string name="file_operation_rejected" msgid="4301554203329008794">"Opération relative au fichier non acceptée."</string> <string name="file_operation_error" msgid="2234357335716533795">"L\'opération relative au fichier a échoué."</string> @@ -225,26 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Fichiers récents sur le téléphone"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Fichiers sur le téléphone"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> sur le téléphone"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Fichiers dans le dossier \"Téléchargements\""</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Fichiers sur <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Fichiers dans <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Fichiers provenant de <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Fichiers provenant de <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Images récentes sur le téléphone"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Images sur le téléphone"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Images dans le dossier \"Téléchargements\""</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Images sur <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Images dans <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Images sur <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Images sur <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Images"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Vidéos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documents"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Fichiers volumineux"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Cette semaine"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Nom du dossier"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nouveau nom"</string> <string name="preview_file" msgid="4056622696305432343">"Prévisualiser le fichier <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Parcourir des fichiers dans d\'autres applications"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonyme"</string> - <string name="open_tree_button" msgid="19992834788135845">"Autoriser l\'accès à \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"L\'application <xliff:g id="APPNAME">%1$s</xliff:g> bénéficiera alors d\'un accès complet à l\'ensemble des fichiers actuellement stockés à cet emplacement et à l\'ensemble du contenu qui y sera stocké à l\'avenir."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Utiliser ce dossier"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Autoriser <xliff:g id="APPNAME">%1$s</xliff:g> à accéder aux fichiers dans <xliff:g id="DIRECTORY">%2$s</xliff:g> ?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"<xliff:g id="APPNAME">%1$s</xliff:g> pourra ainsi accéder aux contenus qui sont ou seront enregistrés dans <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Rechercher sur ce téléphone"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Supprimer l\'historique des recherches <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-gl/inspector_strings.xml b/res/values-gl/inspector_strings.xml index a33b561fb..c51a063b7 100644 --- a/res/values-gl/inspector_strings.xml +++ b/res/values-gl/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Compositor"</string> <string name="metadata_album" msgid="1661699531214720236">"Álbum"</string> <string name="metadata_address" msgid="1849921023707744640">"Localización"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Tipos de emisión"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Tamaño sen procesar (bytes)"</string> </resources> diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index 45f290351..66f0babb5 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Compartir"</string> <string name="menu_delete" msgid="1022254131543256626">"Eliminar"</string> <string name="menu_select_all" msgid="7600576812185570403">"Seleccionar todo"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Anular toda a selección"</string> <string name="menu_select" msgid="1366061076507142387">"Seleccionar"</string> <string name="menu_sort" msgid="3362419226163725275">"Ordenar por…"</string> <string name="menu_copy" msgid="7404820171352314754">"Copiar en…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Tentar de novo"</string> <string name="button_clear" msgid="5412304437764369441">"Borrar"</string> <string name="button_show_provider" msgid="6905880493806292753">"Mostrar no provedor"</string> + <string name="button_back" msgid="1888621708934742182">"Volver"</string> <string name="not_sorted" msgid="7813496644889115530">"Sen ordenar"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nome"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Resumo"</string> @@ -92,11 +94,12 @@ <string name="root_type_shortcut" msgid="6059343175525442279">"Atallos"</string> <string name="root_type_device" msgid="1713604128005476585">"Dispositivos"</string> <string name="root_type_apps" msgid="8646073235029886342">"Máis aplicacións"</string> - <string name="empty" msgid="5300254272613103004">"Ningún elemento"</string> + <string name="empty" msgid="5300254272613103004">"Non hai elementos"</string> <string name="no_results" msgid="2371026325236359209">"Non hai coincidencias en %1$s"</string> <string name="toast_no_application" msgid="7555319548595113121">"Non se pode abrir o ficheiro"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Non se poden abrir ficheiros dentro de arquivos"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Non se poden eliminar algúns documentos"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Non se poden compartir máis de <xliff:g id="COUNT">%1$d</xliff:g> ficheiros"</string> <string name="share_via" msgid="8725082736005677161">"Compartir a través de"</string> <string name="copy_notification_title" msgid="52256435625098456">"Copiando ficheiros"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Comprimindo ficheiros"</string> @@ -202,7 +205,7 @@ <item quantity="one">Queres eliminar <xliff:g id="COUNT_0">%1$d</xliff:g> ficheiro?</item> </plurals> <plurals name="delete_folders_confirmation_message" formatted="false" msgid="1028946402799686388"> - <item quantity="other">Queres eliminar <xliff:g id="COUNT_1">%1$d</xliff:g> cartafoles e os seus contidos?</item> + <item quantity="other">Queres eliminar <xliff:g id="COUNT_1">%1$d</xliff:g> cartafoles e o seu contido?</item> <item quantity="one">Queres eliminar <xliff:g id="COUNT_0">%1$d</xliff:g> cartafol e o seu contido?</item> </plurals> <plurals name="delete_items_confirmation_message" formatted="false" msgid="7285090426511028179"> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Ficheiros recentes do teléfono"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Ficheiros do teléfono"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> no teléfono"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Ficheiros almacenados en Descargas"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Ficheiros do dispositivo <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Ficheiros en <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Ficheiros de <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Ficheiros de <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Imaxes recentes no teléfono"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Imaxes no teléfono"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Imaxes almacenadas en Descargas"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Imaxes en <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Imaxes en <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Imaxes de <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Imaxes de <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Imaxes"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Vídeos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documentos"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Ficheiros grandes"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Esta semana"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Nome do cartafol"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nome novo"</string> <string name="preview_file" msgid="4056622696305432343">"Vista previa do ficheiro <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Consultar ficheiros noutras aplicacións"</string> <string name="anonymous_application" msgid="7633027057951625862">"Aplicación anónima"</string> - <string name="open_tree_button" msgid="19992834788135845">"Permitir acceso a \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Queres permitir o acceso a \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" en \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Permitirá que \"<xliff:g id="APPNAME">%1$s</xliff:g>\" teña acceso completo a todos os ficheiros almacenados actualmente ou no futuro nesta localización."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Usar este cartafol"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Queres permitir que <xliff:g id="APPNAME">%1$s</xliff:g> acceda aos ficheiros almacenados en <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Así <xliff:g id="APPNAME">%1$s</xliff:g> pode acceder ao contido, actual e futuro, almacenado en <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Realiza buscas neste teléfono"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Elimina o historial de busca <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-gu/inspector_strings.xml b/res/values-gu/inspector_strings.xml index 97e0b8a8f..2184995bb 100644 --- a/res/values-gu/inspector_strings.xml +++ b/res/values-gu/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"સંગીતકાર"</string> <string name="metadata_album" msgid="1661699531214720236">"આલ્બમ"</string> <string name="metadata_address" msgid="1849921023707744640">"સ્થાન"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"સ્ટ્રીમના પ્રકારો"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Rawનું કદ (બાઇટ)"</string> </resources> diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml index c5ea19c13..a2924d537 100644 --- a/res/values-gu/strings.xml +++ b/res/values-gu/strings.xml @@ -28,7 +28,7 @@ <string name="menu_grid" msgid="1453636521731880680">"ગ્રિડ દૃશ્ય"</string> <string name="menu_list" msgid="6714267452146410402">"સૂચિ દૃશ્ય"</string> <string name="menu_search" msgid="1876699106790719849">"શોધો"</string> - <string name="menu_settings" msgid="6520844520117939047">"સ્ટોરેજ સેટિંગ્સ"</string> + <string name="menu_settings" msgid="6520844520117939047">"સ્ટોરેજ સેટિંગ"</string> <string name="menu_open" msgid="9092138100049759315">"ખોલો"</string> <string name="menu_open_with" msgid="5507647065467520229">"આની સાથે ખોલો"</string> <string name="menu_open_in_new_window" msgid="6686563636123311276">"નવી વિંડોમાં ખોલો"</string> @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"શેર કરો"</string> <string name="menu_delete" msgid="1022254131543256626">"કાઢી નાખો"</string> <string name="menu_select_all" msgid="7600576812185570403">"બધા પસંદ કરો"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"બધા નાપસંદ કરો"</string> <string name="menu_select" msgid="1366061076507142387">"પસંદ કરો"</string> <string name="menu_sort" msgid="3362419226163725275">"આ મુજબ સૉર્ટ કરો..."</string> <string name="menu_copy" msgid="7404820171352314754">"આના પર કૉપિ કરો…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"ફરી પ્રયાસ કરો"</string> <string name="button_clear" msgid="5412304437764369441">"સાફ કરો"</string> <string name="button_show_provider" msgid="6905880493806292753">"પ્રદાતા સેવામાં બતાવો"</string> + <string name="button_back" msgid="1888621708934742182">"પાછળ"</string> <string name="not_sorted" msgid="7813496644889115530">"સૉર્ટ કરેલ નથી"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"નામ"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"સારાંશ"</string> @@ -92,11 +94,12 @@ <string name="root_type_shortcut" msgid="6059343175525442279">"શૉર્ટકટ્સ"</string> <string name="root_type_device" msgid="1713604128005476585">"ઉપકરણો"</string> <string name="root_type_apps" msgid="8646073235029886342">"વધુ ઍપ્લિકેશનો"</string> - <string name="empty" msgid="5300254272613103004">"કોઈ આઇટમ્સ નથી"</string> + <string name="empty" msgid="5300254272613103004">"કોઈ આઇટમ નથી"</string> <string name="no_results" msgid="2371026325236359209">"%1$s માં કોઇ મેળ નથી"</string> <string name="toast_no_application" msgid="7555319548595113121">"ફાઇલ ખોલી શકતાં નથી"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"આર્કાઇવમાંની ફાઇલો ખોલી શકાતી નથી"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"કેટલાક દસ્તાવેજો કાઢી નાખવામાં અસમર્થ"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g>થી વધુ ફાઇલ શેર કરી શકાતી નથી"</string> <string name="share_via" msgid="8725082736005677161">"આના દ્વારા શેર કરો"</string> <string name="copy_notification_title" msgid="52256435625098456">"ફાઇલો કૉપિ કરી રહ્યાં છે"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ફાઇલોને સંકુચિત કરવી"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"ફોન પરની તાજેતરની ફાઇલો"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"ફોન પરની ફાઇલો"</string> <string name="root_info_header_media" msgid="2774453755906260852">"ફોન પર <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"ડાઉનલોડમાંની ફાઇલો"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> પરની ફાઇલો"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g>માંની ફાઇલો"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g>માંથી ફાઇલો"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>માંથી ફાઇલો"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"ફોન પરની તાજેતરની છબીઓ"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"ફોન પરની છબીઓ"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"ડાઉનલોડમાંની છબીઓ"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> પરની છબીઓ"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g>માંની છબીઓ"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g>ની છબીઓ"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>ની છબીઓ"</string> <string name="chip_title_images" msgid="7838299046109841015">"છબીઓ"</string> <string name="chip_title_audio" msgid="1032801828748235436">"ઑડિયો"</string> <string name="chip_title_videos" msgid="7011260091979776447">"વીડિયો"</string> <string name="chip_title_documents" msgid="7432457563000753983">"દસ્તાવેજો"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"મોટી ફાઇલો"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"આ અઠવાડિયે"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"ફોલ્ડરનું નામ"</string> <string name="input_hint_rename" msgid="8390711744270994452">"નવું નામ"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> ફાઇલને પ્રીવ્યૂ કરો"</string> <string name="apps_row_title" msgid="3340490016663092925">"અન્ય ઍપમાં ફાઇલો બ્રાઉઝ કરો"</string> <string name="anonymous_application" msgid="7633027057951625862">"અજ્ઞાત"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\"ને ઍક્સેસની મંજૂરી આપો"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\" પર \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\"ના ઍક્સેસને મંજૂરી આપીએ?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"આ \"<xliff:g id="APPNAME">%1$s</xliff:g>\"ને હાલ આ સ્થાન હેઠળ સ્ટોર કરેલી બધી ફાઇલો અને ભવિષ્યમાં અહીં સ્ટોર કરાતા કોઈપણ કન્ટેન્ટના સંપૂર્ણ ઍક્સેસની મંજૂરી આપશે."</string> + <string name="open_tree_button" msgid="6402871398424497776">"આ ફોલ્ડરનો ઉપયોગ કરો"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"શું <xliff:g id="APPNAME">%1$s</xliff:g>ને <xliff:g id="DIRECTORY">%2$s</xliff:g>માંની ફાઇલો ઍક્સેસ કરવાની મંજૂરી આપીએ?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"આનાથી <xliff:g id="APPNAME">%1$s</xliff:g> <xliff:g id="DIRECTORY">%2$s</xliff:g>માં સ્ટોર કરેલું હાલનું અને ભાવિ કન્ટેન્ટ ઍક્સેસ કરી શકશે."</string> <string name="search_bar_hint" msgid="4517366509897977321">"આ ફોન શોધો"</string> + <string name="delete_search_history" msgid="2202015025607694515">"શોધ ઇતિહાસ <xliff:g id="TEXT">%1$s</xliff:g> ડિલીટ કરો"</string> </resources> diff --git a/res/values-hi/inspector_strings.xml b/res/values-hi/inspector_strings.xml index e18a7924c..af771ac7b 100644 --- a/res/values-hi/inspector_strings.xml +++ b/res/values-hi/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"संगीतकार"</string> <string name="metadata_album" msgid="1661699531214720236">"एल्बम"</string> <string name="metadata_address" msgid="1849921023707744640">"जगह"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"प्रसारण के प्रकार"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"अपरिष्कृत आकार (बाइट)"</string> </resources> diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index 625a98ec4..279dbc529 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"शेयर करें"</string> <string name="menu_delete" msgid="1022254131543256626">"मिटाएं"</string> <string name="menu_select_all" msgid="7600576812185570403">"सभी चुनें"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"सभी से चुना हुआ हटाएं"</string> <string name="menu_select" msgid="1366061076507142387">"चुनें"</string> <string name="menu_sort" msgid="3362419226163725275">"इस क्रम में लगाएं..."</string> <string name="menu_copy" msgid="7404820171352314754">"इनकी कॉपी करें..."</string> @@ -60,7 +61,8 @@ <string name="button_dismiss" msgid="7235249361023803349">"खारिज करें"</string> <string name="button_retry" msgid="4011461781916631389">"फिर से कोशिश करें"</string> <string name="button_clear" msgid="5412304437764369441">"साफ़ करें"</string> - <string name="button_show_provider" msgid="6905880493806292753">"प्रदाता में दिखाएं"</string> + <string name="button_show_provider" msgid="6905880493806292753">"कंपनी में दिखाएं"</string> + <string name="button_back" msgid="1888621708934742182">"वापस जाएं"</string> <string name="not_sorted" msgid="7813496644889115530">"क्रमबद्ध नहीं हैं"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"नाम"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"सारांश"</string> @@ -91,12 +93,13 @@ <string name="root_type_service" msgid="6521366147466512289">"जगह सेवाएं"</string> <string name="root_type_shortcut" msgid="6059343175525442279">"शॉर्टकट"</string> <string name="root_type_device" msgid="1713604128005476585">"डिवाइस"</string> - <string name="root_type_apps" msgid="8646073235029886342">"अधिक ऐप्लिकेशन"</string> + <string name="root_type_apps" msgid="8646073235029886342">"ज़्यादा ऐप्लिकेशन"</string> <string name="empty" msgid="5300254272613103004">"कोई आइटम नहीं"</string> <string name="no_results" msgid="2371026325236359209">"%1$s में कोई मिलान नहीं"</string> <string name="toast_no_application" msgid="7555319548595113121">"फ़ाइल नहीं खोली जा सकती"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"संग्रह में मौजूद फ़ाइलें नहीं खोली जा सकतीं"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"कुछ दस्तावेज़ों को हटाने में असमर्थ"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g> से ज़्यादा फ़ाइलें शेयर नहीं की जा सकतीं"</string> <string name="share_via" msgid="8725082736005677161">"इसके ज़रिए शेयर करें"</string> <string name="copy_notification_title" msgid="52256435625098456">"फ़ाइलें कॉपी हो रही हैं"</string> <string name="compress_notification_title" msgid="6830195148113751021">"फ़ाइलें कंप्रेस करना"</string> @@ -124,7 +127,7 @@ <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="undo" msgid="2902438994196400565">"पूर्ववत करें"</string> + <string name="undo" msgid="2902438994196400565">"पहले जैसा करें"</string> <string name="copy_preparing" msgid="4759516490222449324">"तैयार किया जा रहा है..."</string> <string name="compress_preparing" msgid="7401605598969019696">"तैयार किया जा रहा है..."</string> <string name="extract_preparing" msgid="4796626960061745796">"तैयार किया जा रहा है..."</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"फ़ोन पर मौजूद हाल ही की फ़ाइलें"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"फ़ोन पर फ़ाइलें"</string> <string name="root_info_header_media" msgid="2774453755906260852">"फ़ोन पर <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"डाउनलोड फ़ोल्डर में मौजूद फ़ाइलें"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> पर फ़ाइलें"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> में फ़ाइलें"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> की फ़ाइलें"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> की फ़ाइलें"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"फ़ोन पर मौजूद हाल ही की इमेज"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"फ़ोन पर मौजूद इमेज"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"डाउनलोड फ़ोल्डर में मौजूद इमेज"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> पर मौजूद इमेज"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> में इमेज"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g> की इमेज"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> की इमेज"</string> <string name="chip_title_images" msgid="7838299046109841015">"इमेज"</string> <string name="chip_title_audio" msgid="1032801828748235436">"ऑडियो"</string> <string name="chip_title_videos" msgid="7011260091979776447">"वीडियो"</string> <string name="chip_title_documents" msgid="7432457563000753983">"दस्तावेज़"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"बड़ी फ़ाइलें"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"इस हफ़्ते"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"फ़ोल्डर का नाम"</string> <string name="input_hint_rename" msgid="8390711744270994452">"नया नाम"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> फ़ाइल की झलक देखें"</string> <string name="apps_row_title" msgid="3340490016663092925">"दूसरे ऐप्लिकेशन में फ़ाइलें ब्राउज़ करें"</string> <string name="anonymous_application" msgid="7633027057951625862">"अनाम"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" एक्सेस करने दें"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\" पर \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" का एक्सेस दें?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"यह \"<xliff:g id="APPNAME">%1$s</xliff:g>\" को इस जगह में इस समय सेव की गई सभी फ़ाइलों और आने वाले समय में यहां सेव की जाने वाली किसी भी सामग्री का पूरा एक्सेस करने देगा."</string> + <string name="open_tree_button" msgid="6402871398424497776">"यह फ़ोल्डर इस्तेमाल करें"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"क्या आप <xliff:g id="APPNAME">%1$s</xliff:g> को <xliff:g id="DIRECTORY">%2$s</xliff:g> में मौजूद फ़ाइलों का ऐक्सेस देना चाहते हैं?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"ऐसा करने से <xliff:g id="APPNAME">%1$s</xliff:g> को <xliff:g id="DIRECTORY">%2$s</xliff:g> में सेव और आने वाले समय में सेव होनी वाली सामग्री का ऐक्सेस मिल जाएगा."</string> <string name="search_bar_hint" msgid="4517366509897977321">"यह फ़ोन खोजें"</string> + <string name="delete_search_history" msgid="2202015025607694515">"खोज का इतिहास मिटाएं <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-hr/inspector_strings.xml b/res/values-hr/inspector_strings.xml index 3101ae165..cc49a552f 100644 --- a/res/values-hr/inspector_strings.xml +++ b/res/values-hr/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Skladatelj"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Lokacija"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Vrste strujanja"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Neobrađena veličina (u bajtovima)"</string> </resources> diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index 5abece40d..f0ca681d0 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Dijeli"</string> <string name="menu_delete" msgid="1022254131543256626">"Izbriši"</string> <string name="menu_select_all" msgid="7600576812185570403">"Odaberi sve"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Poništi sve"</string> <string name="menu_select" msgid="1366061076507142387">"Odabir"</string> <string name="menu_sort" msgid="3362419226163725275">"Kriterij razvrstavanja..."</string> <string name="menu_copy" msgid="7404820171352314754">"Kopiraj u…"</string> @@ -43,7 +44,7 @@ <string name="menu_compress" msgid="37539111904724188">"Sažmi"</string> <string name="menu_extract" msgid="8171946945982532262">"Izdvoji u…"</string> <string name="menu_rename" msgid="1883113442688817554">"Promijeni naziv"</string> - <string name="menu_inspect" msgid="7279855349299446224">"Pogledajte informacije"</string> + <string name="menu_inspect" msgid="7279855349299446224">"Informacije"</string> <string name="menu_view_in_owner" msgid="7228948660557554770">"Prikaži na usluzi <xliff:g id="SOURCE">%1$s</xliff:g>"</string> <string name="menu_new_window" msgid="2947837751796109126">"Novi prozor"</string> <string name="menu_cut_to_clipboard" msgid="2878752142015026229">"Izreži"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Pokušaj ponovo"</string> <string name="button_clear" msgid="5412304437764369441">"Izbriši"</string> <string name="button_show_provider" msgid="6905880493806292753">"Prikaži na davatelju usluga"</string> + <string name="button_back" msgid="1888621708934742182">"Natrag"</string> <string name="not_sorted" msgid="7813496644889115530">"Nije poredano"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Naziv"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Sažetak"</string> @@ -69,12 +71,12 @@ <string name="sort_dimension_date" msgid="4231005651895254033">"Izmijenjeno"</string> <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Naziv datoteke (A – Ž)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Vrsta (A – Ž)"</string> - <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Veličina (od najmanjeg)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Izmjena (od najstarijeg)"</string> + <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Veličina (od najmanje)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Izmjena (od najstarije)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Naziv datoteke (Ž – A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Vrsta (Ž – A)"</string> - <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Veličina (od najvećeg)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Izmjena (od najnovijeg)"</string> + <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Veličina (od najveće)"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Izmjena (od najnovije)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Kriterij razvrstavanja"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Poredano po: <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Broj stavki"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Datoteka se ne može otvoriti"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Nije moguće otvoriti datoteke u arhivama"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Nije moguće izbrisati neke dokumente"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Br. dat. koje se mogu podijeliti ogranič. je na <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="share_via" msgid="8725082736005677161">"Dijeli putem"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopiranje datoteka"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Sažimanje datoteka"</string> @@ -247,25 +250,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Nedavne datoteke na telefonu"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Datoteke na telefonu"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> na telefonu"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Datoteke u Preuzimanjima"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Datoteke na uređaju <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Datoteke u mapi <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Datoteke s usluge <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Datoteke s usluge <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Nedavne slike na telefonu"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Slike na telefonu"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Slike u Preuzimanjima"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Slike na uređaju <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Slike u mapi <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Slike s usluge <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Slike s usluge <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Slike"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Zvuk"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videozapisi"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumenti"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Velike datoteke"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Ovaj tjedan"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Naziv mape"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Novi naziv"</string> <string name="preview_file" msgid="4056622696305432343">"Pregledajte datoteku <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Pregledajte datoteke u drugim aplikacijama"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonimno"</string> - <string name="open_tree_button" msgid="19992834788135845">"Dopusti pristup direktoriju \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Želite li dopustiti pristup direktoriju \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" na uređaju \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Aplikaciji \"<xliff:g id="APPNAME">%1$s</xliff:g>\" omogućit će potpuni pristup svim datotekama koje su trenutačno pohranjene na toj lokaciji i tu će se spremati sav budući sadržaj."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Koristi ovu mapu"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Dopustiti aplikaciji <xliff:g id="APPNAME">%1$s</xliff:g> pristup datotekama u direktoriju <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Ovo će aplikaciji <xliff:g id="APPNAME">%1$s</xliff:g> omogućiti pristup trenutačnom i budućem sadržaju pohranjenom u direktoriju <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Pretražite ovaj telefon"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Brisanje povijesti pretraživanja <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-hu/inspector_strings.xml b/res/values-hu/inspector_strings.xml index b27149faa..c883f5522 100644 --- a/res/values-hu/inspector_strings.xml +++ b/res/values-hu/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Zeneszerző"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Helyadatok"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Streamtípusok"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"RAW-méret (bájt)"</string> </resources> diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index 00d1c0d65..00eb7f3f9 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Megosztás"</string> <string name="menu_delete" msgid="1022254131543256626">"Törlés"</string> <string name="menu_select_all" msgid="7600576812185570403">"Az összes kijelölése"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Az összes kijelölés törlése"</string> <string name="menu_select" msgid="1366061076507142387">"Kiválasztás"</string> <string name="menu_sort" msgid="3362419226163725275">"Rendezési szempont"</string> <string name="menu_copy" msgid="7404820171352314754">"Másolás ide…"</string> @@ -61,20 +62,21 @@ <string name="button_retry" msgid="4011461781916631389">"Próbálja újra"</string> <string name="button_clear" msgid="5412304437764369441">"Törlés"</string> <string name="button_show_provider" msgid="6905880493806292753">"Megjelenítés a szolgáltatónál"</string> + <string name="button_back" msgid="1888621708934742182">"Vissza"</string> <string name="not_sorted" msgid="7813496644889115530">"Nincs rendezve"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Név"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Összefoglalás"</string> <string name="sort_dimension_file_type" msgid="5779709622922085381">"Típus"</string> <string name="sort_dimension_size" msgid="2190547351159472884">"Méret"</string> <string name="sort_dimension_date" msgid="4231005651895254033">"Módosítva"</string> - <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Fájlnév (növekvő)"</string> - <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Típus (növekvő)"</string> - <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Méret (legkisebbtől)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Módosítva (régebbi elöl)"</string> - <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Fájlnév (csökkenő)"</string> - <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Típus (csökkenő)"</string> - <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Méret (legnagyobbtól)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Módosítva (újabb elöl)"</string> + <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Fájlnév (A-tól Z-ig)"</string> + <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Típus (A-tól Z-ig)"</string> + <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Méret (legkisebb elöl)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Módosítás (régebbi elöl)"</string> + <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Fájlnév (Z-től A-ig)"</string> + <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Típus (Z-től A-ig)"</string> + <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Méret (legnagyobb elöl)"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Módosítás (újabb elöl)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Rendezési szempont"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Rendezés <xliff:g id="LABEL">%s</xliff:g> szerint"</string> <string name="directory_items" msgid="6645621978998614003">"Elemek száma"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"A fájlt nem lehet megnyitni"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Az archívumban nem lehet fájlokat megnyitni"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Néhány dokumentumot nem lehet törölni"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Legfeljebb <xliff:g id="COUNT">%1$d</xliff:g> fájlt oszthat meg"</string> <string name="share_via" msgid="8725082736005677161">"Megosztás itt:"</string> <string name="copy_notification_title" msgid="52256435625098456">"Fájlok másolása"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Fájlok tömörítése"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Legutóbbi fájlok a telefonon"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Fájlok a telefonon"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> a telefonon"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"A Letöltések mappában lévő fájlok"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Fájlok a(z) <xliff:g id="DEVICE">%1$s</xliff:g> eszközön"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Fájlok itt: <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Fájlok innen: <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Fájlok innen: <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"A telefonon lévő friss képek"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"A telefonon lévő képek"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"A Letöltések mappában lévő képek"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"A(z) <xliff:g id="DEVICE">%1$s</xliff:g> eszközön lévő képek"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Képek itt: <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Képek innen: <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Képek innen: <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Képek"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Hangok"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videók"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumentumok"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Nagy fájlok"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Ezen a héten"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Mappa neve"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Új név"</string> <string name="preview_file" msgid="4056622696305432343">"A(z) <xliff:g id="FILENAME">%1$s</xliff:g> előnézete"</string> <string name="apps_row_title" msgid="3340490016663092925">"Fájlok böngészése más alkalmazásokban"</string> <string name="anonymous_application" msgid="7633027057951625862">"Névtelen"</string> - <string name="open_tree_button" msgid="19992834788135845">"Hozzáférés engedélyezése a következőhöz: „<xliff:g id="DIRECTORY">%1$s</xliff:g>”"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Engedélyezi a(z) „<xliff:g id="DIRECTORY">%1$s</xliff:g>” könyvtárhoz való hozzáférést itt: „<xliff:g id="ROOT">%2$s</xliff:g>”?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Engedélyezi a teljes hozzáférést a(z) „<xliff:g id="APPNAME">%1$s</xliff:g>” alkalmazás számára a jelenleg és a jövőben ezen a helyen tárolt tartalmakhoz."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Jelenlegi mappa használata"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Engedélyezi, hogy a(z) <xliff:g id="APPNAME">%1$s</xliff:g> hozzáférhessen a(z) <xliff:g id="DIRECTORY">%2$s</xliff:g> fájljaihoz?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"A(z) <xliff:g id="APPNAME">%1$s</xliff:g> alkalmazás így hozzáfér majd a(z) <xliff:g id="DIRECTORY">%2$s</xliff:g> könyvtárban található jelenlegi és jövőbeli tartalmakhoz."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Keresés ezen a telefonon"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Keresési előzmények törlése – <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-hy/inspector_strings.xml b/res/values-hy/inspector_strings.xml index c13b68662..9470814eb 100644 --- a/res/values-hy/inspector_strings.xml +++ b/res/values-hy/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Կոմպոզիտոր"</string> <string name="metadata_album" msgid="1661699531214720236">"Ալբոմ"</string> <string name="metadata_address" msgid="1849921023707744640">"Գտնվելու վայրը"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Հոսքի տեսակներ"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Raw ֆայլի չափ (բայթ)"</string> </resources> diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml index 8b77191ed..71408263c 100644 --- a/res/values-hy/strings.xml +++ b/res/values-hy/strings.xml @@ -30,12 +30,13 @@ <string name="menu_search" msgid="1876699106790719849">"Որոնել"</string> <string name="menu_settings" msgid="6520844520117939047">"Հիշասարքի կարգավորումներ"</string> <string name="menu_open" msgid="9092138100049759315">"Բացել"</string> - <string name="menu_open_with" msgid="5507647065467520229">"Բացել հետևյալով՝"</string> + <string name="menu_open_with" msgid="5507647065467520229">"Բացել հավելվածով"</string> <string name="menu_open_in_new_window" msgid="6686563636123311276">"Բացել նոր պատուհանում"</string> <string name="menu_save" msgid="5195367497138965168">"Պահել"</string> <string name="menu_share" msgid="4307140947108068356">"Կիսվել"</string> <string name="menu_delete" msgid="1022254131543256626">"Ջնջել"</string> <string name="menu_select_all" msgid="7600576812185570403">"Ընտրել բոլորը"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Չեղարկել ընտրությունը"</string> <string name="menu_select" msgid="1366061076507142387">"Ընտրել"</string> <string name="menu_sort" msgid="3362419226163725275">"Տեսակավորել ըստ…"</string> <string name="menu_copy" msgid="7404820171352314754">"Պատճենել…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Փորձել նորից"</string> <string name="button_clear" msgid="5412304437764369441">"Մաքրել"</string> <string name="button_show_provider" msgid="6905880493806292753">"Ցուցադրել մատակարարում"</string> + <string name="button_back" msgid="1888621708934742182">"Հետ"</string> <string name="not_sorted" msgid="7813496644889115530">"Տեսակավորված չեն"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Անունը"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Ամփոփագիր"</string> @@ -75,7 +77,7 @@ <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"տեսակի (Ֆ – Ա)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"չափի (սկզբում մեծերը)"</string> <string name="sort_dimension_date_descending" msgid="5466839955763127113">"փոփոխման (նորից հին)"</string> - <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Տեսակավորում"</string> + <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Տեսակավորել ըստ"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Տեսակավորված ըստ՝ <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Տարրերի քանակ"</string> <string name="sort_direction_ascending" msgid="5882787683763248102">"Աճման կարգով"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Հնարավոր չէ բացել ֆայլը"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Հնարավոր չէ բացել արխիվացված ֆայլերը"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Հնարավոր չէ ջնջել որոշ փաստաթղթեր"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Կարող եք կիսվել առավելագույնը <xliff:g id="COUNT">%1$d</xliff:g> ֆայլով"</string> <string name="share_via" msgid="8725082736005677161">"Կիսվել"</string> <string name="copy_notification_title" msgid="52256435625098456">"Ֆայլերի պատճենում"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Ֆայլերի սեղմում"</string> @@ -225,26 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Ձեր հեռախոսում վերջերս բացված ֆայլերը"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Ֆայլեր հեռախոսում"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> հեռախոսում"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Ֆայլեր «Նեռբեռնումներ» պանակում"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Ֆայլեր <xliff:g id="DEVICE">%1$s</xliff:g> սարքում"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"«<xliff:g id="FOLDER">%1$s</xliff:g>» գրացուցակի ֆայլերը"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Ֆայլեր <xliff:g id="LABEL">%1$s</xliff:g> ծառայությունից"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Ֆայլեր <xliff:g id="LABEL">%1$s</xliff:g> (<xliff:g id="SUMMARY">%2$s</xliff:g>) ծառայությունից"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Նոր պատկերներ հեռախոսում"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Պատկերներ հեռախոսում"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Պատկերներ «Նեռբեռնումներ» պանակում"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Պատկերներ <xliff:g id="DEVICE">%1$s</xliff:g> սարքում"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"«<xliff:g id="FOLDER">%1$s</xliff:g>» պանակի լուսանկարները"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Պատկերների սկզբնաղբյուր՝ <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Պատկերների սկզբնաղբյուր՝ <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Պատկերներ"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Աուդիո"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Տեսանյութեր"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Փաստաթղթեր"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Մեծ ֆայլեր"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Այս շաբաթ"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Պանակի անունը"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Նոր անունը"</string> <string name="preview_file" msgid="4056622696305432343">"Դիտել «<xliff:g id="FILENAME">%1$s</xliff:g>» ֆայլը"</string> <string name="apps_row_title" msgid="3340490016663092925">"Գտնել ֆայլեր այլ հավելվածներում"</string> <string name="anonymous_application" msgid="7633027057951625862">"Անանուն"</string> - <string name="open_tree_button" msgid="19992834788135845">"Հասանելի դարձնել <xliff:g id="DIRECTORY">%1$s</xliff:g> պանակը"</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"<xliff:g id="APPNAME">%1$s</xliff:g> հավելվածին հասանելի կլինեն բոլոր ֆայլերը, որոնք այժմ պահվում են այս պանակում կամ կտեղափոխվեն այստեղ հետագայում:"</string> + <string name="open_tree_button" msgid="6402871398424497776">"Օգտագործել այս պանակը"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Թույլատրե՞լ <xliff:g id="APPNAME">%1$s</xliff:g> հավելվածին օգտագործել «<xliff:g id="DIRECTORY">%2$s</xliff:g>» գրացուցակի ֆայլերը"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"<xliff:g id="APPNAME">%1$s</xliff:g> հավելվածին հասանելի կլինի «<xliff:g id="DIRECTORY">%2$s</xliff:g>» գրացուցակի ներկա և ապագա բովանդակությունը:"</string> <string name="search_bar_hint" msgid="4517366509897977321">"Որոնեք հեռախոսում"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Ջնջել որոնումների պատմությունը՝ <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-in/inspector_strings.xml b/res/values-in/inspector_strings.xml index 0964060db..c542d4a3a 100644 --- a/res/values-in/inspector_strings.xml +++ b/res/values-in/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Komposer"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Lokasi"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Jenis streaming"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Ukuran raw (byte)"</string> </resources> diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index 64ba8c6af..fc3263977 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Bagikan"</string> <string name="menu_delete" msgid="1022254131543256626">"Hapus"</string> <string name="menu_select_all" msgid="7600576812185570403">"Pilih semua"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Batalkan semua pilihan"</string> <string name="menu_select" msgid="1366061076507142387">"Pilih"</string> <string name="menu_sort" msgid="3362419226163725275">"Urutkan menurut..."</string> <string name="menu_copy" msgid="7404820171352314754">"Salin ke…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Coba Lagi"</string> <string name="button_clear" msgid="5412304437764369441">"Hapus"</string> <string name="button_show_provider" msgid="6905880493806292753">"Tampilkan di provider"</string> + <string name="button_back" msgid="1888621708934742182">"Kembali"</string> <string name="not_sorted" msgid="7813496644889115530">"Tidak diurutkan"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nama"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Ringkasan"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Tidak dapat membuka file"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Tidak dapat membuka file dalam arsip"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Tidak dapat menghapus beberapa dokumen"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Tidak dapat membagikan lebih dari <xliff:g id="COUNT">%1$d</xliff:g> file"</string> <string name="share_via" msgid="8725082736005677161">"Bagikan melalui"</string> <string name="copy_notification_title" msgid="52256435625098456">"Menyalin file"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Mengompres file"</string> @@ -147,7 +150,7 @@ <item quantity="other">Tidak dapat menghapus <xliff:g id="COUNT_1">%1$d</xliff:g> item</item> <item quantity="one">Tidak dapat menghapus <xliff:g id="COUNT_0">%1$d</xliff:g> item</item> </plurals> - <string name="notification_touch_for_details" msgid="2385563502445129570">"Tap untuk melihat detail"</string> + <string name="notification_touch_for_details" msgid="2385563502445129570">"Ketuk untuk melihat detail"</string> <string name="close" msgid="905969391788869975">"Tutup"</string> <plurals name="copy_failure_alert_content" formatted="false" msgid="5570549471912990536"> <item quantity="other">File ini tidak disalin: <xliff:g id="LIST_1">%1$s</xliff:g></item> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"File terbaru di ponsel"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"File di ponsel"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> di ponsel"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"File di Download"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"File di <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"File di <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"File dari <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"File dari <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Gambar terkini di ponsel"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Gambar di ponsel"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Gambar di Download"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Gambar di <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Gambar di <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Gambar dari <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Gambar dari <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Gambar"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Video"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumen"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"File besar"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Minggu ini"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Nama folder"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nama baru"</string> <string name="preview_file" msgid="4056622696305432343">"Pratinjau file <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Cari file di aplikasi lain"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonim"</string> - <string name="open_tree_button" msgid="19992834788135845">"Izinkan akses ke \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Izinkan akses ke \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" di \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Ini akan mengizinkan \"<xliff:g id="APPNAME">%1$s</xliff:g>\" untuk memiliki akses penuh ke semua file yang saat ini tersimpan di lokasi ini, dan semua konten yang nantinya disimpan di sini."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Gunakan folder ini"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Izinkan <xliff:g id="APPNAME">%1$s</xliff:g> mengakses file di <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Tindakan ini akan mengizinkan <xliff:g id="APPNAME">%1$s</xliff:g> mengakses konten saat ini dan mendatang yang disimpan di <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Telusuri ponsel ini"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Menghapus histori penelusuran <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-is/inspector_strings.xml b/res/values-is/inspector_strings.xml index 72dc56b3a..893656d15 100644 --- a/res/values-is/inspector_strings.xml +++ b/res/values-is/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Höfundur"</string> <string name="metadata_album" msgid="1661699531214720236">"Plata"</string> <string name="metadata_address" msgid="1849921023707744640">"Staðsetning"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Streymisgerðir"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Óunnin stærð (bæti)"</string> </resources> diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml index 09d53667b..b5c14ede5 100644 --- a/res/values-is/strings.xml +++ b/res/values-is/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Deila"</string> <string name="menu_delete" msgid="1022254131543256626">"Eyða"</string> <string name="menu_select_all" msgid="7600576812185570403">"Velja allt"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Afvelja allt"</string> <string name="menu_select" msgid="1366061076507142387">"Velja"</string> <string name="menu_sort" msgid="3362419226163725275">"Raða eftir..."</string> <string name="menu_copy" msgid="7404820171352314754">"Afrita í…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Reyna aftur"</string> <string name="button_clear" msgid="5412304437764369441">"Hreinsa"</string> <string name="button_show_provider" msgid="6905880493806292753">"Sýna í þjónustu"</string> + <string name="button_back" msgid="1888621708934742182">"Til baka"</string> <string name="not_sorted" msgid="7813496644889115530">"Ekki flokkuð"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Heiti"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Samantekt"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Ekki hægt að opna skrá"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Ekki er hægt að opna skrár í geymslu"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Ekki hægt að eyða einhverjum skjölum"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Ekki er hægt að deila meira en <xliff:g id="COUNT">%1$d</xliff:g> skrám"</string> <string name="share_via" msgid="8725082736005677161">"Deila í gegnum"</string> <string name="copy_notification_title" msgid="52256435625098456">"Afritar skrár"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Þjappar skrám"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Nýlegar skrár í síma"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Skrár í síma"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> í símanum"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Skrár í „Niðurhal“"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Skrár í <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Skrár í <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Skrár frá <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Skrár frá <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Nýlegar myndir í síma"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Myndir í síma"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Myndir í „Niðurhal“"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Myndir í <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Myndir í <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Myndir frá <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Myndir frá <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Myndir"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Hljóð"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Vídeó"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Skjöl"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Stórar skrár"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Þessi vika"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Möppuheiti"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nýtt heiti"</string> <string name="preview_file" msgid="4056622696305432343">"Forskoða skrána <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Skoða skrár í öðrum forritum"</string> <string name="anonymous_application" msgid="7633027057951625862">"Nafnlaus"</string> - <string name="open_tree_button" msgid="19992834788135845">"Leyfa aðgang að „<xliff:g id="DIRECTORY">%1$s</xliff:g>“"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Leyfa aðgang að „<xliff:g id="DIRECTORY">%1$s</xliff:g>“ á „<xliff:g id="ROOT">%2$s</xliff:g>“?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Þetta gefur „<xliff:g id="APPNAME">%1$s</xliff:g>“ fullan aðgang að öllum skrám sem eru geymdar á þessum stað eins og er og öllu efni sem verður geymt hér síðar meir."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Nota þessa möppu"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Veita <xliff:g id="APPNAME">%1$s</xliff:g> aðgang að skrám í <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Þetta veitir <xliff:g id="APPNAME">%1$s</xliff:g> aðgang að efni sem vistað er í <xliff:g id="DIRECTORY">%2$s</xliff:g> nú og síðar."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Leita í þessum síma"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Eyða leitarferli <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-it/inspector_strings.xml b/res/values-it/inspector_strings.xml index fcc7c839f..a853094e3 100644 --- a/res/values-it/inspector_strings.xml +++ b/res/values-it/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Compositore"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Geolocalizzazione"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Tipi di stream"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Dimensioni file non elaborato (byte)"</string> </resources> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 4a050ed7c..86b10d01a 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Condividi"</string> <string name="menu_delete" msgid="1022254131543256626">"Elimina"</string> <string name="menu_select_all" msgid="7600576812185570403">"Seleziona tutto"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Deseleziona tutto"</string> <string name="menu_select" msgid="1366061076507142387">"Seleziona"</string> <string name="menu_sort" msgid="3362419226163725275">"Ordina per…"</string> <string name="menu_copy" msgid="7404820171352314754">"Copia in…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Riprova"</string> <string name="button_clear" msgid="5412304437764369441">"Cancella"</string> <string name="button_show_provider" msgid="6905880493806292753">"Mostra in provider"</string> + <string name="button_back" msgid="1888621708934742182">"Indietro"</string> <string name="not_sorted" msgid="7813496644889115530">"Nessun ordine"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nome"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Riepilogo"</string> @@ -68,7 +70,7 @@ <string name="sort_dimension_size" msgid="2190547351159472884">"Dimensioni"</string> <string name="sort_dimension_date" msgid="4231005651895254033">"Ultima modifica"</string> <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Nome file (da A a Z)"</string> - <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Tipo (dalla A alla Z)"</string> + <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Tipo (da A a Z)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Dimensione (crescente)"</string> <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Modifica meno recente"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Nome file (da Z a A)"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Impossibile aprire il file."</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Impossibile aprire i file negli archivi"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Impossibile eliminare alcuni documenti."</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Impossibile condividere più di <xliff:g id="COUNT">%1$d</xliff:g> file."</string> <string name="share_via" msgid="8725082736005677161">"Condividi tramite"</string> <string name="copy_notification_title" msgid="52256435625098456">"Copia dei file in corso"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Compressione di file"</string> @@ -186,7 +189,7 @@ <string name="open_external_dialog_request_primary_volume" msgid="2240992164087948176">"Concedere all\'app <xliff:g id="APPNAME"><b>^1</b></xliff:g> l\'accesso alla directory <xliff:g id="DIRECTORY"><i>^2</i></xliff:g>?"</string> <string name="open_external_dialog_root_request" msgid="6776729293982633">"Concedere all\'app <xliff:g id="APPNAME"><b>^1</b></xliff:g> l\'accesso ai tuoi dati, inclusi video e foto, sull\'unità <xliff:g id="STORAGE"><i>^2</i></xliff:g>?"</string> <string name="allow" msgid="1275746941353040309">"Consenti"</string> - <string name="deny" msgid="5127201668078153379">"Nega"</string> + <string name="deny" msgid="5127201668078153379">"Rifiuta"</string> <plurals name="elements_selected" formatted="false" msgid="4448165978637163692"> <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> elementi selezionati</item> <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> elemento selezionato</item> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"File recenti sul telefono"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"File sul telefono"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> sul telefono"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"File memorizzati in Download"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"File su <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"File memorizzati in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"File di <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"File di <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Immagini recenti sul telefono"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Immagini sul telefono"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Immagini memorizzate in Download"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Immagini su <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Immagini memorizzate in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Immagini di <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Immagini di <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Immagini"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Video"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documenti"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"File di grandi dimensioni"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Questa settimana"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Nome cartella"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nuovo nome"</string> <string name="preview_file" msgid="4056622696305432343">"Visualizza il file <xliff:g id="FILENAME">%1$s</xliff:g> in anteprima"</string> <string name="apps_row_title" msgid="3340490016663092925">"Sfoglia i file in altre app"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonima"</string> - <string name="open_tree_button" msgid="19992834788135845">"Consenti l\'accesso a \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Vuoi consentire l\'accesso a \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" su \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"\"<xliff:g id="APPNAME">%1$s</xliff:g>\" potrà avere accesso completo a tutti i file attualmente memorizzati in questa posizione e ai contenuti salvati in futuro qui."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Usa questa cartella"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Consentire all\'app <xliff:g id="APPNAME">%1$s</xliff:g> di accedere ai file memorizzati in <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"<xliff:g id="APPNAME">%1$s</xliff:g> potrà accedere ai contenuti attuali e futuri memorizzati in <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Cerca su questo telefono"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Elimina la cronologia delle ricerche <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-iw/inspector_strings.xml b/res/values-iw/inspector_strings.xml index e47dd8084..bb0fe8b20 100644 --- a/res/values-iw/inspector_strings.xml +++ b/res/values-iw/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"מלחין"</string> <string name="metadata_album" msgid="1661699531214720236">"אלבום"</string> <string name="metadata_address" msgid="1849921023707744640">"מיקום"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Stream types"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"גודל קובץ RAW (בייט)"</string> </resources> diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index 5a28897c5..80cedbcdc 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"שתף"</string> <string name="menu_delete" msgid="1022254131543256626">"מחיקה"</string> <string name="menu_select_all" msgid="7600576812185570403">"בחר הכל"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"ביטול בחירת הכול"</string> <string name="menu_select" msgid="1366061076507142387">"בחירה"</string> <string name="menu_sort" msgid="3362419226163725275">"מיון לפי…"</string> <string name="menu_copy" msgid="7404820171352314754">"העתק אל…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"נסה שנית"</string> <string name="button_clear" msgid="5412304437764369441">"ניקוי"</string> <string name="button_show_provider" msgid="6905880493806292753">"הצג באפליקציה של הספק"</string> + <string name="button_back" msgid="1888621708934742182">"הקודם"</string> <string name="not_sorted" msgid="7813496644889115530">"לא ממוין"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"שם"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"סיכום"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"לא ניתן לפתוח את הקובץ"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"לא ניתן לפתוח קבצים בארכיונים"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"לא ניתן למחוק חלק מהמסמכים"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"לא ניתן לשתף יותר מ-<xliff:g id="COUNT">%1$d</xliff:g> קבצים"</string> <string name="share_via" msgid="8725082736005677161">"שתף באמצעות"</string> <string name="copy_notification_title" msgid="52256435625098456">"מעתיק קבצים"</string> <string name="compress_notification_title" msgid="6830195148113751021">"דוחס קבצים"</string> @@ -269,25 +272,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"קבצים אחרונים בטלפון"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"קבצים בטלפון"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> בטלפון"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"קבצים ב\'הורדות\'"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"קבצים ב-<xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"קבצים ב-<xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"קבצים מ-<xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"קבצים מ-<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"תמונות אחרונות בטלפון"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"תמונות בטלפון"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"תמונות ב\'הורדות\'"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"התמונות ב-<xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"תמונות ב-<xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"תמונות מ-<xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"תמונו מ-<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"תמונות"</string> <string name="chip_title_audio" msgid="1032801828748235436">"אודיו"</string> <string name="chip_title_videos" msgid="7011260091979776447">"סרטונים"</string> <string name="chip_title_documents" msgid="7432457563000753983">"מסמכים"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"קבצים גדולים"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"השבוע"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"שם תיקייה"</string> <string name="input_hint_rename" msgid="8390711744270994452">"שם חדש"</string> <string name="preview_file" msgid="4056622696305432343">"תצוגה מקדימה של הקובץ <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"חיפוש קבצים באפליקציות אחרות"</string> <string name="anonymous_application" msgid="7633027057951625862">"אנונימית"</string> - <string name="open_tree_button" msgid="19992834788135845">"מתן גישה אל \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"לאפשר גישה אל \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" ב-\"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"לאפליקציה \"<xliff:g id="APPNAME">%1$s</xliff:g>\" תהיה הרשאת גישה מלאה לכל הקבצים שמאוחסנים כרגע במיקום זה, ולכל תוכן שיאוחסן כאן בעתיד."</string> + <string name="open_tree_button" msgid="6402871398424497776">"לשימוש בתיקייה זו"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"האם להתיר ל-<xliff:g id="APPNAME">%1$s</xliff:g> לגשת לקבצים שבספרייה <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"פעולה זו תעניק ל-<xliff:g id="APPNAME">%1$s</xliff:g> גישה לתוכן נוכחי ועתידי המאוחסן ב-<xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"חיפוש בטלפון זה"</string> + <string name="delete_search_history" msgid="2202015025607694515">"מחיקת היסטוריית החיפושים <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-ja/inspector_strings.xml b/res/values-ja/inspector_strings.xml index eb9737a12..c63737128 100644 --- a/res/values-ja/inspector_strings.xml +++ b/res/values-ja/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"作曲者"</string> <string name="metadata_album" msgid="1661699531214720236">"アルバム"</string> <string name="metadata_address" msgid="1849921023707744640">"場所"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"ストリーム タイプ"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"未加工のサイズ(バイト)"</string> </resources> diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index edde9f15d..ebef1bf67 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"共有"</string> <string name="menu_delete" msgid="1022254131543256626">"削除"</string> <string name="menu_select_all" msgid="7600576812185570403">"すべて選択"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"選択をすべて解除"</string> <string name="menu_select" msgid="1366061076507142387">"選択"</string> <string name="menu_sort" msgid="3362419226163725275">"並べ替え..."</string> <string name="menu_copy" msgid="7404820171352314754">"コピー…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"再試行"</string> <string name="button_clear" msgid="5412304437764369441">"削除"</string> <string name="button_show_provider" msgid="6905880493806292753">"プロバイダで表示"</string> + <string name="button_back" msgid="1888621708934742182">"戻る"</string> <string name="not_sorted" msgid="7813496644889115530">"並べ替えなし"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"名前"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"概要"</string> @@ -90,13 +92,14 @@ <string name="root_available_bytes" msgid="8269870862691408864">"空き容量: <xliff:g id="SIZE">%1$s</xliff:g>"</string> <string name="root_type_service" msgid="6521366147466512289">"ストレージ サービス"</string> <string name="root_type_shortcut" msgid="6059343175525442279">"ショートカット"</string> - <string name="root_type_device" msgid="1713604128005476585">"端末"</string> + <string name="root_type_device" msgid="1713604128005476585">"デバイス"</string> <string name="root_type_apps" msgid="8646073235029886342">"その他のアプリ"</string> <string name="empty" msgid="5300254272613103004">"項目はありません"</string> <string name="no_results" msgid="2371026325236359209">"該当するものは %1$s にありません"</string> <string name="toast_no_application" msgid="7555319548595113121">"ファイルを開けません"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"アーカイブ内のファイルを開くことはできません"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"一部のドキュメントを削除できません"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"共有できるファイルは <xliff:g id="COUNT">%1$d</xliff:g> 件までです"</string> <string name="share_via" msgid="8725082736005677161">"共有ツール"</string> <string name="copy_notification_title" msgid="52256435625098456">"ファイルのコピー中"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ファイルの圧縮中"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"スマートフォンで最近使用したファイル"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"スマートフォンにあるファイル"</string> <string name="root_info_header_media" msgid="2774453755906260852">"スマートフォンにある<xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"[ダウンロード] 内のファイル"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> にあるファイル"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> 内のファイル"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g>のファイル"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> のファイル"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"スマートフォンに最近保存された画像"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"スマートフォンに保存されている画像"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"[ダウンロード] 内の画像"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> に保存されている画像"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> 内の画像"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g> の画像"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g>(<xliff:g id="SUMMARY">%2$s</xliff:g>)の画像"</string> <string name="chip_title_images" msgid="7838299046109841015">"画像"</string> <string name="chip_title_audio" msgid="1032801828748235436">"音声"</string> <string name="chip_title_videos" msgid="7011260091979776447">"動画"</string> <string name="chip_title_documents" msgid="7432457563000753983">"ドキュメント"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"サイズの大きいファイル"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"今週"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"フォルダ名"</string> <string name="input_hint_rename" msgid="8390711744270994452">"新しい名前"</string> <string name="preview_file" msgid="4056622696305432343">"ファイル <xliff:g id="FILENAME">%1$s</xliff:g> をプレビューする"</string> - <string name="apps_row_title" msgid="3340490016663092925">"他のアプリでのファイル参照"</string> + <string name="apps_row_title" msgid="3340490016663092925">"他のアプリでファイルを探す"</string> <string name="anonymous_application" msgid="7633027057951625862">"匿名"</string> - <string name="open_tree_button" msgid="19992834788135845">"「<xliff:g id="DIRECTORY">%1$s</xliff:g>」へのアクセスを許可"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"「<xliff:g id="ROOT">%2$s</xliff:g>」の「<xliff:g id="DIRECTORY">%1$s</xliff:g>」へのアクセスを許可しますか?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"現在この場所に保存されているすべてのファイル、および今後ここに保存されるすべてのコンテンツへのフルアクセスを「<xliff:g id="APPNAME">%1$s</xliff:g>」に許可します。"</string> + <string name="open_tree_button" msgid="6402871398424497776">"このフォルダを使用"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="DIRECTORY">%2$s</xliff:g> 内のファイルへのアクセスを<xliff:g id="APPNAME">%1$s</xliff:g>に許可しますか?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"<xliff:g id="DIRECTORY">%2$s</xliff:g> 内のコンテンツに<xliff:g id="APPNAME">%1$s</xliff:g>がアクセスできるようになります。"</string> <string name="search_bar_hint" msgid="4517366509897977321">"このスマートフォンを検索する"</string> + <string name="delete_search_history" msgid="2202015025607694515">"検索履歴「<xliff:g id="TEXT">%1$s</xliff:g>」を削除します"</string> </resources> diff --git a/res/values-ka/inspector_strings.xml b/res/values-ka/inspector_strings.xml index bb3cab1d1..d809ea13c 100644 --- a/res/values-ka/inspector_strings.xml +++ b/res/values-ka/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"კომპოზიტორი"</string> <string name="metadata_album" msgid="1661699531214720236">"ალბომი"</string> <string name="metadata_address" msgid="1849921023707744640">"მდებარეობა"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"სტრიმინგის ტიპები"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"ნედლი ზომა (ბაიტები)"</string> </resources> diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml index 3349f73d9..683734ed7 100644 --- a/res/values-ka/strings.xml +++ b/res/values-ka/strings.xml @@ -36,8 +36,9 @@ <string name="menu_share" msgid="4307140947108068356">"გაზიარება"</string> <string name="menu_delete" msgid="1022254131543256626">"წაშლა"</string> <string name="menu_select_all" msgid="7600576812185570403">"ყველას არჩევა"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"ყველა არჩევანის გაუქმება"</string> <string name="menu_select" msgid="1366061076507142387">"არჩევა"</string> - <string name="menu_sort" msgid="3362419226163725275">"დალაგება კრიტერიუმით..."</string> + <string name="menu_sort" msgid="3362419226163725275">"სორტირება კრიტერიუმით..."</string> <string name="menu_copy" msgid="7404820171352314754">"კოპირება…"</string> <string name="menu_move" msgid="2310760789561129882">"გადაადგილება..."</string> <string name="menu_compress" msgid="37539111904724188">"შეკუმშვა"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"ხელახლა ცდა"</string> <string name="button_clear" msgid="5412304437764369441">"გასუფთავება"</string> <string name="button_show_provider" msgid="6905880493806292753">"პროვაიდერში ჩვენება"</string> + <string name="button_back" msgid="1888621708934742182">"უკან"</string> <string name="not_sorted" msgid="7813496644889115530">"დაულაგებელი"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"სახელი"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"რეზიუმე"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"ფაილის გახსნა ვერ ხერხდება"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"არქივებში განთავსებული ფაილების გახსნა ვერ მოხერხდა"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"ზოგიერთი დოკუმენტის წაშლა ვერ ხერხდება"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g>-ზე მეტი ფაილი ვერ გაზიარდება"</string> <string name="share_via" msgid="8725082736005677161">"გაზიარება…"</string> <string name="copy_notification_title" msgid="52256435625098456">"ფაილების კოპირება…"</string> <string name="compress_notification_title" msgid="6830195148113751021">"მიმდინარეობს ფაილების შეკუმშვა"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"ბოლოდროინდელი ფაილები ტელეფონზე"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"ფაილები ტელეფონზე"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> ტელეფონზე"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"ფაილები ჩამოტვირთვებში"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"ფაილები <xliff:g id="DEVICE">%1$s</xliff:g>-ზე"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"სურათები საქაღალდეში: <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"ფაილები <xliff:g id="LABEL">%1$s</xliff:g>-იდან"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"ფაილები <xliff:g id="LABEL">%1$s</xliff:g>-იდან / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"ბოლოდროინდელი სურათები ტელეფონზე"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"სურათები ტელეფონზე"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"სურათები ჩამოტვირთვებში"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"სურათები <xliff:g id="DEVICE">%1$s</xliff:g>-ზე"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"სურათები საქაღალდეში: <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"სურათები <xliff:g id="LABEL">%1$s</xliff:g>-დან"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"სურათები <xliff:g id="LABEL">%1$s</xliff:g>-დან / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"სურათები"</string> <string name="chip_title_audio" msgid="1032801828748235436">"აუდიო"</string> <string name="chip_title_videos" msgid="7011260091979776447">"ვიდეოები"</string> <string name="chip_title_documents" msgid="7432457563000753983">"დოკუმენტები"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"დიდი ფაილები"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"ამ კვირაში"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"საქაღალდის სახელი"</string> <string name="input_hint_rename" msgid="8390711744270994452">"ახალი სახელი"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> ფაილის გადახედვა"</string> <string name="apps_row_title" msgid="3340490016663092925">"ფაილების დათვალიერება სხვა აპებში"</string> <string name="anonymous_application" msgid="7633027057951625862">"ანონიმური"</string> - <string name="open_tree_button" msgid="19992834788135845">"„<xliff:g id="DIRECTORY">%1$s</xliff:g>“-ზე წვდომის დაშვება"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"გსურთ, დაუშვათ წვდომა „<xliff:g id="DIRECTORY">%1$s</xliff:g>“-ზე „<xliff:g id="ROOT">%2$s</xliff:g>“-იდან?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"ეს ქმედება მიანიჭებს „<xliff:g id="APPNAME">%1$s</xliff:g>“-ს სრულ წვდომას ყველა ფაილზე, რომელიც ამჟამად ინახება ამ მდებარეობაზე და რომელიც მომავალში შეინახება."</string> + <string name="open_tree_button" msgid="6402871398424497776">"ამ საქაღალდის გამოყენება"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"გსურთ, <xliff:g id="APPNAME">%1$s</xliff:g>-ს ჰქონდეს წვდომა ფაილებზე <xliff:g id="DIRECTORY">%2$s</xliff:g>-ში?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"ამით <xliff:g id="APPNAME">%1$s</xliff:g> მიიღებს წვდომას <xliff:g id="DIRECTORY">%2$s</xliff:g>-ში შენახულ ამჟამინდელ თუ მომავალ კონტენტზე."</string> <string name="search_bar_hint" msgid="4517366509897977321">"ამ ტელეფონში ძიება"</string> + <string name="delete_search_history" msgid="2202015025607694515">"ძიების ისტორიის წაშლა <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-kk/inspector_strings.xml b/res/values-kk/inspector_strings.xml index 88991f3be..0cc05438c 100644 --- a/res/values-kk/inspector_strings.xml +++ b/res/values-kk/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Композитор"</string> <string name="metadata_album" msgid="1661699531214720236">"Альбом"</string> <string name="metadata_address" msgid="1849921023707744640">"Орын"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Трансляция түрлері"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"RAW файлының өлшемі (байт)"</string> </resources> diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml index ca05e98d3..9512c747f 100644 --- a/res/values-kk/strings.xml +++ b/res/values-kk/strings.xml @@ -36,9 +36,10 @@ <string name="menu_share" msgid="4307140947108068356">"Бөлісу"</string> <string name="menu_delete" msgid="1022254131543256626">"Жою"</string> <string name="menu_select_all" msgid="7600576812185570403">"Барлығын таңдау"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Барлық белгілерді алу"</string> <string name="menu_select" msgid="1366061076507142387">"Таңдау"</string> <string name="menu_sort" msgid="3362419226163725275">"Сұрыптау шарты..."</string> - <string name="menu_copy" msgid="7404820171352314754">"Көшіру орны…"</string> + <string name="menu_copy" msgid="7404820171352314754">"Көшіру…"</string> <string name="menu_move" msgid="2310760789561129882">"Тасымалдау…"</string> <string name="menu_compress" msgid="37539111904724188">"Сығу"</string> <string name="menu_extract" msgid="8171946945982532262">"Алынуда…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Әрекетті қайталау"</string> <string name="button_clear" msgid="5412304437764369441">"Өшіру"</string> <string name="button_show_provider" msgid="6905880493806292753">"Провайдерде көрсету"</string> + <string name="button_back" msgid="1888621708934742182">"Артқа"</string> <string name="not_sorted" msgid="7813496644889115530">"Сұрыпталмаған"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Аты"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Жиынтық мәлімет"</string> @@ -75,7 +77,7 @@ <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Түрі (Z–A)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Өлшемі (ең үлкенінен бастап)"</string> <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Өзгертілген (ең жаңасынан бастап)"</string> - <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Реттеу шарты"</string> + <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Сұрыптау шарты"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"<xliff:g id="LABEL">%s</xliff:g> бойынша реттелген"</string> <string name="directory_items" msgid="6645621978998614003">"Элементтер саны"</string> <string name="sort_direction_ascending" msgid="5882787683763248102">"Арту ретімен"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Файл ашылмады"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Мұрағаттағы файлдар ашылмайды"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Кейбір құжаттар жойылмады"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g> файлдан артық бөлісу мүмкін емес."</string> <string name="share_via" msgid="8725082736005677161">"Бөлісу әдісі"</string> <string name="copy_notification_title" msgid="52256435625098456">"Файлдар көшірілуде"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Файлдар сығу"</string> @@ -225,26 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Телефондағы соңғы файлдар"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Телефондағы файлдар"</string> <string name="root_info_header_media" msgid="2774453755906260852">"Телефондағы <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"\"Жүктеп алынғандар\" қалтасындағы файлдар"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> құрылғысындағы файлдар"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> қалтасындағы суреттер"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> файлдары"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g> файлдары"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Телефондағы соңғы кескіндер"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Телефондағы кескіндер"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"\"Жүктеп алынғандар\" қалтасындағы суреттер"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> құрылғысындағы кескіндер"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> қалтасындағы суреттер"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g> ұсынған кескіндер"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> жіберген кескіндер"</string> <string name="chip_title_images" msgid="7838299046109841015">"Кескіндер"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Aудиомазмұн"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Бейнелер"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Құжаттар"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Үлкен файлдар"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Осы апта"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Қалта атауы"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Жаңа атауы"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> файлын алдын ала қарау"</string> <string name="apps_row_title" msgid="3340490016663092925">"Басқа қолданбалардағы файлдарды шолу"</string> <string name="anonymous_application" msgid="7633027057951625862">"Анонимді"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" каталогін пайдалануға рұқсат ету"</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Осы арқылы \"<xliff:g id="APPNAME">%1$s</xliff:g>\" қолданбасы қазір осы орында сақталған барлық файлды және болашақта қосылатын кез келген мазмұнды толықтай пайдалана алатын болады."</string> - <string name="search_bar_hint" msgid="4517366509897977321">"Осы телефонды іздеу"</string> + <string name="open_tree_button" msgid="6402871398424497776">"Осы қалтаны пайдалану"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g> үшін <xliff:g id="DIRECTORY">%2$s</xliff:g> қалтасындағы файлдарды пайдалануға рұқсат етілсін бе?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"<xliff:g id="APPNAME">%1$s</xliff:g> қолданбасы <xliff:g id="DIRECTORY">%2$s</xliff:g> қалтасындағы қазіргі және алда сақталатын мазмұндарды пайдалана алатын болады."</string> + <string name="search_bar_hint" msgid="4517366509897977321">"Осы телефоннан іздеу"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Іздеу тарихын <xliff:g id="TEXT">%1$s</xliff:g> жою"</string> </resources> diff --git a/res/values-km/inspector_strings.xml b/res/values-km/inspector_strings.xml index a199a869f..cc349e859 100644 --- a/res/values-km/inspector_strings.xml +++ b/res/values-km/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"អ្នកតាក់តែង"</string> <string name="metadata_album" msgid="1661699531214720236">"អាល់ប៊ុម"</string> <string name="metadata_address" msgid="1849921023707744640">"ទីកន្លែង"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"ប្រភេទការផ្សាយ"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"ទំហំដើម (បៃ)"</string> </resources> diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml index e782cc156..e323d7af0 100644 --- a/res/values-km/strings.xml +++ b/res/values-km/strings.xml @@ -35,7 +35,8 @@ <string name="menu_save" msgid="5195367497138965168">"រក្សាទុក"</string> <string name="menu_share" msgid="4307140947108068356">"ចែករំលែក"</string> <string name="menu_delete" msgid="1022254131543256626">"លុប"</string> - <string name="menu_select_all" msgid="7600576812185570403">"ជ្រើសទាំងអស់"</string> + <string name="menu_select_all" msgid="7600576812185570403">"ជ្រើសរើសទាំងអស់"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"ដកការជ្រើសរើសទាំងអស់"</string> <string name="menu_select" msgid="1366061076507142387">"ជ្រើសរើស"</string> <string name="menu_sort" msgid="3362419226163725275">"តម្រៀបតាម..."</string> <string name="menu_copy" msgid="7404820171352314754">"ចម្លងទៅ…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"ព្យាយាមម្តងទៀត"</string> <string name="button_clear" msgid="5412304437764369441">"សម្អាត"</string> <string name="button_show_provider" msgid="6905880493806292753">"បង្ហាញនៅក្នុងក្រុមហ៊ុនផ្តល់សេវា"</string> + <string name="button_back" msgid="1888621708934742182">"ថយក្រោយ"</string> <string name="not_sorted" msgid="7813496644889115530">"Not sorted"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"ឈ្មោះ"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"សេចក្តីសង្ខេប"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"មិនអាចបើកឯកសារបានទេ"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"មិនអាចបើកឯកសារនៅក្នុងបណ្ណសារបានទេ"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"មិនអាចលុបឯកសារមួយចំនួន"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"មិនអាចចែករំលែកឯកសារច្រើនជាង <xliff:g id="COUNT">%1$d</xliff:g> បានទេ"</string> <string name="share_via" msgid="8725082736005677161">"ចែករំលែកតាម"</string> <string name="copy_notification_title" msgid="52256435625098456">"កំពុងចម្លងឯកសារ"</string> <string name="compress_notification_title" msgid="6830195148113751021">"កំពុងបង្ហាប់ឯកសារ"</string> @@ -202,8 +205,8 @@ <item quantity="one">លុបឯកសារ <xliff:g id="COUNT_0">%1$d</xliff:g> ឬ?</item> </plurals> <plurals name="delete_folders_confirmation_message" formatted="false" msgid="1028946402799686388"> - <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> + <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> <plurals name="delete_items_confirmation_message" formatted="false" msgid="7285090426511028179"> <item quantity="other">លុបធាតុ <xliff:g id="COUNT_1">%1$d</xliff:g> ឬ?</item> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"ឯកសារថ្មីៗនៅលើទូរសព្ទ"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"ឯកសារនៅលើទូរសព្ទ"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> នៅលើទូរសព្ទ"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"ឯកសារនៅក្នុងថតទាញយក"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"ឯកសារនៅលើ <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"ឯកសារនៅក្នុង <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"ឯកសារពី <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"ឯកសារពី <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"រូបភាពថ្មីៗនៅលើទូរសព្ទ"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"រូបភាពនៅលើទូរសព្ទ"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"រូបភាពនៅក្នុងថតទាញយក"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"រូបភាពនៅលើ <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"រូបភាពនៅក្នុង <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"រូបភាពពី <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"រូបភាពពី <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"រូបភាព"</string> <string name="chip_title_audio" msgid="1032801828748235436">"សំឡេង"</string> <string name="chip_title_videos" msgid="7011260091979776447">"វីដេអូ"</string> <string name="chip_title_documents" msgid="7432457563000753983">"ឯកសារ"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"ឯកសារទំហំធំ"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"សប្ដាហ៍នេះ"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"ឈ្មោះថត"</string> <string name="input_hint_rename" msgid="8390711744270994452">"ឈ្មោះថ្មី"</string> <string name="preview_file" msgid="4056622696305432343">"មើលឯកសារ <xliff:g id="FILENAME">%1$s</xliff:g> សាកល្បង"</string> <string name="apps_row_title" msgid="3340490016663092925">"រុករកឯកសារនៅក្នុងកម្មវិធីផ្សេងទៀត"</string> <string name="anonymous_application" msgid="7633027057951625862">"អនាមិក"</string> - <string name="open_tree_button" msgid="19992834788135845">"អនុញ្ញាតឱ្យចូលប្រើ \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"អនុញ្ញាតឱ្យចូលប្រើ \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" នៅលើ \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"ការធ្វើបែបនេះនឹងអនុញ្ញាតឱ្យ \"<xliff:g id="APPNAME">%1$s</xliff:g>\" អាចចូលប្រើឯកសារទាំងអស់ដែលកំពុងផ្ទុកនៅក្រោមទីតាំងនេះបានពេញលេញ រួមទាំងខ្លឹមសារនាពេលខាងមុខផ្សេងទៀតដែលផ្ទុកនៅទីនេះ។"</string> + <string name="open_tree_button" msgid="6402871398424497776">"ប្រើថតនេះ"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"អនុញ្ញាតឱ្យ <xliff:g id="APPNAME">%1$s</xliff:g> ចូលប្រើឯកសារនៅក្នុង <xliff:g id="DIRECTORY">%2$s</xliff:g> ដែរទេ?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"ការធ្វើបែបនេះនឹងអនុញ្ញាតឱ្យ <xliff:g id="APPNAME">%1$s</xliff:g> ចូលប្រើខ្លឹមសារបច្ចុប្បន្ន និងនាពេលអនាគត ដែលបានរក្សាទុកនៅក្នុង <xliff:g id="DIRECTORY">%2$s</xliff:g>។"</string> <string name="search_bar_hint" msgid="4517366509897977321">"ស្វែងរកទូរសព្ទនេះ"</string> + <string name="delete_search_history" msgid="2202015025607694515">"លុបប្រវត្តិស្វែងរក <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-kn/inspector_strings.xml b/res/values-kn/inspector_strings.xml index 29481bbae..9d37645ed 100644 --- a/res/values-kn/inspector_strings.xml +++ b/res/values-kn/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"ಸಂಯೋಜಕ"</string> <string name="metadata_album" msgid="1661699531214720236">"ಆಲ್ಬಮ್"</string> <string name="metadata_address" msgid="1849921023707744640">"ಸ್ಥಳ"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"ಸ್ಟ್ರೀಮ್ ವಿಧಗಳು"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"RAW ಗಾತ್ರ (ಬೈಟ್ಗಳು)"</string> </resources> diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml index c38cd63fc..bd21045d2 100644 --- a/res/values-kn/strings.xml +++ b/res/values-kn/strings.xml @@ -22,7 +22,7 @@ <skip /> <!-- no translation found for launcher_label (799410258349837668) --> <skip /> - <string name="title_open" msgid="3165686459158020921">"ಇದರ ಮೂಲಕ ತೆರೆಯಿರಿ"</string> + <string name="title_open" msgid="3165686459158020921">"ಇಲ್ಲಿಂದ ತೆರೆಯಿರಿ"</string> <string name="title_save" msgid="4384490653102710025">"ಇವುಗಳಲ್ಲಿ ಉಳಿಸಿ"</string> <string name="menu_create_dir" msgid="2413624798689091042">"ಹೊಸ ಫೋಲ್ಡರ್"</string> <string name="menu_grid" msgid="1453636521731880680">"ಗ್ರಿಡ್ ವೀಕ್ಷಣೆ"</string> @@ -36,8 +36,9 @@ <string name="menu_share" msgid="4307140947108068356">"ಹಂಚಿಕೊಳ್ಳಿ"</string> <string name="menu_delete" msgid="1022254131543256626">"ಅಳಿಸಿ"</string> <string name="menu_select_all" msgid="7600576812185570403">"ಎಲ್ಲವನ್ನೂ ಆಯ್ಕೆಮಾಡಿ"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"ಎಲ್ಲಾ ಆಯ್ಕೆಯನ್ನು ರದ್ದುಮಾಡಿ"</string> <string name="menu_select" msgid="1366061076507142387">"ಆಯ್ಕೆಮಾಡಿ"</string> - <string name="menu_sort" msgid="3362419226163725275">"ಇವುಗಳನ್ನು ವಿಂಗಡಿಸಿ..."</string> + <string name="menu_sort" msgid="3362419226163725275">"ಹೀಗೆ ವಿಂಗಡಿಸಿ..."</string> <string name="menu_copy" msgid="7404820171352314754">"ಇದಕ್ಕೆ ನಕಲಿಸಿ…"</string> <string name="menu_move" msgid="2310760789561129882">"ಇದಕ್ಕೆ ಸರಿಸು…"</string> <string name="menu_compress" msgid="37539111904724188">"ಕುಗ್ಗಿಸಿ"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ"</string> <string name="button_clear" msgid="5412304437764369441">"ತೆರವುಗೊಳಿಸಿ"</string> <string name="button_show_provider" msgid="6905880493806292753">"ಒದಗಿಸುವವರಲ್ಲಿ ತೋರಿಸಿ"</string> + <string name="button_back" msgid="1888621708934742182">"ಹಿಂದೆ"</string> <string name="not_sorted" msgid="7813496644889115530">"ವಿಂಗಡಿಸಲಾಗಿಲ್ಲ"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"ಹೆಸರು"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"ಸಾರಾಂಶ"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"ಫೈಲ್ ತೆರೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"ಆರ್ಕೈವ್ಗಳಲ್ಲಿ ಫೈಲ್ಗಳನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"ಕೆಲವು ಡಾಕ್ಯುಮೆಂಟ್ಗಳನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g> ಗಿಂತ ಹೆಚ್ಚು ಫೈಲ್ಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ"</string> <string name="share_via" msgid="8725082736005677161">"ಈ ಮೂಲಕ ಹಂಚಿಕೊಳ್ಳಿ"</string> <string name="copy_notification_title" msgid="52256435625098456">"ಫೈಲ್ಗಳನ್ನು ನಕಲಿಸಲಾಗುತ್ತಿದೆ"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ಫೈಲ್ ಕುಗ್ಗಿಸಲಾಗುತ್ತಿದೆ"</string> @@ -225,26 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"ಫೋನ್ನಲ್ಲಿನ ಇತ್ತೀಚಿನ ಫೈಲ್ಗಳು"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"ಫೋನ್ನಲ್ಲಿನ ಫೈಲ್ಗಳು"</string> <string name="root_info_header_media" msgid="2774453755906260852">"ಫೋನ್ನಲ್ಲಿನ <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"ಡೌನ್ಲೋಡ್ಗಳಲ್ಲಿರುವ ಫೈಲ್ಗಳು"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> ನಲ್ಲಿನ ಫೈಲ್ಗಳು"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> ನಲ್ಲಿರುವ ಫೈಲ್ಗಳು"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> ನಿಂದ ಫೈಲ್ಗಳು"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> ನಿಂದ ಫೈಲ್ಗಳು"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"ಫೋನ್ನಲ್ಲಿ ಇತ್ತೀಚಿನ ಚಿತ್ರಗಳು"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"ಫೋನ್ನಲ್ಲಿರುವ ಚಿತ್ರಗಳು"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"ಡೌನ್ಲೋಡ್ಗಳಲ್ಲಿರುವ ಚಿತ್ರಗಳು"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> ನಲ್ಲಿರುವ ಚಿತ್ರಗಳು"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> ನಲ್ಲಿರುವ ಚಿತ್ರಗಳು"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g>ನಿಂದ ಚಿತ್ರಗಳು"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> ನಿಂದ ಚಿತ್ರಗಳು"</string> <string name="chip_title_images" msgid="7838299046109841015">"ಚಿತ್ರಗಳು"</string> <string name="chip_title_audio" msgid="1032801828748235436">"ಆಡಿಯೊ"</string> <string name="chip_title_videos" msgid="7011260091979776447">"ವೀಡಿಯೊಗಳು"</string> <string name="chip_title_documents" msgid="7432457563000753983">"ಡಾಕ್ಯುಮೆಂಟ್ಗಳು"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"ದೊಡ್ಡ ಫೈಲ್ಗಳು"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"ಈ ವಾರ"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"ಫೋಲ್ಡರ್ ಹೆಸರು"</string> <string name="input_hint_rename" msgid="8390711744270994452">"ಹೊಸ ಹೆಸರು"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> ಫೈಲ್ ಅನ್ನು ಪೂರ್ವವೀಕ್ಷಿಸಿ"</string> <string name="apps_row_title" msgid="3340490016663092925">"ಇತರ ಆ್ಯಪ್ಗಳಲ್ಲಿರುವ ಫೈಲ್ಗಳನ್ನು ಬ್ರೌಸ್ ಮಾಡಿ"</string> <string name="anonymous_application" msgid="7633027057951625862">"ಅನಾಮಧೇಯ"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" ಗೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಿ"</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"ಇದು ಈ ಸ್ಥಾನದಲ್ಲಿ ಪ್ರಸ್ತುತವಾಗಿ ಸಂಗ್ರಹವಾಗಿರುವ ಎಲ್ಲಾ ಫೈಲ್ಗಳಿಗೆ ಮತ್ತು ಭವಿಷ್ಯದಲ್ಲಿ ಸಂಗ್ರಹವಾಗುವ ಎಲ್ಲಾ ವಿಷಯಕ್ಕೆ \"<xliff:g id="APPNAME">%1$s</xliff:g>\" ಪೂರ್ಣ ಪ್ರವೇಶ ನೀಡುತ್ತದೆ."</string> - <string name="search_bar_hint" msgid="4517366509897977321">"ಈ ಫೋನ್ ಹುಡುಕಿ"</string> + <string name="open_tree_button" msgid="6402871398424497776">"ಈ ಫೋಲ್ಡರ್ ಬಳಸಿ"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="DIRECTORY">%2$s</xliff:g> ನಲ್ಲಿರುವ ಫೈಲ್ಗಳಿಗೆ ಪ್ರವೇಶಿಸಲು <xliff:g id="APPNAME">%1$s</xliff:g> ಆ್ಯಪ್ಗೆ ಅನುಮತಿಸಬೇಕೆ?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"ಇದು ಪ್ರಸ್ತುತ ಮತ್ತು ಭವಿಷ್ಯದಲ್ಲಿ <xliff:g id="DIRECTORY">%2$s</xliff:g> ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ವಿಷಯವನ್ನು ಪ್ರವೇಶಿಸಲು <xliff:g id="APPNAME">%1$s</xliff:g> ಆ್ಯಪ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string> + <string name="search_bar_hint" msgid="4517366509897977321">"ಈ ಫೋನ್ನಲ್ಲಿ ಹುಡುಕಿ"</string> + <string name="delete_search_history" msgid="2202015025607694515">"ಹುಡುಕಾಟ ಇತಿಹಾಸವನ್ನು ಅಳಿಸಿ <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-ko/inspector_strings.xml b/res/values-ko/inspector_strings.xml index 97acd8056..394097df7 100644 --- a/res/values-ko/inspector_strings.xml +++ b/res/values-ko/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"작곡가"</string> <string name="metadata_album" msgid="1661699531214720236">"앨범"</string> <string name="metadata_address" msgid="1849921023707744640">"위치"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"스트림 유형"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"원본 크기(바이트)"</string> </resources> diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 20f2a6c09..06ec7ac60 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -36,8 +36,9 @@ <string name="menu_share" msgid="4307140947108068356">"공유"</string> <string name="menu_delete" msgid="1022254131543256626">"삭제"</string> <string name="menu_select_all" msgid="7600576812185570403">"모두 선택"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"모두 선택 해제"</string> <string name="menu_select" msgid="1366061076507142387">"선택"</string> - <string name="menu_sort" msgid="3362419226163725275">"정렬 기준..."</string> + <string name="menu_sort" msgid="3362419226163725275">"정렬 기준"</string> <string name="menu_copy" msgid="7404820171352314754">"다음으로 복사:"</string> <string name="menu_move" msgid="2310760789561129882">"다음으로 이동:"</string> <string name="menu_compress" msgid="37539111904724188">"압축"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"다시 시도"</string> <string name="button_clear" msgid="5412304437764369441">"삭제"</string> <string name="button_show_provider" msgid="6905880493806292753">"제공업체 앱에서 보기"</string> + <string name="button_back" msgid="1888621708934742182">"뒤로"</string> <string name="not_sorted" msgid="7813496644889115530">"정렬되지 않음"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"이름"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"요약"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"파일을 열 수 없습니다."</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"보관 파일 안에 있는 파일은 열 수 없습니다."</string> <string name="toast_failed_delete" msgid="3453846588205817591">"일부 문서를 삭제할 수 없습니다."</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"파일은 <xliff:g id="COUNT">%1$d</xliff:g>개까지만 공유할 수 있습니다."</string> <string name="share_via" msgid="8725082736005677161">"공유에 사용할 앱"</string> <string name="copy_notification_title" msgid="52256435625098456">"파일 복사"</string> <string name="compress_notification_title" msgid="6830195148113751021">"파일 압축 중"</string> @@ -182,8 +185,8 @@ <string name="rename_error" msgid="6700093173508118635">"문서 이름을 변경하지 못했습니다."</string> <string name="menu_eject_root" msgid="9215040039374893613">"꺼내기"</string> <string name="notification_copy_files_converted_title" msgid="6916768494891833365">"일부 파일이 변환되었습니다."</string> - <string name="open_external_dialog_request" msgid="8173558471322861268">"<xliff:g id="APPNAME"><b>^1</b></xliff:g>이(가) <xliff:g id="STORAGE"><i>^3</i></xliff:g>에서 <xliff:g id="DIRECTORY"><i>^2</i></xliff:g> 디렉토리에 액세스하도록 허용하시겠습니까?"</string> - <string name="open_external_dialog_request_primary_volume" msgid="2240992164087948176">"<xliff:g id="APPNAME"><b>^1</b></xliff:g>에서 <xliff:g id="DIRECTORY"><i>^2</i></xliff:g> 디렉토리에 액세스하도록 허용하시겠습니까?"</string> + <string name="open_external_dialog_request" msgid="8173558471322861268">"<xliff:g id="APPNAME"><b>^1</b></xliff:g>이(가) <xliff:g id="STORAGE"><i>^3</i></xliff:g>에서 <xliff:g id="DIRECTORY"><i>^2</i></xliff:g> 디렉터리에 액세스하도록 허용하시겠습니까?"</string> + <string name="open_external_dialog_request_primary_volume" msgid="2240992164087948176">"<xliff:g id="APPNAME"><b>^1</b></xliff:g>에서 <xliff:g id="DIRECTORY"><i>^2</i></xliff:g> 디렉터리에 액세스하도록 허용하시겠습니까?"</string> <string name="open_external_dialog_root_request" msgid="6776729293982633">"<xliff:g id="APPNAME"><b>^1</b></xliff:g>에서 사진, 동영상 등 <xliff:g id="STORAGE"><i>^2</i></xliff:g>의 내 데이터에 액세스하도록 허용하시겠습니까?"</string> <string name="allow" msgid="1275746941353040309">"허용"</string> <string name="deny" msgid="5127201668078153379">"거부"</string> @@ -212,7 +215,7 @@ <string name="images_shortcut_label" msgid="2545168016070493574">"이미지"</string> <string name="archive_loading_failed" msgid="7243436722828766996">"보관 파일을 열어 탐색할 수 없습니다. 파일이 손상되었거나 지원되지 않는 형식입니다."</string> <string name="name_conflict" msgid="28407269328862986">"이름이 같은 파일이 이미 존재합니다."</string> - <string name="authentication_required" msgid="8030880723643436099">"이 디렉토리를 보려면 <xliff:g id="NAME">%1$s</xliff:g>에 로그인하세요."</string> + <string name="authentication_required" msgid="8030880723643436099">"이 디렉터리를 보려면 <xliff:g id="NAME">%1$s</xliff:g>에 로그인하세요."</string> <string name="cant_display_content" msgid="8633226333229417237">"콘텐츠를 표시할 수 없습니다."</string> <string name="sign_in" msgid="6253762676723505592">"로그인"</string> <string name="new_archive_file_name" msgid="1604650338077249838">"보관처리<xliff:g id="EXTENSION">%s</xliff:g>"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"휴대전화의 최근 파일"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"휴대전화의 파일"</string> <string name="root_info_header_media" msgid="2774453755906260852">"휴대전화의 <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"다운로드 폴더의 파일"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g>의 파일"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g>의 파일"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g>의 파일"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g>의 파일/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"휴대전화에 있는 최근 이미지"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"휴대전화에 있는 이미지"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"다운로드 폴더의 이미지"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g>에 있는 이미지"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g>에 있는 이미지"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g>의 이미지"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g>의 이미지/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"이미지"</string> <string name="chip_title_audio" msgid="1032801828748235436">"오디오"</string> <string name="chip_title_videos" msgid="7011260091979776447">"동영상"</string> <string name="chip_title_documents" msgid="7432457563000753983">"문서"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"대용량 파일"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"이번 주"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"폴더 이름"</string> <string name="input_hint_rename" msgid="8390711744270994452">"새 이름"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> 파일 미리보기"</string> <string name="apps_row_title" msgid="3340490016663092925">"다른 앱의 파일 탐색"</string> <string name="anonymous_application" msgid="7633027057951625862">"익명"</string> - <string name="open_tree_button" msgid="19992834788135845">"\'<xliff:g id="DIRECTORY">%1$s</xliff:g>\'에 액세스하도록 허용"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\'<xliff:g id="ROOT">%2$s</xliff:g>\'에서 \'<xliff:g id="DIRECTORY">%1$s</xliff:g>\'에 액세스하도록 허용하시겠습니까?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"\'<xliff:g id="APPNAME">%1$s</xliff:g>\'이(가) 현재 이 위치에 저장된 모든 파일과 향후 여기에 저장되는 모든 콘텐츠에 대해 완전한 액세스 권한을 갖게 됩니다."</string> + <string name="open_tree_button" msgid="6402871398424497776">"이 폴더 사용"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g>에서 <xliff:g id="DIRECTORY">%2$s</xliff:g>의 파일에 액세스하도록 허용하시겠습니까?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"이를 통해 <xliff:g id="APPNAME">%1$s</xliff:g>에서 <xliff:g id="DIRECTORY">%2$s</xliff:g>에 저장된 현재 및 향후 콘텐츠에 액세스할 수 있습니다."</string> <string name="search_bar_hint" msgid="4517366509897977321">"이 휴대전화 검색"</string> + <string name="delete_search_history" msgid="2202015025607694515">"검색 기록 삭제 <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-ky/inspector_strings.xml b/res/values-ky/inspector_strings.xml index a120911c9..7b590500b 100644 --- a/res/values-ky/inspector_strings.xml +++ b/res/values-ky/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Композитор"</string> <string name="metadata_album" msgid="1661699531214720236">"Альбом"</string> <string name="metadata_address" msgid="1849921023707744640">"Жайгашкан жер"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Агымдын түрү"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Баштапкы өлчөмү (байт)"</string> </resources> diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml index fc5aaaf39..77aa9d3f5 100644 --- a/res/values-ky/strings.xml +++ b/res/values-ky/strings.xml @@ -35,7 +35,8 @@ <string name="menu_save" msgid="5195367497138965168">"Сактоо"</string> <string name="menu_share" msgid="4307140947108068356">"Бөлүшүү"</string> <string name="menu_delete" msgid="1022254131543256626">"Жок кылуу"</string> - <string name="menu_select_all" msgid="7600576812185570403">"Бардыгын тандоо"</string> + <string name="menu_select_all" msgid="7600576812185570403">"Баарын тандоо"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Баарын тандоодон чыгаруу"</string> <string name="menu_select" msgid="1366061076507142387">"Тандоо"</string> <string name="menu_sort" msgid="3362419226163725275">"Төмөнкү боюнча иреттөө…"</string> <string name="menu_copy" msgid="7404820171352314754">"Төмөнкүгө көчүрүү…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Кайра аракет кылыңыз"</string> <string name="button_clear" msgid="5412304437764369441">"Тазалоо"</string> <string name="button_show_provider" msgid="6905880493806292753">"Демейки колдонмодон көрсөтүү"</string> + <string name="button_back" msgid="1888621708934742182">"Артка"</string> <string name="not_sorted" msgid="7813496644889115530">"Ылганган эмес"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Аты"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Жыйынтыгы"</string> @@ -70,11 +72,11 @@ <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Файлдын аталышы (А-Я)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Түрү (А-Я)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Өлчөмү (эң кичинекейинен баштап)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Өзгөртүлдү (эң эскисинен баштап)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Өзгөрүүлөр (эң эскисинен баштап)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Файлдын аталышы (Я-А)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Түрү (Я-А)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Өлчөмү (эң чоңунан баштап)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Өзгөртүлдү (эң жаңысынан баштап)"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Өзгөрүүлөр (эң жаңысынан баштап)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Төмөнкү боюнча иреттөө:"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"<xliff:g id="LABEL">%s</xliff:g> боюнча иреттелди"</string> <string name="directory_items" msgid="6645621978998614003">"Элементтердин саны"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Файл ачылбай жатат"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Архивделген файлдарды ачуу мүмкүн эмес"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Кээ бир документтерди өчүрүү мүмкүн болбой жатат"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g> файлдан ашык бөлүшүүгө болбойт"</string> <string name="share_via" msgid="8725082736005677161">"Бул аркылуу бөлүшүү"</string> <string name="copy_notification_title" msgid="52256435625098456">"Файлдар көчүрүлүүдө"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Файлдар кысылууда"</string> @@ -184,9 +187,9 @@ <string name="notification_copy_files_converted_title" msgid="6916768494891833365">"Айрым файлдардын форматы өзгөртүлдү"</string> <string name="open_external_dialog_request" msgid="8173558471322861268">"<xliff:g id="APPNAME"><b>^1</b></xliff:g> колдонмосуна <xliff:g id="STORAGE"><i>^3</i></xliff:g> түзмөгүндөгү <xliff:g id="DIRECTORY"><i>^2</i></xliff:g> папканы пайдалануу мүмкүнчүлүгү берилсинби?"</string> <string name="open_external_dialog_request_primary_volume" msgid="2240992164087948176">"<xliff:g id="APPNAME"><b>^1</b></xliff:g> колдонмосуна <xliff:g id="DIRECTORY"><i>^2</i></xliff:g> каталогун пайдалануу мүмкүнчүлүгү берилсинби?"</string> - <string name="open_external_dialog_root_request" msgid="6776729293982633">"<xliff:g id="APPNAME"><b>^1</b></xliff:g> колдонмосуна <xliff:g id="STORAGE"><i>^2</i></xliff:g> түзмөгүндөгү дайындарыңыз, сүрөттөрүңүз жана видеолоруңузду пайдалануу мүмкүнчүлүгү берилсинби?"</string> + <string name="open_external_dialog_root_request" msgid="6776729293982633">"<xliff:g id="APPNAME"><b>^1</b></xliff:g> колдонмосуна <xliff:g id="STORAGE"><i>^2</i></xliff:g> түзмөгүндөгү дайын-даректериңиз, сүрөттөрүңүз жана видеолоруңузду пайдалануу мүмкүнчүлүгү берилсинби?"</string> <string name="allow" msgid="1275746941353040309">"Уруксат берүү"</string> - <string name="deny" msgid="5127201668078153379">"Жок"</string> + <string name="deny" msgid="5127201668078153379">"Тыюу салынат"</string> <plurals name="elements_selected" formatted="false" msgid="4448165978637163692"> <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> @@ -202,8 +205,8 @@ <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> файл жок кылынсынбы?</item> </plurals> <plurals name="delete_folders_confirmation_message" formatted="false" msgid="1028946402799686388"> - <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> + <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> <plurals name="delete_items_confirmation_message" formatted="false" msgid="7285090426511028179"> <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> нерсе жок кылынсынбы?</item> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Телефондогу акыркы файлдар"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Телефондогу файлдар"</string> <string name="root_info_header_media" msgid="2774453755906260852">"Телефондогу <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Жүктөлүп алынгандар папкасындагы файлдар"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> түзмөгүндөгү файлдар"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> папкасындагы файлдар"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> сактагычындагы файлдар"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> сактагычындагы файлдар / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Телефондогу акыркы сүрөттөр"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Телефондогу сүрөттөр"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Жүктөлүп алынгандар папкасындагы сүрөттөр"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> түзмөгүндөгү сүрөттөр"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> папкасындагы сүрөттөр"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g> сактагычындагы сүрөттөр"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> аккаунтунун сүрөттөрү"</string> <string name="chip_title_images" msgid="7838299046109841015">"Сүрөттөр"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Аудио"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Видеолор"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Документтер"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Көлөмдүү файлдар"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Ушул аптадагы"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Папканын аталышы"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Жаңы аталыш"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> файлын алдын ала көрүү"</string> <string name="apps_row_title" msgid="3340490016663092925">"Башка колдонмолордон файлдарды карап чыгуу"</string> <string name="anonymous_application" msgid="7633027057951625862">"Жашыруун"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" папкасын колдонууга уруксат берүү"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\" сактагычында жайгашкан \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" папкасына уруксат берилсинби?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Ушуну менен \"<xliff:g id="APPNAME">%1$s</xliff:g>\" колдонмосуна ушул жерде сакталган жана келечекте сактала турган бардык файлдарга кирүү мүмкүнчүлүгү берилет."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Бул папканы колдонуу"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g> колдонмосуна <xliff:g id="DIRECTORY">%2$s</xliff:g> папкасына кирүү мүмкүнчүлүгүн бересизби?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Бул <xliff:g id="APPNAME">%1$s</xliff:g> колдонмосуна <xliff:g id="DIRECTORY">%2$s</xliff:g> папкасында сакталган учурдагы жана келечектеги мазмунга кирүү мүмкүнчүлүгүн берет."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Ушул телефондо издөө"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Издөө таржымалы тазалансын: <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-lo/inspector_strings.xml b/res/values-lo/inspector_strings.xml index 6d02420a2..5160b3cc2 100644 --- a/res/values-lo/inspector_strings.xml +++ b/res/values-lo/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"ຜູ້ແຕ່ງ"</string> <string name="metadata_album" msgid="1661699531214720236">"ອະລະບໍ້າ"</string> <string name="metadata_address" msgid="1849921023707744640">"ສະຖານທີ່"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"ປະເພດສະຕຣີມ"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"ຂະໜາດ Raw (ໄບຕ໌)"</string> </resources> diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml index fb27c19d2..95e603be1 100644 --- a/res/values-lo/strings.xml +++ b/res/values-lo/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"ແບ່ງປັນ"</string> <string name="menu_delete" msgid="1022254131543256626">"ລຶບ"</string> <string name="menu_select_all" msgid="7600576812185570403">"ເລືອກທັງຫມົດ"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"ເຊົາເລືອກທັງໝົດ"</string> <string name="menu_select" msgid="1366061076507142387">"ເລືອກ"</string> <string name="menu_sort" msgid="3362419226163725275">"ຈັດຮຽງຕາມ..."</string> <string name="menu_copy" msgid="7404820171352314754">"ສຳເນົາໄປໃສ່..."</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"ລອງໃໝ່ອີກເທື່ອໜຶ່ງ"</string> <string name="button_clear" msgid="5412304437764369441">"ລຶບລ້າງ"</string> <string name="button_show_provider" msgid="6905880493806292753">"ສະແດງໃນຜູ້ໃຫ້ບລິການ"</string> + <string name="button_back" msgid="1888621708934742182">"ກັບຄືນ"</string> <string name="not_sorted" msgid="7813496644889115530">"ບໍ່ໄດ້ຈັດຮຽງ"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"ຊື່"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"ສະຫຼຸບ"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"ບໍ່ສາມາດເປີດໄຟລ໌ໄດ້"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"ບໍ່ສາມາດເປີດໄຟລ໌ໃນແຟ້ມຈັດເກັບໄດ້"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"ບໍ່ສາມາດລຶບບາງເອກະສານໄດ້"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"ບໍ່ສາມາດແບ່ງປັນໄດ້ຫຼາຍກວ່າ <xliff:g id="COUNT">%1$d</xliff:g> ໄຟລ໌"</string> <string name="share_via" msgid="8725082736005677161">"ແບ່ງປັນຜ່ານ"</string> <string name="copy_notification_title" msgid="52256435625098456">"ກຳລັງສຳເນົາໄຟລ໌"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ກຳລັງບີບອັດໄຟລ໌"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"ໄຟລ໌ຫຼ້າສຸດຢູ່ໂທລະສັບ"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"ໄຟລ໌ຢູ່ໂທລະສັບ"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> ຢູ່ໂທລະສັບ"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"ໄຟລ໌ໃນການດາວໂຫຼດ"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"ໄຟລ໌ຢູ່ <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"ໄຟລ໌ໃນ <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"ໄຟລ໌ຈາກ <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"ໄຟລ໌ຈາກ <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"ຮູບຫຼ້າສຸດຢູ່ໂທລະສັບ"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"ຮູບຢູ່ໂທລະສັບ"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"ຮູບໃນການດາວໂຫຼດ"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"ຮູບຢູ່ <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"ຮູບໃນ <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"ຮູບພາບຈາກ <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"ຮູບຈາກ <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"ຮູບພາບ"</string> <string name="chip_title_audio" msgid="1032801828748235436">"ສຽງ"</string> <string name="chip_title_videos" msgid="7011260091979776447">"ວິດີໂອ"</string> <string name="chip_title_documents" msgid="7432457563000753983">"ເອກະສານ"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"ໄຟລ໌ໃຫຍ່"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"ອາທິດນີ້"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"ຊື່ໂຟນເດີ"</string> <string name="input_hint_rename" msgid="8390711744270994452">"ຊື່ໃໝ່"</string> <string name="preview_file" msgid="4056622696305432343">"ເບິ່ງຕົວຢ່າງໄຟລ໌ <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"ເລືອກໄຟລ໌ໃນແອັບອື່ນ"</string> <string name="anonymous_application" msgid="7633027057951625862">"ບໍ່ລະບຸຊື່"</string> - <string name="open_tree_button" msgid="19992834788135845">"ອະນຸຍາດການເຂົ້າເຖິງ \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"ອະນຸຍາດໃຫ້ເຂົ້າເຖິງ \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" ຢູ່ \"<xliff:g id="ROOT">%2$s</xliff:g>\" ໄດ້ບໍ?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"ມັນຈະອະນຸຍາດໃຫ້ \"<xliff:g id="APPNAME">%1$s</xliff:g>\" ເຂົ້າເຖິງໄຟລ໌ທັງໝົດທີ່ຕອນນີ້ບັນທຶກໄວ້ຢູ່ບ່ອນນີ້ຢ່າງເຕັມຮູບແບບ ແລະ ຮວມທັງເນື້ອຫາໃນອະນາຄົດທີ່ບັນທຶກໄວ້ບ່ອນນີ້ນຳ."</string> + <string name="open_tree_button" msgid="6402871398424497776">"ໃຊ້ໂຟນເດີນີ້"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"ອະນຸຍາດໃຫ້ <xliff:g id="APPNAME">%1$s</xliff:g> ເຂົ້າເຖິງໄຟລ໌ໃນ <xliff:g id="DIRECTORY">%2$s</xliff:g> ໄດ້ບໍ?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"ນີ້ຈະເຮັດໃຫ້ <xliff:g id="APPNAME">%1$s</xliff:g> ມີສິດເຂົ້າເຖິງເນື້ອຫາປັດຈຸບັນ ແລະ ອະນາຄົດທີ່ຈັດເກັບໄວ້ໃນ <xliff:g id="DIRECTORY">%2$s</xliff:g> ໄດ້."</string> <string name="search_bar_hint" msgid="4517366509897977321">"ຊອກຫາໂທລະສັບໜ່ວຍນີ້"</string> + <string name="delete_search_history" msgid="2202015025607694515">"ລຶບປະຫວັດການຊອກຫາ <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-lt/inspector_strings.xml b/res/values-lt/inspector_strings.xml index 20c28bb46..73c60d1fe 100644 --- a/res/values-lt/inspector_strings.xml +++ b/res/values-lt/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Kompozitorius"</string> <string name="metadata_album" msgid="1661699531214720236">"Albumas"</string> <string name="metadata_address" msgid="1849921023707744640">"Vieta"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Srautų tipai"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Neapdoroto failo dydis (baitais)"</string> </resources> diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index 00e284004..18cf41b40 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Bendrinti"</string> <string name="menu_delete" msgid="1022254131543256626">"Ištrinti"</string> <string name="menu_select_all" msgid="7600576812185570403">"Pasirinkti viską"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Panaik. visus pasirinkimus"</string> <string name="menu_select" msgid="1366061076507142387">"Pasirinkti"</string> <string name="menu_sort" msgid="3362419226163725275">"Rūšiuoti pagal..."</string> <string name="menu_copy" msgid="7404820171352314754">"Kopijuoti į..."</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Bandyti dar kartą"</string> <string name="button_clear" msgid="5412304437764369441">"Išvalyti"</string> <string name="button_show_provider" msgid="6905880493806292753">"Rodyti naudojant teikėjo programą"</string> + <string name="button_back" msgid="1888621708934742182">"Atgal"</string> <string name="not_sorted" msgid="7813496644889115530">"Nerūšiuota"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Pavadinimas"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Suvestinė"</string> @@ -69,7 +71,7 @@ <string name="sort_dimension_date" msgid="4231005651895254033">"Pakeista"</string> <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Failo pav. (nuo A iki Z)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Tipas (nuo A iki Z)"</string> - <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Dydis (pirmiau mažiausi)"</string> + <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Dydis (pirm. mažiausi)"</string> <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Pakeista (pirm. sen.)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Failo pav. (nuo Z iki A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Tipas (nuo Z iki A)"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Nepavyksta atidaryti failo"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Negalima atidaryti failų archyvuose"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Nepavyko ištrinti kai kurių dokumentų"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Daugiausia galimų bendrinti failų skaičius: <xliff:g id="COUNT">%1$d</xliff:g>."</string> <string name="share_via" msgid="8725082736005677161">"Bendrinti naudojant"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopijuojami failai"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Glaudinami failai"</string> @@ -269,25 +272,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Naujausi failai telefone"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Failai telefone"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> telefone"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Failai aplanke „Atsisiuntimai“"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Failai „<xliff:g id="DEVICE">%1$s</xliff:g>“ įrenginyje"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Failai aplanke „<xliff:g id="FOLDER">%1$s</xliff:g>“"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Failai iš <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Failai iš <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Naujausi vaizdai telefone"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Vaizdai telefone"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Vaizdai aplanke „Atsisiuntimai“"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Vaizdai „<xliff:g id="DEVICE">%1$s</xliff:g>“"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Vaizdai aplanke „<xliff:g id="FOLDER">%1$s</xliff:g>“"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Vaizdai iš <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Vaizdai iš <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Vaizdai"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Garsas"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Vaizdo įrašai"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumentai"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Dideli failai"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Šią savaitę"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Aplanko pavadinimas"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Naujas pavadinimas"</string> <string name="preview_file" msgid="4056622696305432343">"Peržiūrėti failą „<xliff:g id="FILENAME">%1$s</xliff:g>“"</string> - <string name="apps_row_title" msgid="3340490016663092925">"Failų naršymas kitose programos"</string> + <string name="apps_row_title" msgid="3340490016663092925">"Failų naršymas kitose programose"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anoniminė"</string> - <string name="open_tree_button" msgid="19992834788135845">"Leisti pasiekti „<xliff:g id="DIRECTORY">%1$s</xliff:g>“"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Leisti pasiekti „<xliff:g id="DIRECTORY">%1$s</xliff:g>“, esantį „<xliff:g id="ROOT">%2$s</xliff:g>“?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"„<xliff:g id="APPNAME">%1$s</xliff:g>“ galės pasiekti visus šiuo metu šioje vietoje saugomus failus ir visą turinį, kuris bus čia saugomas."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Naudoti šį aplanką"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Leisti programai „<xliff:g id="APPNAME">%1$s</xliff:g>“ pasiekti failus kataloge „<xliff:g id="DIRECTORY">%2$s</xliff:g>“?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Taip programa „<xliff:g id="APPNAME">%1$s</xliff:g>“ galės pasiekti dabartinį ir būsimą turinį, saugomą kataloge „<xliff:g id="DIRECTORY">%2$s</xliff:g>“."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Ieškoti šiame telefone"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Ištrinkite paieškos istoriją <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-lv/inspector_strings.xml b/res/values-lv/inspector_strings.xml index 739d51936..b39ad4470 100644 --- a/res/values-lv/inspector_strings.xml +++ b/res/values-lv/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Komponists"</string> <string name="metadata_album" msgid="1661699531214720236">"Albums"</string> <string name="metadata_address" msgid="1849921023707744640">"Atrašanās vieta"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Straumes veidi"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Neapstrādāta faila lielums (baiti)"</string> </resources> diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index b9ec6c201..7fb7508f1 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Kopīgot"</string> <string name="menu_delete" msgid="1022254131543256626">"Dzēst"</string> <string name="menu_select_all" msgid="7600576812185570403">"Atlasīt visus"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Noņemt visu atlasi"</string> <string name="menu_select" msgid="1366061076507142387">"Atlasīt"</string> <string name="menu_sort" msgid="3362419226163725275">"Kārtot pēc..."</string> <string name="menu_copy" msgid="7404820171352314754">"Kopēt…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Mēģināt vēlreiz"</string> <string name="button_clear" msgid="5412304437764369441">"Dzēst"</string> <string name="button_show_provider" msgid="6905880493806292753">"Rādīt nodrošinātājā"</string> + <string name="button_back" msgid="1888621708934742182">"Atpakaļ"</string> <string name="not_sorted" msgid="7813496644889115530">"Nav kārtoti"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nosaukums"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Kopsavilkums"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Nevar atvērt failu."</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Nevar atvērt arhīvos esošos failus"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Nevar izdzēst dažus dokumentus."</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Nevar kopīgot vairāk par <xliff:g id="COUNT">%1$d</xliff:g> failu(-iem)."</string> <string name="share_via" msgid="8725082736005677161">"Kopīgošanas veids"</string> <string name="copy_notification_title" msgid="52256435625098456">"Failu kopēšana"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Failu saspiešana"</string> @@ -247,25 +250,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Jaunākie faili tālrunī"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Faili tālrunī"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> tālrunī"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Faili mapē Lejupielādes"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Faili ierīcē <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Faili mapē <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Faili no pakalpojuma <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Faili no pakalpojuma <xliff:g id="LABEL">%1$s</xliff:g> (<xliff:g id="SUMMARY">%2$s</xliff:g>)"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Pēdējie attēli tālrunī"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Attēli tālrunī"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Attēli mapē Lejupielādes"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Attēli ierīcē <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Attēli mapē <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Attēli no: <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Attēli no: <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Attēli"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videoklipi"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumenti"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Lieli faili"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Šajā nedēļā"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Mapes nosaukums"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Jauns nosaukums"</string> <string name="preview_file" msgid="4056622696305432343">"Priekšskatīt failu <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Failu pārlūkošana citās lietotnēs"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonīma"</string> - <string name="open_tree_button" msgid="19992834788135845">"Atļaut piekļuvi mapei “<xliff:g id="DIRECTORY">%1$s</xliff:g>”"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Vai atļaut piekļuvi mapei “<xliff:g id="DIRECTORY">%1$s</xliff:g>” šeit: <xliff:g id="ROOT">%2$s</xliff:g>?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Lietotnei <xliff:g id="APPNAME">%1$s</xliff:g> tiks piešķirta pilna piekļuve visiem failiem, kas pašlaik tiek glabāti šajā vietā, kā arī visam saturam, kas turpmāk šeit tiks glabāts."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Izmantot šo mapi"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Vai atļaut lietotnei <xliff:g id="APPNAME">%1$s</xliff:g> piekļūt failiem mapē <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Tādējādi lietotne <xliff:g id="APPNAME">%1$s</xliff:g> varēs piekļūt esošajam un turpmāk pievienotajam saturam mapē <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Meklēt šajā tālrunī"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Meklēšanas vēstures dzēšana <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-mk/inspector_strings.xml b/res/values-mk/inspector_strings.xml index 66cc7b66b..98ef24b19 100644 --- a/res/values-mk/inspector_strings.xml +++ b/res/values-mk/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Композитор"</string> <string name="metadata_album" msgid="1661699531214720236">"Албум"</string> <string name="metadata_address" msgid="1849921023707744640">"Локација"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Типови пренос"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Големина на необработена (бајти)"</string> </resources> diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index 60bcbab18..1534a7446 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Сподели"</string> <string name="menu_delete" msgid="1022254131543256626">"Избриши"</string> <string name="menu_select_all" msgid="7600576812185570403">"Избери ги сите"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Поништи го изборот на сите"</string> <string name="menu_select" msgid="1366061076507142387">"Избери"</string> <string name="menu_sort" msgid="3362419226163725275">"Подреди според…"</string> <string name="menu_copy" msgid="7404820171352314754">"Копирај во…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Обидете се повторно"</string> <string name="button_clear" msgid="5412304437764369441">"Исчисти"</string> <string name="button_show_provider" msgid="6905880493806292753">"Прикажи во услугата на операторот"</string> + <string name="button_back" msgid="1888621708934742182">"Назад"</string> <string name="not_sorted" msgid="7813496644889115530">"Неподредени"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Име"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Краток преглед"</string> @@ -69,11 +71,11 @@ <string name="sort_dimension_date" msgid="4231005651895254033">"Изменето"</string> <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Име на датотека (А до Ш)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Тип (А до Ш)"</string> - <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Големина (најмали први)"</string> + <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Големина (прво најмали)"</string> <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Изменети (прво најстари)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Име на датотека (Ш до А)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Тип (Ш до А)"</string> - <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Големина (најгол. први)"</string> + <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Големина (прво најголеми)"</string> <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Изменети (прво најнови)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Подреди според"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Сортирани според <xliff:g id="LABEL">%s</xliff:g>"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Датотеката не може да се отвори"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Не може да се отвораат датотеките во архивите"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Некои документи не може да се избришат"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Не може да се споделат повеќе од <xliff:g id="COUNT">%1$d</xliff:g> датотеки"</string> <string name="share_via" msgid="8725082736005677161">"Споделете преку"</string> <string name="copy_notification_title" msgid="52256435625098456">"Се копираат датотеки"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Компримирање датотеки"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Неодамнешни датотеки на телефонот"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Датотеки на телефонот"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> на телефонот"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Датотеки во „Преземања“"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Датотеки на <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Датотеки во <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Датотеки од <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Датотеки од <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Неодамнешни слики на телефонот"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Слики на телефонот"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Слики во „Преземања“"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Слики на <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Слики во <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Слики од <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Слики од <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Слики"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Аудио"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Видеа"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Документи"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Големи датотеки"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Оваа недела"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Име на папка"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Ново име"</string> <string name="preview_file" msgid="4056622696305432343">"Прегледајте ја датотеката <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Прелистувајте датотеки во други апликации"</string> <string name="anonymous_application" msgid="7633027057951625862">"Анонимна"</string> - <string name="open_tree_button" msgid="19992834788135845">"Дозволи пристап до „<xliff:g id="DIRECTORY">%1$s</xliff:g>“"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Да се дозволи пристап до „<xliff:g id="DIRECTORY">%1$s</xliff:g>“ на „<xliff:g id="ROOT">%2$s</xliff:g>“?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Ќе ѝ се дозволи на <xliff:g id="APPNAME">%1$s</xliff:g> да има целосен пристап до сите датотеки моментално складирани на оваа локација и до сите идни содржини складирани тука."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Користи ја папкава"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Да се дозволи <xliff:g id="APPNAME">%1$s</xliff:g> да пристапува до датотеките во <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Ова ќе дозволи <xliff:g id="APPNAME">%1$s</xliff:g> да пристапува до постојните и идните содржини меморирани во <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Пребарајте го телефонов"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Избришете ја историјата на пребарување <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-ml/inspector_strings.xml b/res/values-ml/inspector_strings.xml index 05372300a..2ac5277b2 100644 --- a/res/values-ml/inspector_strings.xml +++ b/res/values-ml/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"കമ്പോസർ"</string> <string name="metadata_album" msgid="1661699531214720236">"ആല്ബം"</string> <string name="metadata_address" msgid="1849921023707744640">"ലൊക്കേഷൻ"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"സ്ട്രീം തരങ്ങൾ"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"റോ വലുപ്പം (ബൈറ്റുകൾ)"</string> </resources> diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml index 30b0b2a1b..a775ce35e 100644 --- a/res/values-ml/strings.xml +++ b/res/values-ml/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"പങ്കിടുക"</string> <string name="menu_delete" msgid="1022254131543256626">"ഇല്ലാതാക്കുക"</string> <string name="menu_select_all" msgid="7600576812185570403">"എല്ലാം തിരഞ്ഞെടുക്കുക"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"തിരഞ്ഞെടുത്തതെല്ലാം മാറ്റുക"</string> <string name="menu_select" msgid="1366061076507142387">"തിരഞ്ഞെടുക്കുക"</string> <string name="menu_sort" msgid="3362419226163725275">"ഇപ്രകാരം അടുക്കുക..."</string> <string name="menu_copy" msgid="7404820171352314754">"ഇതിൽ പകർത്തുക…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"വീണ്ടും ശ്രമിക്കുക"</string> <string name="button_clear" msgid="5412304437764369441">"മായ്ക്കുക"</string> <string name="button_show_provider" msgid="6905880493806292753">"ദാതാവിൽ കാണിക്കുക"</string> + <string name="button_back" msgid="1888621708934742182">"മടങ്ങുക"</string> <string name="not_sorted" msgid="7813496644889115530">"അടുക്കിയിട്ടില്ല"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"പേര്"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"ചുരുക്കം"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"ഫയൽ തുറക്കാൻ കഴിയില്ല"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"ആർക്കൈവുകളിലെ ഫയലുകൾ തുറക്കാൻ കഴിയില്ല"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"ചില പ്രമാണങ്ങൾ ഇല്ലാതാക്കാനായില്ല"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g>-ൽ കൂടുതൽ ഫയലുകൾ പങ്കിടാനാകില്ല"</string> <string name="share_via" msgid="8725082736005677161">"ഇതുവഴി പങ്കിടുക"</string> <string name="copy_notification_title" msgid="52256435625098456">"ഫയലുകൾ പകർത്തുന്നു"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ഫയലുകൾ കംപ്രസ്സുചെയ്യുന്നു"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"ഫോണിലെ അടുത്തിടെയുള്ള ഫയലുകൾ"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"ഫോണിലെ ഫയലുകൾ"</string> <string name="root_info_header_media" msgid="2774453755906260852">"ഫോണിലെ <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"ഡൗൺലോഡുകളിലെ ഫയലുകൾ"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g>-ലെ ഫയലുകൾ"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> എന്നതിലെ ഫയലുകൾ"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> എന്നതിൽ നിന്നുള്ള ഫയലുകൾ"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> എന്നതിൽ നിന്നുള്ള ഫയലുകൾ"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"ഫോണിലെ അടുത്തിടെയുള്ള ചിത്രങ്ങൾ"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"ഫോണിലെ ചിത്രങ്ങൾ"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"ഡൗൺലോഡുകളിലെ ചിത്രങ്ങൾ"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> എന്ന ഉപകരണത്തിലെ ചിത്രങ്ങൾ"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> എന്നതിലെ ചിത്രങ്ങൾ"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g>-ലെ ചിത്രങ്ങൾ"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> എന്നതിൽ നിന്നുള്ള ചിത്രങ്ങൾ"</string> <string name="chip_title_images" msgid="7838299046109841015">"ചിത്രങ്ങൾ"</string> <string name="chip_title_audio" msgid="1032801828748235436">"ഓഡിയോ"</string> <string name="chip_title_videos" msgid="7011260091979776447">"വീഡിയോകൾ"</string> <string name="chip_title_documents" msgid="7432457563000753983">"ഡോക്യുമെന്റുകൾ"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"വലിയ ഫയലുകൾ"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"ഈ ആഴ്ച"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"ഫോൾഡറിന്റെ പേര്"</string> <string name="input_hint_rename" msgid="8390711744270994452">"പുതിയ പേര്"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> ഫയൽ പ്രിവ്യൂ ചെയ്യുക"</string> <string name="apps_row_title" msgid="3340490016663092925">"ഫയലുകള് മറ്റ് ആപ്പുകളില് ബ്രൗസ് ചെയ്യുക"</string> <string name="anonymous_application" msgid="7633027057951625862">"അജ്ഞാതം"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" എന്നതിലേക്ക് ആക്സസ് അനുവദിക്കുക"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\" എന്നതിൽ \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" എന്നതിലേക്ക് ആക്സസ് നൽകണോ?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"ഇത് \"<xliff:g id="APPNAME">%1$s</xliff:g>\" ആപ്പിന് ഈ ലൊക്കേഷനിൽ സംഭരിച്ചിരിക്കുന്ന എല്ലാ ഫയലുകളിലേക്കും ഭാവിയിൽ ഇവിടെ സംഭരിക്കപ്പെടുന്ന എല്ലാ ഉള്ളടക്കത്തിലേക്കും പൂർണ്ണ ആക്സസ് അനുവദിക്കും."</string> - <string name="search_bar_hint" msgid="4517366509897977321">"ഈ ഫോൺ തിരയുക"</string> + <string name="open_tree_button" msgid="6402871398424497776">"ഈ ഫോൾഡർ ഉപയോഗിക്കുക"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="DIRECTORY">%2$s</xliff:g> എന്നതിലെ ഫയലുകൾ ആക്സസ് ചെയ്യാൻ <xliff:g id="APPNAME">%1$s</xliff:g> എന്നതിനെ അനുവദിക്കണോ?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"ഇത് <xliff:g id="APPNAME">%1$s</xliff:g> എന്നതിനെ <xliff:g id="DIRECTORY">%2$s</xliff:g> എന്നതിൽ നിലവിൽ സംഭരിച്ചിട്ടുള്ളതും ഭാവിയിൽ സംഭരിക്കുന്നതുമായ ഉള്ളടക്കം ആക്സസ് ചെയ്യാൻ അനുവദിക്കും."</string> + <string name="search_bar_hint" msgid="4517366509897977321">"ഈ ഫോണിൽ തിരയുക"</string> + <string name="delete_search_history" msgid="2202015025607694515">"തിരയൽ ചരിത്രം <xliff:g id="TEXT">%1$s</xliff:g> ഇല്ലാതാക്കുക"</string> </resources> diff --git a/res/values-mn/inspector_strings.xml b/res/values-mn/inspector_strings.xml index a06af5a6b..625c31a07 100644 --- a/res/values-mn/inspector_strings.xml +++ b/res/values-mn/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Хөгжмийн зохиолч"</string> <string name="metadata_album" msgid="1661699531214720236">"Цомог"</string> <string name="metadata_address" msgid="1849921023707744640">"Байршил"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Цацалтын төрөл"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"RAW-н хэмжээ (байт)"</string> </resources> diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml index 0a68e23a8..16f29c840 100644 --- a/res/values-mn/strings.xml +++ b/res/values-mn/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Хуваалцах"</string> <string name="menu_delete" msgid="1022254131543256626">"Устгах"</string> <string name="menu_select_all" msgid="7600576812185570403">"Бүгдийг сонгох"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Бүх сонголтыг цуцлах"</string> <string name="menu_select" msgid="1366061076507142387">"Сонгох"</string> <string name="menu_sort" msgid="3362419226163725275">"Дараахаар эрэмбэлэх..."</string> <string name="menu_copy" msgid="7404820171352314754">"Дараахад хуулах..."</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Дахин оролдох"</string> <string name="button_clear" msgid="5412304437764369441">"Устгах"</string> <string name="button_show_provider" msgid="6905880493806292753">"Үйлчилгээ үзүүлэгчид харуулах"</string> + <string name="button_back" msgid="1888621708934742182">"Буцах"</string> <string name="not_sorted" msgid="7813496644889115530">"Эрэмбэлээгүй"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Нэр"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Хураангуй"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Файлыг нээх боломжгүй байна"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Архивын файлыг нээх боломжгүй"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Зарим документыг устгах боломжгүй"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g>-с илүү файл хуваалцах боломжгүй"</string> <string name="share_via" msgid="8725082736005677161">"Дараахаар хуваалцах"</string> <string name="copy_notification_title" msgid="52256435625098456">"Файлыг хуулж байна"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Файлыг шахаж байна"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Утсан дээрх саяхны файлууд"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Утсан дээрх файлууд"</string> <string name="root_info_header_media" msgid="2774453755906260852">"Утсан дээрх <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Таталтад байгаа файлууд"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> дээрх файлууд"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g>-д байгаа файл"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g>-н файлууд"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>-н файлууд"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Утсан дээрх саяхны зураг"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Утсан дээрх зураг"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Таталтад байгаа зургууд"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> дээрх зураг"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g>-д байгаа зураг"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g>-н зураг"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>-н зураг"</string> <string name="chip_title_images" msgid="7838299046109841015">"Зураг"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Аудио"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Видео"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Документ"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Том файл"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Энэ долоо хоног"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Фолдерын нэр"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Шинэ нэр"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> файлыг урьдчилан үзэх"</string> <string name="apps_row_title" msgid="3340490016663092925">"Бусад аппын файлыг үзэх"</string> <string name="anonymous_application" msgid="7633027057951625862">"Үл мэдэгдэх"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\"-н хандалтыг зөвшөөрөх"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\"-н хандалтыг \"<xliff:g id="ROOT">%2$s</xliff:g>\" дээр зөвшөөрөх үү?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Энэ нь \"<xliff:g id="APPNAME">%1$s</xliff:g>\"-д одоогоор энэ байршилд хадгалсан бүх файл болон үүнд цаашид хадгалах контентод бүрэн хандахыг зөвшөөрнө."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Энэ фолдерыг ашиглах"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="DIRECTORY">%2$s</xliff:g>-д байгаа файлд хандахыг <xliff:g id="APPNAME">%1$s</xliff:g>-д зөвшөөрөх үү?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Энэ нь <xliff:g id="DIRECTORY">%2$s</xliff:g>-д одоо байгаа болон ирээдүйд хадгалах контентод хандахыг <xliff:g id="APPNAME">%1$s</xliff:g>-д зөвшөөрнө."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Энэ утсыг хайх"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Хайлтын түүхийг устгах <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-mr/inspector_strings.xml b/res/values-mr/inspector_strings.xml index d933b5677..674b34f31 100644 --- a/res/values-mr/inspector_strings.xml +++ b/res/values-mr/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"रचनाकार"</string> <string name="metadata_album" msgid="1661699531214720236">"अल्बम"</string> <string name="metadata_address" msgid="1849921023707744640">"स्थान"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"स्ट्रीम प्रकार"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"रॉ आकार (बाइट)"</string> </resources> diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml index 59e963199..4b3dbbf4e 100644 --- a/res/values-mr/strings.xml +++ b/res/values-mr/strings.xml @@ -22,7 +22,7 @@ <skip /> <!-- no translation found for launcher_label (799410258349837668) --> <skip /> - <string name="title_open" msgid="3165686459158020921">"वरून उघडा"</string> + <string name="title_open" msgid="3165686459158020921">"यामधून उघडा"</string> <string name="title_save" msgid="4384490653102710025">"येथे सेव्ह करा"</string> <string name="menu_create_dir" msgid="2413624798689091042">"नवीन फोल्डर"</string> <string name="menu_grid" msgid="1453636521731880680">"ग्रिड दृश्य"</string> @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"शेअर करा"</string> <string name="menu_delete" msgid="1022254131543256626">"हटवा"</string> <string name="menu_select_all" msgid="7600576812185570403">"सर्व निवडा"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"सर्व निवडी रद्द करा"</string> <string name="menu_select" msgid="1366061076507142387">"निवडा"</string> <string name="menu_sort" msgid="3362419226163725275">"क्रमानुसार लावा…"</string> <string name="menu_copy" msgid="7404820171352314754">"यावर कॉपी करा…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"पुन्हा प्रयत्न करा"</string> <string name="button_clear" msgid="5412304437764369441">"साफ करा"</string> <string name="button_show_provider" msgid="6905880493806292753">"पुरवठादारामध्ये दाखवा"</string> + <string name="button_back" msgid="1888621708934742182">"मागे जा"</string> <string name="not_sorted" msgid="7813496644889115530">"क्रमवारी लावलेली नाही"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"नाव"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"सारांश"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"फाईल उघडू शकत नाही"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"संग्रहणांमध्ये फायली उघडू शकत नाही"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"काही दस्तऐवज हटविण्यात अक्षम"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g> हून अधिक फाइल शेअर करू शकत नाही"</string> <string name="share_via" msgid="8725082736005677161">"द्वारे शेअर करा"</string> <string name="copy_notification_title" msgid="52256435625098456">"फायली कॉपी करणे"</string> <string name="compress_notification_title" msgid="6830195148113751021">"फायली संकुचित करत आहे"</string> @@ -105,24 +108,24 @@ <string name="delete_notification_title" msgid="2512757431856830792">"फायली हटविणे"</string> <string name="copy_remaining" msgid="5390517377265177727">"<xliff:g id="DURATION">%s</xliff:g> शिल्लक"</string> <plurals name="copy_begin" formatted="false" msgid="151184708996738192"> - <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> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> आयटम कॉपी करत आहे.</item> </plurals> <plurals name="compress_begin" formatted="false" msgid="3534158317098678895"> - <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> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> फाइल संकुचित करत आहे.</item> </plurals> <plurals name="extract_begin" formatted="false" msgid="1006380679562903749"> - <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> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> फाइल काढत आहे.</item> </plurals> <plurals name="move_begin" formatted="false" msgid="1464229874265756956"> - <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> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> आयटम हलवत आहे.</item> </plurals> <plurals name="deleting" formatted="false" msgid="1729138001178158901"> - <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> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> आयटम हटवत आहे.</item> </plurals> <string name="undo" msgid="2902438994196400565">"पूर्ववत करा"</string> <string name="copy_preparing" msgid="4759516490222449324">"तयार करत आहे…"</string> @@ -132,50 +135,50 @@ <string name="delete_preparing" msgid="7339349837842802508">"तयार करत आहे…"</string> <string name="delete_progress" msgid="2627631054702306423">"<xliff:g id="COUNT_0">%1$d</xliff:g> / <xliff:g id="TOTALCOUNT">%2$d</xliff:g>"</string> <plurals name="copy_error_notification_title" formatted="false" msgid="3188432450429390963"> - <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> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> आयटम कॉपी करु शकलो नाही</item> </plurals> <plurals name="compress_error_notification_title" formatted="false" msgid="3043630066678213644"> - <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> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> फाइल संकुचित करू शकले नाही</item> </plurals> <plurals name="move_error_notification_title" formatted="false" msgid="2185736082411854754"> - <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> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> आयटम हलवू शकलो नाही</item> </plurals> <plurals name="delete_error_notification_title" formatted="false" msgid="7568122018481625267"> - <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> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> आयटम हटवू शकलो नाही</item> </plurals> <string name="notification_touch_for_details" msgid="2385563502445129570">"तपशील पाहण्यासाठी टॅप करा"</string> <string name="close" msgid="905969391788869975">"बंद करा"</string> <plurals name="copy_failure_alert_content" formatted="false" msgid="5570549471912990536"> - <item quantity="one">ही फाइल कॉपी केली नव्हती: <xliff:g id="LIST_1">%1$s</xliff:g></item> <item quantity="other">या फायली कॉपी केल्या नव्हत्या: <xliff:g id="LIST_1">%1$s</xliff:g></item> + <item quantity="one">ही फाइल कॉपी केली नव्हती: <xliff:g id="LIST_0">%1$s</xliff:g></item> </plurals> <plurals name="compress_failure_alert_content" formatted="false" msgid="5760632881868842400"> - <item quantity="one">ही फाइल संकुचित केली नव्हती: <xliff:g id="LIST_1">%1$s</xliff:g></item> <item quantity="other">या फायली संकुचित केल्या नव्हत्या: <xliff:g id="LIST_1">%1$s</xliff:g></item> + <item quantity="one">ही फाइल संकुचित केली नव्हती: <xliff:g id="LIST_0">%1$s</xliff:g></item> </plurals> <plurals name="extract_failure_alert_content" formatted="false" msgid="7572748127571720803"> - <item quantity="one">ही फाइल काढली नव्हती: <xliff:g id="LIST_1">%1$s</xliff:g></item> <item quantity="other">या फायली काढल्या नव्हत्या: <xliff:g id="LIST_1">%1$s</xliff:g></item> + <item quantity="one">ही फाइल काढली नव्हती: <xliff:g id="LIST_0">%1$s</xliff:g></item> </plurals> <plurals name="move_failure_alert_content" formatted="false" msgid="2747390342670799196"> - <item quantity="one">ही फाइल हलवली नव्हती: <xliff:g id="LIST_1">%1$s</xliff:g></item> <item quantity="other">या फायली हलवल्या नव्हत्या: <xliff:g id="LIST_1">%1$s</xliff:g></item> + <item quantity="one">ही फाइल हलवली नव्हती: <xliff:g id="LIST_0">%1$s</xliff:g></item> </plurals> <plurals name="delete_failure_alert_content" formatted="false" msgid="6122372614839711711"> - <item quantity="one">ही फाइल हटवली नव्हती: <xliff:g id="LIST_1">%1$s</xliff:g></item> <item quantity="other">या फायली हटवल्या नव्हत्या: <xliff:g id="LIST_1">%1$s</xliff:g></item> + <item quantity="one">ही फाइल हटवली नव्हती: <xliff:g id="LIST_0">%1$s</xliff:g></item> </plurals> <plurals name="copy_converted_warning_content" formatted="false" msgid="7433742181712126588"> - <item quantity="one">ही फाइल अन्य स्वरूपात रूपांतरित केली होती: <xliff:g id="LIST_1">%1$s</xliff:g></item> <item quantity="other">या फायली अन्य स्वरूपात रूपांतरित केल्या होत्या: <xliff:g id="LIST_1">%1$s</xliff:g></item> + <item quantity="one">ही फाइल अन्य स्वरूपात रूपांतरित केली होती: <xliff:g id="LIST_0">%1$s</xliff:g></item> </plurals> <plurals name="clipboard_files_clipped" formatted="false" msgid="4847061634862926902"> - <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> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> आयटम क्लिपबोर्डवर कॉपी केला.</item> </plurals> <string name="file_operation_rejected" msgid="4301554203329008794">"फाइल ऑपरेशन समर्थित नाही."</string> <string name="file_operation_error" msgid="2234357335716533795">"फाइल ऑपरेशन अयशस्वी झाले."</string> @@ -188,26 +191,26 @@ <string name="allow" msgid="1275746941353040309">"अनुमती द्या"</string> <string name="deny" msgid="5127201668078153379">"नकार द्या"</string> <plurals name="elements_selected" formatted="false" msgid="4448165978637163692"> - <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> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> निवडला</item> </plurals> <plurals name="elements_dragged" formatted="false" msgid="5932571296037626279"> - <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> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> आयटम</item> </plurals> <string name="delete_filename_confirmation_message" msgid="8338069763240613258">"\"<xliff:g id="NAME">%1$s</xliff:g>\" हटवायची?"</string> - <string name="delete_foldername_confirmation_message" msgid="9084085260877704140">"\"<xliff:g id="NAME">%1$s</xliff:g>\" फोल्डर आणि त्यामधील सामग्री हटवायची?"</string> + <string name="delete_foldername_confirmation_message" msgid="9084085260877704140">"\"<xliff:g id="NAME">%1$s</xliff:g>\" फोल्डर आणि त्यामधील आशय हटवायचा?"</string> <plurals name="delete_files_confirmation_message" formatted="false" msgid="4866664063250034142"> - <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> + <item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> फाईल हटवायची?</item> </plurals> <plurals name="delete_folders_confirmation_message" formatted="false" msgid="1028946402799686388"> - <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> + <item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> फोल्डर आणि त्यामधील सामग्री हटवायची?</item> </plurals> <plurals name="delete_items_confirmation_message" formatted="false" msgid="7285090426511028179"> - <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> + <item quantity="one"> <xliff:g id="COUNT_0">%1$d</xliff:g> आयटम हटवायचा?</item> </plurals> <string name="images_shortcut_label" msgid="2545168016070493574">"इमेज"</string> <string name="archive_loading_failed" msgid="7243436722828766996">"ब्राउझिंगसाठी संग्रहण उघडण्यात अक्षम. फाइल एकतर दूषित झाली आहे किंवा असमर्थित स्वरूपात आहे."</string> @@ -219,32 +222,38 @@ <string name="overwrite_file_confirmation_message" msgid="2496109652768222716">"<xliff:g id="NAME">%1$s</xliff:g> अधिलिखित करायचे?"</string> <string name="continue_in_background" msgid="1974214559047793331">"पार्श्वभूमीमध्ये सुरू ठेवा"</string> <plurals name="selected_count" formatted="false" msgid="7555250236512981129"> - <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> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> निवडला</item> </plurals> <string name="root_info_header_recent" msgid="8754386597210017725">"फोनवरील अलीकडील फायली"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"फोनवरील फायली"</string> <string name="root_info_header_media" msgid="2774453755906260852">"फोनवरील <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"डाउनलोड मधील फाइल"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> वरील फायली"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> मधील फाइल"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> मधील फायली"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> मधील फायली / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"फोनवरील अलीकडील इमेज"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"फोनवरील इमेज"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"डाउनलोड मधील इमेज"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> वरील इमेज"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> मधील इमेज"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g> कडील इमेज"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> कडील इमेज"</string> <string name="chip_title_images" msgid="7838299046109841015">"इमेज"</string> <string name="chip_title_audio" msgid="1032801828748235436">"ऑडिओ"</string> <string name="chip_title_videos" msgid="7011260091979776447">"व्हिडिओ"</string> <string name="chip_title_documents" msgid="7432457563000753983">"दस्तऐवज"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"मोठ्या फाइल"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"या आठवड्यामध्ये"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"फोल्डर नाव"</string> <string name="input_hint_rename" msgid="8390711744270994452">"नवीन नाव"</string> <string name="preview_file" msgid="4056622696305432343">"फाइल <xliff:g id="FILENAME">%1$s</xliff:g> चे पूर्वावलोकन करा"</string> - <string name="apps_row_title" msgid="3340490016663092925">"इतर अॅप्समध्येे फायली ब्राउझ करा"</string> + <string name="apps_row_title" msgid="3340490016663092925">"इतर अॅप्समधील फायली ब्राउझ करा"</string> <string name="anonymous_application" msgid="7633027057951625862">"अनामित"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" ला अॅक्सेस करण्याची अनुमती द्या"</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"हे या स्थानावर सध्या स्टोअर केलेल्या सर्व फायलींच्या आणि भविष्यात स्टोअर केलेल्या आशयाच्या अॅक्सेसची \"<xliff:g id="APPNAME">%1$s</xliff:g>\" ला अनुमती देईल."</string> - <string name="search_bar_hint" msgid="4517366509897977321">"हा फोन शोधा"</string> + <string name="open_tree_button" msgid="6402871398424497776">"हे फोल्डर वापरा"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="DIRECTORY">%2$s</xliff:g> मधील फाइल ॲक्सेस करण्यासाठी <xliff:g id="APPNAME">%1$s</xliff:g> ला अनुमती द्यायची आहे का?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"असे केल्याने, <xliff:g id="DIRECTORY">%2$s</xliff:g> मधील सध्याचा आणि भविष्यातील आशय ॲक्सेस करण्याची <xliff:g id="APPNAME">%1$s</xliff:g> ला अनुमती देते."</string> + <string name="search_bar_hint" msgid="4517366509897977321">"या फोनमध्ये शोधा"</string> + <string name="delete_search_history" msgid="2202015025607694515">"<xliff:g id="TEXT">%1$s</xliff:g> चा शोध इतिहास हटवा"</string> </resources> diff --git a/res/values-ms/inspector_strings.xml b/res/values-ms/inspector_strings.xml index c6f214b5e..70272edca 100644 --- a/res/values-ms/inspector_strings.xml +++ b/res/values-ms/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Komposer"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Lokasi"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Jenis strim"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Saiz mentah (bait)"</string> </resources> diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml index f06d9a0a2..fa3c4a1f2 100644 --- a/res/values-ms/strings.xml +++ b/res/values-ms/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Kongsi"</string> <string name="menu_delete" msgid="1022254131543256626">"Padam"</string> <string name="menu_select_all" msgid="7600576812185570403">"Pilih semua"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Nyahpilih semua"</string> <string name="menu_select" msgid="1366061076507142387">"Pilih"</string> <string name="menu_sort" msgid="3362419226163725275">"Isih mengikut…"</string> <string name="menu_copy" msgid="7404820171352314754">"Salin ke…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Cuba Lagi"</string> <string name="button_clear" msgid="5412304437764369441">"Kosongkan"</string> <string name="button_show_provider" msgid="6905880493806292753">"Tunjukkan dalam pembekal"</string> + <string name="button_back" msgid="1888621708934742182">"Kembali"</string> <string name="not_sorted" msgid="7813496644889115530">"Tidak diisih"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nama"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Ringkasan"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Tidak dapat membuka fail"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Tidak dapat membuka fail dalam arkib"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Tidak dapat memadamkan sesetengah dokumen"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Tidak boleh berkongsi lebih daripada <xliff:g id="COUNT">%1$d</xliff:g> fail"</string> <string name="share_via" msgid="8725082736005677161">"Kongsi melalui"</string> <string name="copy_notification_title" msgid="52256435625098456">"Menyalin fail"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Memampatkan fail"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Fail terbaharu pada telefon"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Fail pada telefon"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> pada telefon"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Fail dalam Muat Turun"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Fail pada <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Fail dalam <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Fail daripada <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Fail daripada <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Imej terbaharu pada telefon"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Imej pada telefon"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Imej dalam Muat Turun"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Imej pada <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Imej dalam <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Imej daripada <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Imej daripada <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Imej"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Video"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumen"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Fail besar"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Minggu ini"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Nama folder"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nama baharu"</string> <string name="preview_file" msgid="4056622696305432343">"Pratonton fail <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Semak imbas fail dalam apl lain"</string> <string name="anonymous_application" msgid="7633027057951625862">"Awanama"</string> - <string name="open_tree_button" msgid="19992834788135845">"Benarkan akses kepada \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Benarkan akses kepada \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" pada \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Aliran ini membenarkan \"<xliff:g id="APPNAME">%1$s</xliff:g>\" mendapat akses penuh kepada semua fail yang disimpan di bawah lokasi ini pada masa ini dan sebarang kandungan masa hadapan yang disimpan di sini."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Gunakan folder ini"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Benarkan <xliff:g id="APPNAME">%1$s</xliff:g> mengakses fail dalam <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Tindakan ini akan membenarkan <xliff:g id="APPNAME">%1$s</xliff:g> mengakses kandungan semasa dan kandungan masa hadapan yang disimpan dalam <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Cari dalam telefon ini"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Padamkan sejarah carian <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-my/inspector_strings.xml b/res/values-my/inspector_strings.xml index af368f32e..c93afc07c 100644 --- a/res/values-my/inspector_strings.xml +++ b/res/values-my/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"ရေးစပ်သူ"</string> <string name="metadata_album" msgid="1661699531214720236">"အယ်လ်ဘမ်"</string> <string name="metadata_address" msgid="1849921023707744640">"တည်နေရာ"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"ထုတ်လွှင့်မှုအမျိုးအစားများ"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"အကြမ်းထည် အရွယ်အစား (ဘိုက်)"</string> </resources> diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml index ea3b658bd..539104406 100644 --- a/res/values-my/strings.xml +++ b/res/values-my/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"မျှဝေပါ"</string> <string name="menu_delete" msgid="1022254131543256626">"ဖျက်ပါ"</string> <string name="menu_select_all" msgid="7600576812185570403">"အားလုံးကို ရွေးပါ"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"အားလုံးကို ပြန်ဖြုတ်ရန်"</string> <string name="menu_select" msgid="1366061076507142387">"ရွေးရန်"</string> <string name="menu_sort" msgid="3362419226163725275">"အောက်ပါအရ စီရန်…"</string> <string name="menu_copy" msgid="7404820171352314754">"ဤနေရာသို့ ကူးထည့်ပါ…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"ပြန်စမ်းကြည့်ပါ"</string> <string name="button_clear" msgid="5412304437764369441">"ရှင်းထုတ်ရန်"</string> <string name="button_show_provider" msgid="6905880493806292753">"ပံ့ပိုးပေးသူတွင် ပြရန်"</string> + <string name="button_back" msgid="1888621708934742182">"နောက်သို့"</string> <string name="not_sorted" msgid="7813496644889115530">"စီမထားပါ"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"အမည်"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"အနှစ်ချုပ်"</string> @@ -70,7 +72,7 @@ <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"ဖိုင်အမည် (A မှ Z)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"အမျိုးအစား (A မှ Z)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"အရွယ်အစား (အသေးဆုံးမှစ)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"မွမ်းမံချိန် (အဟောင်း)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"မွမ်းမံချိန် (အဟောင်းမှစ)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"ဖိုင်အမည် (Z မှ A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"အမျိုးအစား (Z မှ A)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"အရွယ်အစား (အကြီးဆုံးမှစ)"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"ဖိုင်ကို ဖွင့်၍မရပါ"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"မှတ်တမ်းဟောင်းထဲမှ ဖိုင်များကို ဖွင့်၍မရပါ"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"အချို့စာဖိုင်များကို ဖျက်၍မရပါ"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"ဖိုင် <xliff:g id="COUNT">%1$d</xliff:g> ခုထက်ပိုပြီး မျှဝေ၍မရပါ"</string> <string name="share_via" msgid="8725082736005677161">"အောက်ပါနည်းလမ်းဖြင့် မျှဝေပါ"</string> <string name="copy_notification_title" msgid="52256435625098456">"ဖိုင်များကူးယူနေသည်"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ဖိုင်များကို ချုံ့နေသည်"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"ဖုန်းပေါ်ရှိ လတ်တလောဖိုင်များ"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"ဖုန်းပေါ်ရှိ ဖိုင်များ"</string> <string name="root_info_header_media" msgid="2774453755906260852">"ဖုန်းပေါ်ရှိ <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"\'ဒေါင်းလုဒ်များ\' ရှိ ဖိုင်များ"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> ပေါ်ရှိ ဖိုင်များ"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> ရှိ ဖိုင်များ"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> မှ ဖိုင်များ"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> မှ ဖိုင်များ"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"ဖုန်းပေါ်ရှိ လတ်တလောပုံများ"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"ဖုန်းပေါ်ရှိ ပုံများ"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"\'ဒေါင်းလုဒ်များ\' ရှိ ပုံများ"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> ပေါ်ရှိ ပုံများ"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> ရှိ ပုံများ"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g> မှ ပုံများ"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> မှ ပုံများ"</string> <string name="chip_title_images" msgid="7838299046109841015">"ပုံများ"</string> <string name="chip_title_audio" msgid="1032801828748235436">"အသံ"</string> <string name="chip_title_videos" msgid="7011260091979776447">"ဗီဒီယိုများ"</string> <string name="chip_title_documents" msgid="7432457563000753983">"မှတ်တမ်းများ"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"ဖိုင်ကြီးများ"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"ယခုအပတ်"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"ဖိုင်တွဲအမည်"</string> <string name="input_hint_rename" msgid="8390711744270994452">"အမည်အသစ်"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> ဖိုင်ကို အစမ်းကြည့်ရန်"</string> <string name="apps_row_title" msgid="3340490016663092925">"အခြားအက်ပ်များတွင် ဖိုင်များကို ဖွင့်ကြည့်ပါ"</string> <string name="anonymous_application" msgid="7633027057951625862">"အမည်မသိ"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" အသုံးပြုခွင့်ပေးရန်"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\" တွင် \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" ကို အသုံးပြုခွင့်ပေးမလား။"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"၎င်းက ဤတည်နေရာတွင် လက်ရှိသိမ်းထားသည့် ဖိုင်အားလုံးနှင့် နောင်ဤနေရာတွင် သိမ်းမည့် အကြောင်းအရာများသို့ \"<xliff:g id="APPNAME">%1$s</xliff:g>\" ကို အသုံးပြုခွင့် အပြည့်ပေးပါမည်။"</string> - <string name="search_bar_hint" msgid="4517366509897977321">"ဤဖုန်းကို ရှာရန်"</string> + <string name="open_tree_button" msgid="6402871398424497776">"ဤဖိုင်တွဲကို အသုံးပြုပါ"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g> ကို <xliff:g id="DIRECTORY">%2$s</xliff:g> ရှိ ဖိုင်များကို သုံးခွင့်ပြုမလား။"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"ဤသို့ပြုလုပ်ခြင်းဖြင့် <xliff:g id="APPNAME">%1$s</xliff:g> ကို လက်ရှိနှင့် အနာဂတ်တွင် <xliff:g id="DIRECTORY">%2$s</xliff:g> ထဲ သိမ်းမည့် အကြောင်းအရာများကို အသုံးပြုခွင့်ပေးပါမည်။"</string> + <string name="search_bar_hint" msgid="4517366509897977321">"ဤဖုန်းတွင် ရှာရန်"</string> + <string name="delete_search_history" msgid="2202015025607694515">"ရှာဖွေမှတ်တမ်း <xliff:g id="TEXT">%1$s</xliff:g> ကိုဖျက်သည်"</string> </resources> diff --git a/res/values-nb/inspector_strings.xml b/res/values-nb/inspector_strings.xml index cd315e623..9cb04fd3b 100644 --- a/res/values-nb/inspector_strings.xml +++ b/res/values-nb/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Komponist"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Posisjon"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Strømtyper"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Råstørrelse (byte)"</string> </resources> diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index 53a3084e4..42d85c85f 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -36,14 +36,15 @@ <string name="menu_share" msgid="4307140947108068356">"Del"</string> <string name="menu_delete" msgid="1022254131543256626">"Slett"</string> <string name="menu_select_all" msgid="7600576812185570403">"Velg alle"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Fjern merkingen for alle"</string> <string name="menu_select" msgid="1366061076507142387">"Velg"</string> - <string name="menu_sort" msgid="3362419226163725275">"Sortér etter"</string> + <string name="menu_sort" msgid="3362419226163725275">"Sortér etter..."</string> <string name="menu_copy" msgid="7404820171352314754">"Kopiér til"</string> <string name="menu_move" msgid="2310760789561129882">"Flytt til"</string> <string name="menu_compress" msgid="37539111904724188">"Komprimer"</string> <string name="menu_extract" msgid="8171946945982532262">"Pakk ut til …"</string> <string name="menu_rename" msgid="1883113442688817554">"Gi nytt navn"</string> - <string name="menu_inspect" msgid="7279855349299446224">"Hent inn informasjon"</string> + <string name="menu_inspect" msgid="7279855349299446224">"Hent informasjon"</string> <string name="menu_view_in_owner" msgid="7228948660557554770">"Se i <xliff:g id="SOURCE">%1$s</xliff:g>"</string> <string name="menu_new_window" msgid="2947837751796109126">"Nytt vindu"</string> <string name="menu_cut_to_clipboard" msgid="2878752142015026229">"Klipp ut"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Prøv på nytt"</string> <string name="button_clear" msgid="5412304437764369441">"Fjern"</string> <string name="button_show_provider" msgid="6905880493806292753">"Vis i leverandøren"</string> + <string name="button_back" msgid="1888621708934742182">"Tilbake"</string> <string name="not_sorted" msgid="7813496644889115530">"Ikke sortert"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Navn"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Sammendrag"</string> @@ -69,12 +71,12 @@ <string name="sort_dimension_date" msgid="4231005651895254033">"Endret"</string> <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Filnavn (A til Å)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Type (A til Å)"</string> - <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Størrelse (minst først)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Modifisert (eldst først)"</string> + <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Størrelse (minste først)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Modifisert (eldste først)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Filnavn (Å til A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Type (Å til A)"</string> - <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Størrelse (størst først)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Modifisert (nyest først)"</string> + <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Størrelse (største først)"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Modifisert (nyeste først)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Sortér etter"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Sortert etter <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Antall elementer"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Kan ikke åpne filen"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Kan ikke åpne filer i arkiver"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Kunne ikke slette enkelte dokumenter"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Kan ikke dele mer enn <xliff:g id="COUNT">%1$d</xliff:g> filer"</string> <string name="share_via" msgid="8725082736005677161">"Del via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopierer filer"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Komprimerer filer"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Nylige filer på telefonen"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Filer på telefonen"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> på telefonen"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Filer i Nedlastinger"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Filer på <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Filer i <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Filer fra <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Filer fra <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Nylige bilder på telefonen"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Bilder på telefonen"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Bilder i Nedlastinger"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Bilder på <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Bilder i <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Bilder fra <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Bilder fra <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Bilder"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Lyd"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videoer"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumenter"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Store filer"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Denne uken"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Mappenavn"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nytt navn"</string> <string name="preview_file" msgid="4056622696305432343">"Forhåndsvis filen <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Bla gjennom filer i andre apper"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonym"</string> - <string name="open_tree_button" msgid="19992834788135845">"Gi tilgang til «<xliff:g id="DIRECTORY">%1$s</xliff:g>»"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Vil du gi tilgang til «<xliff:g id="DIRECTORY">%1$s</xliff:g>» på «<xliff:g id="ROOT">%2$s</xliff:g>»?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"«<xliff:g id="APPNAME">%1$s</xliff:g>» får full tilgang til alle filer som er lagret på dette stedet, og alt fremtidig innhold som lagres her."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Bruk denne mappen"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Vil du gi <xliff:g id="APPNAME">%1$s</xliff:g> tilgang til filer i <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Dette gir <xliff:g id="APPNAME">%1$s</xliff:g> tilgang til nåværende og fremtidig innhold som er lagret i <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Søk på denne telefonen"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Slett søkelogg <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-ne/inspector_strings.xml b/res/values-ne/inspector_strings.xml index 41102e4ef..e9780af77 100644 --- a/res/values-ne/inspector_strings.xml +++ b/res/values-ne/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"रचनाकार"</string> <string name="metadata_album" msgid="1661699531214720236">"एल्बम"</string> <string name="metadata_address" msgid="1849921023707744640">"स्थान"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"स्ट्रिमका प्रकारहरू"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"अप्रशोधित आकार (बाइट)"</string> </resources> diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml index 70821ddf9..7a8606117 100644 --- a/res/values-ne/strings.xml +++ b/res/values-ne/strings.xml @@ -22,7 +22,7 @@ <skip /> <!-- no translation found for launcher_label (799410258349837668) --> <skip /> - <string name="title_open" msgid="3165686459158020921">"निम्न मार्फत खोल्नुहोस्"</string> + <string name="title_open" msgid="3165686459158020921">"निम्नमार्फत खोल्नुहोस्"</string> <string name="title_save" msgid="4384490653102710025">"निम्नमा सुरक्षित गर्नुहोस्"</string> <string name="menu_create_dir" msgid="2413624798689091042">"नयाँ फोल्डर"</string> <string name="menu_grid" msgid="1453636521731880680">"ग्रिड दृश्य"</string> @@ -30,12 +30,13 @@ <string name="menu_search" msgid="1876699106790719849">"खोज्नुहोस्"</string> <string name="menu_settings" msgid="6520844520117939047">"भण्डारण सम्बन्धी सेटिङहरू"</string> <string name="menu_open" msgid="9092138100049759315">"खोल्नुहोस्"</string> - <string name="menu_open_with" msgid="5507647065467520229">"निम्न मार्फत खोल्नुहोस्"</string> + <string name="menu_open_with" msgid="5507647065467520229">"निम्नमार्फत खोल्नुहोस्"</string> <string name="menu_open_in_new_window" msgid="6686563636123311276">"नयाँ विन्डोमा खोल्नुहोस्"</string> <string name="menu_save" msgid="5195367497138965168">"सुरक्षित गर्नुहोस्"</string> <string name="menu_share" msgid="4307140947108068356">"साझेदारी गर्नुहोस्"</string> <string name="menu_delete" msgid="1022254131543256626">"मेट्नुहोस्"</string> <string name="menu_select_all" msgid="7600576812185570403">"सबैलाई चयन गर्नुहोस्"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"सबै चयन रद्द गर्नुहोस्"</string> <string name="menu_select" msgid="1366061076507142387">"चयन गर्नुहोस्"</string> <string name="menu_sort" msgid="3362419226163725275">"यसअनुसार क्रमबद्ध गर्नु..."</string> <string name="menu_copy" msgid="7404820171352314754">"यसमा प्रतिलिपि बनाउनु…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"फेरि प्रयास गर्नुहोस्"</string> <string name="button_clear" msgid="5412304437764369441">"खाली गर्नुहोस्"</string> <string name="button_show_provider" msgid="6905880493806292753">"प्रदायकको सेवामा देखाउनुहोस्"</string> + <string name="button_back" msgid="1888621708934742182">"पछाडि जानुहोस्"</string> <string name="not_sorted" msgid="7813496644889115530">"क्रमबद्ध गरिएको छैन"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"नाम"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"सारांश"</string> @@ -97,7 +99,8 @@ <string name="toast_no_application" msgid="7555319548595113121">"फाइल खोल्न सकिँदैन"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"अभिलेखहरूमा भएका फाइलहरू खोल्न सकिँदैन"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"केही कागजातहरूलाई मेट्न सकिएन"</string> - <string name="share_via" msgid="8725082736005677161">"निम्न मार्फत साझेदारी गर्नुहोस्"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g> भन्दा बढी फाइलहरू आदान प्रदान गर्न सकिँदैन"</string> + <string name="share_via" msgid="8725082736005677161">"निम्नमार्फत साझेदारी गर्नुहोस्"</string> <string name="copy_notification_title" msgid="52256435625098456">"फाइलहरूका प्रतिलिपि बनाउँदै"</string> <string name="compress_notification_title" msgid="6830195148113751021">"फाइलहरू कम्प्रेस गर्दै"</string> <string name="extract_notification_title" msgid="5067393961754430469">"फाइलहरू एक्स्ट्र्याक्ट गर्दै"</string> @@ -124,7 +127,7 @@ <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="undo" msgid="2902438994196400565">"अनडू गर्नुहोस्"</string> + <string name="undo" msgid="2902438994196400565">"अन्डू गर्नुहोस्"</string> <string name="copy_preparing" msgid="4759516490222449324">"तयार पार्दै..."</string> <string name="compress_preparing" msgid="7401605598969019696">"तयार पार्दै..."</string> <string name="extract_preparing" msgid="4796626960061745796">"तयार पार्दै..."</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"फोनमा रहेका हालसालैका फाइलहरू"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"फोनमा रहेका फाइलहरू"</string> <string name="root_info_header_media" msgid="2774453755906260852">"फोनमा रहेका <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"डाउनलोड नामक फोल्डरमा भएका फाइलहरू"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> मा रहेका फाइलहरू"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> मा भएका फाइलहरू"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> का फाइलहरू"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> का फाइलहरू"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"फोनमा रहेका हालसालैका छविहरू"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"फोनमा रहेका छविहरू"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"डाउनलोड नामक फोल्डरमा भएका छविहरू"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> मा रहेका छविहरू"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> मा भएका छविहरू"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g> का छविहरू"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> का छविहरू"</string> <string name="chip_title_images" msgid="7838299046109841015">"छविहरू"</string> <string name="chip_title_audio" msgid="1032801828748235436">"अडियो"</string> <string name="chip_title_videos" msgid="7011260091979776447">"भिडियोहरू"</string> <string name="chip_title_documents" msgid="7432457563000753983">"कागजातहरू"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"ठूला फाइलहरू"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"यस हप्ता"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"फोल्डरको नाम"</string> <string name="input_hint_rename" msgid="8390711744270994452">"नयाँ नाम"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> फाइलको पूर्वावलोकन गर्नुहोस्"</string> <string name="apps_row_title" msgid="3340490016663092925">"अन्य अनुप्रयोगहरूमा फाइलहरू ब्राउज गर्नुहोस्"</string> <string name="anonymous_application" msgid="7633027057951625862">"अज्ञात"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" माथि पहुँच राख्न दिनुहोस्"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\" मा रहेको \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" माथि पहुँच राख्न दिने हो?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"यस कार्यले \"<xliff:g id="APPNAME">%1$s</xliff:g>\" लाई यो स्थानमा हाल भण्डारण गरिएका सबै फाइल र भविष्यमा भण्डारण गरिने जुनसुकै सामग्रीमाथि पूर्ण रूपमा पहुँच राख्न दिने छ।"</string> + <string name="open_tree_button" msgid="6402871398424497776">"यो फोल्डर प्रयोग गर्नुहोस्"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g> लाई <xliff:g id="DIRECTORY">%2$s</xliff:g> मा भएका फाइलहरूमाथि पहुँच राख्न दिने हो?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"यसले <xliff:g id="APPNAME">%1$s</xliff:g> लाई <xliff:g id="DIRECTORY">%2$s</xliff:g> मा सुरक्षित गरिएका वर्तमान र भविष्यका सामग्रीमाथि पहुँच राख्न अनुमति दिन्छ।"</string> <string name="search_bar_hint" msgid="4517366509897977321">"यो फोनमा खोज्नुहोस्"</string> + <string name="delete_search_history" msgid="2202015025607694515">"खोजसम्बन्धी इतिहास मेट्नुहोस् <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-nl/inspector_strings.xml b/res/values-nl/inspector_strings.xml index 51e438e42..c3d1d053f 100644 --- a/res/values-nl/inspector_strings.xml +++ b/res/values-nl/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Componist"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Locatie"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Streamtypen"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Onbewerkte grootte (bytes)"</string> </resources> diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 7028c059b..383ee1251 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Delen"</string> <string name="menu_delete" msgid="1022254131543256626">"Verwijderen"</string> <string name="menu_select_all" msgid="7600576812185570403">"Alles selecteren"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Alles deselecteren"</string> <string name="menu_select" msgid="1366061076507142387">"Selecteren"</string> <string name="menu_sort" msgid="3362419226163725275">"Sorteren op…"</string> <string name="menu_copy" msgid="7404820171352314754">"Kopiëren naar…"</string> @@ -61,20 +62,21 @@ <string name="button_retry" msgid="4011461781916631389">"Opnieuw proberen"</string> <string name="button_clear" msgid="5412304437764369441">"Wissen"</string> <string name="button_show_provider" msgid="6905880493806292753">"Weergeven in provider"</string> + <string name="button_back" msgid="1888621708934742182">"Terug"</string> <string name="not_sorted" msgid="7813496644889115530">"Niet gesorteerd"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Naam"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Overzicht"</string> <string name="sort_dimension_file_type" msgid="5779709622922085381">"Type"</string> <string name="sort_dimension_size" msgid="2190547351159472884">"Grootte"</string> - <string name="sort_dimension_date" msgid="4231005651895254033">"Aangepast"</string> + <string name="sort_dimension_date" msgid="4231005651895254033">"Bewerkt"</string> <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Bestandsnaam (A - Z)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Type (A - Z)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Grootte (kleinste eerst)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Aangepast (oudste eerst)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Bewerkt (oudste eerst)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Bestandsnaam (Z - A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Type (Z - A)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Grootte (grootste eerst)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Aangepast (nieuwste eerst)"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Bewerkt (nieuwste eerst)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Sorteren op"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Gesorteerd op <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Aantal items"</string> @@ -97,13 +99,14 @@ <string name="toast_no_application" msgid="7555319548595113121">"Kan bestand niet openen"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Kan bestanden in archieven niet openen"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Kan bepaalde documenten niet verwijderen"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Kan niet meer dan <xliff:g id="COUNT">%1$d</xliff:g> bestanden delen"</string> <string name="share_via" msgid="8725082736005677161">"Delen via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Bestanden kopiëren"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Bestanden comprimeren"</string> <string name="extract_notification_title" msgid="5067393961754430469">"Bestanden uitpakken"</string> <string name="move_notification_title" msgid="3173424987049347605">"Bestanden verplaatsen"</string> <string name="delete_notification_title" msgid="2512757431856830792">"Bestanden verwijderen"</string> - <string name="copy_remaining" msgid="5390517377265177727">"<xliff:g id="DURATION">%s</xliff:g> resterend"</string> + <string name="copy_remaining" msgid="5390517377265177727">"Nog <xliff:g id="DURATION">%s</xliff:g>"</string> <plurals name="copy_begin" formatted="false" msgid="151184708996738192"> <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> items kopiëren.</item> <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> item kopiëren.</item> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Recente bestanden op telefoon"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Bestanden op telefoon"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> op telefoon"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Bestanden in Downloads"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Bestanden op <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Bestanden in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Bestanden van <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Bestanden van <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Recente afbeeldingen op telefoon"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Afbeeldingen op telefoon"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Afbeeldingen in Downloads"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Afbeeldingen op <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Afbeeldingen in <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Afbeeldingen van <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Afbeeldingen van <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Afbeeldingen"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Video\'s"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documenten"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Grote bestanden"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Deze week"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Mapnaam"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nieuwe naam"</string> <string name="preview_file" msgid="4056622696305432343">"Voorbeeld van het bestand <xliff:g id="FILENAME">%1$s</xliff:g> bekijken"</string> <string name="apps_row_title" msgid="3340490016663092925">"Door bestanden browsen in andere apps"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anoniem"</string> - <string name="open_tree_button" msgid="19992834788135845">"Toegang tot \'<xliff:g id="DIRECTORY">%1$s</xliff:g>\' toestaan"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Toegang tot \'<xliff:g id="DIRECTORY">%1$s</xliff:g>\' toestaan op \'<xliff:g id="ROOT">%2$s</xliff:g>\'?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"\'<xliff:g id="APPNAME">%1$s</xliff:g>\' krijgt volledige toegang tot alle bestanden die op deze locatie zijn opgeslagen en daar in de toekomst worden opgeslagen."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Deze map gebruiken"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g> toegang geven tot bestanden in <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Hiermee heeft <xliff:g id="APPNAME">%1$s</xliff:g> toegang tot huidige en toekomstige content in <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Deze telefoon doorzoeken"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Zoekgeschiedenis verwijderen <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-or/inspector_strings.xml b/res/values-or/inspector_strings.xml index 0e53ff583..660a79912 100644 --- a/res/values-or/inspector_strings.xml +++ b/res/values-or/inspector_strings.xml @@ -43,7 +43,5 @@ <string name="metadata_artist" msgid="8972421485694988540">"କଳାକାର"</string> <string name="metadata_composer" msgid="4696926808308256056">"କମ୍ପୋଜର୍"</string> <string name="metadata_album" msgid="1661699531214720236">"ଆଲବମ୍"</string> - <string name="metadata_address" msgid="1849921023707744640">"ଲୋକେଶନ୍"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"ଷ୍ଟ୍ରୀମ୍ର ପ୍ରକାର"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"ମୂଳ ଆକାର (ବାଇଟ୍ସ)"</string> + <string name="metadata_address" msgid="1849921023707744640">"ଲୋକେସନ୍"</string> </resources> diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml index 554b6fdd6..bc4b09fba 100644 --- a/res/values-or/strings.xml +++ b/res/values-or/strings.xml @@ -33,12 +33,13 @@ <string name="menu_open_with" msgid="5507647065467520229">"ଏଥିରେ ଖୋଲନ୍ତୁ"</string> <string name="menu_open_in_new_window" msgid="6686563636123311276">"ନୂଆ ୱିଣ୍ଡୋରେ ଖୋଲନ୍ତୁ"</string> <string name="menu_save" msgid="5195367497138965168">"ସେଭ୍ କରନ୍ତୁ"</string> - <string name="menu_share" msgid="4307140947108068356">"ଶେୟାର୍ କରନ୍ତୁ"</string> + <string name="menu_share" msgid="4307140947108068356">"ସେୟାର୍ କରନ୍ତୁ"</string> <string name="menu_delete" msgid="1022254131543256626">"ଡିଲିଟ୍ କରନ୍ତୁ"</string> <string name="menu_select_all" msgid="7600576812185570403">"ସବୁ ଚୟନ କରନ୍ତୁ"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"ସବୁ ଅଚୟନ କରନ୍ତୁ"</string> <string name="menu_select" msgid="1366061076507142387">"ଚୟନ କରନ୍ତୁ"</string> <string name="menu_sort" msgid="3362419226163725275">"ଏହି ଅନୁସାରେ ସଜାନ୍ତୁ..."</string> - <string name="menu_copy" msgid="7404820171352314754">"ଏଥିକୁ କପୀ କରନ୍ତୁ…"</string> + <string name="menu_copy" msgid="7404820171352314754">"ଏଠାକୁ କପି କରନ୍ତୁ…"</string> <string name="menu_move" msgid="2310760789561129882">"ଏଥିକୁ ନିଅନ୍ତୁ…"</string> <string name="menu_compress" msgid="37539111904724188">"ଛୋଟ କରନ୍ତୁ"</string> <string name="menu_extract" msgid="8171946945982532262">"ଏଠାକୁ ଏକ୍ସଟ୍ରାକ୍ଟ କରନ୍ତୁ…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string> <string name="button_clear" msgid="5412304437764369441">"ଖାଲି କରନ୍ତୁ"</string> <string name="button_show_provider" msgid="6905880493806292753">"ପ୍ରଦାତା ସର୍ଭିସ୍ରେ ଦେଖାନ୍ତୁ"</string> + <string name="button_back" msgid="1888621708934742182">"ପଛକୁ ଫେରନ୍ତୁ"</string> <string name="not_sorted" msgid="7813496644889115530">"କ୍ରମବଦ୍ଧ କରାଯାଇନାହିଁ"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"ନାମ"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"ସାରାଂଶ"</string> @@ -69,12 +71,12 @@ <string name="sort_dimension_date" msgid="4231005651895254033">"ଗତଥର ସଂଶୋଧିତ"</string> <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"ଫାଇଲ୍ ନାମ (A ରୁ Z)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"ଟାଇପ୍ (A ରୁ Z)"</string> - <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"ଆକର (ପ୍ରଥମେ ଛୋଟ)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"ସଂଶୋଧିତ (ପ୍ରଥମେ ପୁରୁଣା)"</string> + <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"ଆକାର (ପ୍ରଥମେ ଛୋଟ)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"ପରିବର୍ତ୍ତିତ(ପ୍ରଥମେ ପୁରୁଣା)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"ଫାଇଲ୍ ନାମ (Z ରୁ A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"ଟାଇପ୍ (Z ରୁ A)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"ଆକାର (ପ୍ରଥମେ ବୃହତ)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"ସଂଶୋଧିତ (ପ୍ରଥମେ ନୂଆ)"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"ପରିବର୍ତ୍ତିତ(ପ୍ରଥମେ ନୂଆ)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"ଏହି ଅନୁସାରେ ସଜାନ୍ତୁ"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"<xliff:g id="LABEL">%s</xliff:g> ଦ୍ବାରା ସର୍ଟ ହୋଇଛି"</string> <string name="directory_items" msgid="6645621978998614003">"ଆଇଟମ୍ଗୁଡ଼ିକର ସଂଖ୍ୟା"</string> @@ -97,7 +99,8 @@ <string name="toast_no_application" msgid="7555319548595113121">"ଫାଇଲ୍ ଖୋଲିହେବ ନାହିଁ"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"ସଂଗ୍ରହରେ ଥିବା ଫାଇଲ୍ ଖୋଲିପାରିବ ନାହିଁ"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"କିଛି ଡକୁମେଣ୍ଟ ଡିଲିଟ୍ କରିହେବ ନାହିଁ"</string> - <string name="share_via" msgid="8725082736005677161">"ଏହା ମାଧ୍ୟମରେ ଶେୟାର୍ କରନ୍ତୁ"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g>ଟିରୁ ଅଧିକ ଫାଇଲ୍ ସେୟାର୍ କରାଯାଇପାରିବ ନାହିଁ"</string> + <string name="share_via" msgid="8725082736005677161">"ଏହା ମାଧ୍ୟମରେ ସେୟାର୍ କରନ୍ତୁ"</string> <string name="copy_notification_title" msgid="52256435625098456">"ଫାଇଲ୍ଗୁଡ଼ିକ କପୀ କରାଯାଉଛି"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ଫାଇଲ୍ ଛୋଟ କରାଯାଉଛି"</string> <string name="extract_notification_title" msgid="5067393961754430469">"ଫାଇଲ୍ ଏକ୍ସଟ୍ରାକ୍ଟ କରିବା"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"ଫୋନ୍ରେ ଥିବା କିଛି ସମୟପୂର୍ବର ଫାଇଲ୍ଗୁଡ଼ିକ"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"ଫୋନ୍ରେ ଥିବା ଫାଇଲ୍ଗୁଡ଼ିକ"</string> <string name="root_info_header_media" msgid="2774453755906260852">"ଫୋନ୍ରେ <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"ଡାଉନ୍ଲୋଡ୍ସ ଫୋଲ୍ଡର୍ରେ ଥିବା ଫାଇଲ୍ଗୁଡ଼ିକ"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g>ରେ ଥିବା ଫାଇଲ୍ଗୁଡ଼ିକ"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g>ରେ ଫାଇଲ୍ଗୁଡ଼ିକ"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g>ରୁ ଫାଇଲ୍ଗୁଡ଼ିକ"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>ରୁ ଫାଇଲ୍ଗୁଡ଼ିକ"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"ଫୋନ୍ରେ ଥିବା ବର୍ତ୍ତମାନର ଛବିଗୁଡ଼ିକ"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"ଫୋନ୍ରେ ଥିବା ଛବିଗୁଡ଼ିକ"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"ଡାଉନ୍ଲୋଡ୍ସ ଫୋଲ୍ଡର୍ରେ ଥିବା ଛବିଗୁଡ଼ିକ"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g>ରେ ଥିବା ଛବି"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g>ରେ ଛବିଗୁଡ଼ିକ"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g>ରୁ ଛବି"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>ରୁ ଛବିଗୁଡ଼ିିିିକ"</string> <string name="chip_title_images" msgid="7838299046109841015">"ଛବି"</string> <string name="chip_title_audio" msgid="1032801828748235436">"ଅଡିଓ"</string> <string name="chip_title_videos" msgid="7011260091979776447">"ଭିଡିଓ"</string> <string name="chip_title_documents" msgid="7432457563000753983">"ଡକ୍ୟୁମେଣ୍ଟ"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"ବଡ଼ ଫାଇଲ୍ଗୁଡ଼ିକ"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"ଏହି ସପ୍ତାହ"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"ଫୋଲ୍ଡର୍ ନାମ"</string> <string name="input_hint_rename" msgid="8390711744270994452">"ନୂଆ ନାମ"</string> <string name="preview_file" msgid="4056622696305432343">"ଫାଇଲ୍ <xliff:g id="FILENAME">%1$s</xliff:g> ପୂର୍ବାବଲୋକନ କରନ୍ତୁ"</string> <string name="apps_row_title" msgid="3340490016663092925">"ଅନ୍ୟ ଆପ୍ସରେ ଫାଇଲ୍ ବ୍ରାଉଜ୍ କରନ୍ତୁ"</string> <string name="anonymous_application" msgid="7633027057951625862">"ବେନାମୀ"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\"କୁ ଆକ୍ସେସ୍ କରିବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\"ରେ \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\"କୁ ଆକ୍ସେସ୍ କରିବା ପାଇଁ ଅନୁମତି ଦେବେ କି?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"ଏହା \"<xliff:g id="APPNAME">%1$s</xliff:g>\"କୁ ଏହି ଲୋକେସନ୍ରେ ଏବେ ଷ୍ଟୋର୍ ହୋଇଥିବା ଏବଂ ଏଠାରେ ଭବିଷ୍ୟତରେ ଷ୍ଟୋର୍ ହେବାକୁ ଥିବା ସମସ୍ତ ଫାଇଲ୍କୁ ସମ୍ପୂର୍ଣ୍ଣ ଆକ୍ସେସ୍ କରିବାକୁ ଅନୁମତି ଦେବ।"</string> + <string name="open_tree_button" msgid="6402871398424497776">"ଏହି ଫୋଲ୍ଡର୍ ବ୍ୟବହାର କରନ୍ତୁ"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="DIRECTORY">%2$s</xliff:g>ରେ ଫାଇଲ୍ଗୁଡ଼ିକୁ ଆକ୍ସେସ୍ କରିବାକୁ <xliff:g id="APPNAME">%1$s</xliff:g>କୁ ଅନୁମତି ଦେବେ?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"ଏହା <xliff:g id="DIRECTORY">%2$s</xliff:g>ରେ ଷ୍ଟୋର୍ କରଯାଇଥିବା ବର୍ତ୍ତମାନ ଏବଂ ଭବିଷ୍ୟତର ବିଷୟବସ୍ତୁ <xliff:g id="APPNAME">%1$s</xliff:g> ଆକ୍ସେସ୍ କରିବାକୁ ଦେବ।"</string> <string name="search_bar_hint" msgid="4517366509897977321">"ଏହି ଫୋନ୍ ଖୋଜନ୍ତୁ"</string> + <string name="delete_search_history" msgid="2202015025607694515">"ସର୍ଚ୍ଚ ଇତିବୃତ୍ତି <xliff:g id="TEXT">%1$s</xliff:g>କୁ ଡିଲିଟ୍ କରନ୍ତୁ"</string> </resources> diff --git a/res/values-pa/inspector_strings.xml b/res/values-pa/inspector_strings.xml index 117a8409e..c024a197e 100644 --- a/res/values-pa/inspector_strings.xml +++ b/res/values-pa/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"ਗੀਤਕਾਰ"</string> <string name="metadata_album" msgid="1661699531214720236">"ਐਲਬਮ"</string> <string name="metadata_address" msgid="1849921023707744640">"ਟਿਕਾਣਾ"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"ਸਟ੍ਰੀਮ ਦੀਆਂ ਕਿਸਮਾਂ"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Raw ਆਕਾਰ (ਬਾਈਟ)"</string> </resources> diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml index 056327653..f487d2e0f 100644 --- a/res/values-pa/strings.xml +++ b/res/values-pa/strings.xml @@ -36,13 +36,14 @@ <string name="menu_share" msgid="4307140947108068356">"ਸਾਂਝਾ ਕਰੋ"</string> <string name="menu_delete" msgid="1022254131543256626">"ਮਿਟਾਓ"</string> <string name="menu_select_all" msgid="7600576812185570403">"ਸਭ ਚੁਣੋ"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"ਸਭ ਅਣ-ਚੁਣਿਆ ਕਰੋ"</string> <string name="menu_select" msgid="1366061076507142387">"ਚੁਣੋ"</string> <string name="menu_sort" msgid="3362419226163725275">"ਇਸ ਮੁਤਾਬਕ ਕ੍ਰਮ-ਬੱਧ ਕਰੋ..."</string> <string name="menu_copy" msgid="7404820171352314754">"ਇਸ ਵਿੱਚ ਕਾਪੀ ਕਰੋ…"</string> - <string name="menu_move" msgid="2310760789561129882">"ਇਸ ਵਿੱਚ ਤਬਦੀਲ ਕਰੋ..."</string> + <string name="menu_move" msgid="2310760789561129882">"ਇਸ ਵਿੱਚ ਲਿਜਾਓ…"</string> <string name="menu_compress" msgid="37539111904724188">"ਆਕਾਰ ਛੋਟਾ ਕਰੋ"</string> <string name="menu_extract" msgid="8171946945982532262">"ਇਸ ਵਿੱਚ ਐਕਸਟ੍ਰੈਕਟ ਕਰੋ…"</string> - <string name="menu_rename" msgid="1883113442688817554">"ਮੁੜ-ਨਾਮਕਰਨ ਕਰੋ"</string> + <string name="menu_rename" msgid="1883113442688817554">"ਨਾਮ ਬਦਲੋ"</string> <string name="menu_inspect" msgid="7279855349299446224">"ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰੋ"</string> <string name="menu_view_in_owner" msgid="7228948660557554770">"<xliff:g id="SOURCE">%1$s</xliff:g> ਵਿੱਚ ਦੇਖੋ"</string> <string name="menu_new_window" msgid="2947837751796109126">"ਨਵੀਂ ਵਿੰਡੋ"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string> <string name="button_clear" msgid="5412304437764369441">"ਕਲੀਅਰ ਕਰੋ"</string> <string name="button_show_provider" msgid="6905880493806292753">"ਪ੍ਰਦਾਨਕ ਸੇਵਾ ਵਿੱਚ ਦਿਖਾਓ"</string> + <string name="button_back" msgid="1888621708934742182">"ਪਿੱਛੇ"</string> <string name="not_sorted" msgid="7813496644889115530">"ਛਾਂਟੀ ਨਹੀਂ ਕੀਤੀ ਗਈ"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"ਨਾਮ"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"ਸਾਰਾਂਸ਼"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"ਫ਼ਾਈਲ ਨੂੰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"ਪੁਰਾਲੇਖਾਂ ਵਿੱਚ ਫ਼ਾਈਲਾਂ ਨੂੰ ਖੋਲ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"ਕੁਝ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਮਿਟਾਉਣ ਦੇ ਅਯੋਗ"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g> ਤੋਂ ਵੱਧ ਫ਼ਾਈਲਾਂ ਸਾਂਝੀਆਂ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ"</string> <string name="share_via" msgid="8725082736005677161">"ਇਸ ਰਾਹੀਂ ਸਾਂਝਾ ਕਰੋ"</string> <string name="copy_notification_title" msgid="52256435625098456">"ਫ਼ਾਈਲਾਂ ਕਾਪੀ ਕਰ ਰਿਹਾ ਹੈ"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ਆਕਾਰ ਛੋਟਾ ਕੀਤਾ ਜਾ ਰਿਹਾ"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"ਫ਼ੋਨ \'ਤੇ ਹਾਲੀਆ ਫ਼ਾਈਲਾਂ"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"ਫ਼ੋਨ \'ਤੇ ਫ਼ਾਈਲਾਂ"</string> <string name="root_info_header_media" msgid="2774453755906260852">"ਫ਼ੋਨ \'ਤੇ <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"ਡਾਊਨਲੋਡ ਵਿੱਚ ਫ਼ਾਈਲਾਂ"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> ਵਿੱਚ ਫ਼ਾਈਲਾਂ"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> ਵਿੱਚ ਫ਼ਾਈਲਾਂ"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> ਦੀਆਂ ਫ਼ਾਈਲਾਂ"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> ਦੀਆਂ ਫ਼ਾਈਲਾਂ"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"ਫ਼ੋਨ ਵਿਚਲੇ ਹਾਲੀਆ ਚਿੱਤਰ"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"ਫ਼ੋਨ ਵਿਚਲੇ ਚਿੱਤਰ"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"ਡਾਊਨਲੋਡ ਵਿੱਚ ਚਿੱਤਰ"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> ਵਿਚਲੇ ਚਿੱਤਰ"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> ਵਿੱਚ ਚਿੱਤਰ"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g> ਤੋਂ ਚਿੱਤਰ"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> ਤੋਂ ਚਿੱਤਰ"</string> <string name="chip_title_images" msgid="7838299046109841015">"ਚਿੱਤਰ"</string> <string name="chip_title_audio" msgid="1032801828748235436">"ਆਡੀਓ"</string> <string name="chip_title_videos" msgid="7011260091979776447">"ਵੀਡੀਓ"</string> <string name="chip_title_documents" msgid="7432457563000753983">"ਦਸਤਾਵੇਜ਼"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"ਵੱਡੀਆਂ ਫ਼ਾਈਲਾਂ"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"ਇਸ ਹਫ਼ਤੇ"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"ਫੋਲਡਰ ਦਾ ਨਾਮ"</string> <string name="input_hint_rename" msgid="8390711744270994452">"ਨਵਾਂ ਨਾਮ"</string> <string name="preview_file" msgid="4056622696305432343">"ਫ਼ਾਈਲ <xliff:g id="FILENAME">%1$s</xliff:g> ਦੀ ਪੂਰਵ-ਝਲਕ ਦੇਖੋ"</string> <string name="apps_row_title" msgid="3340490016663092925">"ਹੋਰ ਐਪਾਂ ਵਿੱਚ ਫ਼ਾਈਲਾਂ ਬ੍ਰਾਊਜ਼ ਕਰੋ"</string> <string name="anonymous_application" msgid="7633027057951625862">"ਗੁਮਨਾਮ"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" ਫੋਲਡਰ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦਿਓ"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"ਕੀ \"<xliff:g id="ROOT">%2$s</xliff:g>\" ਦੇ \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" ਫੋਲਡਰ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੇਣੀ ਹੈ?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"ਇੰਝ ਕਰਨ ਨਾਲ \"<xliff:g id="APPNAME">%1$s</xliff:g>\" ਕੋਲ ਇਸ ਟਿਕਾਣੇ ਵਿੱਚ ਸਟੋਰ ਕੀਤੀਆਂ ਸਾਰੀਆਂ ਮੌਜੂਦਾ ਫ਼ਾਈਲਾਂ ਅਤੇ ਭਵਿੱਖ ਵਿੱਚ ਇੱਥੇ ਸਟੋਰ ਕੀਤੀ ਜਾਣ ਵਾਲੀ ਸਮੱਗਰੀ ਤੱਕ ਪੂਰੀ ਪਹੁੰਚ ਹੋਵੇਗੀ।"</string> + <string name="open_tree_button" msgid="6402871398424497776">"ਇਹ ਫੋਲਡਰ ਵਰਤੋ"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"ਕੀ <xliff:g id="APPNAME">%1$s</xliff:g> ਨੂੰ <xliff:g id="DIRECTORY">%2$s</xliff:g> ਵਿਚਲੀਆਂ ਫ਼ਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚ ਦੇਣੀ ਹੈ?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"ਇਸ ਨਾਲ <xliff:g id="APPNAME">%1$s</xliff:g> ਨੂੰ <xliff:g id="DIRECTORY">%2$s</xliff:g> ਵਿੱਚ ਸਟੋਰ ਕੀਤੀ ਵਰਤਮਾਨ ਅਤੇ ਭਵਿੱਖੀ ਸਮੱਗਰੀ ਤੱਕ ਪਹੁੰਚ ਮਿਲੇਗੀ।"</string> <string name="search_bar_hint" msgid="4517366509897977321">"ਇਹ ਫ਼ੋਨ ਖੋਜੋ"</string> + <string name="delete_search_history" msgid="2202015025607694515">"ਖੋਜ ਇਤਿਹਾਸ ਮਿਟਾਓ <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-pl/inspector_strings.xml b/res/values-pl/inspector_strings.xml index e17ccd95d..5602b1de2 100644 --- a/res/values-pl/inspector_strings.xml +++ b/res/values-pl/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Kompozytor"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Lokalizacja"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Typy strumienia"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Rzeczywisty rozmiar pliku (bajty)"</string> </resources> diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index df3355a72..e4645f3aa 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Udostępnij"</string> <string name="menu_delete" msgid="1022254131543256626">"Usuń"</string> <string name="menu_select_all" msgid="7600576812185570403">"Zaznacz wszystko"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Odznacz wszystko"</string> <string name="menu_select" msgid="1366061076507142387">"Wybierz"</string> <string name="menu_sort" msgid="3362419226163725275">"Sortuj według..."</string> <string name="menu_copy" msgid="7404820171352314754">"Kopiuj do…"</string> @@ -57,10 +58,11 @@ <string name="button_compress" msgid="8951561310857223966">"Skompresuj"</string> <string name="button_extract" msgid="1038674453689912247">"Rozpakuj"</string> <string name="button_move" msgid="8596460499325291272">"Przenieś"</string> - <string name="button_dismiss" msgid="7235249361023803349">"Odrzuć"</string> + <string name="button_dismiss" msgid="7235249361023803349">"Zamknij"</string> <string name="button_retry" msgid="4011461781916631389">"Spróbuj jeszcze raz"</string> <string name="button_clear" msgid="5412304437764369441">"Zrezygnuj"</string> <string name="button_show_provider" msgid="6905880493806292753">"Pokaż w usłudze"</string> + <string name="button_back" msgid="1888621708934742182">"Wstecz"</string> <string name="not_sorted" msgid="7813496644889115530">"Brak sortowania"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nazwa"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Podsumowanie"</string> @@ -69,12 +71,12 @@ <string name="sort_dimension_date" msgid="4231005651895254033">"Zmieniono"</string> <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Nazwa pliku (A–Z)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Typ (A–Z)"</string> - <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Rozmiar (malejąco)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Zmodyfikowane (od najstarszych)"</string> + <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Rozmiar (rosnąco)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Czas modyfikacji (od najstarszych)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Nazwa pliku (Z–A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Typ (Z–A)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Rozmiar (malejąco)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Zmodyfikowane (od najnowszych)"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Czas modyfikacji (od najnowszych)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Sortuj według"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Posortowano wg: <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Liczba elementów"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Nie można otworzyć pliku"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Nie można otworzyć plików w archiwum"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Nie można usunąć niektórych dokumentów"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Nie możesz udostępnić więcej plików niż <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="share_via" msgid="8725082736005677161">"Udostępnij przez"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopiowanie plików"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Kompresuję pliki"</string> @@ -269,25 +272,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Najnowsze pliki na telefonie"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Pliki na telefonie"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> na telefonie"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Pliki w Pobranych"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Pliki na urządzeniu <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Pliki w folderze <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Pliki z: <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Pliki z: <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Ostatnie zdjęcia na telefonie"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Zdjęcia na telefonie"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Obrazy w Pobranych"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Zdjęcia na urządzeniu <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Grafika w folderze <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Zdjęcia z etykietą <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Zdjęcia z: <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Obrazy"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Dźwięk"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Wideo"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumenty"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Duże pliki"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Ten tydzień"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Nazwa folderu"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nowa nazwa"</string> <string name="preview_file" msgid="4056622696305432343">"Wyświetl podgląd pliku <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Przeglądaj pliki w innych aplikacjach"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonimowa"</string> - <string name="open_tree_button" msgid="19992834788135845">"Zezwalaj na dostęp do katalogu „<xliff:g id="DIRECTORY">%1$s</xliff:g>”"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Zezwolić na dostęp do katalogu „<xliff:g id="DIRECTORY">%1$s</xliff:g>” na urządzeniu „<xliff:g id="ROOT">%2$s</xliff:g>”?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Aplikacja „<xliff:g id="APPNAME">%1$s</xliff:g>” uzyska pełny dostęp do plików zapisanych obecnie w tej lokalizacji i do wszystkich treści, które pojawią się tu w przyszłości."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Użyj tego folderu"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Zezwolić aplikacji <xliff:g id="APPNAME">%1$s</xliff:g> na dostęp do plików w katalogu <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"To zezwoli aplikacji <xliff:g id="APPNAME">%1$s</xliff:g> na dostęp do bieżących i przyszłych plików w katalogu <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Szukaj na telefonie"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Usuń historię wyszukiwania <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-pt-rBR/inspector_strings.xml b/res/values-pt-rBR/inspector_strings.xml index 03d2545a4..e571aef89 100644 --- a/res/values-pt-rBR/inspector_strings.xml +++ b/res/values-pt-rBR/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Compositor"</string> <string name="metadata_album" msgid="1661699531214720236">"Álbum"</string> <string name="metadata_address" msgid="1849921023707744640">"Localização"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Tipos de stream"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Tamanho bruto (bytes)"</string> </resources> diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml index 4ac27f4fc..b7c9ebe91 100644 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Compartilhar"</string> <string name="menu_delete" msgid="1022254131543256626">"Excluir"</string> <string name="menu_select_all" msgid="7600576812185570403">"Selecionar tudo"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Desmarcar tudo"</string> <string name="menu_select" msgid="1366061076507142387">"Selecionar"</string> <string name="menu_sort" msgid="3362419226163725275">"Classificar por…"</string> <string name="menu_copy" msgid="7404820171352314754">"Copiar para..."</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Tentar novamente"</string> <string name="button_clear" msgid="5412304437764369441">"Limpar"</string> <string name="button_show_provider" msgid="6905880493806292753">"Mostrar no provedor"</string> + <string name="button_back" msgid="1888621708934742182">"Voltar"</string> <string name="not_sorted" msgid="7813496644889115530">"Sem classificação"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nome"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Resumo"</string> @@ -70,11 +72,11 @@ <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Nome do arquivo (A a Z)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Tipo (A a Z)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Tamanho (menor primeiro)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Mais antigo primeiro"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Modificado (mais antigo primeiro)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Nome do arquivo (Z a A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Tipo (Z a A)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Tamanho (maior primeiro)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Mais recente primeiro"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Modificado (mais recente primeiro)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Classificar por"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Classificado por <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Número de itens"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Não é possível abrir o arquivo"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Não é possível abrir itens arquivados"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Não foi possível excluir alguns documentos"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Não é possível compartilhar mais de <xliff:g id="COUNT">%1$d</xliff:g> arquivos"</string> <string name="share_via" msgid="8725082736005677161">"Compartilhar via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Copiando arquivos"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Compactando arquivos"</string> @@ -196,14 +199,14 @@ <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> itens</item> </plurals> <string name="delete_filename_confirmation_message" msgid="8338069763240613258">"Excluir \"<xliff:g id="NAME">%1$s</xliff:g>\"?"</string> - <string name="delete_foldername_confirmation_message" msgid="9084085260877704140">"Excluir pasta \"<xliff:g id="NAME">%1$s</xliff:g>\" e o respectivo conteúdo?"</string> + <string name="delete_foldername_confirmation_message" msgid="9084085260877704140">"Excluir pasta \"<xliff:g id="NAME">%1$s</xliff:g>\" e todo o conteúdo dela?"</string> <plurals name="delete_files_confirmation_message" formatted="false" msgid="4866664063250034142"> <item quantity="one">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> arquivo?</item> <item quantity="other">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> arquivos?</item> </plurals> <plurals name="delete_folders_confirmation_message" formatted="false" msgid="1028946402799686388"> - <item quantity="one">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> pasta e o respectivo conteúdo?</item> - <item quantity="other">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> pastas e o respectivo conteúdo?</item> + <item quantity="one">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> pasta e o conteúdo dela?</item> + <item quantity="other">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> pastas e todo o conteúdo delas?</item> </plurals> <plurals name="delete_items_confirmation_message" formatted="false" msgid="7285090426511028179"> <item quantity="one">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> item?</item> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Arquivos recentes no smartphone"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Arquivos no smartphone"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> no smartphone"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Arquivos em \"Downloads\""</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Arquivos no <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Arquivos em <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Arquivos do <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Arquivos do <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Imagens recentes no smartphone"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Imagens no smartphone"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Imagens em \"Downloads\""</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Imagens no <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Imagens em <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Imagens do <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Imagens do <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Imagens"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Áudio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Vídeos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documentos"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Arquivos grandes"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Esta semana"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Nome da pasta"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Novo nome"</string> <string name="preview_file" msgid="4056622696305432343">"Visualizar o arquivo <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Procurar arquivos em outros apps"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anônimo"</string> - <string name="open_tree_button" msgid="19992834788135845">"Permitir acesso a \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Permitir acesso a \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" no \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Isso permitirá que o app \"<xliff:g id="APPNAME">%1$s</xliff:g>\" tenha acesso total a todos os arquivos armazenados atualmente nesse local e ao conteúdo armazenado aqui futuramente."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Usar esta pasta"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Permitir que o app <xliff:g id="APPNAME">%1$s</xliff:g> acesse os arquivos em <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Essa ação permitirá que o app <xliff:g id="APPNAME">%1$s</xliff:g> acesse o conteúdo atual e futuro armazenado em <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Pesquisar neste smartphone"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Excluir <xliff:g id="TEXT">%1$s</xliff:g> do histórico de pesquisa"</string> </resources> diff --git a/res/values-pt-rPT/inspector_strings.xml b/res/values-pt-rPT/inspector_strings.xml index 2b63c49d4..80c8725b2 100644 --- a/res/values-pt-rPT/inspector_strings.xml +++ b/res/values-pt-rPT/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Compositor"</string> <string name="metadata_album" msgid="1661699531214720236">"Álbum"</string> <string name="metadata_address" msgid="1849921023707744640">"Localização"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Tipos de transmissão"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Tamanho não processado (bytes)"</string> </resources> diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index e4c6865b8..22af492a9 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Partilhar"</string> <string name="menu_delete" msgid="1022254131543256626">"Eliminar"</string> <string name="menu_select_all" msgid="7600576812185570403">"Selecionar tudo"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Desselecionar tudo"</string> <string name="menu_select" msgid="1366061076507142387">"Selecionar"</string> <string name="menu_sort" msgid="3362419226163725275">"Ordenar por…"</string> <string name="menu_copy" msgid="7404820171352314754">"Copiar para…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Tentar novamente"</string> <string name="button_clear" msgid="5412304437764369441">"Limpar"</string> <string name="button_show_provider" msgid="6905880493806292753">"Mostrar no fornecedor"</string> + <string name="button_back" msgid="1888621708934742182">"Anterior"</string> <string name="not_sorted" msgid="7813496644889115530">"Não ordenados"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nome"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Resumo"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Não é possível abrir o ficheiro"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Não é possível abrir ficheiros nos arquivos"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Não é possível eliminar alguns documentos"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Não é possível partilhar mais do que <xliff:g id="COUNT">%1$d</xliff:g> ficheiros."</string> <string name="share_via" msgid="8725082736005677161">"Partilhar através de"</string> <string name="copy_notification_title" msgid="52256435625098456">"A copiar ficheiros"</string> <string name="compress_notification_title" msgid="6830195148113751021">"A comprimir ficheiros…"</string> @@ -225,26 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Ficheiros recentes no telemóvel"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Ficheiros no telemóvel"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> no telemóvel"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Ficheiros em Transferências"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Ficheiros no dispositivo <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Ficheiros em <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Ficheiros de <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Ficheiros de <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Imagens recentes no telemóvel"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Imagens no telemóvel"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Imagens em Transferências"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Imagens no dispositivo <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Imagens em <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Imagens de <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Imagens de <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Imagens"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Áudio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Vídeos"</string> - <string name="chip_title_documents" msgid="7432457563000753983">"Documentos"</string> + <string name="chip_title_documents" msgid="7432457563000753983">"Docs"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Ficheiros grandes"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Esta semana"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Nome da pasta"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Novo nome"</string> <string name="preview_file" msgid="4056622696305432343">"Pré-visualizar o ficheiro <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Procure ficheiros noutras aplicações"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anónimo"</string> - <string name="open_tree_button" msgid="19992834788135845">"Permitir acesso a \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Irá permitir que a aplicação \"<xliff:g id="APPNAME">%1$s</xliff:g>\" tenha acesso total a todos os ficheiros atualmente armazenados nesta localização e a qualquer conteúdo armazenado aqui no futuro."</string> - <string name="search_bar_hint" msgid="4517366509897977321">"Pesquise este telemóvel."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Utilizar esta pasta"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Pretende permitir que a aplicação <xliff:g id="APPNAME">%1$s</xliff:g> aceda aos ficheiros em <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Esta ação permite que a aplicação <xliff:g id="APPNAME">%1$s</xliff:g> aceda ao conteúdo atual e futuro armazenado em <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> + <string name="search_bar_hint" msgid="4517366509897977321">"Pesquise neste telemóvel"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Elimine o histórico de pesquisas <xliff:g id="TEXT">%1$s</xliff:g>."</string> </resources> diff --git a/res/values-pt/inspector_strings.xml b/res/values-pt/inspector_strings.xml index 03d2545a4..e571aef89 100644 --- a/res/values-pt/inspector_strings.xml +++ b/res/values-pt/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Compositor"</string> <string name="metadata_album" msgid="1661699531214720236">"Álbum"</string> <string name="metadata_address" msgid="1849921023707744640">"Localização"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Tipos de stream"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Tamanho bruto (bytes)"</string> </resources> diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 4ac27f4fc..b7c9ebe91 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Compartilhar"</string> <string name="menu_delete" msgid="1022254131543256626">"Excluir"</string> <string name="menu_select_all" msgid="7600576812185570403">"Selecionar tudo"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Desmarcar tudo"</string> <string name="menu_select" msgid="1366061076507142387">"Selecionar"</string> <string name="menu_sort" msgid="3362419226163725275">"Classificar por…"</string> <string name="menu_copy" msgid="7404820171352314754">"Copiar para..."</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Tentar novamente"</string> <string name="button_clear" msgid="5412304437764369441">"Limpar"</string> <string name="button_show_provider" msgid="6905880493806292753">"Mostrar no provedor"</string> + <string name="button_back" msgid="1888621708934742182">"Voltar"</string> <string name="not_sorted" msgid="7813496644889115530">"Sem classificação"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nome"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Resumo"</string> @@ -70,11 +72,11 @@ <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Nome do arquivo (A a Z)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Tipo (A a Z)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Tamanho (menor primeiro)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Mais antigo primeiro"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Modificado (mais antigo primeiro)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Nome do arquivo (Z a A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Tipo (Z a A)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Tamanho (maior primeiro)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Mais recente primeiro"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Modificado (mais recente primeiro)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Classificar por"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Classificado por <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Número de itens"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Não é possível abrir o arquivo"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Não é possível abrir itens arquivados"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Não foi possível excluir alguns documentos"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Não é possível compartilhar mais de <xliff:g id="COUNT">%1$d</xliff:g> arquivos"</string> <string name="share_via" msgid="8725082736005677161">"Compartilhar via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Copiando arquivos"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Compactando arquivos"</string> @@ -196,14 +199,14 @@ <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> itens</item> </plurals> <string name="delete_filename_confirmation_message" msgid="8338069763240613258">"Excluir \"<xliff:g id="NAME">%1$s</xliff:g>\"?"</string> - <string name="delete_foldername_confirmation_message" msgid="9084085260877704140">"Excluir pasta \"<xliff:g id="NAME">%1$s</xliff:g>\" e o respectivo conteúdo?"</string> + <string name="delete_foldername_confirmation_message" msgid="9084085260877704140">"Excluir pasta \"<xliff:g id="NAME">%1$s</xliff:g>\" e todo o conteúdo dela?"</string> <plurals name="delete_files_confirmation_message" formatted="false" msgid="4866664063250034142"> <item quantity="one">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> arquivo?</item> <item quantity="other">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> arquivos?</item> </plurals> <plurals name="delete_folders_confirmation_message" formatted="false" msgid="1028946402799686388"> - <item quantity="one">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> pasta e o respectivo conteúdo?</item> - <item quantity="other">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> pastas e o respectivo conteúdo?</item> + <item quantity="one">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> pasta e o conteúdo dela?</item> + <item quantity="other">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> pastas e todo o conteúdo delas?</item> </plurals> <plurals name="delete_items_confirmation_message" formatted="false" msgid="7285090426511028179"> <item quantity="one">Excluir <xliff:g id="COUNT_1">%1$d</xliff:g> item?</item> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Arquivos recentes no smartphone"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Arquivos no smartphone"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> no smartphone"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Arquivos em \"Downloads\""</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Arquivos no <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Arquivos em <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Arquivos do <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Arquivos do <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Imagens recentes no smartphone"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Imagens no smartphone"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Imagens em \"Downloads\""</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Imagens no <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Imagens em <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Imagens do <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Imagens do <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Imagens"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Áudio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Vídeos"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documentos"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Arquivos grandes"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Esta semana"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Nome da pasta"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Novo nome"</string> <string name="preview_file" msgid="4056622696305432343">"Visualizar o arquivo <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Procurar arquivos em outros apps"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anônimo"</string> - <string name="open_tree_button" msgid="19992834788135845">"Permitir acesso a \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Permitir acesso a \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" no \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Isso permitirá que o app \"<xliff:g id="APPNAME">%1$s</xliff:g>\" tenha acesso total a todos os arquivos armazenados atualmente nesse local e ao conteúdo armazenado aqui futuramente."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Usar esta pasta"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Permitir que o app <xliff:g id="APPNAME">%1$s</xliff:g> acesse os arquivos em <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Essa ação permitirá que o app <xliff:g id="APPNAME">%1$s</xliff:g> acesse o conteúdo atual e futuro armazenado em <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Pesquisar neste smartphone"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Excluir <xliff:g id="TEXT">%1$s</xliff:g> do histórico de pesquisa"</string> </resources> diff --git a/res/values-ro/inspector_strings.xml b/res/values-ro/inspector_strings.xml index f37e07c7b..ef5f0c1af 100644 --- a/res/values-ro/inspector_strings.xml +++ b/res/values-ro/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Compozitor"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Locație"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Tipuri de flux"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Dimensiune brută (octeți)"</string> </resources> diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 3507b5f18..ae96016a3 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Trimiteți"</string> <string name="menu_delete" msgid="1022254131543256626">"Ștergeți"</string> <string name="menu_select_all" msgid="7600576812185570403">"Selectați-le pe toate"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Deselectați tot"</string> <string name="menu_select" msgid="1366061076507142387">"Selectați"</string> <string name="menu_sort" msgid="3362419226163725275">"Sortați după…"</string> <string name="menu_copy" msgid="7404820171352314754">"Copiați în…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Încercați din nou"</string> <string name="button_clear" msgid="5412304437764369441">"Ștergeți"</string> <string name="button_show_provider" msgid="6905880493806292753">"Afișați în furnizor"</string> + <string name="button_back" msgid="1888621708934742182">"Înapoi"</string> <string name="not_sorted" msgid="7813496644889115530">"Nesortate"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nume"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Rezumat"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Fișierul nu poate fi deschis"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Nu se pot deschide fișierele în arhive"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Anumite documente nu au putut fi șterse"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Numărul de fișiere distribuite nu poate depăși <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="share_via" msgid="8725082736005677161">"Trimiteți prin"</string> <string name="copy_notification_title" msgid="52256435625098456">"Se copiază fișierele"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Se comprimă fișierele"</string> @@ -247,25 +250,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Fișiere recente pe telefon"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Fișiere pe telefon"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> pe telefon"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Fișiere în Descărcări"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Fișiere pe <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Fișiere din <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Fișiere de la <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Fișiere de la <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Imagini recente de pe telefon"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Imagini de pe telefon"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Imagini în Descărcări"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Imagini de pe <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Imagini din <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Imagini din <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Imagini din <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Imagini"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videoclipuri"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Documente"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Fișiere mari"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Săptămâna aceasta"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Numele dosarului"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nume nou"</string> <string name="preview_file" msgid="4056622696305432343">"Previzualizați fișierul <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Căutați fișiere în alte aplicații"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonim"</string> - <string name="open_tree_button" msgid="19992834788135845">"Permiteți accesul la „<xliff:g id="DIRECTORY">%1$s</xliff:g>”"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Permiteți accesul la „<xliff:g id="DIRECTORY">%1$s</xliff:g>” pe „<xliff:g id="ROOT">%2$s</xliff:g>”?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"„<xliff:g id="APPNAME">%1$s</xliff:g>” va avea acces complet la toate fișierele stocate momentan în această locație și la tot conținutul stocat aici în viitor."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Folosiți acest dosar"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Permiteți ca <xliff:g id="APPNAME">%1$s</xliff:g> să acceseze fișierele din <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Astfel, <xliff:g id="APPNAME">%1$s</xliff:g> va putea accesa conținutul actual și viitor stocat în <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Căutați în acest telefon"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Ștergeți istoricul căutărilor <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-ru/inspector_strings.xml b/res/values-ru/inspector_strings.xml index 614b3fa34..4538e436d 100644 --- a/res/values-ru/inspector_strings.xml +++ b/res/values-ru/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Композитор"</string> <string name="metadata_album" msgid="1661699531214720236">"Альбом"</string> <string name="metadata_address" msgid="1849921023707744640">"Место съемки"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Типы потоков"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Исходный размер (в байтах)"</string> </resources> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index a8714e749..81cb39307 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -36,8 +36,9 @@ <string name="menu_share" msgid="4307140947108068356">"Поделиться"</string> <string name="menu_delete" msgid="1022254131543256626">"Удалить"</string> <string name="menu_select_all" msgid="7600576812185570403">"Выбрать все"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Отменить выбор"</string> <string name="menu_select" msgid="1366061076507142387">"Выбрать"</string> - <string name="menu_sort" msgid="3362419226163725275">"Сортировать"</string> + <string name="menu_sort" msgid="3362419226163725275">"Сортировать…"</string> <string name="menu_copy" msgid="7404820171352314754">"Копировать в…"</string> <string name="menu_move" msgid="2310760789561129882">"Переместить в..."</string> <string name="menu_compress" msgid="37539111904724188">"Сжать"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Повторить"</string> <string name="button_clear" msgid="5412304437764369441">"Сбросить"</string> <string name="button_show_provider" msgid="6905880493806292753">"Открыть в приложении по умолчанию"</string> + <string name="button_back" msgid="1888621708934742182">"Назад"</string> <string name="not_sorted" msgid="7813496644889115530">"Документы не отсортированы"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Имя"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Сведения"</string> @@ -75,7 +77,7 @@ <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"типу (от Я до А)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"размеру (с больших)"</string> <string name="sort_dimension_date_descending" msgid="5466839955763127113">"изменениям (с новых)"</string> - <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Сортировка"</string> + <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Сортировать по…"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Отсортировано по <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Количество объектов"</string> <string name="sort_direction_ascending" msgid="5882787683763248102">"По возрастанию"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Не удалось открыть файл"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Нельзя открывать файлы в архивах"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Не удалось удалить некоторые документы"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Количество файлов, которыми можно поделиться: <xliff:g id="COUNT">%1$d</xliff:g>."</string> <string name="share_via" msgid="8725082736005677161">"Поделиться"</string> <string name="copy_notification_title" msgid="52256435625098456">"Копирование файлов"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Сжатие файлов"</string> @@ -269,25 +272,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Недавно открытые на телефоне"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Файлы на телефоне"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> на телефоне"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Файлы в папке \"Загрузки\""</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Файлы на устройстве <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Файлы в папке \"<xliff:g id="FOLDER">%1$s</xliff:g>\""</string> <string name="root_info_header_app" msgid="2125422047558420885">"Файлы из сервиса \'<xliff:g id="LABEL">%1$s</xliff:g>\'"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Файлы из сервиса \'<xliff:g id="LABEL">%1$s</xliff:g>\' (<xliff:g id="SUMMARY">%2$s</xliff:g>)"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Недавние изображения на телефоне"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Изображения на телефоне"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Изображения в папке \"Загрузки\""</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Изображения на устройстве \"<xliff:g id="DEVICE">%1$s</xliff:g>\""</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Изображения в папке \"<xliff:g id="FOLDER">%1$s</xliff:g>\""</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Изображения из сервиса \"<xliff:g id="LABEL">%1$s</xliff:g>\""</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Изображения из сервиса \"<xliff:g id="LABEL">%1$s</xliff:g>\" (<xliff:g id="SUMMARY">%2$s</xliff:g>)"</string> <string name="chip_title_images" msgid="7838299046109841015">"Изображения"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Аудио"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Видео"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Документы"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Большие файлы"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"На этой неделе"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Название папки"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Новое название"</string> <string name="preview_file" msgid="4056622696305432343">"Открыть файл \"<xliff:g id="FILENAME">%1$s</xliff:g>\" в режиме предпросмотра."</string> <string name="apps_row_title" msgid="3340490016663092925">"Найти файлы в других приложениях"</string> <string name="anonymous_application" msgid="7633027057951625862">"Анонимное приложение"</string> - <string name="open_tree_button" msgid="19992834788135845">"Открыть доступ к папке \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Открыть доступ к папке \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" (<xliff:g id="ROOT">%2$s</xliff:g>)?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Приложение \"<xliff:g id="APPNAME">%1$s</xliff:g>\" получит полный доступ ко всем файлам, которые хранятся в этой папке сейчас или будут помещены в нее позже."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Использовать эту папку"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Разрешить приложению \"<xliff:g id="APPNAME">%1$s</xliff:g>\" доступ к файлам в папке \"<xliff:g id="DIRECTORY">%2$s</xliff:g>\"?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Приложение \"<xliff:g id="APPNAME">%1$s</xliff:g>\" получит доступ ко всему контенту, который есть в папке \"<xliff:g id="DIRECTORY">%2$s</xliff:g>\" сейчас или будет помещен в нее позже."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Поиск на этом телефоне"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Очистить историю поиска: <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-si/inspector_strings.xml b/res/values-si/inspector_strings.xml index cbfab1444..d2b6aeff0 100644 --- a/res/values-si/inspector_strings.xml +++ b/res/values-si/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"සංගීතඥ"</string> <string name="metadata_album" msgid="1661699531214720236">"ඇල්බමය"</string> <string name="metadata_address" msgid="1849921023707744640">"ස්ථානය"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"ප්රවාහ වර්ග"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"අමු තරම (බයිට්)"</string> </resources> diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml index b513e651a..29d059eb4 100644 --- a/res/values-si/strings.xml +++ b/res/values-si/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"බෙදාගන්න"</string> <string name="menu_delete" msgid="1022254131543256626">"මකන්න"</string> <string name="menu_select_all" msgid="7600576812185570403">"සියල්ල තෝරන්න"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"සියල්ල නොතෝරන්න"</string> <string name="menu_select" msgid="1366061076507142387">"තෝරන්න"</string> <string name="menu_sort" msgid="3362419226163725275">"අනුපිළිවෙළට සකසන්න..."</string> <string name="menu_copy" msgid="7404820171352314754">"වෙත පිටපත් කරන්න..."</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"නැවත උත්සාහ කරන්න"</string> <string name="button_clear" msgid="5412304437764369441">"හිස් කරන්න"</string> <string name="button_show_provider" msgid="6905880493806292753">"සැපයුම්කරු තුළ පෙන්වන්න"</string> + <string name="button_back" msgid="1888621708934742182">"ආපසු යන්න"</string> <string name="not_sorted" msgid="7813496644889115530">"අනුපිළිවෙළට සකසා නැත"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"නම"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"සාරාංශය"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"ගොනුව විවෘත කළ නොහැකිය"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"සංරක්ෂිත තුළ ඇති ගොනු විවෘත කළ නොහැකිය"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"සමහර ලේඛන මැකීමට නොහැකිය"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"ගොනු <xliff:g id="COUNT">%1$d</xliff:g>කට වඩා බෙදා ගත නොහැකිය"</string> <string name="share_via" msgid="8725082736005677161">"බෙදාගන්නේ"</string> <string name="copy_notification_title" msgid="52256435625098456">"ගොනු පිටපත් කරමින්"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ගොනු සම්පීඩනය කරමින්"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"දුරකථනයේ මෑත ගොනු"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"දුරකථනයේ ගොනු"</string> <string name="root_info_header_media" msgid="2774453755906260852">"දුරකථනයේ <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"බාගැනීම්වල ගොනු"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> හි ගොනු"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> හි ගොනු"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> වෙතින් ගොනු"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> වෙතින් ගොනු"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"දුරකථනයේ ඇති මෑත රූප"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"දුරකථනයේ ඇති රූප"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"බාගැනීම්වල රූප"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> මත රූප"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> හි රූප"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g> වෙතින් රූප"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> වෙතින් රූප"</string> <string name="chip_title_images" msgid="7838299046109841015">"රූප"</string> <string name="chip_title_audio" msgid="1032801828748235436">"ශ්රව්ය"</string> <string name="chip_title_videos" msgid="7011260091979776447">"වීඩියෝ"</string> <string name="chip_title_documents" msgid="7432457563000753983">"ලේඛන"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"විශාල ගොනු"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"මෙම සතිය"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"ෆෝල්ඩරයේ නම"</string> <string name="input_hint_rename" msgid="8390711744270994452">"අලුත් නම"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> ගොනුව පෙර දකින්න"</string> <string name="apps_row_title" msgid="3340490016663092925">"වෙනත් යෙදුම්වල ගොනු බ්රවුස් කරන්න"</string> <string name="anonymous_application" msgid="7633027057951625862">"නිර්නාමික"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" වෙත ප්රවේශයට ඉඩ දෙන්න"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\" මත \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" වෙත ප්රවේශයට ඉඩ දෙන්නේද?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"එය දැනට මෙම ස්ථානයේ ගබඩා කර ඇති සියලුම ගොනු, සහ මෙහි අනාගතය ගොනු කෙරෙන ඕනෑම අන්තර්ගතයක් වෙත \"<xliff:g id="APPNAME">%1$s</xliff:g>\" හට සම්පූර්ණ ප්රවේශයට ඉඩ දෙයි."</string> + <string name="open_tree_button" msgid="6402871398424497776">"මෙම ෆෝල්ඩරය භාවිත කරන්න"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g>ට <xliff:g id="DIRECTORY">%2$s</xliff:g> හි ගොනු වෙත ප්රවේශ වීමට ඉඩ දෙන්නද?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"මෙය <xliff:g id="APPNAME">%1$s</xliff:g>ට <xliff:g id="DIRECTORY">%2$s</xliff:g> හි භාවිත කර ඇති වත්මන් සහ අනාගත අන්තර්ගත වෙත ප්රවේශය ඉඩ දෙයි"</string> <string name="search_bar_hint" msgid="4517366509897977321">"මෙම දුරකථනයේ සොයන්න"</string> + <string name="delete_search_history" msgid="2202015025607694515">"සෙවීම් ඉතිහාසය මකන්න <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-sk/inspector_strings.xml b/res/values-sk/inspector_strings.xml index d18705199..de234a592 100644 --- a/res/values-sk/inspector_strings.xml +++ b/res/values-sk/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Skladateľ"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Poloha"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Typy streamu"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Nespracovaná veľkosť (v bajtoch)"</string> </resources> diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 4f83d9a18..243800edd 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Zdieľať"</string> <string name="menu_delete" msgid="1022254131543256626">"Odstrániť"</string> <string name="menu_select_all" msgid="7600576812185570403">"Vybrať všetko"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Zrušiť výber všetkého"</string> <string name="menu_select" msgid="1366061076507142387">"Vybrať"</string> <string name="menu_sort" msgid="3362419226163725275">"Zoradiť podľa…"</string> <string name="menu_copy" msgid="7404820171352314754">"Kopírovať do…"</string> @@ -57,10 +58,11 @@ <string name="button_compress" msgid="8951561310857223966">"Komprimovať"</string> <string name="button_extract" msgid="1038674453689912247">"Extrahovať"</string> <string name="button_move" msgid="8596460499325291272">"Presunúť"</string> - <string name="button_dismiss" msgid="7235249361023803349">"Odmietnuť"</string> + <string name="button_dismiss" msgid="7235249361023803349">"Zavrieť"</string> <string name="button_retry" msgid="4011461781916631389">"Skúsiť znova"</string> <string name="button_clear" msgid="5412304437764369441">"Vymazať"</string> <string name="button_show_provider" msgid="6905880493806292753">"Zobraziť u poskytovateľa"</string> + <string name="button_back" msgid="1888621708934742182">"Späť"</string> <string name="not_sorted" msgid="7813496644889115530">"Nezoradené"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Názov"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Súhrn"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Súbor nie je možné otvoriť"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Súbory sa nedajú otvoriť v archívoch"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Niektoré dokumenty sa nepodarilo odstrániť"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Maximálny počet zdieľaných súborov je <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="share_via" msgid="8725082736005677161">"Zdieľať prostredníctvom"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopírovanie súborov"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Komprimujú sa súbory"</string> @@ -269,26 +272,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Nedávne súbory v telefóne"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Súbory v telefóne"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> v telefóne"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Súbory v priečinku stiahnutých súborov"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Súbory v zariadení <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Súbory v priečinku <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Súbory zo služby <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Súbory z: <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Nedávne obrázky v telefóne"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Obrázky v telefóne"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Obrázky v priečinku stiahnutých súborov"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Obrázky v zariadení <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Obrázky v priečinku <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Obrázky zo služby <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Obrázky zo služby <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Obrázky"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Zvuk"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videá"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumenty"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Veľké súbory"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Tento týždeň"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Názov priečinka"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nové názov"</string> <string name="preview_file" msgid="4056622696305432343">"Zobraziť ukážku súboru <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Prehliadanie súborov v iných aplikáciách"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonymná"</string> - <string name="open_tree_button" msgid="19992834788135845">"Povoliť prístup k adresáru <xliff:g id="DIRECTORY">%1$s</xliff:g>"</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Umožní aplikácii <xliff:g id="APPNAME">%1$s</xliff:g> úplný prístup k všetkým súborom aktuálne uloženým v tomto umiestnení a všetkému obsahu, ktorý tu bude uložený v budúcnosti."</string> - <string name="search_bar_hint" msgid="4517366509897977321">"Hľadajte v tomto telefóne"</string> + <string name="open_tree_button" msgid="6402871398424497776">"Použiť tento priečinok"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Chcete aplikácii <xliff:g id="APPNAME">%1$s</xliff:g> povoliť prístup k súborom v adresári <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Aplikácia <xliff:g id="APPNAME">%1$s</xliff:g> získa prístup k aktuálnemu a budúcemu obsahu adresára <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> + <string name="search_bar_hint" msgid="4517366509897977321">"Hľadať v telefóne"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Odstrániť históriu vyhľadávania <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-sl/inspector_strings.xml b/res/values-sl/inspector_strings.xml index 94ff44391..9508cfa8a 100644 --- a/res/values-sl/inspector_strings.xml +++ b/res/values-sl/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Skladatelj"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Lokacija"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Vrste toka"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Neobdelana velikost (bajti)"</string> </resources> diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index 49b72a1d9..abb71dc0b 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -30,12 +30,13 @@ <string name="menu_search" msgid="1876699106790719849">"Iskanje"</string> <string name="menu_settings" msgid="6520844520117939047">"Nastavitve shrambe"</string> <string name="menu_open" msgid="9092138100049759315">"Odpri"</string> - <string name="menu_open_with" msgid="5507647065467520229">"Odpiranje z aplikacijo"</string> + <string name="menu_open_with" msgid="5507647065467520229">"Odpri z aplikacijo"</string> <string name="menu_open_in_new_window" msgid="6686563636123311276">"Odpri v novem oknu"</string> <string name="menu_save" msgid="5195367497138965168">"Shrani"</string> <string name="menu_share" msgid="4307140947108068356">"Deli z drugimi"</string> <string name="menu_delete" msgid="1022254131543256626">"Izbriši"</string> <string name="menu_select_all" msgid="7600576812185570403">"Izberi vse"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Prekliči izbiro vseh"</string> <string name="menu_select" msgid="1366061076507142387">"Izberi"</string> <string name="menu_sort" msgid="3362419226163725275">"Razvrsti po …"</string> <string name="menu_copy" msgid="7404820171352314754">"Kopiraj v …"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Poskusi znova"</string> <string name="button_clear" msgid="5412304437764369441">"Izbriši"</string> <string name="button_show_provider" msgid="6905880493806292753">"Prikaži na izvorni lokaciji"</string> + <string name="button_back" msgid="1888621708934742182">"Nazaj"</string> <string name="not_sorted" msgid="7813496644889115530">"Ni razvrščeno"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Ime"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Povzetek"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Datoteke ni mogoče odpreti"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Datotek ni mogoče odpreti v arhivih"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Nekaterih dokumentov ni mogoče izbrisati"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Ne morete deliti več kot toliko datotek: <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="share_via" msgid="8725082736005677161">"Deli z drugimi prek"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopiranje datotek"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Stiskanje datotek"</string> @@ -269,25 +272,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Nedavne datoteke v telefonu"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Datoteke v telefonu"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> v telefonu"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Datoteke v mapi »Prenosi«"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Datoteke v napravi <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Datoteke v mapi »<xliff:g id="FOLDER">%1$s</xliff:g>«"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Datoteke iz: <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Datoteke iz: <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Nedavne slike v telefonu"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Slike v telefonu"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Slike v mapi »Prenosi«"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Slike v napravi <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Slike v mapi »<xliff:g id="FOLDER">%1$s</xliff:g>«"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Slike iz storitve <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Slike iz storitve <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Slike"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Zvok"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videoposnetki"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumenti"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Velike datoteke"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Ta teden"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Ime mape"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Novo ime"</string> <string name="preview_file" msgid="4056622696305432343">"Predogled datoteke <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Brskanje po datotekah v drugih aplikacijah"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonimno"</string> - <string name="open_tree_button" msgid="19992834788135845">"Dovoli dostop do imenika »<xliff:g id="DIRECTORY">%1$s</xliff:g>«"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Želite dovoliti dostop do imenika »<xliff:g id="DIRECTORY">%1$s</xliff:g>« v korenskem imeniku »<xliff:g id="ROOT">%2$s</xliff:g>«?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"S tem bo aplikacija <xliff:g id="APPNAME">%1$s</xliff:g> imela poln dostop do vseh datotek, ki so trenutno shranjene na tej lokaciji, in vsebine, ki bo na tej lokaciji shranjena v prihodnje."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Uporabi to mapo"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Ali aplikaciji <xliff:g id="APPNAME">%1$s</xliff:g> dovolite dostop do datotek v imeniku »<xliff:g id="DIRECTORY">%2$s</xliff:g>«?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"S tem boste aplikaciji <xliff:g id="APPNAME">%1$s</xliff:g> omogočili dostop do sedanje in prihodnje vsebine imenika »<xliff:g id="DIRECTORY">%2$s</xliff:g>«."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Iščite v tem telefonu"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Brisanje zgodovine iskanja <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-sq/inspector_strings.xml b/res/values-sq/inspector_strings.xml index 2ab36dcbf..6d2bc1067 100644 --- a/res/values-sq/inspector_strings.xml +++ b/res/values-sq/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Kompozitori"</string> <string name="metadata_album" msgid="1661699531214720236">"Albumi"</string> <string name="metadata_address" msgid="1849921023707744640">"Vendndodhja"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Llojet e transmetimit"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Madhësia e papërpunuar (bajte)"</string> </resources> diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml index 92ec0c4d8..c0d1c0d23 100644 --- a/res/values-sq/strings.xml +++ b/res/values-sq/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Ndaj"</string> <string name="menu_delete" msgid="1022254131543256626">"Fshi"</string> <string name="menu_select_all" msgid="7600576812185570403">"Zgjidhi të gjitha"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Anulo zgjedhjen për të gjitha"</string> <string name="menu_select" msgid="1366061076507142387">"Zgjidh"</string> <string name="menu_sort" msgid="3362419226163725275">"Rendit sipas..."</string> <string name="menu_copy" msgid="7404820171352314754">"Kopjo te..."</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Provo përsëri"</string> <string name="button_clear" msgid="5412304437764369441">"Pastro"</string> <string name="button_show_provider" msgid="6905880493806292753">"Shfaq te ofruesi"</string> + <string name="button_back" msgid="1888621708934742182">"Prapa"</string> <string name="not_sorted" msgid="7813496644889115530">"Nuk janë të renditura"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Emri"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Përmbledhja"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Skedari nuk mund të hapet"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Skedarët në arkiva nuk mund të hapen"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"E pamundur të fshihen disa dokumente"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Nuk mund të ndahen më shumë se <xliff:g id="COUNT">%1$d</xliff:g> skedarë"</string> <string name="share_via" msgid="8725082736005677161">"Shpërnda nëpërmjet"</string> <string name="copy_notification_title" msgid="52256435625098456">"Po kopjon skedarët"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Skedarët po ngjishen"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Skedarët më të fundit në telefon"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Skedarët në telefon"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> në telefon"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Skedarët në \"Shkarkimet\""</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Skedarët në <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Skedarët në <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Skedarët nga <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Skedarët nga <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Imazhet e fundit në telefon"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Imazhet nga telefoni"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Imazhet në \"Shkarkimet\""</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Imazhet në <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Imazhet në <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Imazhet nga <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Imazhet nga <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Imazhet"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videot"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokumentet"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Skedarët e mëdhenj"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Këtë javë"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Emri i dosjes"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Emri i ri"</string> <string name="preview_file" msgid="4056622696305432343">"Shiko paraprakisht skedarin <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Shfleto skedarët në aplikacionet e tjera"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonim"</string> - <string name="open_tree_button" msgid="19992834788135845">"Lejo qasjen në \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Të lejohet qasja në \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" në \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Do të lejojë që \"<xliff:g id="APPNAME">%1$s</xliff:g>\" të ketë qasje të plotë në të gjithë skedarët e ruajtur aktualisht në këtë vendndodhje dhe çdo përmbajtje të ardhshme të ruajtur këtu."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Përdor këtë dosje"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Dëshiron ta lejosh <xliff:g id="APPNAME">%1$s</xliff:g> të ketë qasje në skedarët në <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Kjo do ta lejojë <xliff:g id="APPNAME">%1$s</xliff:g> të ketë qasje në përmbajtjen aktuale dhe të ardhshme të ruajtur në <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Kërko në këtë telefon"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Fshi historikun e kërkimeve për <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-sr/inspector_strings.xml b/res/values-sr/inspector_strings.xml index c5d9aff24..8e4e6821a 100644 --- a/res/values-sr/inspector_strings.xml +++ b/res/values-sr/inspector_strings.xml @@ -33,7 +33,7 @@ <string name="metadata_camera" msgid="2363009732801281319">"Камера"</string> <string name="metadata_camera_format" msgid="1494489751904311612">"<xliff:g id="MAKE">%1$s</xliff:g> <xliff:g id="MODEL">%2$s</xliff:g>"</string> <string name="metadata_aperture" msgid="6538741952698935357">"Отвор бленде"</string> - <string name="metadata_shutter_speed" msgid="8204739885103326131">"Брзина затварача"</string> + <string name="metadata_shutter_speed" msgid="8204739885103326131">"Брзина окидача"</string> <string name="metadata_duration" msgid="3115494422055472715">"Трајање"</string> <string name="metadata_date_time" msgid="1090351199248114406">"Снимљено"</string> <string name="metadata_focal_length" msgid="3440735161407699893">"Жижна даљина"</string> @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Композитор"</string> <string name="metadata_album" msgid="1661699531214720236">"Албум"</string> <string name="metadata_address" msgid="1849921023707744640">"Локација"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Типови стримова"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Величина RAW датотеке (у бајтовима)"</string> </resources> diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index 14a9b2fc9..54b75f312 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Дели"</string> <string name="menu_delete" msgid="1022254131543256626">"Избриши"</string> <string name="menu_select_all" msgid="7600576812185570403">"Изабери све"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Поништи избор свих ставки"</string> <string name="menu_select" msgid="1366061076507142387">"Изабери"</string> <string name="menu_sort" msgid="3362419226163725275">"Сортирај према..."</string> <string name="menu_copy" msgid="7404820171352314754">"Копирај у…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Пробај поново"</string> <string name="button_clear" msgid="5412304437764369441">"Обриши"</string> <string name="button_show_provider" msgid="6905880493806292753">"Прикажи у апликацији добављача"</string> + <string name="button_back" msgid="1888621708934742182">"Назад"</string> <string name="not_sorted" msgid="7813496644889115530">"Нису сортирани"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Назив"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Резиме"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Отварање датотеке није успело"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Не можете да отварате датотеке у архивама"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Није могуће избрисати неке документе"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Максималан број датотека за дељење је <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="share_via" msgid="8725082736005677161">"Дељење преко"</string> <string name="copy_notification_title" msgid="52256435625098456">"Копирамо датотеке"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Датотеке се компримују"</string> @@ -247,25 +250,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Недавне датотеке на телефону"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Датотеке на телефону"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> на телефону"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Датотеке у Преузимањима"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Датотеке на уређају <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Датотеке у директоријуму <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Датотеке из апликације <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Датотеке из апликације <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Недавне слике на телефону"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Слике на телефону"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Слике у Преузимањима"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Слике на уређају <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Слике у директоријуму <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Слике из: <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Слике из: <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Слике"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Звук"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Видео снимци"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Документи"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Велике датотеке"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Ове недеље"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Назив директоријума"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Нови назив"</string> <string name="preview_file" msgid="4056622696305432343">"Прегледајте датотеку <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Прегледајте датотеке у другим апликацијама"</string> <string name="anonymous_application" msgid="7633027057951625862">"Анонимна"</string> - <string name="open_tree_button" msgid="19992834788135845">"Дозволите приступ директоријуму „<xliff:g id="DIRECTORY">%1$s</xliff:g>“"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Желите ли да дозволите приступ директоријуму „<xliff:g id="DIRECTORY">%1$s</xliff:g>“ на „<xliff:g id="ROOT">%2$s</xliff:g>“?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"То ће дозволити апликацији „<xliff:g id="APPNAME">%1$s</xliff:g>“ да има потпун приступ свим датотекама које се тренутно чувају на овој локацији, као и било ком садржају који ће се ту чувати у будућности."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Користи овај директоријум"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Дозволићете да <xliff:g id="APPNAME">%1$s</xliff:g> приступа датотекама у директоријуму <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Ово ће омогућити апликацији <xliff:g id="APPNAME">%1$s</xliff:g> да приступа актуелном и будућем садржају сачуваном у директоријуму <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Претражите овај телефон"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Избришите историју претраге <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-sv/inspector_strings.xml b/res/values-sv/inspector_strings.xml index bb15919ad..c63d3b59f 100644 --- a/res/values-sv/inspector_strings.xml +++ b/res/values-sv/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Kompositör"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Plats"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Flödestyper"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Råstorlek (byte)"</string> </resources> diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index b0979169c..832210551 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Dela"</string> <string name="menu_delete" msgid="1022254131543256626">"Radera"</string> <string name="menu_select_all" msgid="7600576812185570403">"Markera alla"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Avmarkera alla"</string> <string name="menu_select" msgid="1366061076507142387">"Välj"</string> <string name="menu_sort" msgid="3362419226163725275">"Sortera efter …"</string> <string name="menu_copy" msgid="7404820171352314754">"Kopiera till …"</string> @@ -50,8 +51,8 @@ <string name="menu_copy_to_clipboard" msgid="5064081159073330776">"Kopiera"</string> <string name="menu_paste_from_clipboard" msgid="360947260414135827">"Klistra in"</string> <string name="menu_paste_into_folder" msgid="8000644546983240101">"Klistra in i mapp"</string> - <string name="menu_advanced_show" msgid="7558626506462906726">"Visa internminne"</string> - <string name="menu_advanced_hide" msgid="6488381508009246334">"Dölj internminne"</string> + <string name="menu_advanced_show" msgid="7558626506462906726">"Visa internt lagringsutrymme"</string> + <string name="menu_advanced_hide" msgid="6488381508009246334">"Dölj internt lagringsutrymme"</string> <string name="button_select" msgid="240863497069321364">"Välj"</string> <string name="button_copy" msgid="8219059853840996027">"Kopiera"</string> <string name="button_compress" msgid="8951561310857223966">"Komprimera"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Försök igen"</string> <string name="button_clear" msgid="5412304437764369441">"Ta bort"</string> <string name="button_show_provider" msgid="6905880493806292753">"Visa hos leverantören"</string> + <string name="button_back" msgid="1888621708934742182">"Tillbaka"</string> <string name="not_sorted" msgid="7813496644889115530">"Inte sorterade"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Namn"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Översikt"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Det går inte att öppna filen"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Det går inte att öppna filer i arkiv"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Det gick inte att radera vissa dokument"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Det går inte att dela fler än <xliff:g id="COUNT">%1$d</xliff:g> filer"</string> <string name="share_via" msgid="8725082736005677161">"Dela via"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kopierar filer"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Filerna komprimeras"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Senaste filerna på mobilen"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Filer på mobilen"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> på mobilen"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Filer i Nedladdningar"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Filer på <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Filer i <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Filer från <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Filer från <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Senaste bilderna på mobilen"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Bilder på mobilen"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Bilder i Nedladdningar"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Bilder på <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Bilder i <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Bilder från <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Bilder från <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Bilder"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Ljud"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videor"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokument"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Stora filer"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Den här veckan"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Mappnamn"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Nytt namn"</string> <string name="preview_file" msgid="4056622696305432343">"Förhandsgranska filen <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Bläddra efter filer i andra appar"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonym"</string> - <string name="open_tree_button" msgid="19992834788135845">"Vill du tillåta åtkomst till <xliff:g id="DIRECTORY">%1$s</xliff:g>"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Vill du tillåta åtkomst till <xliff:g id="DIRECTORY">%1$s</xliff:g> på <xliff:g id="ROOT">%2$s</xliff:g>?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Tillåter att <xliff:g id="APPNAME">%1$s</xliff:g> får fullständig åtkomst till alla nuvarande och framtida filer som lagras här."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Använd den här mappen"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Vill du ge <xliff:g id="APPNAME">%1$s</xliff:g> åtkomst till filerna i <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Detta ger <xliff:g id="APPNAME">%1$s</xliff:g> åtkomst till befintligt och framtida innehåll som lagras i <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Sök på mobilen"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Radera sökhistorik – <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-sw/inspector_strings.xml b/res/values-sw/inspector_strings.xml index d6d8e376b..826cc93bc 100644 --- a/res/values-sw/inspector_strings.xml +++ b/res/values-sw/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Mtunzi"</string> <string name="metadata_album" msgid="1661699531214720236">"Albamu"</string> <string name="metadata_address" msgid="1849921023707744640">"Mahali"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Aina za mipasho"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Ukubwa wa faili ghafi (baiti)"</string> </resources> diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml index 3ab2f3522..c03a1a744 100644 --- a/res/values-sw/strings.xml +++ b/res/values-sw/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Shiriki"</string> <string name="menu_delete" msgid="1022254131543256626">"Futa"</string> <string name="menu_select_all" msgid="7600576812185570403">"Chagua zote"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Acha kuchagua zote"</string> <string name="menu_select" msgid="1366061076507142387">"Chagua"</string> <string name="menu_sort" msgid="3362419226163725275">"Panga kulingana na..."</string> <string name="menu_copy" msgid="7404820171352314754">"Nakili kwenye..."</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Jaribu Tena"</string> <string name="button_clear" msgid="5412304437764369441">"Futa"</string> <string name="button_show_provider" msgid="6905880493806292753">"Onyesha kwenye programu ya mtoa huduma"</string> + <string name="button_back" msgid="1888621708934742182">"Nyuma"</string> <string name="not_sorted" msgid="7813496644889115530">"Hazijapangwa"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Jina"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Muhtasari"</string> @@ -94,9 +96,10 @@ <string name="root_type_apps" msgid="8646073235029886342">"Programu zaidi"</string> <string name="empty" msgid="5300254272613103004">"Hakuna chochote"</string> <string name="no_results" msgid="2371026325236359209">"Hakuna zinazolingana katika %1$s"</string> - <string name="toast_no_application" msgid="7555319548595113121">"Haiwezi kufungua faili"</string> + <string name="toast_no_application" msgid="7555319548595113121">"Imeshindwa kufungua faili"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Haiwezi kufungua faili zilizo kwenye kumbukumbu"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Imeshindwa kufuta baadhi ya hati"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Huwezi kushiriki zaidi ya faili <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="share_via" msgid="8725082736005677161">"Shiriki kupitia"</string> <string name="copy_notification_title" msgid="52256435625098456">"Inanakili faili"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Inabana faili"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Faili za hivi majuzi zilizo kwenye simu"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Faili zilizo kwenye simu"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> kwenye simu"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Faili zilizo kwenye Vipakuliwa"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Faili zilizo kwenye <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Faili zilizo kwenye <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Faili kutoka <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Faili kutoka <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Picha za hivi majuzi zilizo kwenye simu"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Picha kwenye simu"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Picha zilizo kwenye Vipakuliwa"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Picha kwenye <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Picha zilizo kwenye <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Picha kutoka <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Picha kutoka <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Picha"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Sauti"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Video"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Hati"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Faili kubwa"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Wiki hii"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Jina la folda"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Jina jipya"</string> <string name="preview_file" msgid="4056622696305432343">"Kagua faili ya <xliff:g id="FILENAME">%1$s</xliff:g> kwanza"</string> <string name="apps_row_title" msgid="3340490016663092925">"Vinjari faili katika programu zingine"</string> <string name="anonymous_application" msgid="7633027057951625862">"Haijulikani"</string> - <string name="open_tree_button" msgid="19992834788135845">"Ruhusu ifikie \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Ungependa kuruhusu ifikie \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" kwenye \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Itaipa \"<xliff:g id="APPNAME">%1$s</xliff:g>\" idhini kamili za kufikia faili zote ambazo umehifadhi kwa sasa katika eneo hili na maudhui yoyote utakayohifadhi hapa."</string> - <string name="search_bar_hint" msgid="4517366509897977321">"Tafuta simu hii"</string> + <string name="open_tree_button" msgid="6402871398424497776">"Tumia folda hii"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Ungependa kuruhusu <xliff:g id="APPNAME">%1$s</xliff:g> ifikie faili zilizo kwenye <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Hatua hii itaruhusu <xliff:g id="APPNAME">%1$s</xliff:g> ifikie maudhui ya sasa na yajayo yaliyohifadhiwa katika <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> + <string name="search_bar_hint" msgid="4517366509897977321">"Tafuta kwenye simu hii"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Futa <xliff:g id="TEXT">%1$s</xliff:g> ya historia ya mambo uliyotafuta"</string> </resources> diff --git a/res/values-ta/inspector_strings.xml b/res/values-ta/inspector_strings.xml index 41bad8a4e..c9455c4f1 100644 --- a/res/values-ta/inspector_strings.xml +++ b/res/values-ta/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"இசையமைப்பாளர்"</string> <string name="metadata_album" msgid="1661699531214720236">"ஆல்பம்"</string> <string name="metadata_address" msgid="1849921023707744640">"இருப்பிடம்"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"ஸ்ட்ரீம் வகைகள்"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"அசல் அளவு (பைட்டுகள்)"</string> </resources> diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml index ad3131ff7..59f5ed85b 100644 --- a/res/values-ta/strings.xml +++ b/res/values-ta/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"பகிர்"</string> <string name="menu_delete" msgid="1022254131543256626">"நீக்கு"</string> <string name="menu_select_all" msgid="7600576812185570403">"எல்லாம் தேர்ந்தெடு"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"அனைத்தையும் தேர்வுநீக்கு"</string> <string name="menu_select" msgid="1366061076507142387">"தேர்ந்தெடு"</string> <string name="menu_sort" msgid="3362419226163725275">"இதன்படி வரிசைப்படுத்து..."</string> <string name="menu_copy" msgid="7404820171352314754">"இங்கு நகலெடு…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"மீண்டும் முயலவும்"</string> <string name="button_clear" msgid="5412304437764369441">"அழி"</string> <string name="button_show_provider" msgid="6905880493806292753">"வழங்குநரில் காட்டு"</string> + <string name="button_back" msgid="1888621708934742182">"பின்செல்"</string> <string name="not_sorted" msgid="7813496644889115530">"வரிசைப்படுத்தப்படவில்லை"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"பெயர்"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"சுருக்க விவரம்"</string> @@ -91,12 +93,13 @@ <string name="root_type_service" msgid="6521366147466512289">"சேமிப்பகச் சேவைகள்"</string> <string name="root_type_shortcut" msgid="6059343175525442279">"ஷார்ட்கட்கள்"</string> <string name="root_type_device" msgid="1713604128005476585">"சாதனங்கள்"</string> - <string name="root_type_apps" msgid="8646073235029886342">"மேலும் பயன்பாடுகள்"</string> + <string name="root_type_apps" msgid="8646073235029886342">"மேலும் ஆப்ஸ்"</string> <string name="empty" msgid="5300254272613103004">"எதுவும் இல்லை"</string> <string name="no_results" msgid="2371026325236359209">"%1$s இல் பொருந்தும் முடிவு இல்லை"</string> <string name="toast_no_application" msgid="7555319548595113121">"கோப்பைத் திறக்க முடியாது"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"காப்பகங்களில் உள்ள கோப்புகளைத் திறக்க முடியாது"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"சில ஆவணங்களை நீக்க முடியவில்லை"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g> கோப்புகளுக்கு மேல் பகிர முடியாது"</string> <string name="share_via" msgid="8725082736005677161">"இதன் வழியாகப் பகிர்"</string> <string name="copy_notification_title" msgid="52256435625098456">"கோப்புகளை நகலெடுத்தல்"</string> <string name="compress_notification_title" msgid="6830195148113751021">"அளவைக் குறைக்கிறது"</string> @@ -225,26 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"மொபைலில் உள்ள சமீபத்திய ஃபைல்கள்"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"மொபைலில் உள்ள ஃபைல்கள்"</string> <string name="root_info_header_media" msgid="2774453755906260852">"மொபைலில் உள்ள <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"பதிவிறக்கங்களில் உள்ள ஃபைல்கள்"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> இலுள்ள ஃபைல்கள்"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> கோப்புறையிலுள்ள ஃபைல்கள்"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> இலிருந்து ஃபைல்கள்"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> இலிருந்து ஃபைல்கள்"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"மொபைலிலுள்ள சமீபத்திய படங்கள்"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"மொபைலில் உள்ள படங்கள்"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"பதிவிறக்கங்களில் உள்ள படங்கள்"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g>ல் உள்ள படங்கள்"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> கோப்புறையிலுள்ள படங்கள்"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g>ல் இருந்த படங்கள்"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>ல் இருந்த படங்கள்"</string> <string name="chip_title_images" msgid="7838299046109841015">"படங்கள்"</string> <string name="chip_title_audio" msgid="1032801828748235436">"ஆடியோ"</string> <string name="chip_title_videos" msgid="7011260091979776447">"வீடியோக்கள்"</string> <string name="chip_title_documents" msgid="7432457563000753983">"ஆவணங்கள்"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"பெரிய ஃபைல்கள்"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"இந்த வாரம்"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"கோப்புறையின் பெயர்"</string> <string name="input_hint_rename" msgid="8390711744270994452">"புதிய பெயர்"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> என்ற ஃபைல் மாதிரிக்காட்சியாகத் தெரியும்"</string> <string name="apps_row_title" msgid="3340490016663092925">"ஃபைல்களை வேறு ஆப்ஸில் தேடவும்"</string> <string name="anonymous_application" msgid="7633027057951625862">"பெயர் குறிப்பிடாதது"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\"க்கு அணுகல் வழங்கு"</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"இந்த இருப்பிடத்தில் தற்போது சேமிக்கப்பட்டிருப்பவை, எதிர்காலத்தில் சேமிக்கப்படுபவை என எல்லாக் கோப்புகளுக்குமான முழு அணுகலையும் \"<xliff:g id="APPNAME">%1$s</xliff:g>\"க்கு அனுமதிக்கும்."</string> + <string name="open_tree_button" msgid="6402871398424497776">"இந்தக் கோப்புறையைப் பயன்படுத்து"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="DIRECTORY">%2$s</xliff:g> இல் உள்ள ஃபைல்களை அணுக <xliff:g id="APPNAME">%1$s</xliff:g> ஆப்ஸை அனுமதிக்கவா?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"இது <xliff:g id="DIRECTORY">%2$s</xliff:g> இல் சேமிக்கப்பட்டுள்ள தற்போதைய மற்றும் வருங்கால உள்ளடக்கத்தை அணுக <xliff:g id="APPNAME">%1$s</xliff:g> ஆப்ஸை அனுமதிக்கும்."</string> <string name="search_bar_hint" msgid="4517366509897977321">"இந்த மொபைலில் தேடவும்"</string> + <string name="delete_search_history" msgid="2202015025607694515">"தேடல் வரலாற்றை நீக்கும் பட்டன் <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-te/inspector_strings.xml b/res/values-te/inspector_strings.xml index 97dd812f0..4ea4350c4 100644 --- a/res/values-te/inspector_strings.xml +++ b/res/values-te/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"కంపోజర్"</string> <string name="metadata_album" msgid="1661699531214720236">"ఆల్బమ్"</string> <string name="metadata_address" msgid="1849921023707744640">"స్థానం"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"ప్రసార రకాలు"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"ప్రాసెస్ చేయని పరిమాణం (బైట్లు)"</string> </resources> diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml index b624cdc91..5f44ade69 100644 --- a/res/values-te/strings.xml +++ b/res/values-te/strings.xml @@ -33,11 +33,12 @@ <string name="menu_open_with" msgid="5507647065467520229">"దీనితో తెరువు"</string> <string name="menu_open_in_new_window" msgid="6686563636123311276">"కొత్త విండోలో తెరువు"</string> <string name="menu_save" msgid="5195367497138965168">"సేవ్ చేయి"</string> - <string name="menu_share" msgid="4307140947108068356">"భాగస్వామ్యం చేయి"</string> + <string name="menu_share" msgid="4307140947108068356">"షేర్ చేయి"</string> <string name="menu_delete" msgid="1022254131543256626">"తొలగించు"</string> <string name="menu_select_all" msgid="7600576812185570403">"అన్నింటినీ ఎంచుకోండి"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"అన్నింటి ఎంపికను తీసివేయి"</string> <string name="menu_select" msgid="1366061076507142387">"ఎంచుకోండి"</string> - <string name="menu_sort" msgid="3362419226163725275">"దీన్ని బట్టి క్రమీకరించు…"</string> + <string name="menu_sort" msgid="3362419226163725275">"దీన్ని బట్టి వర్గీకరించు…"</string> <string name="menu_copy" msgid="7404820171352314754">"ఇక్కడికి కాపీ చేయి…"</string> <string name="menu_move" msgid="2310760789561129882">"ఇక్కడికి తరలించు..."</string> <string name="menu_compress" msgid="37539111904724188">"కుదించు"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"మళ్లీ ప్రయత్నించు"</string> <string name="button_clear" msgid="5412304437764369441">"తీసివేయండి"</string> <string name="button_show_provider" msgid="6905880493806292753">"ప్రదాతలో చూపించండి"</string> + <string name="button_back" msgid="1888621708934742182">"వెనుకకు"</string> <string name="not_sorted" msgid="7813496644889115530">"క్రమబద్ధీకరించలేదు"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"పేరు"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"సారాంశం"</string> @@ -75,7 +77,7 @@ <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"రకం (Z నుండి A)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"పరిమాణం (మొదట పెద్దవి)"</string> <string name="sort_dimension_date_descending" msgid="5466839955763127113">"సవరించబడినవి (మొదట సరికొత్తవి)"</string> - <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"దీన్ని బట్టి క్రమీకరించు"</string> + <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"దీని ఆధారంగా వర్గీకరించు"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"<xliff:g id="LABEL">%s</xliff:g> ద్వారా క్రమీకరించబడింది"</string> <string name="directory_items" msgid="6645621978998614003">"అంశాల సంఖ్య"</string> <string name="sort_direction_ascending" msgid="5882787683763248102">"ఆరోహణ"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"ఫైల్ను తెరవడం సాధ్యపడదు"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"ఆర్కైవ్లలో ఉన్న ఫైల్లను తెరవడం సాధ్యం కాదు"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"కొన్ని పత్రాలను తొలగించడం సాధ్యపడలేదు"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g> ఫైల్ల కంటే ఎక్కువ షేర్ చేయలేరు"</string> <string name="share_via" msgid="8725082736005677161">"దీనితో భాగస్వామ్యం చేయండి"</string> <string name="copy_notification_title" msgid="52256435625098456">"ఫైల్లు కాపీ అవుతున్నాయి"</string> <string name="compress_notification_title" msgid="6830195148113751021">"ఫైల్లను కుదిస్తోంది"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"ఫోన్లో తాజా ఫైల్లు"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"ఫోన్లో ఫైల్లు"</string> <string name="root_info_header_media" msgid="2774453755906260852">"ఫోన్లోని <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"\'డౌన్లోడ్లు\'లోని ఫైల్లు"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g>లోని ఫైల్లు"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g>లోని ఫైల్లు"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g>లోని ఫైల్లు"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>లోని ఫైల్లు"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"ఫోన్లోని తాజా ఫోటోలు"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"ఫోన్లోని ఫోటోలు"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"\'డౌన్లోడ్లు\'లోని చిత్రాలు"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g>లోని ఫోటోలు"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g>లోని చిత్రాలు"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g>లోని ఫోటోలు"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g>లోని ఫోటోలు / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"చిత్రాలు"</string> <string name="chip_title_audio" msgid="1032801828748235436">"ఆడియో"</string> <string name="chip_title_videos" msgid="7011260091979776447">"వీడియోలు"</string> <string name="chip_title_documents" msgid="7432457563000753983">"పత్రాలు"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"పెద్ద ఫైల్లు"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"ఈ వారం"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"ఫోల్డర్ పేరు"</string> <string name="input_hint_rename" msgid="8390711744270994452">"కొత్త పేరు"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g>ని ప్రివ్యూ చేయండి"</string> <string name="apps_row_title" msgid="3340490016663092925">"ఇతర యాప్లలో ఫైల్స్ని బ్రౌజ్ చేయి"</string> <string name="anonymous_application" msgid="7633027057951625862">"తెలియనిది"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\"కి యాక్సెస్ ఇవ్వు"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\"లో \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\"కి యాక్సెస్ ఇవ్వాలా?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"ఇది ప్రస్తుతం ఈ స్థానం కింద నిల్వ చేయబడి ఉన్న మొత్తం ఫైల్లను మరియు భవిష్యత్తులో నిల్వ చేయబోయే కంటెంట్ను యాక్సెస్ చేసుకోవడానికి \"<xliff:g id="APPNAME">%1$s</xliff:g>\" యాప్కు పూర్తిగా అనుమతిస్తుంది."</string> + <string name="open_tree_button" msgid="6402871398424497776">"ఈ ఫోల్డర్ను ఉపయోగించండి"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="DIRECTORY">%2$s</xliff:g>లోని ఫైల్లను యాక్సెస్ చేయడానికి <xliff:g id="APPNAME">%1$s</xliff:g>ని అనుమతించాలా?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"ఇది <xliff:g id="DIRECTORY">%2$s</xliff:g>లో నిల్వ చేసిన ప్రస్తుత మరియు భవిష్యత్తు కంటెంట్ను <xliff:g id="APPNAME">%1$s</xliff:g> యాక్సెస్ చేయడానికి అనుమతిస్తుంది."</string> <string name="search_bar_hint" msgid="4517366509897977321">"ఈ ఫోన్లో వెతకండి"</string> + <string name="delete_search_history" msgid="2202015025607694515">"శోధన చరిత్ర <xliff:g id="TEXT">%1$s</xliff:g>ను తొలగించండి"</string> </resources> diff --git a/res/values-th/inspector_strings.xml b/res/values-th/inspector_strings.xml index 855b581ca..4c0bbd1c8 100644 --- a/res/values-th/inspector_strings.xml +++ b/res/values-th/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"ผู้ประพันธ์เพลง"</string> <string name="metadata_album" msgid="1661699531214720236">"อัลบั้ม"</string> <string name="metadata_address" msgid="1849921023707744640">"ตำแหน่ง"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"ประเภทสตรีม"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"ขนาด Raw (ไบต์)"</string> </resources> diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml index ccf6b568c..6423e0137 100644 --- a/res/values-th/strings.xml +++ b/res/values-th/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"แชร์"</string> <string name="menu_delete" msgid="1022254131543256626">"ลบ"</string> <string name="menu_select_all" msgid="7600576812185570403">"เลือกทั้งหมด"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"ยกเลิกการเลือกทั้งหมด"</string> <string name="menu_select" msgid="1366061076507142387">"เลือก"</string> <string name="menu_sort" msgid="3362419226163725275">"จัดเรียงตาม..."</string> <string name="menu_copy" msgid="7404820171352314754">"คัดลอกไปยัง…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"ลองใหม่"</string> <string name="button_clear" msgid="5412304437764369441">"ล้าง"</string> <string name="button_show_provider" msgid="6905880493806292753">"แสดงในแอปผู้ให้บริการ"</string> + <string name="button_back" msgid="1888621708934742182">"กลับ"</string> <string name="not_sorted" msgid="7813496644889115530">"ไม่ได้จัดเรียง"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"ชื่อ"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"สรุป"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"เปิดไฟล์ไม่ได้"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"เปิดไฟล์ในที่เก็บถาวรไม่ได้"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"ไม่สามารถลบเอกสารบางรายการ"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"แชร์มากกว่า <xliff:g id="COUNT">%1$d</xliff:g> ไฟล์ไม่ได้"</string> <string name="share_via" msgid="8725082736005677161">"แชร์ผ่าน"</string> <string name="copy_notification_title" msgid="52256435625098456">"กำลังคัดลอกไฟล์"</string> <string name="compress_notification_title" msgid="6830195148113751021">"กำลังบีบอัดไฟล์"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"ไฟล์ล่าสุดในโทรศัพท์"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"ไฟล์ในโทรศัพท์"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g>ในโทรศัพท์"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"ไฟล์ใน \"ดาวน์โหลด\""</string> <string name="root_info_header_storage" msgid="2989014130584927442">"ไฟล์ใน <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"ไฟล์ใน <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"ไฟล์จาก <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"ไฟล์จาก <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"รูปภาพล่าสุดในโทรศัพท์"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"รูปภาพในโทรศัพท์"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"รูปภาพใน \"ดาวน์โหลด\""</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"รูปภาพใน <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"รูปภาพใน <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"รูปภาพจาก <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"รูปภาพจาก <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"รูปภาพ"</string> <string name="chip_title_audio" msgid="1032801828748235436">"เสียง"</string> <string name="chip_title_videos" msgid="7011260091979776447">"วิดีโอ"</string> <string name="chip_title_documents" msgid="7432457563000753983">"เอกสาร"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"ไฟล์ขนาดใหญ่"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"สัปดาห์นี้"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"ชื่อโฟลเดอร์"</string> <string name="input_hint_rename" msgid="8390711744270994452">"ชื่อใหม่"</string> <string name="preview_file" msgid="4056622696305432343">"แสดงพรีวิวไฟล์ <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"เรียกดูไฟล์ในแอปอื่นๆ"</string> <string name="anonymous_application" msgid="7633027057951625862">"ไม่ระบุชื่อ"</string> - <string name="open_tree_button" msgid="19992834788135845">"อนุญาตให้เข้าถึง \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"อนุญาตให้เข้าถึง \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" ใน \"<xliff:g id="ROOT">%2$s</xliff:g>\" ใช่ไหม"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"การดำเนินการดังกล่าวจะอนุญาตให้ \"<xliff:g id="APPNAME">%1$s</xliff:g>\" เข้าถึงทุกไฟล์ที่จัดเก็บอยู่ในตำแหน่งนี้ และเนื้อหาอื่นๆ ที่จะจัดเก็บไว้ที่นี่ในอนาคตได้โดยสมบูรณ์"</string> + <string name="open_tree_button" msgid="6402871398424497776">"ใช้โฟลเดอร์นี้"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"อนุญาตให้ <xliff:g id="APPNAME">%1$s</xliff:g> เข้าถึงไฟล์ใน <xliff:g id="DIRECTORY">%2$s</xliff:g> ไหม"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"การดำเนินการนี้จะทำให้ <xliff:g id="APPNAME">%1$s</xliff:g> เข้าถึงเนื้อหาในปัจจุบันและอนาคตที่จัดเก็บไว้ใน <xliff:g id="DIRECTORY">%2$s</xliff:g>"</string> <string name="search_bar_hint" msgid="4517366509897977321">"ค้นหาโทรศัพท์เครื่องนี้"</string> + <string name="delete_search_history" msgid="2202015025607694515">"ลบประวัติการค้นหา <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-tl/inspector_strings.xml b/res/values-tl/inspector_strings.xml index a18fe5aae..b255859f9 100644 --- a/res/values-tl/inspector_strings.xml +++ b/res/values-tl/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Composer"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Lokasyon"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Mga uri ng stream"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Raw na laki (mga byte)"</string> </resources> diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml index 325d4d037..818db7c43 100644 --- a/res/values-tl/strings.xml +++ b/res/values-tl/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Ibahagi"</string> <string name="menu_delete" msgid="1022254131543256626">"I-delete"</string> <string name="menu_select_all" msgid="7600576812185570403">"Piliin lahat"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"I-deselect lahat"</string> <string name="menu_select" msgid="1366061076507142387">"Piliin"</string> <string name="menu_sort" msgid="3362419226163725275">"Pagbukud-bukurin ayon sa..."</string> <string name="menu_copy" msgid="7404820171352314754">"Kopyahin sa..."</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Subukang Muli"</string> <string name="button_clear" msgid="5412304437764369441">"I-clear"</string> <string name="button_show_provider" msgid="6905880493806292753">"Ipakita sa provider"</string> + <string name="button_back" msgid="1888621708934742182">"Bumalik"</string> <string name="not_sorted" msgid="7813496644889115530">"Hindi napagbukud-bukod"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Pangalan"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Buod"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Hindi mabuksan ang file"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Hindi mabuksan ang mga file sa mga archive"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Hindi ma-delete ang ilang dokumento"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Hindi puwedeng magbahagi ng higit sa <xliff:g id="COUNT">%1$d</xliff:g> (na) file."</string> <string name="share_via" msgid="8725082736005677161">"Ibahagi gamit ang"</string> <string name="copy_notification_title" msgid="52256435625098456">"Kinokopya ang mga file"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Kino-compress ang files"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Mga kamakailang file sa telepono"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Mga file sa telepono"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> sa telepono"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Mga file sa Mga download"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Mga file sa <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Mga file sa <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Mga file mula sa <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Mga file mula sa <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Mga kamakailang larawan sa telepono"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Mga larawan sa telepono"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Mga larawan sa Mga download"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Mga larawan sa <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Mga larawan sa <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Mga larawan mula sa <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Mga larawan mula sa <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Mga Larawan"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Mga Video"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Mga Dokumento"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Malalaking file"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Ngayong linggo"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Pangalan ng folder"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Bagong pangalan"</string> <string name="preview_file" msgid="4056622696305432343">"I-preview ang file na <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"I-browse ang mga file sa iba pang app"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonymous"</string> - <string name="open_tree_button" msgid="19992834788135845">"Payagan ang access sa \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Payagan ang access sa \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" sa \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Mabibigyang-daan nito ang \"<xliff:g id="APPNAME">%1$s</xliff:g>\" na magkaroon ng ganap na access sa lahat ng file na kasalukuyang naka-store sa ilalim ng lokasyong ito, at anumang content sa hinaharap na naka-store dito."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Gamitin ang folder na ito"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Pahintulutan ang <xliff:g id="APPNAME">%1$s</xliff:g> na i-access ang mga file sa <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Bibigyang-daan nito ang <xliff:g id="APPNAME">%1$s</xliff:g> na i-access ang content sa kasalukuyan at hinaharap na naka-store sa <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Maghanap sa teleponong ito"</string> + <string name="delete_search_history" msgid="2202015025607694515">"I-delete ang history ng paghahanap <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-tr/inspector_strings.xml b/res/values-tr/inspector_strings.xml index 23e01c033..bece8ee99 100644 --- a/res/values-tr/inspector_strings.xml +++ b/res/values-tr/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Besteci"</string> <string name="metadata_album" msgid="1661699531214720236">"Albüm"</string> <string name="metadata_address" msgid="1849921023707744640">"Konum"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Akış türleri"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"İşlenmemiş boyut (bayt)"</string> </resources> diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index cdfeef19a..c09c98f4e 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -36,13 +36,14 @@ <string name="menu_share" msgid="4307140947108068356">"Paylaş"</string> <string name="menu_delete" msgid="1022254131543256626">"Sil"</string> <string name="menu_select_all" msgid="7600576812185570403">"Tümünü seç"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Tümünün seçimini kaldır"</string> <string name="menu_select" msgid="1366061076507142387">"Seç"</string> <string name="menu_sort" msgid="3362419226163725275">"Sıralama ölçütü..."</string> <string name="menu_copy" msgid="7404820171352314754">"Klasöre kopyala…"</string> <string name="menu_move" msgid="2310760789561129882">"Klasöre taşı..."</string> <string name="menu_compress" msgid="37539111904724188">"Sıkıştır"</string> <string name="menu_extract" msgid="8171946945982532262">"Şuraya çıkar:"</string> - <string name="menu_rename" msgid="1883113442688817554">"Yeniden Adlandır"</string> + <string name="menu_rename" msgid="1883113442688817554">"Yeniden adlandır"</string> <string name="menu_inspect" msgid="7279855349299446224">"Bilgi al"</string> <string name="menu_view_in_owner" msgid="7228948660557554770">"<xliff:g id="SOURCE">%1$s</xliff:g> içinde görüntüle"</string> <string name="menu_new_window" msgid="2947837751796109126">"Yeni pencere"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Tekrar Dene"</string> <string name="button_clear" msgid="5412304437764369441">"Temizle"</string> <string name="button_show_provider" msgid="6905880493806292753">"Sağlayıcıda göster"</string> + <string name="button_back" msgid="1888621708934742182">"Geri"</string> <string name="not_sorted" msgid="7813496644889115530">"Sıralanmadı"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Ad"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Özet"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Dosya açılamıyor"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Arşivlerdeki dosyalar açılamaz"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Bazı dokümanlar silinemiyor"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"En çok <xliff:g id="COUNT">%1$d</xliff:g> dosya paylaşılabilir"</string> <string name="share_via" msgid="8725082736005677161">"Şunu kullanarak paylaşın:"</string> <string name="copy_notification_title" msgid="52256435625098456">"Dosyalar kopyalanıyor"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Dosyalar sıkıştırılıyor"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Telefondaki son dosyalar"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Telefondaki dosyalar"</string> <string name="root_info_header_media" msgid="2774453755906260852">"Telefondaki <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"İndirilenlerdeki Dosyalar"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> cihazındaki dosyalar"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> klasöründeki dosyalar"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> dosyaları"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> dosyaları / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Telefondaki son resimler"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Telefondaki resimler"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"İndirilenlerdeki Resimler"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> cihazındaki resimler"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> klasöründeki resimler"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Resimlerin kaynağı: <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> kaynağındaki resimler / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Resimler"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Ses"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videolar"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Dokümanlar"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Büyük dosyalar"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Bu hafta"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Klasör adı"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Yeni ad"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> dosyasını önizleyin"</string> - <string name="apps_row_title" msgid="3340490016663092925">"Diğer uygulamalarda dosyalara göz atma"</string> + <string name="apps_row_title" msgid="3340490016663092925">"Diğer uygulamalardaki dosyalara göz atın"</string> <string name="anonymous_application" msgid="7633027057951625862">"Adsız"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" dizinine erişime izin ver"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\" üzerinde \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" dizinine erişime izin verilsin mi?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"\"<xliff:g id="APPNAME">%1$s</xliff:g>\" uygulamasının şu anda bu konumda depolanan tüm dosyalara ve ileride burada depolanacak içeriklere tam erişim hakkına sahip olmasını sağlar."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Bu klasörü kullan"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g> uygulamasının <xliff:g id="DIRECTORY">%2$s</xliff:g> dizinindeki dosyalara erişimine izin verilsin mi?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Bu işlem, <xliff:g id="APPNAME">%1$s</xliff:g> uygulamasının <xliff:g id="DIRECTORY">%2$s</xliff:g> dizininde şu anda ve gelecekte depolanan içeriklerine erişim verecektir."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Bu telefonu arayın"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Arama geçmişini sil <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-uk/inspector_strings.xml b/res/values-uk/inspector_strings.xml index 319b5981b..661edd431 100644 --- a/res/values-uk/inspector_strings.xml +++ b/res/values-uk/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Композитор"</string> <string name="metadata_album" msgid="1661699531214720236">"Альбом"</string> <string name="metadata_address" msgid="1849921023707744640">"Місцезнаходження"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Типи потоків"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Розмір файлу RAW (байти)"</string> </resources> diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 018cc6e83..b46934d67 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Надіслати"</string> <string name="menu_delete" msgid="1022254131543256626">"Видалити"</string> <string name="menu_select_all" msgid="7600576812185570403">"Вибрати все"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Не вибирати нічого"</string> <string name="menu_select" msgid="1366061076507142387">"Вибрати"</string> <string name="menu_sort" msgid="3362419226163725275">"Сортувати за…"</string> <string name="menu_copy" msgid="7404820171352314754">"Копіювати в…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Повторити"</string> <string name="button_clear" msgid="5412304437764369441">"Очистити"</string> <string name="button_show_provider" msgid="6905880493806292753">"Показати в сервісі постачальника"</string> + <string name="button_back" msgid="1888621708934742182">"Назад"</string> <string name="not_sorted" msgid="7813496644889115530">"Не сортовано"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Назва"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Короткий опис"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Не вдалося відкрити файл"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Не вдалося відкрити файли в архівах"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Не вдалося видалити деякі документи"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Максимальна кількість файлів: <xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="share_via" msgid="8725082736005677161">"Надіслати через"</string> <string name="copy_notification_title" msgid="52256435625098456">"Копіювання файлів"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Файли стискаються"</string> @@ -269,25 +272,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Останні файли на телефоні"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Файли на телефоні"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> на телефоні"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Файли в папці \"Завантаження\""</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Файли на пристрої <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Файли в папці \"<xliff:g id="FOLDER">%1$s</xliff:g>\""</string> <string name="root_info_header_app" msgid="2125422047558420885">"Файли зі сховища даних <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Файли зі сховища даних <xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Нещодавні зображення на телефоні"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Зображення на телефоні"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Зображення в папці \"Завантаження\""</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g>: зображення"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Зображення в папці \"<xliff:g id="FOLDER">%1$s</xliff:g>\""</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g>: зображення"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g>: зображення (<xliff:g id="SUMMARY">%2$s</xliff:g>)"</string> <string name="chip_title_images" msgid="7838299046109841015">"Зображення"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Аудіо"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Відео"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Документи"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Великі файли"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Цього тижня"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Назва папки"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Нова назва"</string> <string name="preview_file" msgid="4056622696305432343">"Переглянути файл \"<xliff:g id="FILENAME">%1$s</xliff:g>\""</string> <string name="apps_row_title" msgid="3340490016663092925">"Переглянути файли в інших додатках"</string> <string name="anonymous_application" msgid="7633027057951625862">"Анонімно"</string> - <string name="open_tree_button" msgid="19992834788135845">"Дозволити доступ до каталогу \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Дозволити доступ до каталогу \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" з правами \"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Додаток <xliff:g id="APPNAME">%1$s</xliff:g> матиме повний доступ до файлів, які зараз зберігаються в цьому каталозі, і до вмісту, який буде зберігатися тут у майбутньому."</string> - <string name="search_bar_hint" msgid="4517366509897977321">"Шукати цей телефон"</string> + <string name="open_tree_button" msgid="6402871398424497776">"Використовувати цю папку"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Надати додатку <xliff:g id="APPNAME">%1$s</xliff:g> доступ до файлів у каталозі \"<xliff:g id="DIRECTORY">%2$s</xliff:g>\"?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Це надасть додатку <xliff:g id="APPNAME">%1$s</xliff:g> доступ до поточного й майбутнього контенту в каталозі \"<xliff:g id="DIRECTORY">%2$s</xliff:g>\"."</string> + <string name="search_bar_hint" msgid="4517366509897977321">"Пошук на цьому телефоні"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Видалити історію пошуку (<xliff:g id="TEXT">%1$s</xliff:g>)"</string> </resources> diff --git a/res/values-ur/inspector_strings.xml b/res/values-ur/inspector_strings.xml index bfe1b66b5..3a6904b54 100644 --- a/res/values-ur/inspector_strings.xml +++ b/res/values-ur/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"کمپوزر"</string> <string name="metadata_album" msgid="1661699531214720236">"البم"</string> <string name="metadata_address" msgid="1849921023707744640">"مقام"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"سلسلہ کی قسمیں"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"خام سائز (بائٹس)"</string> </resources> diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml index a2098e50b..c58d94ac4 100644 --- a/res/values-ur/strings.xml +++ b/res/values-ur/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"اشتراک کریں"</string> <string name="menu_delete" msgid="1022254131543256626">"حذف کریں"</string> <string name="menu_select_all" msgid="7600576812185570403">"سبھی کو منتخب کریں"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"سبھی غیر منتخب کریں"</string> <string name="menu_select" msgid="1366061076507142387">"منتخب کریں"</string> <string name="menu_sort" msgid="3362419226163725275">"ترتیب دیں بلحاظ..."</string> <string name="menu_copy" msgid="7404820171352314754">"اس میں کاپی کریں…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"دوبارہ کوشش کریں"</string> <string name="button_clear" msgid="5412304437764369441">"صاف کریں"</string> <string name="button_show_provider" msgid="6905880493806292753">"فراہم کنندہ میں دکھائیں"</string> + <string name="button_back" msgid="1888621708934742182">"پیچھے"</string> <string name="not_sorted" msgid="7813496644889115530">"ترتیب میں نہیں ہیں"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"نام"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"خلاصہ"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"فائل نہیں کھل سکتی"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"فائلوں کو آرکائیوز میں کھولا نہیں جا سکتا"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"کچھ دستاویزات کو حذف کرنے سے قاصر"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g> سے زیادہ فائلز کا اشتراک نہیں کر سکتے"</string> <string name="share_via" msgid="8725082736005677161">"اشتراک کریں بذریعہ"</string> <string name="copy_notification_title" msgid="52256435625098456">"فائلیں کاپی ہو رہی ہیں"</string> <string name="compress_notification_title" msgid="6830195148113751021">"فائلز کمپریس ہو رہی ہیں"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"فون پر حالیہ فائلز"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"فون میں فائلز"</string> <string name="root_info_header_media" msgid="2774453755906260852">"فون پر <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"ڈاؤن لوڈز میں فائلز"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> میں فائلز"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> میں فائلز"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> کی جانب سے فائلز"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> کی جانب سے فائلز"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"فون پر موجود حالیہ تصاویر"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"فون پر موجود تصاویر"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"ڈاؤن لوڈز میں تصاویر"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> پر موجود تصاویر"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> میں تصاویر"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g> کی تصاویر"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g> کی تصاویر"</string> <string name="chip_title_images" msgid="7838299046109841015">"تصاویر"</string> <string name="chip_title_audio" msgid="1032801828748235436">"آڈیو"</string> <string name="chip_title_videos" msgid="7011260091979776447">"ویڈیوز"</string> <string name="chip_title_documents" msgid="7432457563000753983">"دستاویزات"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"بڑی فائلیں"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"اس ہفتے"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"فولڈر کا نام"</string> <string name="input_hint_rename" msgid="8390711744270994452">"نیا نام"</string> <string name="preview_file" msgid="4056622696305432343">"فائل <xliff:g id="FILENAME">%1$s</xliff:g> کا پیش منظر"</string> <string name="apps_row_title" msgid="3340490016663092925">"دیگر ایپس میں فائلز کو براؤز کریں"</string> <string name="anonymous_application" msgid="7633027057951625862">"گمنام"</string> - <string name="open_tree_button" msgid="19992834788135845">"\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" تک رسائی کی اجازت دیں"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"\"<xliff:g id="ROOT">%2$s</xliff:g>\" پر \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" تک رسائی کی اجازت دیں؟"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"یہ \"<xliff:g id="APPNAME">%1$s</xliff:g>\" کو فی الوقت اس مقام کے تحت اسٹور کردہ تمام فائلوں اور یہاں اسٹور کردہ مستقبل کے کسی بھی مواد تک مکمل رسائی کی اجازت دے گی۔"</string> - <string name="search_bar_hint" msgid="4517366509897977321">"یہ فون تلاش کریں"</string> + <string name="open_tree_button" msgid="6402871398424497776">"اس فولڈر کو استعمال کریں"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g> کو <xliff:g id="DIRECTORY">%2$s</xliff:g> میں فائلز تک رسائی حاصل کرنے کی اجازت دیں؟"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"اس سے <xliff:g id="APPNAME">%1$s</xliff:g> کو <xliff:g id="DIRECTORY">%2$s</xliff:g> میں اسٹور کردہ موجودہ اور آئندہ کے مواد تک رسائی حاصل ہوگی۔"</string> + <string name="search_bar_hint" msgid="4517366509897977321">"اس فون میں تلاش کریں"</string> + <string name="delete_search_history" msgid="2202015025607694515">"تلاش کی سرگزشت کی <xliff:g id="TEXT">%1$s</xliff:g> حذف کریں"</string> </resources> diff --git a/res/values-uz/inspector_strings.xml b/res/values-uz/inspector_strings.xml index 680c64589..39bfb9b96 100644 --- a/res/values-uz/inspector_strings.xml +++ b/res/values-uz/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Bastakor"</string> <string name="metadata_album" msgid="1661699531214720236">"Albom"</string> <string name="metadata_address" msgid="1849921023707744640">"Joylashuv"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Strim turlari"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"RAW fayl hajmi (bayt)"</string> </resources> diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml index 8c56175a8..eb336e2ab 100644 --- a/res/values-uz/strings.xml +++ b/res/values-uz/strings.xml @@ -36,10 +36,11 @@ <string name="menu_share" msgid="4307140947108068356">"Yuborish"</string> <string name="menu_delete" msgid="1022254131543256626">"O‘chirish"</string> <string name="menu_select_all" msgid="7600576812185570403">"Hammasini belgilash"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Bekor qilish (*)"</string> <string name="menu_select" msgid="1366061076507142387">"Tanlash"</string> - <string name="menu_sort" msgid="3362419226163725275">"Saralash tartibi…"</string> + <string name="menu_sort" msgid="3362419226163725275">"Saralash…"</string> <string name="menu_copy" msgid="7404820171352314754">"Nusxalash…"</string> - <string name="menu_move" msgid="2310760789561129882">"Ko‘chirib o‘tkazish…"</string> + <string name="menu_move" msgid="2310760789561129882">"Boshqa joyga olish…"</string> <string name="menu_compress" msgid="37539111904724188">"Arxivlash"</string> <string name="menu_extract" msgid="8171946945982532262">"Arxivdan chiqarish"</string> <string name="menu_rename" msgid="1883113442688817554">"Qayta nomlash"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Qayta urinib ko‘rish"</string> <string name="button_clear" msgid="5412304437764369441">"Tozalash"</string> <string name="button_show_provider" msgid="6905880493806292753">"Ta’minotchi orqali ko‘rsatish"</string> + <string name="button_back" msgid="1888621708934742182">"Orqaga"</string> <string name="not_sorted" msgid="7813496644889115530">"Saralanmagan"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Nomi"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Qisqacha tavsif"</string> @@ -75,7 +77,7 @@ <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Teskari alifbo tartibida"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Hajmi (avval katta)"</string> <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Tahrir sanasi (avval yangi)"</string> - <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Saralash tartibi"</string> + <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Saralash"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Saralangan: <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Elementlar soni"</string> <string name="sort_direction_ascending" msgid="5882787683763248102">"O‘sish bo‘yicha"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Faylni ochib bo‘lmadi"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Arxivdagi fayllarni ochib bo‘lmadi"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Ba’zi hujjatlarni o‘chirib bo‘lmadi"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"<xliff:g id="COUNT">%1$d</xliff:g> tadan ortiq fayllarni ulashish imkonsiz"</string> <string name="share_via" msgid="8725082736005677161">"Ulashish"</string> <string name="copy_notification_title" msgid="52256435625098456">"Fayllar nusxalanmoqda"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Fayllar arxivlanmoqda"</string> @@ -147,7 +150,7 @@ <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ta elementni o‘chirib bo‘lmadi</item> <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ta elementni o‘chirib bo‘lmadi</item> </plurals> - <string name="notification_touch_for_details" msgid="2385563502445129570">"Batafsil ma’lumot olish uchun bosing"</string> + <string name="notification_touch_for_details" msgid="2385563502445129570">"Batafsil axborot olish uchun bosing"</string> <string name="close" msgid="905969391788869975">"Yopish"</string> <plurals name="copy_failure_alert_content" formatted="false" msgid="5570549471912990536"> <item quantity="other">Quyidagi fayllardan nusxa olinmadi: <xliff:g id="LIST_1">%1$s</xliff:g></item> @@ -188,8 +191,8 @@ <string name="allow" msgid="1275746941353040309">"Ruxsat berish"</string> <string name="deny" msgid="5127201668078153379">"Rad etish"</string> <plurals name="elements_selected" formatted="false" msgid="4448165978637163692"> - <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ta tanlandi</item> - <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ta tanlandi</item> + <item quantity="other">Belgilandi: <xliff:g id="COUNT_1">%1$d</xliff:g></item> + <item quantity="one">Belgilandi: <xliff:g id="COUNT_0">%1$d</xliff:g></item> </plurals> <plurals name="elements_dragged" formatted="false" msgid="5932571296037626279"> <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ta element</item> @@ -202,8 +205,8 @@ <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ta fayl o‘chirib tashlansinmi?</item> </plurals> <plurals name="delete_folders_confirmation_message" formatted="false" msgid="1028946402799686388"> - <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ta jild ichidagi kontentlari bilan o‘chirib tashlansinmi?</item> - <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ta jild ichidagi kontentlari bilan o‘chirib tashlansinmi?</item> + <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ta jild va ichidagi hamma narsa o‘chirib tashlansinmi?</item> + <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ta jild va ichidagi hamma narsa o‘chirib tashlansinmi?</item> </plurals> <plurals name="delete_items_confirmation_message" formatted="false" msgid="7285090426511028179"> <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ta element o‘chirib tashlansinmi?</item> @@ -219,31 +222,38 @@ <string name="overwrite_file_confirmation_message" msgid="2496109652768222716">"<xliff:g id="NAME">%1$s</xliff:g> fayli almashtirilsinmi?"</string> <string name="continue_in_background" msgid="1974214559047793331">"Fonda davom ettirish"</string> <plurals name="selected_count" formatted="false" msgid="7555250236512981129"> - <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ta tanlandi</item> - <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ta tanlandi</item> + <item quantity="other">Belgilandi: <xliff:g id="COUNT_1">%1$d</xliff:g></item> + <item quantity="one">Belgilandi: <xliff:g id="COUNT_0">%1$d</xliff:g></item> </plurals> <string name="root_info_header_recent" msgid="8754386597210017725">"Telefonda yaqinda ochilgan fayllar"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Telefondagi fayllar"</string> <string name="root_info_header_media" msgid="2774453755906260852">"Telefondagi <xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Yuklanmalardagi fayllar"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> qurilmasidagi fayllar"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> ichidagi fayllar"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g> fayllari"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g> fayllari (<xliff:g id="SUMMARY">%2$s</xliff:g>)"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Telefondagi oxirgi rasmlar"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Telefondagi rasmlar"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Yuklanmalardagi rasmlar"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> qurilmasidagi rasmlar"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> ichidagi rasmlar"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g> rasmlari"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Rasmlar: <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Rasmlar"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Audio"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Videolar"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Hujjatlar"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Katta hajmli fayllar"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Shu hafta"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Jild nomi"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Yangi nom"</string> <string name="preview_file" msgid="4056622696305432343">"<xliff:g id="FILENAME">%1$s</xliff:g> fayliga nazar solish"</string> - <string name="apps_row_title" msgid="3340490016663092925">"Fayllarni boshqa ilovalar orqali topish"</string> + <string name="apps_row_title" msgid="3340490016663092925">"Boshqa ilovalardagi fayllarni topish"</string> <string name="anonymous_application" msgid="7633027057951625862">"Anonim"</string> - <string name="open_tree_button" msgid="19992834788135845">"“<xliff:g id="DIRECTORY">%1$s</xliff:g>” katalogiga ruxsat berilsinmi?"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"“<xliff:g id="ROOT">%2$s</xliff:g>” ichidagi <xliff:g id="DIRECTORY">%1$s</xliff:g> katalogiga ruxsat berilsinmi?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"U “<xliff:g id="APPNAME">%1$s</xliff:g>” ilovasiga hozirda ushbu joydagi barcha mavjud fayllar va keyinchalik shu yerga saqlanadigan fayllardan foydalanishga ruxsat beradi."</string> - <string name="search_bar_hint" msgid="4517366509897977321">"Bu telefondan qidirish"</string> + <string name="open_tree_button" msgid="6402871398424497776">"Bu jilddan foydalanish"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"<xliff:g id="APPNAME">%1$s</xliff:g> ilovasiga <xliff:g id="DIRECTORY">%2$s</xliff:g> fayllaridan foydalanish huquqi berilsinmi?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"<xliff:g id="APPNAME">%1$s</xliff:g> ilovasi <xliff:g id="DIRECTORY">%2$s</xliff:g> ichida hozir joylashgan va keyin kiritiladigan kontentlardan foydalana oladi."</string> + <string name="search_bar_hint" msgid="4517366509897977321">"Shu telefondan qidirish"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Qidiruv tarixini tozalash (<xliff:g id="TEXT">%1$s</xliff:g>)"</string> </resources> diff --git a/res/values-vi/inspector_strings.xml b/res/values-vi/inspector_strings.xml index c540bff68..568d3009c 100644 --- a/res/values-vi/inspector_strings.xml +++ b/res/values-vi/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Nhà soạn nhạc"</string> <string name="metadata_album" msgid="1661699531214720236">"Album"</string> <string name="metadata_address" msgid="1849921023707744640">"Địa điểm"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Loại luồng"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Kích thước tệp Raw (byte)"</string> </resources> diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index f163c2127..9f602aec8 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/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="files_label" msgid="771781190045103748">"Tệp"</string> - <string name="downloads_label" msgid="5462789470049501103">"Nội dung tải xuống"</string> + <string name="downloads_label" msgid="5462789470049501103">"Tệp đã tải xuống"</string> <!-- no translation found for app_label (8089292432455111409) --> <skip /> <!-- no translation found for launcher_label (799410258349837668) --> @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Chia sẻ"</string> <string name="menu_delete" msgid="1022254131543256626">"Xóa"</string> <string name="menu_select_all" msgid="7600576812185570403">"Chọn tất cả"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Bỏ chọn tất cả"</string> <string name="menu_select" msgid="1366061076507142387">"Chọn"</string> <string name="menu_sort" msgid="3362419226163725275">"Sắp xếp theo..."</string> <string name="menu_copy" msgid="7404820171352314754">"Sao chép vào…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Thử lại"</string> <string name="button_clear" msgid="5412304437764369441">"Xóa"</string> <string name="button_show_provider" msgid="6905880493806292753">"Hiển thị trong nhà cung cấp"</string> + <string name="button_back" msgid="1888621708934742182">"Quay lại"</string> <string name="not_sorted" msgid="7813496644889115530">"Chưa được sắp xếp"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Tên"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Tóm tắt"</string> @@ -70,11 +72,11 @@ <string name="sort_dimension_name_ascending" msgid="3715725253270614742">"Tên tệp (A đến Z)"</string> <string name="sort_dimension_file_type_ascending" msgid="3466973933402894292">"Loại (A đến Z)"</string> <string name="sort_dimension_size_ascending" msgid="2617359017800057762">"Kích thước (nhỏ nhất trước)"</string> - <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Đã sửa đổi (cũ nhất trước)"</string> + <string name="sort_dimension_date_ascending" msgid="7920068979386920559">"Có sửa đổi (cũ nhất trước)"</string> <string name="sort_dimension_name_descending" msgid="1514525521100423342">"Tên tệp (Z đến A)"</string> <string name="sort_dimension_file_type_descending" msgid="3344796059784511100">"Loại (Z đến A)"</string> <string name="sort_dimension_size_descending" msgid="2367030017597348938">"Kích thước (lớn nhất trước)"</string> - <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Đã sửa đổi (mới nhất trước)"</string> + <string name="sort_dimension_date_descending" msgid="5466839955763127113">"Có sửa đổi (mới nhất trước)"</string> <string name="sort_dimension_dialog_title" msgid="3048641573962982157">"Sắp xếp theo"</string> <string name="sort_dimension_button_title" msgid="1898606989130896126">"Sắp xếp theo <xliff:g id="LABEL">%s</xliff:g>"</string> <string name="directory_items" msgid="6645621978998614003">"Số mục"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Không thể mở tệp"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Không thể mở tệp trong lưu trữ"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Không thể xóa một số tài liệu"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Bạn không thể chia sẻ quá <xliff:g id="COUNT">%1$d</xliff:g> tệp"</string> <string name="share_via" msgid="8725082736005677161">"Chia sẻ qua"</string> <string name="copy_notification_title" msgid="52256435625098456">"Đang sao chép tệp"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Nén tệp"</string> @@ -225,26 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Tệp gần đây trên điện thoại"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Tệp trên điện thoại"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> trên điện thoại"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Các tệp trong mục Tệp đã tải xuống"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Tệp trên <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Tệp trong <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Tệp từ <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Tệp từ <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Hình ảnh gần đây trên điện thoại"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Hình ảnh trên điện thoại"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Các hình ảnh trong mục Tệp đã tải xuống"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Hình ảnh trên <xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Hình ảnh trong <xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Hình ảnh từ <xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Hình ảnh từ <xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Hình ảnh"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Âm thanh"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Video"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Tài liệu"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Tệp lớn"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Tuần này"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Tên thư mục"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Tên mới"</string> <string name="preview_file" msgid="4056622696305432343">"Xem trước tệp <xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Duyệt qua tệp trong các ứng dụng khác"</string> <string name="anonymous_application" msgid="7633027057951625862">"Ẩn danh"</string> - <string name="open_tree_button" msgid="19992834788135845">"Cho phép truy cập vào \"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <!-- no translation found for open_tree_dialog_title (8429465292253532274) --> - <skip /> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Điều này sẽ cho phép \"<xliff:g id="APPNAME">%1$s</xliff:g>\" có quyền truy cập đầy đủ vào tất cả các tệp hiện được lưu trữ ở vị trí này và mọi nội dung sau này sẽ lưu trữ tại đây."</string> - <string name="search_bar_hint" msgid="4517366509897977321">"Tìm kiếm điện thoại này"</string> + <string name="open_tree_button" msgid="6402871398424497776">"Sử dụng thư mục này"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Cho phép <xliff:g id="APPNAME">%1$s</xliff:g> truy cập vào tệp trong <xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Thao tác này sẽ cho phép <xliff:g id="APPNAME">%1$s</xliff:g> truy cập vào nội dung đang và sẽ được lưu trữ trong <xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> + <string name="search_bar_hint" msgid="4517366509897977321">"Tìm kiếm trên điện thoại này"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Xóa lịch sử tìm kiếm <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-zh-rCN/inspector_strings.xml b/res/values-zh-rCN/inspector_strings.xml index 312f3dbd1..85694176b 100644 --- a/res/values-zh-rCN/inspector_strings.xml +++ b/res/values-zh-rCN/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"作曲家"</string> <string name="metadata_album" msgid="1661699531214720236">"专辑"</string> <string name="metadata_address" msgid="1849921023707744640">"位置"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"流式传输类型"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"原始大小(字节)"</string> </resources> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 8b654e010..c23e3203c 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"分享"</string> <string name="menu_delete" msgid="1022254131543256626">"删除"</string> <string name="menu_select_all" msgid="7600576812185570403">"全选"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"取消全选"</string> <string name="menu_select" msgid="1366061076507142387">"选择"</string> <string name="menu_sort" msgid="3362419226163725275">"排序依据…"</string> <string name="menu_copy" msgid="7404820171352314754">"复制到…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"重试"</string> <string name="button_clear" msgid="5412304437764369441">"清除"</string> <string name="button_show_provider" msgid="6905880493806292753">"在提供程序中显示"</string> + <string name="button_back" msgid="1888621708934742182">"返回"</string> <string name="not_sorted" msgid="7813496644889115530">"未排序"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"名称"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"摘要"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"无法打开文件"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"无法打开归档文件"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"无法删除部分文档"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"最多只能分享 <xliff:g id="COUNT">%1$d</xliff:g> 个文件"</string> <string name="share_via" msgid="8725082736005677161">"分享方式"</string> <string name="copy_notification_title" msgid="52256435625098456">"正在复制文件"</string> <string name="compress_notification_title" msgid="6830195148113751021">"正在压缩文件"</string> @@ -202,8 +205,8 @@ <item quantity="one">要删除 <xliff:g id="COUNT_0">%1$d</xliff:g> 个文件吗?</item> </plurals> <plurals name="delete_folders_confirmation_message" formatted="false" msgid="1028946402799686388"> - <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> + <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> <plurals name="delete_items_confirmation_message" formatted="false" msgid="7285090426511028179"> <item quantity="other">要删除 <xliff:g id="COUNT_1">%1$d</xliff:g> 项吗?</item> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"最近在手机上使用过的文件"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"手机上的文件"</string> <string name="root_info_header_media" msgid="2774453755906260852">"手机上的<xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"“下载”中的文件"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g>上的文件"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"<xliff:g id="FOLDER">%1$s</xliff:g> 中的文件"</string> <string name="root_info_header_app" msgid="2125422047558420885">"<xliff:g id="LABEL">%1$s</xliff:g>中的文件"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"<xliff:g id="LABEL">%1$s</xliff:g>中的文件/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"手机上的近期图片"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"手机上的图片"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"“下载”中的图片"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g>上的图片"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"<xliff:g id="FOLDER">%1$s</xliff:g> 中的图片"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"来自<xliff:g id="LABEL">%1$s</xliff:g>的图片"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"来自<xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g> 的图片"</string> <string name="chip_title_images" msgid="7838299046109841015">"图片"</string> <string name="chip_title_audio" msgid="1032801828748235436">"音频"</string> <string name="chip_title_videos" msgid="7011260091979776447">"视频"</string> <string name="chip_title_documents" msgid="7432457563000753983">"文档"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"大型文件"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"本周"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"文件夹名称"</string> <string name="input_hint_rename" msgid="8390711744270994452">"新名称"</string> <string name="preview_file" msgid="4056622696305432343">"预览“<xliff:g id="FILENAME">%1$s</xliff:g>”文件"</string> <string name="apps_row_title" msgid="3340490016663092925">"浏览其他应用中的文件"</string> <string name="anonymous_application" msgid="7633027057951625862">"匿名"</string> - <string name="open_tree_button" msgid="19992834788135845">"允许访问“<xliff:g id="DIRECTORY">%1$s</xliff:g>”"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"允许访问“<xliff:g id="ROOT">%2$s</xliff:g>”上的“<xliff:g id="DIRECTORY">%1$s</xliff:g>”吗?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"它将允许“<xliff:g id="APPNAME">%1$s</xliff:g>”拥有对以下内容的完整访问权限:目前存储在此位置下的所有文件,以及日后存储在此处的任何内容。"</string> + <string name="open_tree_button" msgid="6402871398424497776">"使用这个文件夹"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"要允许<xliff:g id="APPNAME">%1$s</xliff:g>访问 <xliff:g id="DIRECTORY">%2$s</xliff:g> 中的文件吗?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"这么做可让<xliff:g id="APPNAME">%1$s</xliff:g>访问目前及以后存储在 <xliff:g id="DIRECTORY">%2$s</xliff:g> 中的内容。"</string> <string name="search_bar_hint" msgid="4517366509897977321">"搜索此手机"</string> + <string name="delete_search_history" msgid="2202015025607694515">"删除搜索记录“<xliff:g id="TEXT">%1$s</xliff:g>”"</string> </resources> diff --git a/res/values-zh-rHK/inspector_strings.xml b/res/values-zh-rHK/inspector_strings.xml index 8b7e48fd3..373421464 100644 --- a/res/values-zh-rHK/inspector_strings.xml +++ b/res/values-zh-rHK/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"作曲者"</string> <string name="metadata_album" msgid="1661699531214720236">"專輯"</string> <string name="metadata_address" msgid="1849921023707744640">"位置"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"串流類型"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"原始大小 (字節)"</string> </resources> diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml index e80dfc5fd..7a30c2ea7 100644 --- a/res/values-zh-rHK/strings.xml +++ b/res/values-zh-rHK/strings.xml @@ -30,12 +30,13 @@ <string name="menu_search" msgid="1876699106790719849">"搜尋"</string> <string name="menu_settings" msgid="6520844520117939047">"儲存空間設定"</string> <string name="menu_open" msgid="9092138100049759315">"開啟"</string> - <string name="menu_open_with" msgid="5507647065467520229">"用於開啟的應用程式"</string> + <string name="menu_open_with" msgid="5507647065467520229">"選擇開啟方式"</string> <string name="menu_open_in_new_window" msgid="6686563636123311276">"在新視窗中開啟"</string> <string name="menu_save" msgid="5195367497138965168">"儲存"</string> <string name="menu_share" msgid="4307140947108068356">"分享"</string> <string name="menu_delete" msgid="1022254131543256626">"刪除"</string> <string name="menu_select_all" msgid="7600576812185570403">"全選"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"全部取消選取"</string> <string name="menu_select" msgid="1366061076507142387">"選取"</string> <string name="menu_sort" msgid="3362419226163725275">"排序方式…"</string> <string name="menu_copy" msgid="7404820171352314754">"複製到…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"再試一次"</string> <string name="button_clear" msgid="5412304437764369441">"清除"</string> <string name="button_show_provider" msgid="6905880493806292753">"在供應商的應用程式中顯示"</string> + <string name="button_back" msgid="1888621708934742182">"返回"</string> <string name="not_sorted" msgid="7813496644889115530">"尚未排序"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"名稱"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"摘要"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"無法開啟檔案"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"無法開啟封存中的檔案"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"無法刪除部分文件"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"無法分享超過 <xliff:g id="COUNT">%1$d</xliff:g> 個檔案"</string> <string name="share_via" msgid="8725082736005677161">"透過以下應用程式分享:"</string> <string name="copy_notification_title" msgid="52256435625098456">"正在複製檔案"</string> <string name="compress_notification_title" msgid="6830195148113751021">"正在壓縮檔案"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"手機上的最近檔案"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"手機上的檔案"</string> <string name="root_info_header_media" msgid="2774453755906260852">"手機上的<xliff:g id="LABEL">%1$s</xliff:g>"</string> - <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g>上的檔案"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"「下載項目」中的檔案"</string> + <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> 上的檔案"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"「<xliff:g id="FOLDER">%1$s</xliff:g>」中的檔案"</string> <string name="root_info_header_app" msgid="2125422047558420885">"來自<xliff:g id="LABEL">%1$s</xliff:g>的檔案"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"來自<xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g> 的檔案"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"手機上最近的圖片"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"手機上的圖片"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"「下載項目」中的圖片"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g>上的圖片"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"「<xliff:g id="FOLDER">%1$s</xliff:g>」中的圖片"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"<xliff:g id="LABEL">%1$s</xliff:g>中的圖片"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"<xliff:g id="LABEL">%1$s</xliff:g>/<xliff:g id="SUMMARY">%2$s</xliff:g> 中的圖片"</string> <string name="chip_title_images" msgid="7838299046109841015">"圖片"</string> <string name="chip_title_audio" msgid="1032801828748235436">"音訊"</string> <string name="chip_title_videos" msgid="7011260091979776447">"影片"</string> <string name="chip_title_documents" msgid="7432457563000753983">"文件"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"大型檔案"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"這星期"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"資料夾名稱"</string> <string name="input_hint_rename" msgid="8390711744270994452">"新名稱"</string> <string name="preview_file" msgid="4056622696305432343">"預覽 <xliff:g id="FILENAME">%1$s</xliff:g> 檔案"</string> <string name="apps_row_title" msgid="3340490016663092925">"透過其他應用程式瀏覽檔案"</string> <string name="anonymous_application" msgid="7633027057951625862">"匿名"</string> - <string name="open_tree_button" msgid="19992834788135845">"允許存取「<xliff:g id="DIRECTORY">%1$s</xliff:g>」"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"要允許存取「<xliff:g id="ROOT">%2$s</xliff:g>」的「<xliff:g id="DIRECTORY">%1$s</xliff:g>」嗎?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"這項操作將允許「<xliff:g id="APPNAME">%1$s</xliff:g>」完整存取目前儲存在此位置的所有檔案,以及任何未來在此儲存的內容。"</string> + <string name="open_tree_button" msgid="6402871398424497776">"使用此資料夾"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"要允許「<xliff:g id="APPNAME">%1$s</xliff:g>」存取「<xliff:g id="DIRECTORY">%2$s</xliff:g>」中的檔案嗎?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"這樣會允許「<xliff:g id="APPNAME">%1$s</xliff:g>」在今後存取儲存在「<xliff:g id="DIRECTORY">%2$s</xliff:g>」的內容。"</string> <string name="search_bar_hint" msgid="4517366509897977321">"搜尋這部手機"</string> + <string name="delete_search_history" msgid="2202015025607694515">"刪除搜尋記錄 <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-zh-rTW/inspector_strings.xml b/res/values-zh-rTW/inspector_strings.xml index 8c17e39a7..16c466c8c 100644 --- a/res/values-zh-rTW/inspector_strings.xml +++ b/res/values-zh-rTW/inspector_strings.xml @@ -37,13 +37,11 @@ <string name="metadata_duration" msgid="3115494422055472715">"時間長度"</string> <string name="metadata_date_time" msgid="1090351199248114406">"拍攝時間"</string> <string name="metadata_focal_length" msgid="3440735161407699893">"焦距"</string> - <string name="metadata_focal_format" msgid="8542211707962355623">"<xliff:g id="LENGTH">%1$.2f </xliff:g> 毫米"</string> + <string name="metadata_focal_format" msgid="8542211707962355623">"<xliff:g id="LENGTH">%1$.2f </xliff:g> 公釐"</string> <string name="metadata_iso_speed_ratings" msgid="1699781252899759058">"等效 ISO"</string> <string name="metadata_iso_format" msgid="4153285204012694861">"ISO <xliff:g id="ISO_SPEED">%1$d</xliff:g>"</string> <string name="metadata_artist" msgid="8972421485694988540">"演出者"</string> <string name="metadata_composer" msgid="4696926808308256056">"作曲者"</string> <string name="metadata_album" msgid="1661699531214720236">"專輯"</string> <string name="metadata_address" msgid="1849921023707744640">"位置"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"串流類型"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"原始大小 (位元組)"</string> </resources> diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 6d7e28fb1..84cd31761 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"分享"</string> <string name="menu_delete" msgid="1022254131543256626">"刪除"</string> <string name="menu_select_all" msgid="7600576812185570403">"全選"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"取消全選"</string> <string name="menu_select" msgid="1366061076507142387">"選取"</string> <string name="menu_sort" msgid="3362419226163725275">"排序依據..."</string> <string name="menu_copy" msgid="7404820171352314754">"複製到…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"再試一次"</string> <string name="button_clear" msgid="5412304437764369441">"清除"</string> <string name="button_show_provider" msgid="6905880493806292753">"在供應商的應用程式中顯示"</string> + <string name="button_back" msgid="1888621708934742182">"返回"</string> <string name="not_sorted" msgid="7813496644889115530">"未排序"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"名稱"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"摘要"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"無法開啟檔案"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"無法開啟已封存的檔案"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"無法刪除部分文件"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"最多只能分享 <xliff:g id="COUNT">%1$d</xliff:g> 個檔案"</string> <string name="share_via" msgid="8725082736005677161">"分享方式:"</string> <string name="copy_notification_title" msgid="52256435625098456">"複製檔案"</string> <string name="compress_notification_title" msgid="6830195148113751021">"正在壓縮檔案"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"最近在手機上使用過的檔案"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"手機中的檔案"</string> <string name="root_info_header_media" msgid="2774453755906260852">"手機中的<xliff:g id="LABEL">%1$s</xliff:g>"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"「下載」中的檔案"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"<xliff:g id="DEVICE">%1$s</xliff:g> 中的檔案"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"「<xliff:g id="FOLDER">%1$s</xliff:g>」中的檔案"</string> <string name="root_info_header_app" msgid="2125422047558420885">"「<xliff:g id="LABEL">%1$s</xliff:g>」中的檔案"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"「<xliff:g id="LABEL">%1$s</xliff:g>」中的檔案/<xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"手機上的近期圖片"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"手機上的圖片"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"「下載」中的圖片"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"<xliff:g id="DEVICE">%1$s</xliff:g> 上的圖片"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"「<xliff:g id="FOLDER">%1$s</xliff:g>」中的圖片"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"來自「<xliff:g id="LABEL">%1$s</xliff:g>」的圖片"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"來自「<xliff:g id="LABEL">%1$s</xliff:g>」/<xliff:g id="SUMMARY">%2$s</xliff:g> 的圖片"</string> <string name="chip_title_images" msgid="7838299046109841015">"圖片"</string> <string name="chip_title_audio" msgid="1032801828748235436">"音訊"</string> <string name="chip_title_videos" msgid="7011260091979776447">"影片"</string> <string name="chip_title_documents" msgid="7432457563000753983">"文件"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"大型檔案"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"本週"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"資料夾名稱"</string> <string name="input_hint_rename" msgid="8390711744270994452">"新名稱"</string> <string name="preview_file" msgid="4056622696305432343">"預覽 <xliff:g id="FILENAME">%1$s</xliff:g> 檔案"</string> <string name="apps_row_title" msgid="3340490016663092925">"瀏覽其他應用程式中的檔案"</string> <string name="anonymous_application" msgid="7633027057951625862">"匿名"</string> - <string name="open_tree_button" msgid="19992834788135845">"允許存取「<xliff:g id="DIRECTORY">%1$s</xliff:g>」"</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"要允許存取「<xliff:g id="ROOT">%2$s</xliff:g>」上的「<xliff:g id="DIRECTORY">%1$s</xliff:g>」嗎?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"這麼做會允許「<xliff:g id="APPNAME">%1$s</xliff:g>」存取所有儲存在這個位置的檔案,以及未來儲存於此的內容。"</string> + <string name="open_tree_button" msgid="6402871398424497776">"使用這個資料夾"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"要允許「<xliff:g id="APPNAME">%1$s</xliff:g>」存取「<xliff:g id="DIRECTORY">%2$s</xliff:g>」中的檔案嗎?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"如果你這麼做,「<xliff:g id="APPNAME">%1$s</xliff:g>」從現在開始就能存取儲存在「<xliff:g id="DIRECTORY">%2$s</xliff:g>」中的內容。"</string> <string name="search_bar_hint" msgid="4517366509897977321">"搜尋這支手機"</string> + <string name="delete_search_history" msgid="2202015025607694515">"刪除搜尋記錄 <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values-zu/inspector_strings.xml b/res/values-zu/inspector_strings.xml index 3cb972d81..94ca3c5ab 100644 --- a/res/values-zu/inspector_strings.xml +++ b/res/values-zu/inspector_strings.xml @@ -44,6 +44,4 @@ <string name="metadata_composer" msgid="4696926808308256056">"Umqambi"</string> <string name="metadata_album" msgid="1661699531214720236">"I-albhamu"</string> <string name="metadata_address" msgid="1849921023707744640">"Indawo"</string> - <string name="debug_stream_types" msgid="2088565280360139333">"Izinhlobo zokusakaza"</string> - <string name="debug_raw_size" msgid="7487139640175650185">"Usayizi we-Raw (amabhayithi)"</string> </resources> diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml index 67b7554a7..60e04cdae 100644 --- a/res/values-zu/strings.xml +++ b/res/values-zu/strings.xml @@ -36,6 +36,7 @@ <string name="menu_share" msgid="4307140947108068356">"Yabelana"</string> <string name="menu_delete" msgid="1022254131543256626">"Susa"</string> <string name="menu_select_all" msgid="7600576812185570403">"Khetha konke"</string> + <string name="menu_deselect_all" msgid="7729916068862742979">"Susa ukukhetha konke"</string> <string name="menu_select" msgid="1366061076507142387">"Khetha"</string> <string name="menu_sort" msgid="3362419226163725275">"Hlunga nge..."</string> <string name="menu_copy" msgid="7404820171352314754">"Kopishela ku…"</string> @@ -61,6 +62,7 @@ <string name="button_retry" msgid="4011461781916631389">"Zama Futhi"</string> <string name="button_clear" msgid="5412304437764369441">"Sula"</string> <string name="button_show_provider" msgid="6905880493806292753">"Bonisa kumhlinzeki"</string> + <string name="button_back" msgid="1888621708934742182">"Emuva"</string> <string name="not_sorted" msgid="7813496644889115530">"Akuhlungiwe"</string> <string name="sort_dimension_name" msgid="6325591541414177579">"Igama"</string> <string name="sort_dimension_summary" msgid="7724534446881397860">"Isifinyezo"</string> @@ -97,6 +99,7 @@ <string name="toast_no_application" msgid="7555319548595113121">"Ayikwazanga ukuvula ifayela"</string> <string name="toast_view_in_archives_unsupported" msgid="1923221390170964845">"Ayikwazi ukuvula amafayela kuzingobo zomlando"</string> <string name="toast_failed_delete" msgid="3453846588205817591">"Ayikwazi ukususa amanye amadokhumenti"</string> + <string name="toast_share_over_limit" msgid="5805442886537093015">"Ayikwazi ukwabelana ngamafayela angaphezulu kwangu-<xliff:g id="COUNT">%1$d</xliff:g>"</string> <string name="share_via" msgid="8725082736005677161">"Abelana nge-"</string> <string name="copy_notification_title" msgid="52256435625098456">"Ikopisha amafayela"</string> <string name="compress_notification_title" msgid="6830195148113751021">"Icindezela amafayela"</string> @@ -225,25 +228,32 @@ <string name="root_info_header_recent" msgid="8754386597210017725">"Amafayela wakamuva efonini"</string> <string name="root_info_header_global_search" msgid="9099308729787003373">"Amafayela efonini"</string> <string name="root_info_header_media" msgid="2774453755906260852">"<xliff:g id="LABEL">%1$s</xliff:g> efonini"</string> + <string name="root_info_header_downloads" msgid="8848161246921154115">"Amafayela ekulandweni"</string> <string name="root_info_header_storage" msgid="2989014130584927442">"Amafayela ku-<xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_folder" msgid="5851172222368049864">"Amafayela ku-<xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_app" msgid="2125422047558420885">"Amafayela kusuka ku-<xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_app_with_summary" msgid="3223302581236069702">"Amafayela kusuka ku-<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="root_info_header_image_recent" msgid="6252335619444758201">"Izithombe zakamuva kufoni"</string> <string name="root_info_header_image_global_search" msgid="7945533325610533016">"Izithombe ezikufoni"</string> + <string name="root_info_header_image_downloads" msgid="7072252612657612307">"Izithombe ekulandweni"</string> <string name="root_info_header_image_storage" msgid="5086740886360075930">"Izithombe ku-<xliff:g id="DEVICE">%1$s</xliff:g>"</string> + <string name="root_info_header_image_folder" msgid="5980430877636279667">"Izithombe eziku-<xliff:g id="FOLDER">%1$s</xliff:g>"</string> <string name="root_info_header_image_app" msgid="4858114210851525359">"Izithombe kusukela ku-<xliff:g id="LABEL">%1$s</xliff:g>"</string> <string name="root_info_header_image_app_with_summary" msgid="6404842960923224778">"Izithombe kusukela ku-<xliff:g id="LABEL">%1$s</xliff:g> / <xliff:g id="SUMMARY">%2$s</xliff:g>"</string> <string name="chip_title_images" msgid="7838299046109841015">"Izithombe"</string> <string name="chip_title_audio" msgid="1032801828748235436">"Umsindo"</string> <string name="chip_title_videos" msgid="7011260091979776447">"Amavidiyo"</string> <string name="chip_title_documents" msgid="7432457563000753983">"Amadokhumenti"</string> + <string name="chip_title_large_files" msgid="7740269190493883980">"Amafayela amakhulu"</string> + <string name="chip_title_from_this_week" msgid="4961536405220379672">"Leli viki"</string> <string name="input_hint_new_folder" msgid="479672411219725677">"Igama lefolda"</string> <string name="input_hint_rename" msgid="8390711744270994452">"Igama elisha"</string> <string name="preview_file" msgid="4056622696305432343">"Buka kuqala ifayela le-<xliff:g id="FILENAME">%1$s</xliff:g>"</string> <string name="apps_row_title" msgid="3340490016663092925">"Phequlula amafayela kwezinye izinhlelo zokusebenza"</string> <string name="anonymous_application" msgid="7633027057951625862">"Okungaziwa"</string> - <string name="open_tree_button" msgid="19992834788135845">"Vumela ukufinyelela ku-\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\""</string> - <string name="open_tree_dialog_title" msgid="6978383241897450134">"Vumela ukufinyelela ku-\"<xliff:g id="DIRECTORY">%1$s</xliff:g>\" ku-\"<xliff:g id="ROOT">%2$s</xliff:g>\"?"</string> - <string name="open_tree_dialog_message" msgid="8545093618524340168">"Izovumela i-\"<xliff:g id="APPNAME">%1$s</xliff:g>\" ukuze inikeze ukufinyelela okugcwele kuwo wonke amafayela manje agcinwe ngaphansi kwale ndawo, futhi noma ikuphi okuqukethwe okuzayo kuzogcinwa lapha."</string> + <string name="open_tree_button" msgid="6402871398424497776">"Sebenzisa le folda"</string> + <string name="open_tree_dialog_title" msgid="6339509533852318569">"Vumela i-<xliff:g id="APPNAME">%1$s</xliff:g> ukuthi ifinyelele kumafayela aku-<xliff:g id="DIRECTORY">%2$s</xliff:g>?"</string> + <string name="open_tree_dialog_message" msgid="4120695398430659628">"Lokhu kuzovumela i-<xliff:g id="APPNAME">%1$s</xliff:g> ifinyelele kokuqukethwe kwakho kwamanje nokuzayo okugcinwe ku-<xliff:g id="DIRECTORY">%2$s</xliff:g>."</string> <string name="search_bar_hint" msgid="4517366509897977321">"Sesha le foni"</string> + <string name="delete_search_history" msgid="2202015025607694515">"Susa umlando wokusesha <xliff:g id="TEXT">%1$s</xliff:g>"</string> </resources> diff --git a/res/values/config.xml b/res/values/config.xml index bb1af2216..53db2a1f4 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -59,9 +59,6 @@ <bool name="feature_virtual_files_sharing">true</bool> <bool name="feature_inspector">true</bool> <bool name="feature_debug_mode">false</bool> - <!-- If this value is true, the default root on action browse will be the root from - "default_root_uri". Otherwise, the default root will be the recent root.--> - <bool name="feature_default_root_in_browse">false</bool> <!-- Indicates if internal storage is shown as default or not. --> <bool name="config_default_show_device_root">false</bool> diff --git a/res/values/inspector_strings.xml b/res/values/inspector_strings.xml index a70a014a7..b83967196 100644 --- a/res/values/inspector_strings.xml +++ b/res/values/inspector_strings.xml @@ -98,6 +98,8 @@ <string name="debug_raw_mimetype" translatable="false">Raw mimetype</string> <!-- String label for developer/debug file details, specifying that a file is an archive. --> <string name="debug_is_archive" translatable="false">Is archive</string> + <!-- String label for developer/debug file details, specifying that a directory is blocked from tree. --> + <string name="debug_is_blocked_from_tree" translatable="false">Is blocked from tree</string> <!-- String label for developer/debug file details, specifying that a file is a container (like a folder or an archive). --> <string name="debug_is_container" translatable="false">Is container</string> <!-- String label for developer/debug file details, specifying that a file is partial (being downloaded). --> diff --git a/res/values/overlayable.xml b/res/values/overlayable.xml index 9a13207cf..5b66711db 100644 --- a/res/values/overlayable.xml +++ b/res/values/overlayable.xml @@ -44,7 +44,6 @@ <!-- START BOOLEAN CONFIG --> <item type="bool" name="config_button_all_caps"/> <item type="bool" name="config_default_show_device_root"/> - <item type="bool" name="feature_default_root_in_browse"/> <item type="bool" name="handle_view_downloads_intent"/> <item type="bool" name="is_launcher_enabled"/> <item type="bool" name="show_search_bar"/> diff --git a/res/values/strings.xml b/res/values/strings.xml index 555954502..0bfdb40af 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -57,6 +57,8 @@ <string name="menu_delete">Delete</string> <!-- Menu item title that selects all documents in the current directory [CHAR LIMIT=28] --> <string name="menu_select_all">Select all</string> + <!-- Menu item title that deselects all documents in the current directory [CHAR LIMIT=28] --> + <string name="menu_deselect_all">Deselect all</string> <!-- Menu item title that selects documents in the current directory [CHAR LIMIT=28] --> <string name="menu_select">Select</string> <!-- Menu item title that sort documents in the current directory [CHAR LIMIT=28] --> @@ -112,6 +114,8 @@ <!-- Button label that show in the providers service. Many providers have their own app such as google drive. Pressing this button would open in the file in the providers app. --> <string name="button_show_provider">Show in provider</string> + <!-- Button label that do back action [CHAR LIMIT=24] --> + <string name="button_back">Back</string> <!-- A string used to show user that currently documents are not sorted in any given order. [CHAR_LIMIT=30] --> <string name="not_sorted">Not sorted</string> @@ -194,6 +198,8 @@ <string name="toast_view_in_archives_unsupported">Cannot open files in archives</string> <!-- Toast shown when some of the selected documents failed to be deleted [CHAR LIMIT=48] --> <string name="toast_failed_delete">Unable to delete some documents</string> + <!-- Toast shown when user want to share files amount over limit [CHAR LIMIT=60] --> + <string name="toast_share_over_limit">Can\u2019t share more than <xliff:g id="count" example="1">%1$d</xliff:g> files</string> <!-- Title of dialog when prompting user to select an app to share documents with [CHAR LIMIT=32] --> <string name="share_via">Share via</string> @@ -406,8 +412,12 @@ <string name="root_info_header_global_search">Files on phone</string> <!-- Header title for list of documents in media type root. [CHAR_LIMIT=60] --> <string name="root_info_header_media"><xliff:g id="label" example="images">%1$s</xliff:g> on phone</string> + <!-- Header title for list of documents in downloads root. [CHAR_LIMIT=60] --> + <string name="root_info_header_downloads">Files in Downloads</string> <!-- Header title for list of documents in storage type root. [CHAR_LIMIT=60] --> <string name="root_info_header_storage">Files on <xliff:g id="device" example="Pixel">%1$s</xliff:g></string> + <!-- Header title for list of documents in folder. [CHAR_LIMIT=60] --> + <string name="root_info_header_folder">Files in <xliff:g id="folder" example="DCIM">%1$s</xliff:g></string> <!-- Header title for list of documents 3rd party provider root eg. Drive, Box. [CHAR_LIMIT=60] --> <string name="root_info_header_app">Files from <xliff:g id="label" example="Drive">%1$s</xliff:g></string> <!-- Header title for list of documents 3rd party provider root eg. Drive, Box. with root summary. The summary is usually present by email account[CHAR_LIMIT=60] --> @@ -416,8 +426,12 @@ <string name="root_info_header_image_recent">Recent images on phone</string> <!-- On photo picking state, the header title for list of documents in global searching. [CHAR_LIMIT=60] --> <string name="root_info_header_image_global_search">Images on phone</string> + <!-- On photo picking state, the header title for list of documents in downloads root. [CHAR_LIMIT=60] --> + <string name="root_info_header_image_downloads">Images in Downloads</string> <!-- On photo picking state, the header title for list of documents in storage type root. [CHAR_LIMIT=60] --> <string name="root_info_header_image_storage">Images on <xliff:g id="device" example="Pixel">%1$s</xliff:g></string> + <!-- On photo picking state, the header title for list of documents in folder. [CHAR_LIMIT=60] --> + <string name="root_info_header_image_folder">Images in <xliff:g id="folder" example="DCIM">%1$s</xliff:g></string> <!-- On photo picking state, the header title for list of documents 3rd party provider root eg. Drive, Box. [CHAR_LIMIT=60] --> <string name="root_info_header_image_app">Images from <xliff:g id="label" example="Drive">%1$s</xliff:g></string> <!-- On photo picking state, the header title for list of documents 3rd party provider root eg. Drive, Box. with root summary. The summary is usually present by email account[CHAR_LIMIT=60] --> @@ -431,6 +445,10 @@ <string name="chip_title_videos">Videos</string> <!-- Title for image chip. [CHAR_LIMIT=25] --> <string name="chip_title_documents">Documents</string> + <!-- Title for large file chip. [CHAR_LIMIT=25] --> + <string name="chip_title_large_files">Large files</string> + <!-- Title for from this week chip. [CHAR_LIMIT=25] --> + <string name="chip_title_from_this_week">This week</string> <!-- Hint on text input field for create new folder. [CHAR_LIMIT=48] --> <string name="input_hint_new_folder">Folder name</string> @@ -446,11 +464,11 @@ <!-- The default name to present the anonymous application--> <string name="anonymous_application">Anonymous</string> <!-- Button text show on open document tree flow. [CHAR_LIMIT=48] --> - <string name="open_tree_button">Allow access to \"<xliff:g id="directory" example="DCIM">%1$s</xliff:g>\"</string> - <!-- Confrim dialog title show on open document tree flow. [CHAR_LIMIT=60] --> - <string name="open_tree_dialog_title">Allow access to \"<xliff:g id="directory" example="DCIM">%1$s</xliff:g>\" in \"<xliff:g id="root" example="SD card">%2$s</xliff:g>\"?</string> + <string name="open_tree_button">Use this folder</string> + <!-- Confrim dialog title show on open document tree flow. [CHAR_LIMIT=80] --> + <string name="open_tree_dialog_title">Allow <xliff:g id="appName" example="Drive">%1$s</xliff:g> to access files in <xliff:g id="directory" example="DCIM">%2$s</xliff:g>?</string> <!-- Confrim dialog message show on open document tree flow.--> - <string name="open_tree_dialog_message">It will allow \"<xliff:g id="appName" example="Drive">%1$s</xliff:g>\" to have full access to all files currently stored under this location, and any future content stored here.</string> + <string name="open_tree_dialog_message">This will let <xliff:g id="appName" example="Drive">%1$s</xliff:g> access current and future content stored in <xliff:g id="directory" example="DCIM">%2$s</xliff:g>.</string> <!-- Search hint on search view. [CHAR LIMIT=48] --> <string name="search_bar_hint">Search this phone</string> diff --git a/res/values/styles.xml b/res/values/styles.xml index 2409ed6be..8c3fd06f0 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -44,6 +44,7 @@ </style> <style name="AutoCompleteTextViewStyle" parent="@style/Widget.AppCompat.AutoCompleteTextView"> + <item name="android:textColorHint">?android:attr/textColorSecondary</item> <item name="android:textAppearance">@style/AutoCompleteText</item> </style> diff --git a/res/values/styles_text.xml b/res/values/styles_text.xml index 5e3d57c85..689db4941 100644 --- a/res/values/styles_text.xml +++ b/res/values/styles_text.xml @@ -36,11 +36,16 @@ </style> <style name="AppsItemText"> - <item name="android:textColor">?android:attr/textColorSecondary</item> + <item name="android:textColor">?android:attr/textColorPrimary</item> <item name="android:textSize">12sp</item> <item name="fontFamily">@string/config_fontFamily</item> </style> + <style name="AppsItemSubText"> + <item name="android:textColor">?android:attr/textColorSecondary</item> + <item name="android:textSize">11sp</item> + </style> + <style name="AutoCompleteText" parent="@style/TextAppearance.AppCompat.Medium"> <item name="fontFamily">@string/config_fontFamily</item> </style> @@ -79,4 +84,10 @@ <item name="fontFamily">@string/config_fontFamilyMedium</item> </style> + <style name="BreadcrumbText" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle"> + <item name="android:textColor">?android:attr/colorControlNormal</item> + <item name="android:textSize">14sp</item> + <item name="fontFamily">@string/config_fontFamilyMedium</item> + </style> + </resources>
\ No newline at end of file diff --git a/src/com/android/documentsui/AbstractActionHandler.java b/src/com/android/documentsui/AbstractActionHandler.java index 824d2090e..322b3898a 100644 --- a/src/com/android/documentsui/AbstractActionHandler.java +++ b/src/com/android/documentsui/AbstractActionHandler.java @@ -21,12 +21,13 @@ import static com.android.documentsui.base.DocumentInfo.getCursorString; import static com.android.documentsui.base.SharedMinimal.DEBUG; import android.app.PendingIntent; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentSender; +import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.database.Cursor; -import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Bundle; import android.os.Parcelable; @@ -53,6 +54,7 @@ import com.android.documentsui.base.Providers; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.Shared; import com.android.documentsui.base.State; +import com.android.documentsui.base.UserId; import com.android.documentsui.dirlist.AnimationView; import com.android.documentsui.dirlist.AnimationView.AnimationType; import com.android.documentsui.dirlist.FocusHandler; @@ -302,6 +304,11 @@ public abstract class AbstractActionHandler<T extends FragmentActivity & CommonA } @Override + public void deselectAllFiles() { + mSelectionMgr.clearSelection(); + } + + @Override public void showCreateDirectoryDialog() { Metrics.logUserAction(MetricConsts.USER_ACTION_CREATE_DIR); @@ -406,6 +413,11 @@ public abstract class AbstractActionHandler<T extends FragmentActivity & CommonA } assert(currentDoc != null); + if (currentDoc.equals(mState.stack.peek())) { + Log.w(TAG, "This DocumentInfo is already in current DocumentsStack"); + return; + } + mActivity.notifyDirectoryNavigated(currentDoc.derivedUri); mState.stack.push(currentDoc); @@ -431,10 +443,8 @@ public abstract class AbstractActionHandler<T extends FragmentActivity & CommonA if (enabled) { showDebugMessage(); } else { - mActivity.getActionBar().setBackgroundDrawable(new ColorDrawable( - mActivity.getResources().getColor(R.color.primary))); mActivity.getWindow().setStatusBarColor( - mActivity.getResources().getColor(android.R.color.background_dark)); + mActivity.getResources().getColor(R.color.app_background_color)); } } @@ -447,11 +457,24 @@ public abstract class AbstractActionHandler<T extends FragmentActivity & CommonA Snackbars.showCustomTextWithImage(mActivity, messagePair.first, messagePair.second); - mActivity.getActionBar().setBackgroundDrawable(new ColorDrawable(colors[0])); mActivity.getWindow().setStatusBarColor(colors[1]); } @Override + public void switchLauncherIcon() { + PackageManager pm = mActivity.getPackageManager(); + if (pm != null) { + final boolean enalbled = Shared.isLauncherEnabled(mActivity); + ComponentName component = new ComponentName( + mActivity.getPackageName(), Shared.LAUNCHER_TARGET_CLASS); + pm.setComponentEnabledSetting(component, enalbled + ? PackageManager.COMPONENT_ENABLED_STATE_DISABLED + : PackageManager.COMPONENT_ENABLED_STATE_ENABLED, + PackageManager.DONT_KILL_APP); + } + } + + @Override public void cutToClipboard() { throw new UnsupportedOperationException("Cut not supported!"); } @@ -462,7 +485,12 @@ public abstract class AbstractActionHandler<T extends FragmentActivity & CommonA } @Override - public void deleteSelectedDocuments() { + public void showDeleteDialog() { + throw new UnsupportedOperationException("Delete not supported!"); + } + + @Override + public void deleteSelectedDocuments(List<DocumentInfo> docs, DocumentInfo srcParent) { throw new UnsupportedOperationException("Delete not supported!"); } @@ -482,13 +510,13 @@ public abstract class AbstractActionHandler<T extends FragmentActivity & CommonA @Override public final void loadRoot(Uri uri) { - new LoadRootTask<>(mActivity, mProviders, mState, uri) + new LoadRootTask<>(mActivity, mProviders, uri, this::onRootLoaded) .executeOnExecutor(mExecutors.lookup(uri.getAuthority())); } @Override public final void loadFirstRoot(Uri uri) { - new LoadFirstRootTask<>(mActivity, mProviders, mState, uri) + new LoadFirstRootTask<>(mActivity, mProviders, uri, this::onRootLoaded) .executeOnExecutor(mExecutors.lookup(uri.getAuthority())); } @@ -537,6 +565,21 @@ public abstract class AbstractActionHandler<T extends FragmentActivity & CommonA } } + private void onRootLoaded(@Nullable RootInfo root) { + boolean invalidRootForAction = + (root != null + && !root.supportsChildren() + && mState.action == State.ACTION_OPEN_TREE); + + if (invalidRootForAction) { + loadDeviceRoot(); + } else if (root != null) { + mActivity.onRootPicked(root); + } else { + launchToDefaultLocation(); + } + } + protected abstract void launchToDefaultLocation(); protected void restoreRootAndDirectory() { @@ -547,6 +590,12 @@ public abstract class AbstractActionHandler<T extends FragmentActivity & CommonA } } + protected final void loadDeviceRoot() { + mActivity.onRootPicked( + mProviders.getRootOneshot(UserId.DEFAULT_USER, Providers.AUTHORITY_STORAGE, + Providers.ROOT_ID_DEVICE)); + } + protected final void loadHomeDir() { loadRoot(Shared.getDefaultRootUri(mActivity)); } diff --git a/src/com/android/documentsui/ActionHandler.java b/src/com/android/documentsui/ActionHandler.java index 5f74b583e..a428df898 100644 --- a/src/com/android/documentsui/ActionHandler.java +++ b/src/com/android/documentsui/ActionHandler.java @@ -16,7 +16,6 @@ package com.android.documentsui; -import androidx.annotation.IntDef; import android.app.PendingIntent; import android.content.ContentProvider; import android.content.Intent; @@ -24,6 +23,7 @@ import android.content.pm.ResolveInfo; import android.net.Uri; import android.view.DragEvent; +import androidx.annotation.IntDef; import androidx.recyclerview.selection.ItemDetailsLookup.ItemDetails; import com.android.documentsui.base.BooleanConsumer; @@ -33,6 +33,7 @@ import com.android.documentsui.base.RootInfo; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.List; import java.util.function.Consumer; import javax.annotation.Nullable; @@ -105,6 +106,11 @@ public interface ActionHandler { void selectAllFiles(); + /** + * Attempts to deselect all selected files. + */ + void deselectAllFiles(); + void showCreateDirectoryDialog(); void showInspector(DocumentInfo doc); @@ -137,9 +143,14 @@ public interface ActionHandler { void copyToClipboard(); /** - * In general, selected = selection or single focused item + * Show delete dialog */ - void deleteSelectedDocuments(); + void showDeleteDialog(); + + /** + * Delete the selected document(s) + */ + void deleteSelectedDocuments(List<DocumentInfo> docs, DocumentInfo srcParent); void shareSelectedDocuments(); @@ -163,6 +174,11 @@ public interface ActionHandler { void showSortDialog(); /** + * Switch launch icon show/hide status. + */ + void switchLauncherIcon(); + + /** * Allow action handler to be initialized in a new scope. * @return this */ diff --git a/src/com/android/documentsui/ActionModeAddons.java b/src/com/android/documentsui/ActionModeAddons.java index 83eba78bb..d49313e8f 100644 --- a/src/com/android/documentsui/ActionModeAddons.java +++ b/src/com/android/documentsui/ActionModeAddons.java @@ -19,8 +19,5 @@ package com.android.documentsui; * Extra ActionMode functionality required by ActionHandlers. */ public interface ActionModeAddons { - void finishActionMode(); - - void finishOnConfirmed(int code); } diff --git a/src/com/android/documentsui/ActionModeController.java b/src/com/android/documentsui/ActionModeController.java index 754825006..d8cf59000 100644 --- a/src/com/android/documentsui/ActionModeController.java +++ b/src/com/android/documentsui/ActionModeController.java @@ -18,27 +18,24 @@ package com.android.documentsui; import static com.android.documentsui.base.SharedMinimal.DEBUG; -import androidx.annotation.IdRes; -import androidx.annotation.Nullable; import android.app.Activity; -import android.text.TextUtils; import android.util.Log; import android.view.ActionMode; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import androidx.annotation.IdRes; +import androidx.annotation.Nullable; +import androidx.recyclerview.selection.MutableSelection; +import androidx.recyclerview.selection.SelectionTracker; +import androidx.recyclerview.selection.SelectionTracker.SelectionObserver; + import com.android.documentsui.MenuManager.SelectionDetails; -import com.android.documentsui.base.ConfirmationCallback; -import com.android.documentsui.base.ConfirmationCallback.Result; import com.android.documentsui.base.EventHandler; import com.android.documentsui.base.Menus; import com.android.documentsui.ui.MessageBuilder; -import androidx.recyclerview.selection.MutableSelection; -import androidx.recyclerview.selection.SelectionTracker; -import androidx.recyclerview.selection.SelectionTracker.SelectionObserver; - /** * A controller that listens to selection changes and manages life cycles of action modes. */ @@ -79,6 +76,10 @@ public class ActionModeController extends SelectionObserver<String> Log.d(TAG, "Starting action mode."); } mActionMode = mActivity.startActionMode(this); + final View closeButton = mActivity.findViewById(R.id.action_mode_close_button); + if (closeButton != null) { + closeButton.setContentDescription(mActivity.getString(android.R.string.cancel)); + } } updateActionMenu(); } else { @@ -121,7 +122,9 @@ public class ActionModeController extends SelectionObserver<String> mActionMode = null; mMenu = null; - mSelectionMgr.clearSelection(); + if (mSelected.size() > 0) { + mSelectionMgr.clearSelection(); + } // Reset window title back to activity title, i.e. Root name mActivity.getWindow().setTitle(mActivity.getTitle()); @@ -194,13 +197,6 @@ public class ActionModeController extends SelectionObserver<String> } } - @Override - public void finishOnConfirmed(@Result int code) { - if (code == ConfirmationCallback.CONFIRM) { - finishActionMode(); - } - } - public ActionModeController reset( SelectionDetails selectionDetails, EventHandler<MenuItem> menuItemClicker) { assert(mActionMode == null); diff --git a/src/com/android/documentsui/BaseActivity.java b/src/com/android/documentsui/BaseActivity.java index 9954e9d0e..fe903a4e1 100644 --- a/src/com/android/documentsui/BaseActivity.java +++ b/src/com/android/documentsui/BaseActivity.java @@ -18,6 +18,7 @@ package com.android.documentsui; import static com.android.documentsui.base.Shared.EXTRA_BENCHMARK; import static com.android.documentsui.base.SharedMinimal.DEBUG; +import static com.android.documentsui.base.State.ACTION_OPEN_TREE; import static com.android.documentsui.base.State.MODE_GRID; import android.content.Intent; @@ -52,7 +53,6 @@ import androidx.fragment.app.Fragment; import com.android.documentsui.AbstractActionHandler.CommonAddons; import com.android.documentsui.Injector.Injected; import com.android.documentsui.NavigationViewManager.Breadcrumb; -import com.android.documentsui.R; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.EventHandler; import com.android.documentsui.base.RootInfo; @@ -160,8 +160,7 @@ public abstract class BaseActivity Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); - Breadcrumb breadcrumb = - Shared.findView(this, R.id.dropdown_breadcrumb, R.id.horizontal_breadcrumb); + Breadcrumb breadcrumb = findViewById(R.id.horizontal_breadcrumb); assert(breadcrumb != null); mNavigator = new NavigationViewManager(this, mDrawer, mState, this, breadcrumb); @@ -248,7 +247,7 @@ public abstract class BaseActivity ViewGroup chipGroup = findViewById(R.id.search_chip_group); mSearchManager = new SearchViewManager(searchListener, queryInterceptor, - chipGroup, icicle); + chipGroup, icicle, mInjector.prefs::isRecordSearch); // initialize the chip sets by accept mime types mSearchManager.initChipSets(mState.acceptMimes); // update the chip items by the mime types of the root @@ -361,11 +360,13 @@ public abstract class BaseActivity includeState(state); - state.showAdvanced = Shared.mustShowDeviceRoot(intent) - || mInjector.prefs.getShowDeviceRoot(); + // always show device root in tree mode + final boolean mustShowDeviceRoot = + state.action == ACTION_OPEN_TREE || Shared.mustShowDeviceRoot(intent); + state.showAdvanced = mustShowDeviceRoot || mInjector.prefs.getShowDeviceRoot(); // Only show the toggle if advanced isn't forced enabled. - state.showDeviceStorageOption = !Shared.mustShowDeviceRoot(intent); + state.showDeviceStorageOption = !mustShowDeviceRoot; if (DEBUG) { Log.d(mTag, "Created new state object: " + state); @@ -411,7 +412,7 @@ public abstract class BaseActivity mSearchManager.cancelSearch(); // Skip refreshing if root nor directory didn't change - if (root.equals(getCurrentRoot()) && mState.stack.size() == 1) { + if (root.equals(getCurrentRoot()) && mState.stack.size() <= 1) { return; } @@ -475,6 +476,10 @@ public abstract class BaseActivity getInjector().actions.showSortDialog(); return true; + case R.id.option_menu_launcher: + getInjector().actions.switchLauncherIcon(); + return true; + case R.id.sub_menu_grid: setViewMode(State.MODE_GRID); return true; @@ -642,8 +647,14 @@ public abstract class BaseActivity mSortController.onViewModeChanged(mode); } - public void setPending(boolean pending) { - // TODO: Isolate this behavior to PickActivity. + /** + * Reload documnets by current stack in certain situation. + */ + public void reloadDocumentsIfNeeded() { + if (isInRecents() || mSearchManager.isSearching()) { + // Both using MultiRootDocumentsLoader which have not ContentObserver. + mInjector.actions.loadDocumentsForCurrentStack(); + } } public void expandAppBar() { @@ -673,6 +684,8 @@ public abstract class BaseActivity result = getString(R.string.root_info_header_media, rootTitle); break; case RootInfo.TYPE_DOWNLOADS: + result = getHeaderDownloadsTitle(); + break; case RootInfo.TYPE_LOCAL: case RootInfo.TYPE_MTP: case RootInfo.TYPE_SD: @@ -706,10 +719,21 @@ public abstract class BaseActivity } } + private String getHeaderDownloadsTitle() { + return getString(mState.isPhotoPicking() + ? R.string.root_info_header_image_downloads : R.string.root_info_header_downloads); + } + private String getHeaderStorageTitle(String rootTitle) { - final int resId = mState.isPhotoPicking() - ? R.string.root_info_header_image_storage : R.string.root_info_header_storage; - return getString(resId, rootTitle); + if (mState.stack.size() > 1) { + final int resId = mState.isPhotoPicking() + ? R.string.root_info_header_image_folder : R.string.root_info_header_folder; + return getString(resId, getCurrentTitle()); + } else { + final int resId = mState.isPhotoPicking() + ? R.string.root_info_header_image_storage : R.string.root_info_header_storage; + return getString(resId, rootTitle); + } } private String getHeaderDefaultTitle(String rootTitle, String summary) { diff --git a/src/com/android/documentsui/CreateDirectoryFragment.java b/src/com/android/documentsui/CreateDirectoryFragment.java index dcaa87a10..1a35cbdc4 100644 --- a/src/com/android/documentsui/CreateDirectoryFragment.java +++ b/src/com/android/documentsui/CreateDirectoryFragment.java @@ -61,6 +61,11 @@ public class CreateDirectoryFragment extends DialogFragment { private static final String TAG_CREATE_DIRECTORY = "create_directory"; public static void show(FragmentManager fm) { + if (fm.isStateSaved()) { + Log.w(TAG, "Skip show create folder dialog because state saved"); + return; + } + final CreateDirectoryFragment dialog = new CreateDirectoryFragment(); dialog.show(fm, TAG_CREATE_DIRECTORY); } @@ -137,11 +142,6 @@ public class CreateDirectoryFragment extends DialogFragment { } @Override - protected void onPreExecute() { - mActivity.setPending(true); - } - - @Override protected DocumentInfo doInBackground(Void... params) { final ContentResolver resolver = mActivity.getContentResolver(); ContentProviderClient client = null; @@ -171,7 +171,6 @@ public class CreateDirectoryFragment extends DialogFragment { .show(); Metrics.logCreateDirError(); } - mActivity.setPending(false); } } } diff --git a/src/com/android/documentsui/DirectoryLoader.java b/src/com/android/documentsui/DirectoryLoader.java index 63c3bf66a..35ac16223 100644 --- a/src/com/android/documentsui/DirectoryLoader.java +++ b/src/com/android/documentsui/DirectoryLoader.java @@ -165,12 +165,11 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> { } catch (Exception e) { Log.w(TAG, "Failed to query", e); result.exception = e; + FileUtils.closeQuietly(client); } finally { synchronized (this) { mSignal = null; } - // TODO: Remove this call. - FileUtils.closeQuietly(client); } return result; diff --git a/src/com/android/documentsui/DirectoryResult.java b/src/com/android/documentsui/DirectoryResult.java index a4068de3c..f820db988 100644 --- a/src/com/android/documentsui/DirectoryResult.java +++ b/src/com/android/documentsui/DirectoryResult.java @@ -17,14 +17,12 @@ package com.android.documentsui; import android.content.ContentProviderClient; -import android.content.ContentResolver; import android.database.Cursor; +import android.os.FileUtils; import com.android.documentsui.archives.ArchivesProvider; import com.android.documentsui.base.DocumentInfo; -import android.os.FileUtils; - public class DirectoryResult implements AutoCloseable { public Cursor cursor; @@ -38,6 +36,7 @@ public class DirectoryResult implements AutoCloseable { if (client != null && doc.isInArchive()) { ArchivesProvider.releaseArchive(client, doc.derivedUri); } + FileUtils.closeQuietly(client); cursor = null; client = null; doc = null; diff --git a/src/com/android/documentsui/DrawerController.java b/src/com/android/documentsui/DrawerController.java index e5996558b..682242244 100644 --- a/src/com/android/documentsui/DrawerController.java +++ b/src/com/android/documentsui/DrawerController.java @@ -29,6 +29,7 @@ import androidx.drawerlayout.widget.DrawerLayout.DrawerListener; import androidx.legacy.app.ActionBarDrawerToggle; import com.android.documentsui.base.Display; +import com.android.documentsui.base.Providers; /** * A facade over the various pieces comprising "roots fragment in a Drawer". @@ -159,10 +160,17 @@ public abstract class DrawerController implements DrawerListener { @Override public void setOpen(boolean open) { + View list = mDrawer.findViewById(R.id.roots_list); if (open) { mLayout.openDrawer(mDrawer); + if (list != null) { + mDrawer.requestFocus(); + } } else { mLayout.closeDrawer(mDrawer); + if (list != null) { + mDrawer.clearFocus(); + } } } @@ -194,6 +202,9 @@ public abstract class DrawerController implements DrawerListener { @Override public void onDrawerOpened(View drawerView) { mToggle.onDrawerOpened(drawerView); + // Update the information for Storage's root + DocumentsApplication.getProvidersCache(drawerView.getContext()).updateAuthorityAsync( + Providers.AUTHORITY_STORAGE); } @Override diff --git a/src/com/android/documentsui/HorizontalBreadcrumb.java b/src/com/android/documentsui/HorizontalBreadcrumb.java index 6a7cce1ff..bb7fa01b3 100644 --- a/src/com/android/documentsui/HorizontalBreadcrumb.java +++ b/src/com/android/documentsui/HorizontalBreadcrumb.java @@ -25,6 +25,7 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; +import android.widget.TextView; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -32,17 +33,15 @@ import androidx.recyclerview.widget.RecyclerView; import com.android.documentsui.NavigationViewManager.Breadcrumb; import com.android.documentsui.NavigationViewManager.Environment; import com.android.documentsui.base.DocumentInfo; -import com.android.documentsui.base.RootInfo; import com.android.documentsui.dirlist.AccessibilityEventRouter; import java.util.function.Consumer; import java.util.function.IntConsumer; /** - * Horizontal implementation of breadcrumb used for tablet / desktop device layouts + * Horizontal breadcrumb */ -public final class HorizontalBreadcrumb extends RecyclerView - implements Breadcrumb, ItemDragListener.DragHost { +public final class HorizontalBreadcrumb extends RecyclerView implements Breadcrumb { private static final int USER_NO_SCROLL_OFFSET_THRESHOLD = 5; @@ -70,12 +69,12 @@ public final class HorizontalBreadcrumb extends RecyclerView mClickListener = listener; mLayoutManager = new LinearLayoutManager( getContext(), LinearLayoutManager.HORIZONTAL, false); - mAdapter = new BreadcrumbAdapter( - state, env, new ItemDragListener<>(this), this::onKey); - // Since we are using GestureDetector to detect click events, a11y services don't know which views - // are clickable because we aren't using View.OnClickListener. Thus, we need to use a custom - // accessibility delegate to route click events correctly. See AccessibilityClickEventRouter - // for more details on how we are routing these a11y events. + mAdapter = new BreadcrumbAdapter(state, env, this::onKey); + // Since we are using GestureDetector to detect click events, a11y services don't know which + // views are clickable because we aren't using View.OnClickListener. Thus, we need to use a + // custom accessibility delegate to route click events correctly. + // See AccessibilityClickEventRouter for more details on how we are routing these a11y + // events. setAccessibilityDelegateCompat( new AccessibilityEventRouter(this, (View child) -> onAccessibilityClick(child), null)); @@ -102,6 +101,8 @@ public final class HorizontalBreadcrumb extends RecyclerView mAdapter.notifyItemRangeRemoved(currentItemCount, lastItemCount - currentItemCount); mAdapter.notifyItemChanged(currentItemCount - 1); + } else { + mAdapter.notifyItemChanged(currentItemCount - 1); } } if (shouldScroll) { @@ -141,46 +142,10 @@ public final class HorizontalBreadcrumb extends RecyclerView public void postUpdate() { } - @Override - public void runOnUiThread(Runnable runnable) { - post(runnable); - } - - @Override - public void setDropTargetHighlight(View v, boolean highlight) { - RecyclerView.ViewHolder vh = getChildViewHolder(v); - if (vh instanceof BreadcrumbHolder) { - ((BreadcrumbHolder) vh).setHighlighted(highlight); - } - } - - @Override - public void onDragEntered(View v) { - // do nothing - } - - @Override - public void onDragExited(View v) { - // do nothing - } - - @Override - public void onViewHovered(View v) { - int pos = getChildAdapterPosition(v); - if (pos != mAdapter.getItemCount() - 1) { - mClickListener.accept(pos); - } - } - - @Override - public void onDragEnded() { - // do nothing - } - private void onSingleTapUp(MotionEvent e) { View itemView = findChildViewUnder(e.getX(), e.getY()); int pos = getChildAdapterPosition(itemView); - if (pos != mAdapter.getItemCount() - 1) { + if (pos != mAdapter.getItemCount() - 1 && pos != -1) { mClickListener.accept(pos); } } @@ -190,18 +155,15 @@ public final class HorizontalBreadcrumb extends RecyclerView private final Environment mEnv; private final com.android.documentsui.base.State mState; - private final OnDragListener mDragListener; private final View.OnKeyListener mClickListener; // We keep the old item size so the breadcrumb will only re-render views that are necessary private int mLastItemSize; public BreadcrumbAdapter(com.android.documentsui.base.State state, Environment env, - OnDragListener dragListener, View.OnKeyListener clickListener) { mState = state; mEnv = env; - mDragListener = dragListener; mClickListener = clickListener; mLastItemSize = mState.stack.size(); } @@ -216,24 +178,18 @@ public final class HorizontalBreadcrumb extends RecyclerView @Override public void onBindViewHolder(BreadcrumbHolder holder, int position) { final DocumentInfo doc = getItem(position); - final int horizontalPadding = (int) holder.itemView.getResources() + final int padding = (int) holder.itemView.getResources() .getDimension(R.dimen.breadcrumb_item_padding); + final int enableColor = holder.itemView.getContext().getColor(R.color.primary); + final boolean isFirst = position == 0; + final boolean isLast = position == getItemCount() - 1; - if (position == 0) { - final RootInfo root = mEnv.getCurrentRoot(); - holder.title.setText(root.title); - holder.title.setPadding(0, 0, horizontalPadding, 0); - } else { - holder.title.setText(doc.displayName); - holder.title.setPadding(horizontalPadding, 0, horizontalPadding, 0); - } + holder.mTitle.setText(isFirst ? mEnv.getCurrentRoot().title : doc.displayName); + holder.mTitle.setTextColor(isLast ? enableColor : holder.mDefaultTextColor); + holder.mTitle.setPadding(isFirst ? padding * 3 : padding, + padding, isLast ? padding * 2 : padding, padding); + holder.mArrow.setVisibility(isLast ? View.GONE : View.VISIBLE); - if (position == getItemCount() - 1) { - holder.arrow.setVisibility(View.GONE); - } else { - holder.arrow.setVisibility(View.VISIBLE); - } - holder.itemView.setOnDragListener(mDragListener); holder.itemView.setOnKeyListener(mClickListener); } @@ -257,21 +213,15 @@ public final class HorizontalBreadcrumb extends RecyclerView private static class BreadcrumbHolder extends RecyclerView.ViewHolder { - protected DragOverTextView title; - protected ImageView arrow; + protected TextView mTitle; + protected ImageView mArrow; + protected int mDefaultTextColor; public BreadcrumbHolder(View itemView) { super(itemView); - title = (DragOverTextView) itemView.findViewById(R.id.breadcrumb_text); - arrow = (ImageView) itemView.findViewById(R.id.breadcrumb_arrow); - } - - /** - * Highlights the associated item view. - * @param highlighted - */ - public void setHighlighted(boolean highlighted) { - title.setHighlight(highlighted); + mTitle = itemView.findViewById(R.id.breadcrumb_text); + mArrow = itemView.findViewById(R.id.breadcrumb_arrow); + mDefaultTextColor = mTitle.getTextColors().getDefaultColor(); } } diff --git a/src/com/android/documentsui/LoadDocStackTask.java b/src/com/android/documentsui/LoadDocStackTask.java index 404bb1bf9..df6db769f 100644 --- a/src/com/android/documentsui/LoadDocStackTask.java +++ b/src/com/android/documentsui/LoadDocStackTask.java @@ -16,17 +16,19 @@ package com.android.documentsui; -import androidx.annotation.Nullable; import android.app.Activity; import android.net.Uri; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Path; import android.util.Log; +import androidx.annotation.Nullable; + import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.DocumentStack; import com.android.documentsui.base.PairedTask; import com.android.documentsui.base.RootInfo; +import com.android.documentsui.base.UserId; import com.android.documentsui.roots.ProvidersAccess; import java.util.List; @@ -97,10 +99,11 @@ public class LoadDocStackTask extends PairedTask<Activity, Uri, DocumentStack> { throw new IllegalStateException("Provider doesn't provider root id."); } - RootInfo root = mProviders.getRootOneshot(authority, path.getRootId()); + RootInfo root = mProviders.getRootOneshot(UserId.DEFAULT_USER, authority, path.getRootId()); if (root == null) { - throw new IllegalStateException("Failed to load root for authority: " + authority + - " and root ID: " + path.getRootId() + "."); + throw new IllegalStateException( + "Failed to load root on user " + root.userId + " for authority: " + authority + + " and root ID: " + path.getRootId() + "."); } List<DocumentInfo> docs = mDocs.getDocuments(authority, path.getPath()); diff --git a/src/com/android/documentsui/MenuManager.java b/src/com/android/documentsui/MenuManager.java index 5fcbe7b96..505cb3727 100644 --- a/src/com/android/documentsui/MenuManager.java +++ b/src/com/android/documentsui/MenuManager.java @@ -35,23 +35,27 @@ import com.android.documentsui.sidebar.RootsFragment; import java.util.List; import java.util.function.IntFunction; +import java.util.function.IntSupplier; public abstract class MenuManager { private final static String TAG = "MenuManager"; - final protected SearchViewManager mSearchManager; - final protected State mState; - final protected DirectoryDetails mDirDetails; + protected final SearchViewManager mSearchManager; + protected final State mState; + protected final DirectoryDetails mDirDetails; + protected final IntSupplier mFilesCountSupplier; protected Menu mOptionMenu; public MenuManager( SearchViewManager searchManager, State displayState, - DirectoryDetails dirDetails) { + DirectoryDetails dirDetails, + IntSupplier filesCountSupplier) { mSearchManager = searchManager; mState = displayState; mDirDetails = dirDetails; + mFilesCountSupplier = filesCountSupplier; } /** @see ActionModeController */ @@ -61,7 +65,8 @@ public abstract class MenuManager { updateShare(menu.findItem(R.id.action_menu_share), selection); updateRename(menu.findItem(R.id.action_menu_rename), selection); updateSelect(menu.findItem(R.id.action_menu_select), selection); - updateSelectAll(menu.findItem(R.id.action_menu_select_all)); + updateSelectAll(menu.findItem(R.id.action_menu_select_all), selection); + updateDeselectAll(menu.findItem(R.id.action_menu_deselect_all), selection); updateMoveTo(menu.findItem(R.id.action_menu_move_to), selection); updateCopyTo(menu.findItem(R.id.action_menu_copy_to), selection); updateCompress(menu.findItem(R.id.action_menu_compress), selection); @@ -91,6 +96,7 @@ public abstract class MenuManager { updateDebug(mOptionMenu.findItem(R.id.option_menu_debug)); updateInspect(mOptionMenu.findItem(R.id.option_menu_inspect)); updateSort(mOptionMenu.findItem(R.id.option_menu_sort)); + updateLauncher(mOptionMenu.findItem(R.id.option_menu_launcher)); Menus.disableHiddenItems(mOptionMenu); mSearchManager.updateMenu(); @@ -114,7 +120,15 @@ public abstract class MenuManager { // Pickers don't have any context menu at this moment. } - public void inflateContextMenuForContainer(Menu menu, MenuInflater inflater) { + /** + * Called when container context menu needs to be inflated. + * + * @param menu context menu from activity or fragment + * @param inflater the MenuInflater + * @param selectionDetails selection of files + */ + public void inflateContextMenuForContainer( + Menu menu, MenuInflater inflater, SelectionDetails selectionDetails) { throw new UnsupportedOperationException("Pickers don't allow context menu."); } @@ -207,14 +221,16 @@ public abstract class MenuManager { * Called when user tries to generate a context menu anchored to an empty pane. */ @VisibleForTesting - public void updateContextMenuForContainer(Menu menu) { + public void updateContextMenuForContainer(Menu menu, SelectionDetails selectionDetails) { MenuItem paste = menu.findItem(R.id.dir_menu_paste_from_clipboard); MenuItem selectAll = menu.findItem(R.id.dir_menu_select_all); + MenuItem deselectAll = menu.findItem(R.id.dir_menu_deselect_all); MenuItem createDir = menu.findItem(R.id.dir_menu_create_dir); MenuItem inspect = menu.findItem(R.id.dir_menu_inspect); paste.setEnabled(mDirDetails.hasItemsToPaste() && mDirDetails.canCreateDoc()); - updateSelectAll(selectAll); + updateSelectAll(selectAll, selectionDetails); + updateDeselectAll(deselectAll, selectionDetails); updateCreateDir(createDir); updateInspect(inspect); } @@ -349,7 +365,14 @@ public abstract class MenuManager { open.setVisible(false); } + protected void updateLauncher(MenuItem launcher) { + launcher.setVisible(false); + } + protected abstract void updateSelectAll(MenuItem selectAll); + protected abstract void updateSelectAll(MenuItem selectAll, SelectionDetails selectionDetails); + protected abstract void updateDeselectAll( + MenuItem deselectAll, SelectionDetails selectionDetails); protected abstract void updateCreateDir(MenuItem createDir); /** diff --git a/src/com/android/documentsui/MetricConsts.java b/src/com/android/documentsui/MetricConsts.java index f95f6e5ed..63ab34ff0 100644 --- a/src/com/android/documentsui/MetricConsts.java +++ b/src/com/android/documentsui/MetricConsts.java @@ -40,6 +40,7 @@ public class MetricConsts { public static final int ROOT_VIDEOS = 9; public static final int ROOT_MTP = 10; public static final int ROOT_THIRD_PARTY_APP = 11; + public static final int ROOT_DOCUMENTS = 12; @IntDef(flag = true, value = { ROOT_UNKNOWN, @@ -53,7 +54,8 @@ public class MetricConsts { ROOT_RECENTS, ROOT_VIDEOS, ROOT_MTP, - ROOT_THIRD_PARTY_APP + ROOT_THIRD_PARTY_APP, + ROOT_DOCUMENTS }) @Retention(RetentionPolicy.SOURCE) public @interface Root { @@ -363,6 +365,8 @@ public class MetricConsts { public static final int TYPE_CHIP_DOCS = 4; public static final int TYPE_SEARCH_HISTORY = 5; public static final int TYPE_SEARCH_STRING = 6; + public static final int TYPE_CHIP_LARGE_FILES = 7; + public static final int TYPE_CHIP_FROM_THIS_WEEK = 8; @IntDef(flag = true, value = { TYPE_UNKNOWN, @@ -371,7 +375,9 @@ public class MetricConsts { TYPE_CHIP_VIDEOS, TYPE_CHIP_DOCS, TYPE_SEARCH_HISTORY, - TYPE_SEARCH_STRING + TYPE_SEARCH_STRING, + TYPE_CHIP_LARGE_FILES, + TYPE_CHIP_FROM_THIS_WEEK }) @Retention(RetentionPolicy.SOURCE) public @interface SearchType {} diff --git a/src/com/android/documentsui/Metrics.java b/src/com/android/documentsui/Metrics.java index 125a9fa91..619ce1971 100644 --- a/src/com/android/documentsui/Metrics.java +++ b/src/com/android/documentsui/Metrics.java @@ -37,6 +37,7 @@ import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.Providers; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.State; +import com.android.documentsui.base.UserId; import com.android.documentsui.files.LauncherActivity; import com.android.documentsui.picker.PickResult; import com.android.documentsui.roots.ProvidersAccess; @@ -340,7 +341,7 @@ public final class Metrics { context.getContentResolver(), Providers.AUTHORITY_STORAGE)) { final Path path = DocumentsContract.findDocumentPath(wrap(client), docUri); final ProvidersAccess providers = DocumentsApplication.getProvidersCache(context); - final RootInfo root = providers.getRootOneshot( + final RootInfo root = providers.getRootOneshot(UserId.DEFAULT_USER, Providers.AUTHORITY_STORAGE, path.getRootId()); isInternal = !root.supportsEject(); } catch (FileNotFoundException | RemoteException | RuntimeException e) { @@ -375,6 +376,8 @@ public final class Metrics { return MetricConsts.ROOT_IMAGES; case Providers.ROOT_ID_VIDEOS: return MetricConsts.ROOT_VIDEOS; + case Providers.ROOT_ID_DOCUMENTS: + return MetricConsts.ROOT_DOCUMENTS; default: return MetricConsts.ROOT_OTHER_DOCS_PROVIDER; } diff --git a/src/com/android/documentsui/MultiRootDocumentsLoader.java b/src/com/android/documentsui/MultiRootDocumentsLoader.java index 11208c16b..f93c8a4a6 100644 --- a/src/com/android/documentsui/MultiRootDocumentsLoader.java +++ b/src/com/android/documentsui/MultiRootDocumentsLoader.java @@ -325,10 +325,9 @@ public abstract class MultiRootDocumentsLoader extends AsyncTaskLoader<Directory synchronized (mTasks) { for (QueryTask task : mTasks.values()) { - FileUtils.closeQuietly(task); + mExecutors.lookup(task.authority).execute(() -> FileUtils.closeQuietly(task)); } } - FileUtils.closeQuietly(mResult); mResult = null; diff --git a/src/com/android/documentsui/NavigationViewManager.java b/src/com/android/documentsui/NavigationViewManager.java index c2fc76a51..d07851238 100644 --- a/src/com/android/documentsui/NavigationViewManager.java +++ b/src/com/android/documentsui/NavigationViewManager.java @@ -139,16 +139,13 @@ public class NavigationViewManager { mBreadcrumb.show(false); mToolbar.setTitle(null); mSearchBarView.setVisibility(View.VISIBLE); - } else if (mState.stack.size() <= 1) { - mBreadcrumb.show(false); + } else { mSearchBarView.setVisibility(View.GONE); - String title = mEnv.getCurrentRoot().title; + String title = mState.stack.size() <= 1 + ? mEnv.getCurrentRoot().title : mState.stack.getTitle(); if (VERBOSE) Log.v(TAG, "New toolbar title is: " + title); mToolbar.setTitle(title); - } else { mBreadcrumb.show(true); - mToolbar.setTitle(null); - mSearchBarView.setVisibility(View.GONE); mBreadcrumb.postUpdate(); } } diff --git a/src/com/android/documentsui/PreBootReceiver.java b/src/com/android/documentsui/PreBootReceiver.java index a983adcca..c47631654 100644 --- a/src/com/android/documentsui/PreBootReceiver.java +++ b/src/com/android/documentsui/PreBootReceiver.java @@ -16,6 +16,7 @@ package com.android.documentsui; +import static com.android.documentsui.base.Shared.LAUNCHER_TARGET_CLASS; import static com.android.documentsui.base.SharedMinimal.DEBUG; import android.content.BroadcastReceiver; @@ -40,7 +41,6 @@ public class PreBootReceiver extends BroadcastReceiver { private static final String TAG = "PreBootReceiver"; private static final String CONFIG_IS_LAUNCHER_ENABLED = "is_launcher_enabled"; private static final String CONFIG_HANDLE_VIEW_DOWNLOADS = "handle_view_downloads_intent"; - private static final String LAUNCHER_TARGET_CLASS = "com.android.documentsui.LauncherActivity"; private static final String DOWNLOADS_TARGET_CLASS = "com.android.documentsui.ViewDownloadsActivity"; diff --git a/src/com/android/documentsui/SharedInputHandler.java b/src/com/android/documentsui/SharedInputHandler.java index 28eba70c9..a70a805dd 100644 --- a/src/com/android/documentsui/SharedInputHandler.java +++ b/src/com/android/documentsui/SharedInputHandler.java @@ -37,6 +37,7 @@ public class SharedInputHandler { private final FocusHandler mFocusManager; private final Procedure mSearchCanceler; private final Procedure mDirPopper; + private final Runnable mSearchExecutor; private final Features mFeatures; private final SelectionTracker<String> mSelectionMgr; private final DrawerController mDrawer; @@ -47,13 +48,15 @@ public class SharedInputHandler { Procedure searchCanceler, Procedure dirPopper, Features features, - DrawerController drawer) { + DrawerController drawer, + Runnable searchExcutor) { mFocusManager = focusHandler; mSearchCanceler = searchCanceler; mSelectionMgr = selectionMgr; mDirPopper = dirPopper; mFeatures = features; mDrawer = drawer; + mSearchExecutor = searchExcutor; } public boolean onKeyDown(int keyCode, KeyEvent event) { @@ -73,6 +76,10 @@ public class SharedInputHandler { case KeyEvent.KEYCODE_TAB: return onTab(); + case KeyEvent.KEYCODE_SEARCH: + mSearchExecutor.run(); + return true; + default: // Instead of duplicating the switch-case in #isNavigationKeyCode, best just to // leave it here. diff --git a/src/com/android/documentsui/base/DocumentInfo.java b/src/com/android/documentsui/base/DocumentInfo.java index 89f6039bc..e836b7057 100644 --- a/src/com/android/documentsui/base/DocumentInfo.java +++ b/src/com/android/documentsui/base/DocumentInfo.java @@ -229,6 +229,7 @@ public class DocumentInfo implements Durable, Parcelable { + ", isMoveSupported=" + isMoveSupported() + ", isRenameSupported=" + isRenameSupported() + ", isMetadataSupported=" + isMetadataSupported() + + ", isBlockedFromTree=" + isBlockedFromTree() + "} @ " + derivedUri; } @@ -289,6 +290,10 @@ public class DocumentInfo implements Durable, Parcelable { return (flags & Document.FLAG_PARTIAL) != 0; } + public boolean isBlockedFromTree() { + return (flags & Document.FLAG_DIR_BLOCKS_OPEN_DOCUMENT_TREE) != 0; + } + // Containers are documents which can be opened in DocumentsUI as folders. public boolean isContainer() { return isDirectory() || (isArchive() && !isInArchive() && !isPartial()); diff --git a/src/com/android/documentsui/base/Features.java b/src/com/android/documentsui/base/Features.java index b8bcf26b9..dd2c314ab 100644 --- a/src/com/android/documentsui/base/Features.java +++ b/src/com/android/documentsui/base/Features.java @@ -20,10 +20,10 @@ import android.content.res.Resources; import android.os.UserManager; import android.util.SparseBooleanArray; -import com.android.documentsui.R; - import androidx.annotation.BoolRes; +import com.android.documentsui.R; + /** * Provides access to feature flags configured in config.xml. */ @@ -44,7 +44,6 @@ public interface Features { boolean isRemoteActionsEnabled(); boolean isSystemKeyboardNavigationEnabled(); boolean isVirtualFilesSharingEnabled(); - boolean isDefaultRootInBrowseEnabled(); /** @@ -167,10 +166,5 @@ public interface Features { public boolean isVirtualFilesSharingEnabled() { return isEnabled(R.bool.feature_virtual_files_sharing); } - - @Override - public boolean isDefaultRootInBrowseEnabled() { - return isEnabled(R.bool.feature_default_root_in_browse); - } } } diff --git a/src/com/android/documentsui/base/LookupApplicationName.java b/src/com/android/documentsui/base/LookupApplicationName.java new file mode 100644 index 000000000..ee43de546 --- /dev/null +++ b/src/com/android/documentsui/base/LookupApplicationName.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2020 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.base; + +import androidx.annotation.Nullable; + +/** + * An interface for looking up application name. + */ +public interface LookupApplicationName { + /** + * Looking up an application name by user id and package name. + */ + @Nullable + String getApplicationName(UserId userId, String packageName); +} diff --git a/src/com/android/documentsui/base/MimeTypes.java b/src/com/android/documentsui/base/MimeTypes.java index e9d194b12..e45873d82 100644 --- a/src/com/android/documentsui/base/MimeTypes.java +++ b/src/com/android/documentsui/base/MimeTypes.java @@ -15,14 +15,18 @@ */ package com.android.documentsui.base; -import androidx.annotation.Nullable; import android.provider.DocumentsContract.Document; +import android.util.ArraySet; + +import androidx.annotation.Nullable; import java.util.List; +import java.util.Set; public final class MimeTypes { - private MimeTypes() {} + private MimeTypes() { + } public static final String APK_TYPE = "application/vnd.android.package-archive"; public static final String GENERIC_TYPE = "application/*"; @@ -31,11 +35,89 @@ public final class MimeTypes { public static final String AUDIO_MIME = "audio/*"; public static final String VIDEO_MIME = "video/*"; + private static final Set<String> sDocumentsMimeTypes = new ArraySet<>(); + + static { + sDocumentsMimeTypes.add("application/epub+zip"); + sDocumentsMimeTypes.add("application/msword"); + sDocumentsMimeTypes.add("application/pdf"); + sDocumentsMimeTypes.add("application/rtf"); + sDocumentsMimeTypes.add("application/vnd.ms-excel"); + sDocumentsMimeTypes.add("application/vnd.ms-excel.addin.macroEnabled.12"); + sDocumentsMimeTypes.add("application/vnd.ms-excel.sheet.binary.macroEnabled.12"); + sDocumentsMimeTypes.add("application/vnd.ms-excel.sheet.macroEnabled.12"); + sDocumentsMimeTypes.add("application/vnd.ms-excel.template.macroEnabled.12"); + sDocumentsMimeTypes.add("application/vnd.ms-powerpoint"); + sDocumentsMimeTypes.add("application/vnd.ms-powerpoint.addin.macroEnabled.12"); + sDocumentsMimeTypes.add("application/vnd.ms-powerpoint.presentation.macroEnabled.12"); + sDocumentsMimeTypes.add("application/vnd.ms-powerpoint.slideshow.macroEnabled.12"); + sDocumentsMimeTypes.add("application/vnd.ms-powerpoint.template.macroEnabled.12"); + sDocumentsMimeTypes.add("application/vnd.ms-word.document.macroEnabled.12"); + sDocumentsMimeTypes.add("application/vnd.ms-word.template.macroEnabled.12"); + sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.chart"); + sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.database"); + sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.formula"); + sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.graphics"); + sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.graphics-template"); + sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.presentation"); + sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.presentation-template"); + sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.spreadsheet"); + sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.spreadsheet-template"); + sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.text"); + sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.text-master"); + sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.text-template"); + sDocumentsMimeTypes.add("application/vnd.oasis.opendocument.text-web"); + sDocumentsMimeTypes.add( + "application/vnd.openxmlformats-officedocument.presentationml.presentation"); + sDocumentsMimeTypes.add( + "application/vnd.openxmlformats-officedocument.presentationml.slideshow"); + sDocumentsMimeTypes.add( + "application/vnd.openxmlformats-officedocument.presentationml.template"); + sDocumentsMimeTypes.add( + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + sDocumentsMimeTypes.add( + "application/vnd.openxmlformats-officedocument.spreadsheetml.template"); + sDocumentsMimeTypes.add( + "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); + sDocumentsMimeTypes.add( + "application/vnd.openxmlformats-officedocument.wordprocessingml.template"); + sDocumentsMimeTypes.add("application/vnd.stardivision.calc"); + sDocumentsMimeTypes.add("application/vnd.stardivision.chart"); + sDocumentsMimeTypes.add("application/vnd.stardivision.draw"); + sDocumentsMimeTypes.add("application/vnd.stardivision.impress"); + sDocumentsMimeTypes.add("application/vnd.stardivision.impress-packed"); + sDocumentsMimeTypes.add("application/vnd.stardivision.mail"); + sDocumentsMimeTypes.add("application/vnd.stardivision.math"); + sDocumentsMimeTypes.add("application/vnd.stardivision.writer"); + sDocumentsMimeTypes.add("application/vnd.stardivision.writer-global"); + sDocumentsMimeTypes.add("application/vnd.sun.xml.calc"); + sDocumentsMimeTypes.add("application/vnd.sun.xml.calc.template"); + sDocumentsMimeTypes.add("application/vnd.sun.xml.draw"); + sDocumentsMimeTypes.add("application/vnd.sun.xml.draw.template"); + sDocumentsMimeTypes.add("application/vnd.sun.xml.impress"); + sDocumentsMimeTypes.add("application/vnd.sun.xml.impress.template"); + sDocumentsMimeTypes.add("application/vnd.sun.xml.math"); + sDocumentsMimeTypes.add("application/vnd.sun.xml.writer"); + sDocumentsMimeTypes.add("application/vnd.sun.xml.writer.global"); + sDocumentsMimeTypes.add("application/vnd.sun.xml.writer.template"); + sDocumentsMimeTypes.add("application/x-mspublisher"); + sDocumentsMimeTypes.add("text/*"); + } + + /** + * Get the Document mime type array + * + * @return the mime type array of document + */ + public static String[] getDocumentMimeTypeArray() { + return sDocumentsMimeTypes.toArray((new String[0])); + } + /** - * MIME types that are visual in nature. For example, they should always be - * shown as thumbnails in list mode. + * MIME types that are visual in nature. For example, they should always be shown as thumbnails + * in list mode. */ - public static final String[] VISUAL_MIMES = new String[] { IMAGE_MIME, VIDEO_MIME }; + public static final String[] VISUAL_MIMES = new String[]{IMAGE_MIME, VIDEO_MIME}; public static @Nullable String[] splitMimeType(String mimeType) { final String[] groups = mimeType.split("/"); diff --git a/src/com/android/documentsui/base/Providers.java b/src/com/android/documentsui/base/Providers.java index 586440caa..e05730790 100644 --- a/src/com/android/documentsui/base/Providers.java +++ b/src/com/android/documentsui/base/Providers.java @@ -39,8 +39,10 @@ public final class Providers { public static final String ROOT_ID_IMAGES = "images_root"; public static final String ROOT_ID_VIDEOS = "videos_root"; public static final String ROOT_ID_AUDIO = "audio_root"; + public static final String ROOT_ID_DOCUMENTS = "documents_root"; public static final String AUTHORITY_MTP = "com.android.mtp.documents"; + public static final String AUTHORITY_BUGREPORT = "com.android.shell.documents"; private static final String DOCSUI_PACKAGE = "com.android.documentsui"; private static final Set<String> SYSTEM_AUTHORITIES = new HashSet<String>() {{ diff --git a/src/com/android/documentsui/base/RootInfo.java b/src/com/android/documentsui/base/RootInfo.java index dd82077d1..f9de447e6 100644 --- a/src/com/android/documentsui/base/RootInfo.java +++ b/src/com/android/documentsui/base/RootInfo.java @@ -21,10 +21,8 @@ import static android.provider.DocumentsContract.QUERY_ARG_MIME_TYPES; import static com.android.documentsui.base.DocumentInfo.getCursorInt; import static com.android.documentsui.base.DocumentInfo.getCursorLong; import static com.android.documentsui.base.DocumentInfo.getCursorString; -import static com.android.documentsui.base.SharedMinimal.VERBOSE; import static com.android.documentsui.base.Shared.compareToIgnoreCaseNullable; - -import androidx.annotation.IntDef; +import static com.android.documentsui.base.SharedMinimal.VERBOSE; import android.content.Context; import android.database.Cursor; @@ -37,6 +35,8 @@ import android.provider.DocumentsContract.Root; import android.text.TextUtils; import android.util.Log; +import androidx.annotation.IntDef; + import com.android.documentsui.IconUtils; import com.android.documentsui.R; @@ -58,6 +58,7 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { // private static final int VERSION_INIT = 1; // Not used anymore private static final int VERSION_DROP_TYPE = 2; private static final int VERSION_SEARCH_TYPE = 3; + private static final int VERSION_USER_ID = 4; // The values of these constants determine the sort order of various roots in the RootsFragment. @IntDef(flag = false, value = { @@ -65,6 +66,7 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { TYPE_IMAGES, TYPE_VIDEO, TYPE_AUDIO, + TYPE_DOCUMENTS, TYPE_DOWNLOADS, TYPE_LOCAL, TYPE_MTP, @@ -78,13 +80,15 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { public static final int TYPE_IMAGES = 2; public static final int TYPE_VIDEO = 3; public static final int TYPE_AUDIO = 4; - public static final int TYPE_DOWNLOADS = 5; - public static final int TYPE_LOCAL = 6; - public static final int TYPE_MTP = 7; - public static final int TYPE_SD = 8; - public static final int TYPE_USB = 9; - public static final int TYPE_OTHER = 10; - + public static final int TYPE_DOCUMENTS = 5; + public static final int TYPE_DOWNLOADS = 6; + public static final int TYPE_LOCAL = 7; + public static final int TYPE_MTP = 8; + public static final int TYPE_SD = 9; + public static final int TYPE_USB = 10; + public static final int TYPE_OTHER = 11; + + public UserId userId; public String authority; public String rootId; public int flags; @@ -110,6 +114,7 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { @Override public void reset() { + userId = UserId.UNSPECIFIED_USER; authority = null; rootId = null; flags = 0; @@ -131,7 +136,12 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { public void read(DataInputStream in) throws IOException { final int version = in.readInt(); switch (version) { + case VERSION_USER_ID: + userId = UserId.read(in); case VERSION_SEARCH_TYPE: + if (version < VERSION_USER_ID) { + userId = UserId.CURRENT_USER; + } queryArgs = DurableUtils.readNullableString(in); case VERSION_DROP_TYPE: authority = DurableUtils.readNullableString(in); @@ -152,7 +162,8 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { @Override public void write(DataOutputStream out) throws IOException { - out.writeInt(VERSION_SEARCH_TYPE); + out.writeInt(VERSION_USER_ID); + UserId.write(out, userId); DurableUtils.writeNullableString(out, queryArgs); DurableUtils.writeNullableString(out, authority); DurableUtils.writeNullableString(out, rootId); @@ -189,8 +200,9 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { } }; - public static RootInfo fromRootsCursor(String authority, Cursor cursor) { + public static RootInfo fromRootsCursor(UserId userId, String authority, Cursor cursor) { final RootInfo root = new RootInfo(); + root.userId = userId; root.authority = authority; root.rootId = getCursorString(cursor, Root.COLUMN_ROOT_ID); root.flags = getCursorInt(cursor, Root.COLUMN_FLAGS); @@ -235,8 +247,14 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { } else if (isAudio()) { derivedType = TYPE_AUDIO; derivedIcon = LOAD_FROM_CONTENT_RESOLVER; + } else if (isDocuments()) { + derivedType = TYPE_DOCUMENTS; + derivedIcon = LOAD_FROM_CONTENT_RESOLVER; } else if (isRecents()) { derivedType = TYPE_RECENTS; + } else if (isBugReport()) { + derivedType = TYPE_OTHER; + derivedIcon = R.drawable.ic_root_bugreport; } else { derivedType = TYPE_OTHER; } @@ -248,6 +266,10 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { return DocumentsContract.buildRootUri(authority, rootId); } + public boolean isBugReport() { + return Providers.AUTHORITY_BUGREPORT.equals(authority); + } + public boolean isRecents() { return authority == null && rootId == null; } @@ -285,6 +307,11 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { && Providers.ROOT_ID_AUDIO.equals(rootId); } + public boolean isDocuments() { + return Providers.AUTHORITY_MEDIA.equals(authority) + && Providers.ROOT_ID_DOCUMENTS.equals(rootId); + } + public boolean isMtp() { return Providers.AUTHORITY_MTP.equals(authority); } @@ -296,7 +323,8 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { return derivedType == TYPE_IMAGES || derivedType == TYPE_VIDEO || derivedType == TYPE_AUDIO - || derivedType == TYPE_RECENTS; + || derivedType == TYPE_RECENTS + || derivedType == TYPE_DOCUMENTS; } /* @@ -412,7 +440,8 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { if (o instanceof RootInfo) { RootInfo other = (RootInfo) o; - return Objects.equals(authority, other.authority) + return Objects.equals(userId, other.userId) + && Objects.equals(authority, other.authority) && Objects.equals(rootId, other.rootId); } @@ -421,7 +450,7 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { @Override public int hashCode() { - return Objects.hash(authority, rootId); + return Objects.hash(userId, authority, rootId); } @Override @@ -443,6 +472,7 @@ public class RootInfo implements Durable, Parcelable, Comparable<RootInfo> { @Override public String toString() { return "Root{" + + "userId=" + userId + "authority=" + authority + ", rootId=" + rootId + ", title=" + title diff --git a/src/com/android/documentsui/base/Shared.java b/src/com/android/documentsui/base/Shared.java index ec13a5061..1ac4b32b8 100644 --- a/src/com/android/documentsui/base/Shared.java +++ b/src/com/android/documentsui/base/Shared.java @@ -19,10 +19,12 @@ package com.android.documentsui.base; import static com.android.documentsui.base.SharedMinimal.TAG; import android.app.Activity; +import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Configuration; import android.net.Uri; @@ -31,23 +33,25 @@ import android.provider.DocumentsContract; import android.provider.Settings; import android.text.TextUtils; import android.text.format.DateUtils; -import android.text.format.Time; import android.util.Log; import android.view.View; import android.view.WindowManager; +import androidx.annotation.PluralsRes; +import androidx.appcompat.app.AlertDialog; + import com.android.documentsui.R; import com.android.documentsui.ui.MessageBuilder; import java.text.Collator; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.ArrayList; import java.util.List; import javax.annotation.Nullable; -import androidx.annotation.PluralsRes; -import androidx.appcompat.app.AlertDialog; - /** @hide */ public final class Shared { @@ -62,12 +66,6 @@ public final class Shared { public static final String METADATA_VIDEO_LONGITUTE = "android.media.metadata.video:longitude"; /** - * Extra boolean flag for {@link #ACTION_PICK_COPY_DESTINATION}, which - * specifies if the destination directory needs to create new directory or not. - */ - public static final String EXTRA_DIRECTORY_COPY = "com.android.documentsui.DIRECTORY_COPY"; - - /** * Extra flag used to store the current stack so user opens in right spot. */ public static final String EXTRA_STACK = "com.android.documentsui.STACK"; @@ -132,6 +130,11 @@ public final class Shared { */ public static final int CHECK_ANIMATION_DURATION = 100; + /** + * Class name of launcher icon avtivity. + */ + public static final String LAUNCHER_TARGET_CLASS = "com.android.documentsui.LauncherActivity"; + private static final Collator sCollator; static { @@ -149,17 +152,16 @@ public final class Shared { public static String formatTime(Context context, long when) { // TODO: DateUtils should make this easier - Time then = new Time(); - then.set(when); - Time now = new Time(); - now.setToNow(); + ZoneId zoneId = ZoneId.systemDefault(); + LocalDateTime then = LocalDateTime.ofInstant(Instant.ofEpochMilli(when), zoneId); + LocalDateTime now = LocalDateTime.ofInstant(Instant.now(), zoneId); int flags = DateUtils.FORMAT_NO_NOON | DateUtils.FORMAT_NO_MIDNIGHT | DateUtils.FORMAT_ABBREV_ALL; - if (then.year != now.year) { + if (then.getYear() != now.getYear()) { flags |= DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_SHOW_DATE; - } else if (then.yearDay != now.yearDay) { + } else if (then.getDayOfYear() != now.getDayOfYear()) { flags |= DateUtils.FORMAT_SHOW_DATE; } else { flags |= DateUtils.FORMAT_SHOW_TIME; @@ -237,7 +239,9 @@ public final class Shared { Uri defaultUri = Uri.parse(activity.getResources().getString(R.string.default_root_uri)); if (!DocumentsContract.isRootUri(activity, defaultUri)) { - throw new RuntimeException("Default Root URI is not a valid root URI."); + Log.e(TAG, "Default Root URI is not a valid root URI, falling back to Downloads."); + defaultUri = DocumentsContract.buildRootUri(Providers.AUTHORITY_DOWNLOADS, + Providers.ROOT_ID_DOWNLOADS); } return defaultUri; @@ -263,10 +267,18 @@ public final class Shared { /** * Check config whether DocumentsUI is launcher enabled or not. - * @return true if "is_launcher_enabled" is true. + * @return true if launcher icon is shown. */ public static boolean isLauncherEnabled(Context context) { - return context.getResources().getBoolean(R.bool.is_launcher_enabled); + PackageManager pm = context.getPackageManager(); + if (pm != null) { + final ComponentName component = new ComponentName( + context.getPackageName(), LAUNCHER_TARGET_CLASS); + final int value = pm.getComponentEnabledSetting(component); + return value == PackageManager.COMPONENT_ENABLED_STATE_ENABLED; + } + + return false; } /** diff --git a/src/com/android/documentsui/base/State.java b/src/com/android/documentsui/base/State.java index 15846318b..0a575794a 100644 --- a/src/com/android/documentsui/base/State.java +++ b/src/com/android/documentsui/base/State.java @@ -84,10 +84,6 @@ public class State implements android.os.Parcelable { public boolean showDeviceStorageOption; public boolean showAdvanced; - // Indicates that a copy operation (or move) includes a directory. - // Why? Directory creation isn't supported by some roots (like Downloads). - // This allows us to restrict available roots to just those with support. - public boolean directoryCopy; public boolean openableOnly; /** diff --git a/src/com/android/documentsui/base/UserId.java b/src/com/android/documentsui/base/UserId.java new file mode 100644 index 000000000..b4177478e --- /dev/null +++ b/src/com/android/documentsui/base/UserId.java @@ -0,0 +1,151 @@ +/* + * Copyright (C) 2020 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.base; + +import static androidx.core.util.Preconditions.checkNotNull; + +import android.content.ContentResolver; +import android.content.Context; +import android.content.pm.PackageManager; +import android.os.Process; +import android.os.UserHandle; + +import androidx.annotation.VisibleForTesting; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.ProtocolException; +import java.util.Objects; +/** + * Representation of a {@link UserHandle}. + */ +public final class UserId { + + // A unspecified user is used as when the user's value is uninitialized. e.g. rootInfo.reset() + public static UserId UNSPECIFIED_USER = UserId.of(UserHandle.of(-1000)); + // A current user represents the user of the app's process. It is mainly used for comparison. + public static UserId CURRENT_USER = UserId.of(Process.myUserHandle()); + // A default user represents the user of the app's process. It is mainly used for operation + // which supports only the current user only. + public static UserId DEFAULT_USER = CURRENT_USER; + + private static final int VERSION_INIT = 1; + + private final UserHandle mUserHandle; + + private UserId(UserHandle userHandle) { + checkNotNull(userHandle); + mUserHandle = userHandle; + } + + /** + * Returns a {@link UserId} for a given {@link UserHandle}. + */ + @VisibleForTesting + static UserId of(UserHandle userHandle) { + return new UserId(userHandle); + } + + /** + * Returns the given context if the user is the current user or unspecified. Otherwise, returns + * an "android" package context as the user. + * + * @throws IllegalStateException if android package of the other user does not exist + */ + @VisibleForTesting + Context asContext(Context context) { + if (CURRENT_USER.equals(this) || isUnspecified()) { + return context; + } + try { + return context.createPackageContextAsUser("android", /* flags= */ 0, mUserHandle); + } catch (PackageManager.NameNotFoundException e) { + throw new IllegalStateException("android package not found."); + } + } + + /** + * Return a package manager instance of this user. + */ + public PackageManager getPackageManager(Context context) { + return asContext(context).getPackageManager(); + } + + /** + * Return a content resolver instance of this user. + */ + public ContentResolver getContentResolver(Context context) { + return asContext(context).getContentResolver(); + } + + private boolean isUnspecified() { + return UNSPECIFIED_USER.equals(this); + } + + @Override + public String toString() { + return "UserId{" + + (isUnspecified() ? "UNSPECIFIED" : mUserHandle.getIdentifier()) + + "}"; + } + + @Override + public boolean equals(Object o) { + if (o == null) { + return false; + } + + if (this == o) { + return true; + } + + if (o instanceof UserId) { + UserId other = (UserId) o; + return Objects.equals(mUserHandle, other.mUserHandle); + } + + return false; + } + + @Override + public int hashCode() { + return Objects.hash(mUserHandle); + } + + /** + * Reads a {@link UserId} from an input stream. + */ + public static UserId read(DataInputStream in) throws IOException { + final int version = in.readInt(); + switch (version) { + case VERSION_INIT: + int userId = in.readInt(); + return UserId.of(UserHandle.of(userId)); + default: + throw new ProtocolException("Unknown version " + version); + } + } + + /** + * Writes a {@link UserId} to an output stream. + */ + public static void write(DataOutputStream out, UserId userId) throws IOException { + out.writeInt(VERSION_INIT); + out.writeInt(userId.mUserHandle.getIdentifier()); + } +} diff --git a/src/com/android/documentsui/clipping/UrisSupplier.java b/src/com/android/documentsui/clipping/UrisSupplier.java index 6679347d6..67120d256 100644 --- a/src/com/android/documentsui/clipping/UrisSupplier.java +++ b/src/com/android/documentsui/clipping/UrisSupplier.java @@ -94,8 +94,13 @@ public abstract class UrisSupplier implements Parcelable { return create(uris, storage); } - @VisibleForTesting - static UrisSupplier create(List<Uri> uris, ClipStore storage) throws IOException { + /** + * Get a uri supplier. + * + * @param uris uris of the selection. + * @param storage the ClipStorage. + */ + public static UrisSupplier create(List<Uri> uris, ClipStore storage) throws IOException { UrisSupplier urisSupplier = (uris.size() > Shared.MAX_DOCS_IN_INTENT) ? new JumboUrisSupplier(uris, storage) : new StandardUrisSupplier(uris); diff --git a/src/com/android/documentsui/dirlist/AccessibilityEventRouter.java b/src/com/android/documentsui/dirlist/AccessibilityEventRouter.java index e12bca1db..42130cc65 100644 --- a/src/com/android/documentsui/dirlist/AccessibilityEventRouter.java +++ b/src/com/android/documentsui/dirlist/AccessibilityEventRouter.java @@ -64,7 +64,7 @@ public class AccessibilityEventRouter extends RecyclerViewAccessibilityDelegate // if the viewHolder is a DocumentsHolder instance and the ItemDetails // is null, it can't be clicked if (holder instanceof DocumentHolder) { - if (((DocumentHolder)holder).getItemDetails() != null) { + if (((DocumentHolder) holder).getItemDetails() != null) { addAction(info); } } else { diff --git a/src/com/android/documentsui/dirlist/AppsRowItemData.java b/src/com/android/documentsui/dirlist/AppsRowItemData.java index 7c6d9c7f0..7411ac43d 100644 --- a/src/com/android/documentsui/dirlist/AppsRowItemData.java +++ b/src/com/android/documentsui/dirlist/AppsRowItemData.java @@ -17,10 +17,11 @@ package com.android.documentsui.dirlist; import android.content.Context; -import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.graphics.drawable.Drawable; +import androidx.annotation.Nullable; + import com.android.documentsui.ActionHandler; import com.android.documentsui.base.RootInfo; import com.android.documentsui.sidebar.AppItem; @@ -35,10 +36,12 @@ import com.android.documentsui.sidebar.RootItem; public abstract class AppsRowItemData { private final String mTitle; + private final @Nullable String mSummary; protected final ActionHandler mActionHandler; - public AppsRowItemData(Item item, ActionHandler actionHandler) { + public AppsRowItemData(Item item, ActionHandler actionHandler, boolean shouldShowSummary) { mTitle = item.title; + mSummary = shouldShowSummary ? item.getSummary() : null; mActionHandler = actionHandler; } @@ -46,16 +49,22 @@ public abstract class AppsRowItemData { return mTitle; } + /** + * Get the summary from {@link Item}. + */ + public final @Nullable String getSummary() { + return mSummary; + } + protected abstract Drawable getIconDrawable(Context context); protected abstract void onClicked(); - protected abstract boolean showExitIcon(); public static class AppData extends AppsRowItemData { private final ResolveInfo mResolveInfo; - public AppData(AppItem item, ActionHandler actionHandler) { - super(item, actionHandler); + public AppData(AppItem item, ActionHandler actionHandler, boolean shouldShowSummary) { + super(item, actionHandler, shouldShowSummary); mResolveInfo = item.info; } @@ -68,19 +77,14 @@ public abstract class AppsRowItemData { protected void onClicked() { mActionHandler.openRoot(mResolveInfo); } - - @Override - protected boolean showExitIcon() { - return true; - } } public static class RootData extends AppsRowItemData { private final RootInfo mRootInfo; - public RootData(RootItem item, ActionHandler actionHandler) { - super(item, actionHandler); + public RootData(RootItem item, ActionHandler actionHandler, boolean shouldShowSummary) { + super(item, actionHandler, shouldShowSummary); mRootInfo = item.root; } @@ -93,10 +97,5 @@ public abstract class AppsRowItemData { protected void onClicked() { mActionHandler.openRoot(mRootInfo); } - - @Override - protected boolean showExitIcon() { - return false; - } } } diff --git a/src/com/android/documentsui/dirlist/AppsRowManager.java b/src/com/android/documentsui/dirlist/AppsRowManager.java index cace69f16..e476cfd90 100644 --- a/src/com/android/documentsui/dirlist/AppsRowManager.java +++ b/src/com/android/documentsui/dirlist/AppsRowManager.java @@ -16,6 +16,7 @@ package com.android.documentsui.dirlist; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; @@ -33,7 +34,9 @@ import com.android.documentsui.sidebar.Item; import com.android.documentsui.sidebar.RootItem; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * A manager class stored apps row chip data list. Data will be synced by RootsFragment. @@ -50,11 +53,23 @@ public class AppsRowManager { public List<AppsRowItemData> updateList(List<Item> itemList) { mDataList.clear(); + + // If more than 1 item of the same package, show item summary (e.g. account id). + Map<String, Integer> packageNameCount = new HashMap<>(); + for (Item item : itemList) { + String packageName = item.getPackageName(); + int previousCount = packageNameCount.containsKey(packageName) + && !TextUtils.isEmpty(packageName) + ? packageNameCount.get(packageName) : 0; + packageNameCount.put(packageName, previousCount + 1); + } + for (Item item : itemList) { + boolean shouldShowSummary = packageNameCount.get(item.getPackageName()) > 1; if (item instanceof RootItem) { - mDataList.add(new RootData((RootItem) item, mActionHandler)); + mDataList.add(new RootData((RootItem) item, mActionHandler, shouldShowSummary)); } else { - mDataList.add(new AppData((AppItem) item, mActionHandler)); + mDataList.add(new AppData((AppItem) item, mActionHandler, shouldShowSummary)); } } return mDataList; @@ -90,11 +105,12 @@ public class AppsRowManager { private void bindView(View view, AppsRowItemData data) { final ImageView app_icon = view.findViewById(R.id.app_icon); final TextView title = view.findViewById(android.R.id.title); - final ImageView exit_icon = view.findViewById(R.id.exit_icon); + final TextView summary = view.findViewById(R.id.summary); app_icon.setImageDrawable(data.getIconDrawable(view.getContext())); title.setText(data.getTitle()); - exit_icon.setVisibility(data.showExitIcon() ? View.VISIBLE : View.GONE); + summary.setText(data.getSummary()); + summary.setVisibility(data.getSummary() != null ? View.VISIBLE : View.GONE); view.setOnClickListener(v -> data.onClicked()); } } diff --git a/src/com/android/documentsui/dirlist/DirectoryAddonsAdapter.java b/src/com/android/documentsui/dirlist/DirectoryAddonsAdapter.java index d684c886e..7bccbac4e 100644 --- a/src/com/android/documentsui/dirlist/DirectoryAddonsAdapter.java +++ b/src/com/android/documentsui/dirlist/DirectoryAddonsAdapter.java @@ -131,6 +131,8 @@ final class DirectoryAddonsAdapter extends DocumentsAdapter { break; case ITEM_TYPE_HEADER_MESSAGE: ((HeaderMessageDocumentHolder) holder).bind(mHeaderMessage); + ((HeaderMessageDocumentHolder) holder).setPadding( + mEnv.getDisplayState().derivedMode); break; case ITEM_TYPE_INFLATED_MESSAGE: ((InflateMessageDocumentHolder) holder).bind(mInflateMessage); diff --git a/src/com/android/documentsui/dirlist/DirectoryFragment.java b/src/com/android/documentsui/dirlist/DirectoryFragment.java index 6f9b52ebc..cc21721f0 100644 --- a/src/com/android/documentsui/dirlist/DirectoryFragment.java +++ b/src/com/android/documentsui/dirlist/DirectoryFragment.java @@ -171,6 +171,7 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On private float mLiveScale = 1.0f; private @ViewMode int mMode; private int mAppBarHeight; + private int mSaveLayoutHeight; private View mProgressBar; @@ -193,9 +194,14 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On private final Runnable mOnDisplayStateChanged = this::onDisplayStateChanged; private final ViewTreeObserver.OnPreDrawListener mToolbarPreDrawListener = () -> { - setPreDrawListener(false); - if (mAppBarHeight != getAppBarLayoutHeight()) { + final boolean appBarHeightChanged = mAppBarHeight != getAppBarLayoutHeight(); + if (appBarHeightChanged || mSaveLayoutHeight != getSaveLayoutHeight()) { updateLayout(mState.derivedMode); + + if (appBarHeightChanged) { + scrollToTop(); + } + return false; } return true; }; @@ -253,6 +259,8 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On // Make the recycler and the empty views responsive to drop events when allowed. mRecView.setOnDragListener(mDragHoverListener); + setPreDrawListenerEnabled(true); + return view; } @@ -269,7 +277,7 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On mModel.removeUpdateListener(mModelUpdateListener); mModel.removeUpdateListener(mAdapter.getModelUpdateListener()); - setPreDrawListener(false); + setPreDrawListenerEnabled(false); super.onDestroyView(); } @@ -453,7 +461,8 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On // TODO: inject DirectoryDetails into MenuManager constructor // Since both classes are supplied by Activity and created // at the same time. - mInjector.menuManager.inflateContextMenuForContainer(menu, inflater); + mInjector.menuManager.inflateContextMenuForContainer( + menu, inflater, mSelectionMetadata); } else { mInjector.menuManager.inflateContextMenuForDocs( menu, inflater, mSelectionMetadata); @@ -538,7 +547,8 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On int pad = getDirectoryPadding(mode); mAppBarHeight = getAppBarLayoutHeight(); - mRecView.setPadding(pad, mAppBarHeight, pad, getSaveLayoutHeight()); + mSaveLayoutHeight = getSaveLayoutHeight(); + mRecView.setPadding(pad, mAppBarHeight, pad, mSaveLayoutHeight); mRecView.requestLayout(); mIconHelper.setViewMode(mode); @@ -592,6 +602,12 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On } private int calculateColumnCount(@ViewMode int mode) { + // For fixing a11y issue b/141223688, if there's only "no items" displayed, we should set + // span column to 1 to avoid talkback speaking unnecessary information. + if (mModel != null && mModel.getItemCount() == 0) { + return 1; + } + if (mode == MODE_LIST) { // List mode is a "grid" with 1 column. return 1; @@ -670,7 +686,7 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On case R.id.dir_menu_delete: // deleteDocuments will end action mode if the documents are deleted. // It won't end action mode if user cancels the delete. - mActions.deleteSelectedDocuments(); + mActions.showDeleteDialog(); return true; case R.id.action_menu_copy_to: @@ -738,11 +754,13 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On mActions.selectAllFiles(); return true; + case R.id.action_menu_deselect_all: + case R.id.dir_menu_deselect_all: + mActions.deselectAllFiles(); + return true; + case R.id.action_menu_rename: case R.id.dir_menu_rename: - // Exit selection mode first, so we avoid deselecting deleted - // (renamed) documents. - mActionModeController.finishActionMode(); renameDocuments(selection); return true; @@ -802,6 +820,10 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On private void openDocuments(final Selection selected) { Metrics.logUserAction(MetricConsts.USER_ACTION_OPEN); + if (selected.isEmpty()) { + return; + } + // Model must be accessed in UI thread, since underlying cursor is not threadsafe. List<DocumentInfo> docs = mModel.getDocuments(selected); if (docs.size() > 1) { @@ -814,6 +836,10 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On private void showChooserForDoc(final Selection<String> selected) { Metrics.logUserAction(MetricConsts.USER_ACTION_OPEN); + if (selected.isEmpty()) { + return; + } + assert selected.size() == 1; DocumentInfo doc = DocumentInfo.fromDirectoryCursor(mModel.getItem(selected.iterator().next())); @@ -823,6 +849,10 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On private void transferDocuments( final Selection<String> selected, @Nullable DocumentStack destination, final @OpType int mode) { + if (selected.isEmpty()) { + return; + } + switch (mode) { case FileOperationService.OPERATION_COPY: Metrics.logUserAction(MetricConsts.USER_ACTION_COPY_TO); @@ -895,7 +925,7 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On throw new UnsupportedOperationException("Unknown mode: " + mode); } - intent.putExtra(DocumentsContract.EXTRA_PROMPT, getResources().getString(drawerTitleId)); + intent.putExtra(DocumentsContract.EXTRA_PROMPT, drawerTitleId); // Model must be accessed in UI thread, since underlying cursor is not threadsafe. List<DocumentInfo> docs = mModel.getDocuments(selected); @@ -904,7 +934,6 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On // to be copied? Why? Directory creation isn't supported by some roots // (like Downloads). This informs DocumentsActivity (the "picker") // to restrict available roots to just those with support. - intent.putExtra(Shared.EXTRA_DIRECTORY_COPY, hasDirectory(docs)); intent.putExtra(FileOperationService.EXTRA_OPERATION_TYPE, mode); // This just identifies the type of request...we'll check it @@ -923,18 +952,13 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On } } - private static boolean hasDirectory(List<DocumentInfo> docs) { - for (DocumentInfo info : docs) { - if (Document.MIME_TYPE_DIR.equals(info.mimeType)) { - return true; - } - } - return false; - } - private void renameDocuments(Selection selected) { Metrics.logUserAction(MetricConsts.USER_ACTION_RENAME); + if (selected.isEmpty()) { + return; + } + // Batch renaming not supported // Rename option is only available in menu when 1 document selected assert selected.size() == 1; @@ -962,6 +986,9 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On } public void pasteIntoFolder() { + if (mSelectionMgr.getSelection().isEmpty()) { + return; + } assert (mSelectionMgr.getSelection().size() == 1); String modelId = mSelectionMgr.getSelection().iterator().next(); @@ -1030,17 +1057,19 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On return null; } - private void setPreDrawListener(boolean enable) { + /** + * Add or remove mToolbarPreDrawListener implement on DirectoryFragment to ViewTreeObserver. + */ + public void setPreDrawListenerEnabled(boolean enable) { if (mActivity == null) { return; } final View bar = mActivity.findViewById(R.id.collapsing_toolbar); if (bar != null) { + bar.getViewTreeObserver().removeOnPreDrawListener(mToolbarPreDrawListener); if (enable) { bar.getViewTreeObserver().addOnPreDrawListener(mToolbarPreDrawListener); - } else { - bar.getViewTreeObserver().removeOnPreDrawListener(mToolbarPreDrawListener); } } } @@ -1202,8 +1231,6 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On mInjector.menuManager.updateOptionMenu(); mActivity.updateHeaderTitle(); - - setPreDrawListener(true); } } } diff --git a/src/com/android/documentsui/dirlist/HeaderMessageDocumentHolder.java b/src/com/android/documentsui/dirlist/HeaderMessageDocumentHolder.java index a0e6dc141..f74c0d382 100644 --- a/src/com/android/documentsui/dirlist/HeaderMessageDocumentHolder.java +++ b/src/com/android/documentsui/dirlist/HeaderMessageDocumentHolder.java @@ -16,6 +16,8 @@ package com.android.documentsui.dirlist; +import static com.android.documentsui.base.State.MODE_GRID; + import android.content.Context; import android.database.Cursor; import android.view.View; @@ -25,6 +27,7 @@ import android.widget.ImageView; import android.widget.TextView; import com.android.documentsui.R; +import com.android.documentsui.base.State.ViewMode; /** * RecyclerView.ViewHolder class that displays at the top of the directory list when there @@ -32,6 +35,7 @@ import com.android.documentsui.R; * Used by {@link DirectoryAddonsAdapter}. */ final class HeaderMessageDocumentHolder extends MessageHolder { + private final View mRoot; private final ImageView mIcon; private final TextView mTextView; private final Button mButton; @@ -40,6 +44,7 @@ final class HeaderMessageDocumentHolder extends MessageHolder { public HeaderMessageDocumentHolder(Context context, ViewGroup parent) { super(context, parent, R.layout.item_doc_header_message); + mRoot = itemView.findViewById(R.id.item_root); mIcon = (ImageView) itemView.findViewById(R.id.message_icon); mTextView = (TextView) itemView.findViewById(R.id.message_textview); mButton = (Button) itemView.findViewById(R.id.button_dismiss); @@ -51,6 +56,17 @@ final class HeaderMessageDocumentHolder extends MessageHolder { bind(null, null); } + /** + * We set different padding on directory parent in different mode by + * {@link DirectoryFragment#onViewModeChanged()}. To avoid the layout shifting when + * display mode changed, we set the opposite padding on the item. + */ + public void setPadding(@ViewMode int mode) { + int padding = itemView.getResources().getDimensionPixelSize(mode == MODE_GRID + ? R.dimen.list_container_padding : R.dimen.grid_container_padding); + mRoot.setPadding(padding, 0, padding, 0); + } + private void onButtonClick(View button) { mMessage.runCallback(); } diff --git a/src/com/android/documentsui/dirlist/Message.java b/src/com/android/documentsui/dirlist/Message.java index 8478f6803..b3c3210ce 100644 --- a/src/com/android/documentsui/dirlist/Message.java +++ b/src/com/android/documentsui/dirlist/Message.java @@ -16,17 +16,15 @@ package com.android.documentsui.dirlist; -import androidx.annotation.Nullable; import android.app.AuthenticationRequiredException; -import android.app.PendingIntent; import android.graphics.drawable.Drawable; -import android.util.Log; + +import androidx.annotation.Nullable; import com.android.documentsui.DocumentsApplication; import com.android.documentsui.Model.Update; import com.android.documentsui.R; import com.android.documentsui.base.RootInfo; -import com.android.documentsui.base.Shared; import com.android.documentsui.dirlist.DocumentsAdapter.Environment; /** @@ -121,8 +119,8 @@ abstract class Message { assert(mEnv.getFeatures().isRemoteActionsEnabled()); RootInfo root = mEnv.getDisplayState().stack.getRoot(); - String appName = DocumentsApplication - .getProvidersCache(mEnv.getContext()).getApplicationName(root.authority); + String appName = DocumentsApplication.getProvidersCache( + mEnv.getContext()).getApplicationName(root.userId, root.authority); update(mEnv.getContext().getString(R.string.authentication_required, appName), mEnv.getContext().getResources().getText(R.string.sign_in), mEnv.getContext().getDrawable(R.drawable.ic_dialog_info)); diff --git a/src/com/android/documentsui/dirlist/RenameDocumentFragment.java b/src/com/android/documentsui/dirlist/RenameDocumentFragment.java index d78f10a74..f46c4e54f 100644 --- a/src/com/android/documentsui/dirlist/RenameDocumentFragment.java +++ b/src/com/android/documentsui/dirlist/RenameDocumentFragment.java @@ -46,7 +46,6 @@ import com.android.documentsui.base.Shared; import com.android.documentsui.ui.Snackbars; import com.google.android.material.dialog.MaterialAlertDialogBuilder; -import com.google.android.material.snackbar.Snackbar; import com.google.android.material.textfield.TextInputLayout; /** @@ -60,6 +59,11 @@ public class RenameDocumentFragment extends DialogFragment { private @Nullable DialogInterface mDialog; public static void show(FragmentManager fm, DocumentInfo document) { + if (fm.isStateSaved()) { + Log.w(TAG, "Skip show rename dialog because state saved"); + return; + } + final RenameDocumentFragment dialog = new RenameDocumentFragment(); dialog.mDocument = document; dialog.show(fm, TAG_RENAME_DOCUMENT); @@ -170,7 +174,7 @@ public class RenameDocumentFragment extends DialogFragment { */ private void selectFileName(EditText editText) { String text = editText.getText().toString(); - int separatorIndex = text.indexOf("."); + int separatorIndex = text.lastIndexOf("."); editText.setSelection(0, (separatorIndex == -1 || mDocument.isDirectory()) ? text.length() : separatorIndex); } @@ -191,14 +195,19 @@ public class RenameDocumentFragment extends DialogFragment { mDialog.dismiss(); } else if (!isValidDocumentName(newDisplayName)) { Log.w(TAG, "Failed to rename file - invalid name:" + newDisplayName); - Snackbars.makeSnackbar(getActivity(), R.string.rename_error, - Snackbar.LENGTH_SHORT).show(); + mRenameInputWrapper.setError(getContext().getString(R.string.rename_error)); + Metrics.logRenameFileError(); } else if (activity.getInjector().getModel().hasFileWithName(newDisplayName)){ mRenameInputWrapper.setError(getContext().getString(R.string.name_conflict)); selectFileName(mEditText); Metrics.logRenameFileError(); } else { new RenameDocumentsTask(activity, newDisplayName).execute(mDocument); + + if (mDialog != null) { + mDialog.dismiss(); + } + activity.getInjector().selectionMgr.clearSelection(); } } @@ -213,11 +222,6 @@ public class RenameDocumentFragment extends DialogFragment { } @Override - protected void onPreExecute() { - mActivity.setPending(true); - } - - @Override protected DocumentInfo doInBackground(DocumentInfo... document) { assert(document.length == 1); @@ -232,10 +236,7 @@ public class RenameDocumentFragment extends DialogFragment { Snackbars.showRenameFailed(mActivity); Metrics.logRenameFileError(); } - if (mDialog != null) { - mDialog.dismiss(); - } - mActivity.setPending(false); + mActivity.reloadDocumentsIfNeeded(); } } } diff --git a/src/com/android/documentsui/files/ActionHandler.java b/src/com/android/documentsui/files/ActionHandler.java index 06d367173..5f753e62f 100644 --- a/src/com/android/documentsui/files/ActionHandler.java +++ b/src/com/android/documentsui/files/ActionHandler.java @@ -51,7 +51,6 @@ import com.android.documentsui.Metrics; import com.android.documentsui.Model; import com.android.documentsui.R; import com.android.documentsui.TimeoutTask; -import com.android.documentsui.base.ConfirmationCallback; import com.android.documentsui.base.DebugFlags; import com.android.documentsui.base.DocumentFilters; import com.android.documentsui.base.DocumentInfo; @@ -63,11 +62,11 @@ import com.android.documentsui.base.Providers; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.Shared; import com.android.documentsui.base.State; +import com.android.documentsui.base.UserId; import com.android.documentsui.clipping.ClipStore; import com.android.documentsui.clipping.DocumentClipper; import com.android.documentsui.clipping.UrisSupplier; import com.android.documentsui.dirlist.AnimationView; -import com.android.documentsui.files.ActionHandler.Addons; import com.android.documentsui.inspector.InspectorActivity; import com.android.documentsui.queries.SearchViewManager; import com.android.documentsui.roots.ProvidersAccess; @@ -84,10 +83,14 @@ import javax.annotation.Nullable; /** * Provides {@link FilesActivity} action specializations to fragments. + * @param <T> activity which extends {@link FragmentActivity} and implements + * {@link AbstractActionHandler.CommonAddons}. */ -public class ActionHandler<T extends FragmentActivity & Addons> extends AbstractActionHandler<T> { +public class ActionHandler<T extends FragmentActivity & AbstractActionHandler.CommonAddons> + extends AbstractActionHandler<T> { private static final String TAG = "ManagerActionHandler"; + private static final int SHARE_FILES_COUNT_LIMIT = 100; private final ActionModeAddons mActionModeAddons; private final Features mFeatures; @@ -142,6 +145,10 @@ public class ActionHandler<T extends FragmentActivity & Addons> extends Abstract @Override public void openSelectedInNewWindow() { Selection<String> selection = getStableSelection(); + if (selection.isEmpty()) { + return; + } + assert(selection.size() == 1); DocumentInfo doc = mModel.getDocument(selection.iterator().next()); assert(doc != null); @@ -284,7 +291,7 @@ public class ActionHandler<T extends FragmentActivity & Addons> extends Abstract } DocumentInfo doc = mModel.getDocument(selection.iterator().next()); Intent intent = new Intent(DocumentsContract.ACTION_DOCUMENT_SETTINGS); - intent.setPackage(mProviders.getPackageName(doc.authority)); + intent.setPackage(mProviders.getPackageName(UserId.DEFAULT_USER, doc.authority)); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.setData(doc.derivedUri); try { @@ -295,56 +302,55 @@ public class ActionHandler<T extends FragmentActivity & Addons> extends Abstract } } - @Override - public void deleteSelectedDocuments() { - Metrics.logUserAction(MetricConsts.USER_ACTION_DELETE); + public void showDeleteDialog() { Selection selection = getSelectedOrFocused(); - if (selection.isEmpty()) { return; } - final @Nullable DocumentInfo srcParent = mState.stack.peek(); + DeleteDocumentFragment.show(mActivity.getSupportFragmentManager(), + mModel.getDocuments(selection), + mState.stack.peek()); + } - // Model must be accessed in UI thread, since underlying cursor is not threadsafe. - List<DocumentInfo> docs = mModel.getDocuments(selection); - ConfirmationCallback result = (@ConfirmationCallback.Result int code) -> { - // share the news with our caller, be it good or bad. - mActionModeAddons.finishOnConfirmed(code); + @Override + public void deleteSelectedDocuments(List<DocumentInfo> docs, DocumentInfo srcParent) { + if (docs == null || docs.isEmpty()) { + return; + } - if (code != ConfirmationCallback.CONFIRM) { - return; - } + mActionModeAddons.finishActionMode(); - UrisSupplier srcs; - try { - srcs = UrisSupplier.create( - selection, - mModel::getItemUri, - mClipStore); - } catch (Exception e) { - Log.e(TAG,"Failed to delete a file because we were unable to get item URIs.", e); - mDialogs.showFileOperationStatus( - FileOperations.Callback.STATUS_FAILED, - FileOperationService.OPERATION_DELETE, - selection.size()); - return; - } + List<Uri> uris = new ArrayList<>(docs.size()); + for (DocumentInfo doc : docs) { + uris.add(doc.derivedUri); + } - FileOperation operation = new FileOperation.Builder() - .withOpType(FileOperationService.OPERATION_DELETE) - .withDestination(mState.stack) - .withSrcs(srcs) - .withSrcParent(srcParent == null ? null : srcParent.derivedUri) - .build(); + UrisSupplier srcs; + try { + srcs = UrisSupplier.create( + uris, + mClipStore); + } catch (Exception e) { + Log.e(TAG, "Failed to delete a file because we were unable to get item URIs.", e); + mDialogs.showFileOperationStatus( + FileOperations.Callback.STATUS_FAILED, + FileOperationService.OPERATION_DELETE, + uris.size()); + return; + } - FileOperations.start(mActivity, operation, mDialogs::showFileOperationStatus, - FileOperations.createJobId()); - }; + FileOperation operation = new FileOperation.Builder() + .withOpType(FileOperationService.OPERATION_DELETE) + .withDestination(mState.stack) + .withSrcs(srcs) + .withSrcParent(srcParent == null ? null : srcParent.derivedUri) + .build(); - mDialogs.confirmDelete(docs, result); + FileOperations.start(mActivity, operation, mDialogs::showFileOperationStatus, + FileOperations.createJobId()); } @Override @@ -352,8 +358,12 @@ public class ActionHandler<T extends FragmentActivity & Addons> extends Abstract Metrics.logUserAction(MetricConsts.USER_ACTION_SHARE); Selection<String> selection = getStableSelection(); - - assert(!selection.isEmpty()); + if (selection.isEmpty()) { + return; + } else if (selection.size() > SHARE_FILES_COUNT_LIMIT) { + mDialogs.showShareOverLimit(SHARE_FILES_COUNT_LIMIT); + return; + } // Model must be accessed in UI thread, since underlying cursor is not threadsafe. List<DocumentInfo> docs = mModel.loadDocuments( @@ -454,11 +464,7 @@ public class ActionHandler<T extends FragmentActivity & Addons> extends Abstract @Override protected void launchToDefaultLocation() { - if (mFeatures.isDefaultRootInBrowseEnabled()) { - loadHomeDir(); - } else { - loadRecent(); - } + loadHomeDir(); } // If EXTRA_STACK is not null in intent, we'll skip other means of loading @@ -727,7 +733,7 @@ public class ActionHandler<T extends FragmentActivity & Addons> extends Abstract // established, we set the same permission for non-managed files // This ensures consistent behavior between the Downloads root // and other roots. - int flags = Intent.FLAG_GRANT_READ_URI_PERMISSION; + int flags = Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_ACTIVITY_SINGLE_TOP; if (doc.isWriteSupported()) { flags |= Intent.FLAG_GRANT_WRITE_URI_PERMISSION; } @@ -762,7 +768,4 @@ public class ActionHandler<T extends FragmentActivity & Addons> extends Abstract } mActivity.startActivity(intent); } - - public interface Addons extends CommonAddons { - } } diff --git a/src/com/android/documentsui/files/DeleteDocumentFragment.java b/src/com/android/documentsui/files/DeleteDocumentFragment.java new file mode 100644 index 000000000..64393a355 --- /dev/null +++ b/src/com/android/documentsui/files/DeleteDocumentFragment.java @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2019 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.files; + +import static com.android.documentsui.base.SharedMinimal.TAG; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; +import android.widget.Button; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.fragment.app.DialogFragment; +import androidx.fragment.app.FragmentManager; + +import com.android.documentsui.Injector; +import com.android.documentsui.R; +import com.android.documentsui.base.DocumentInfo; +import com.android.documentsui.base.Shared; + +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + +import java.util.ArrayList; +import java.util.List; + +/** + * Dialog to delete file or directory. + */ +public class DeleteDocumentFragment extends DialogFragment { + private static final String TAG_DELETE_DOCUMENT = "delete_document"; + + private List<DocumentInfo> mDocuments; + private DocumentInfo mSrcParent; + + /** + * Show the dialog UI. + * + * @param fm the fragment manager + * @param docs the selected documents + * @param srcParent the parent document of the selection + */ + public static void show(FragmentManager fm, List<DocumentInfo> docs, DocumentInfo srcParent) { + if (fm.isStateSaved()) { + Log.w(TAG, "Skip show delete dialog because state saved"); + return; + } + + final DeleteDocumentFragment dialog = new DeleteDocumentFragment(); + dialog.mDocuments = docs; + dialog.mSrcParent = srcParent; + dialog.show(fm, TAG_DELETE_DOCUMENT); + } + + /** + * Creates the dialog UI. + * + * @param savedInstanceState + * @return + */ + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + if (savedInstanceState != null) { + mSrcParent = savedInstanceState.getParcelable(Shared.EXTRA_DOC); + mDocuments = savedInstanceState.getParcelableArrayList(Shared.EXTRA_SELECTION); + } + + Context context = getActivity(); + Injector<?> injector = ((FilesActivity) getActivity()).getInjector(); + LayoutInflater dialogInflater = LayoutInflater.from(context); + TextView message = (TextView) dialogInflater.inflate( + R.layout.dialog_delete_confirmation, null, false); + message.setText(injector.messages.generateDeleteMessage(mDocuments)); + + final AlertDialog alertDialog = new MaterialAlertDialogBuilder(context) + .setView(message) + .setPositiveButton( + android.R.string.ok, + (dialog, id) -> + injector.actions.deleteSelectedDocuments(mDocuments, mSrcParent)) + .setNegativeButton(android.R.string.cancel, null) + .create(); + + alertDialog.setOnShowListener( + (dialogInterface) -> { + Button positive = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE); + positive.setFocusable(true); + positive.requestFocus(); + }); + return alertDialog; + } + + @Override + public void onSaveInstanceState(@NonNull Bundle outState) { + super.onSaveInstanceState(outState); + outState.putParcelable(Shared.EXTRA_DOC, mSrcParent); + outState.putParcelableArrayList(Shared.EXTRA_SELECTION, (ArrayList) mDocuments); + } +} diff --git a/src/com/android/documentsui/files/FilesActivity.java b/src/com/android/documentsui/files/FilesActivity.java index d93e5dbac..81ff61ff7 100644 --- a/src/com/android/documentsui/files/FilesActivity.java +++ b/src/com/android/documentsui/files/FilesActivity.java @@ -32,6 +32,7 @@ import android.view.View; import androidx.annotation.CallSuper; import androidx.fragment.app.FragmentManager; +import com.android.documentsui.AbstractActionHandler; import com.android.documentsui.ActionModeController; import com.android.documentsui.BaseActivity; import com.android.documentsui.DocsSelectionHelper; @@ -65,7 +66,7 @@ import java.util.List; /** * Standalone file management activity. */ -public class FilesActivity extends BaseActivity implements ActionHandler.Addons { +public class FilesActivity extends BaseActivity implements AbstractActionHandler.CommonAddons { private static final String TAG = "FilesActivity"; static final String PREFERENCES_SCOPE = "files"; @@ -94,7 +95,7 @@ public class FilesActivity extends BaseActivity implements ActionHandler.Addons new Config(), ScopedPreferences.create(this, PREFERENCES_SCOPE), messages, - DialogController.create(features, this, messages), + DialogController.create(features, this), DocumentsApplication.getFileTypeLookup(this), new ShortcutsUpdater(this, prefs)::update); @@ -123,7 +124,8 @@ public class FilesActivity extends BaseActivity implements ActionHandler.Addons getApplicationContext(), mInjector.selectionMgr, mProviders::getApplicationName, - mInjector.getModel()::getItemUri); + mInjector.getModel()::getItemUri, + mInjector.getModel()::getItemCount); mInjector.actionModeController = new ActionModeController( this, @@ -150,7 +152,7 @@ public class FilesActivity extends BaseActivity implements ActionHandler.Addons mInjector.appsRowManager = mAppsRowManager; mActivityInputHandler = - new ActivityInputHandler(mInjector.actions::deleteSelectedDocuments); + new ActivityInputHandler(mInjector.actions::showDeleteDialog); mSharedInputHandler = new SharedInputHandler( mInjector.focusManager, @@ -158,7 +160,8 @@ public class FilesActivity extends BaseActivity implements ActionHandler.Addons mInjector.searchManager::cancelSearch, this::popDir, mInjector.features, - mDrawer); + mDrawer, + mInjector.searchManager::onSearchBarClicked); RootsFragment.show(getSupportFragmentManager(), null); @@ -266,7 +269,7 @@ public class FilesActivity extends BaseActivity implements ActionHandler.Addons // have no reason to hang around. // TODO: Rather than just disappearing, maybe we should inform // the user what has happened, let them close us. Less surprising. - if (mProviders.getRootBlocking(root.authority, root.rootId) == null) { + if (mProviders.getRootBlocking(root.userId, root.authority, root.rootId) == null) { finish(); } } @@ -359,9 +362,7 @@ public class FilesActivity extends BaseActivity implements ActionHandler.Addons @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return mActivityInputHandler.onKeyDown(keyCode, event) - || mSharedInputHandler.onKeyDown( - keyCode, - event) + || mSharedInputHandler.onKeyDown(keyCode, event) || super.onKeyDown(keyCode, event); } diff --git a/src/com/android/documentsui/files/MenuManager.java b/src/com/android/documentsui/files/MenuManager.java index ab7c63075..f4994ae70 100644 --- a/src/com/android/documentsui/files/MenuManager.java +++ b/src/com/android/documentsui/files/MenuManager.java @@ -34,12 +34,16 @@ import com.android.documentsui.R; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.Features; import com.android.documentsui.base.Lookup; +import com.android.documentsui.base.LookupApplicationName; import com.android.documentsui.base.RootInfo; +import com.android.documentsui.base.Shared; import com.android.documentsui.base.State; +import com.android.documentsui.base.UserId; import com.android.documentsui.queries.SearchViewManager; import java.util.List; import java.util.function.IntFunction; +import java.util.function.IntSupplier; public final class MenuManager extends com.android.documentsui.MenuManager { @@ -47,7 +51,7 @@ public final class MenuManager extends com.android.documentsui.MenuManager { private final Context mContext; private final SelectionTracker<String> mSelectionManager; private final Lookup<String, Uri> mUriLookup; - private final Lookup<String, String> mAppNameLookup; + private final LookupApplicationName mAppNameLookup; public MenuManager( Features features, @@ -56,10 +60,11 @@ public final class MenuManager extends com.android.documentsui.MenuManager { DirectoryDetails dirDetails, Context context, SelectionTracker<String> selectionManager, - Lookup<String, String> appNameLookup, - Lookup<String, Uri> uriLookup) { + LookupApplicationName appNameLookup, + Lookup<String, Uri> uriLookup, + IntSupplier filesCountSupplier) { - super(searchManager, displayState, dirDetails); + super(searchManager, displayState, dirDetails, filesCountSupplier); mFeatures = features; mContext = context; @@ -103,9 +108,10 @@ public final class MenuManager extends com.android.documentsui.MenuManager { } @Override - public void inflateContextMenuForContainer(Menu menu, MenuInflater inflater) { + public void inflateContextMenuForContainer( + Menu menu, MenuInflater inflater, SelectionDetails selectionDetails) { inflater.inflate(R.menu.container_context_menu, menu); - updateContextMenuForContainer(menu); + updateContextMenuForContainer(menu, selectionDetails); } @Override @@ -224,6 +230,20 @@ public final class MenuManager extends com.android.documentsui.MenuManager { } @Override + protected void updateSelectAll(MenuItem selectAll, SelectionDetails selectionDetails) { + final boolean visible = selectionDetails.size() < mFilesCountSupplier.getAsInt(); + selectAll.setVisible(visible); + selectAll.setEnabled(visible); + } + + @Override + protected void updateDeselectAll(MenuItem deselectAll, SelectionDetails selectionDetails) { + final boolean visible = selectionDetails.size() == mFilesCountSupplier.getAsInt(); + deselectAll.setVisible(visible); + deselectAll.setEnabled(visible); + } + + @Override protected void updateCreateDir(MenuItem createDir) { createDir.setVisible(true); createDir.setEnabled(mDirDetails.canCreateDirectory()); @@ -274,7 +294,8 @@ public final class MenuManager extends com.android.documentsui.MenuManager { Resources res = mContext.getResources(); String selectedModelId = mSelectionManager.getSelection().iterator().next(); Uri selectedUri = mUriLookup.lookup(selectedModelId); - String appName = mAppNameLookup.lookup(selectedUri.getAuthority()); + String appName = mAppNameLookup.getApplicationName(UserId.DEFAULT_USER, + selectedUri.getAuthority()); String title = res.getString(R.string.menu_view_in_owner, appName); view.setTitle(title); } @@ -282,4 +303,11 @@ public final class MenuManager extends com.android.documentsui.MenuManager { view.setVisible(false); } } + + @Override + protected void updateLauncher(MenuItem launcher) { + launcher.setVisible(mState.debugMode); + launcher.setTitle(Shared.isLauncherEnabled(mContext) + ? "Hide launcher icon" : "Show launcher icon"); + } } diff --git a/src/com/android/documentsui/inspector/DebugView.java b/src/com/android/documentsui/inspector/DebugView.java index 1dc2da778..72dedbd0e 100644 --- a/src/com/android/documentsui/inspector/DebugView.java +++ b/src/com/android/documentsui/inspector/DebugView.java @@ -78,6 +78,7 @@ public class DebugView extends TableView implements DebugDisplay { put(R.string.debug_stream_types, "-"); put(R.string.debug_raw_size, NumberFormat.getInstance().format(info.size)); put(R.string.debug_is_archive, info.isArchive()); + put(R.string.debug_is_blocked_from_tree, info.isBlockedFromTree()); put(R.string.debug_is_container, info.isContainer()); put(R.string.debug_is_partial, info.isPartial()); put(R.string.debug_is_virtual, info.isVirtual()); diff --git a/src/com/android/documentsui/inspector/InspectorController.java b/src/com/android/documentsui/inspector/InspectorController.java index 291936add..aad7426db 100644 --- a/src/com/android/documentsui/inspector/InspectorController.java +++ b/src/com/android/documentsui/inspector/InspectorController.java @@ -17,7 +17,6 @@ package com.android.documentsui.inspector; import static androidx.core.util.Preconditions.checkArgument; -import androidx.annotation.StringRes; import android.app.Activity; import android.content.Context; import android.content.Intent; @@ -26,16 +25,19 @@ import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.provider.DocumentsContract; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; import android.view.View; import android.view.View.OnClickListener; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.annotation.VisibleForTesting; + import com.android.documentsui.DocumentsApplication; import com.android.documentsui.ProviderExecutor; import com.android.documentsui.R; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.Shared; +import com.android.documentsui.base.UserId; import com.android.documentsui.inspector.actions.Action; import com.android.documentsui.inspector.actions.ClearDefaultAppAction; import com.android.documentsui.inspector.actions.ShowInProviderAction; @@ -172,7 +174,7 @@ public final class InspectorController { mShowProvider.init( showProviderAction, (view) -> { - showInProvider(docInfo.derivedUri); + showInProvider(docInfo.derivedUri, UserId.DEFAULT_USER); }); } @@ -260,10 +262,10 @@ public final class InspectorController { * * @param DocumentInfo whose flag FLAG_SUPPORTS_SETTINGS is set. */ - public void showInProvider(Uri uri) { + public void showInProvider(Uri uri, UserId userId) { Intent intent = new Intent(DocumentsContract.ACTION_DOCUMENT_SETTINGS); - intent.setPackage(mProviders.getPackageName(uri.getAuthority())); + intent.setPackage(mProviders.getPackageName(userId, uri.getAuthority())); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.setData(uri); mContext.startActivity(intent); diff --git a/src/com/android/documentsui/inspector/actions/ShowInProviderAction.java b/src/com/android/documentsui/inspector/actions/ShowInProviderAction.java index 1523ae75c..441b7d4a7 100644 --- a/src/com/android/documentsui/inspector/actions/ShowInProviderAction.java +++ b/src/com/android/documentsui/inspector/actions/ShowInProviderAction.java @@ -21,8 +21,10 @@ import android.content.Context; import android.content.pm.PackageManager; import androidx.annotation.StringRes; + import com.android.documentsui.R; import com.android.documentsui.base.DocumentInfo; +import com.android.documentsui.base.UserId; import com.android.documentsui.roots.ProvidersAccess; /** @@ -66,7 +68,7 @@ public final class ShowInProviderAction extends Action { @Override public String getPackageName() { - return mProviders.getPackageName(mDoc.derivedUri.getAuthority()); + return mProviders.getPackageName(UserId.DEFAULT_USER, mDoc.derivedUri.getAuthority()); } public @StringRes int getButtonLabel() { diff --git a/src/com/android/documentsui/picker/ActionHandler.java b/src/com/android/documentsui/picker/ActionHandler.java index ef16e6d4a..00c8d80a1 100644 --- a/src/com/android/documentsui/picker/ActionHandler.java +++ b/src/com/android/documentsui/picker/ActionHandler.java @@ -23,6 +23,7 @@ import static com.android.documentsui.base.State.ACTION_OPEN; import static com.android.documentsui.base.State.ACTION_OPEN_TREE; import static com.android.documentsui.base.State.ACTION_PICK_COPY_DESTINATION; +import android.content.ActivityNotFoundException; import android.content.ClipData; import android.content.ComponentName; import android.content.Intent; @@ -218,15 +219,17 @@ class ActionHandler<T extends FragmentActivity & Addons> extends AbstractActionH mInjector.pickResult.setIsSearching(isSearching); mInjector.pickResult.setRoot(root); mInjector.pickResult.setFileUri(uri); - getUpdatePickResultTask().execute(); + getUpdatePickResultTask().safeExecute(); } private void loadDefaultLocation() { switch (mState.action) { case ACTION_CREATE: - case ACTION_OPEN_TREE: loadHomeDir(); break; + case ACTION_OPEN_TREE: + loadDeviceRoot(); + break; case ACTION_GET_CONTENT: case ACTION_OPEN: loadRecent(); @@ -295,10 +298,20 @@ class ActionHandler<T extends FragmentActivity & Addons> extends AbstractActionH Metrics.logAppVisited(info); mInjector.pickResult.increaseActionCount(); final Intent intent = new Intent(mActivity.getIntent()); - intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_FORWARD_RESULT); + final int flagsRemoved = Intent.FLAG_ACTIVITY_FORWARD_RESULT + | Intent.FLAG_GRANT_READ_URI_PERMISSION + | Intent.FLAG_GRANT_WRITE_URI_PERMISSION + | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION + | Intent.FLAG_GRANT_PREFIX_URI_PERMISSION; + intent.setFlags(intent.getFlags() & ~flagsRemoved); intent.setComponent(new ComponentName( info.activityInfo.applicationInfo.packageName, info.activityInfo.name)); - mActivity.startActivityForResult(intent, CODE_FORWARD); + try { + mActivity.startActivityForResult(intent, CODE_FORWARD); + } catch (SecurityException | ActivityNotFoundException e) { + Log.e(TAG, "Caught error: " + e.getLocalizedMessage()); + mInjector.dialogs.showNoApplicationFound(); + } } @Override diff --git a/src/com/android/documentsui/picker/ConfirmFragment.java b/src/com/android/documentsui/picker/ConfirmFragment.java index f56434d10..860a7ac34 100644 --- a/src/com/android/documentsui/picker/ConfirmFragment.java +++ b/src/com/android/documentsui/picker/ConfirmFragment.java @@ -86,10 +86,10 @@ public class ConfirmFragment extends DialogFragment { mTarget.authority, mTarget.documentId); final BaseActivity activity = (BaseActivity) getActivity(); final String target = activity.getCurrentTitle(); - final String location = activity.getCurrentRoot().title; - final String text = getString(R.string.open_tree_dialog_title, target, location); + final String text = getString(R.string.open_tree_dialog_title, + getAppName(getActivity().getCallingPackage()), target); message = getString(R.string.open_tree_dialog_message, - getAppName(getActivity().getCallingPackage())); + getAppName(getActivity().getCallingPackage()), target); builder.setTitle(text); builder.setMessage(message); diff --git a/src/com/android/documentsui/picker/MenuManager.java b/src/com/android/documentsui/picker/MenuManager.java index b9e68ece8..449a8c990 100644 --- a/src/com/android/documentsui/picker/MenuManager.java +++ b/src/com/android/documentsui/picker/MenuManager.java @@ -30,21 +30,25 @@ import android.view.Menu; import android.view.MenuItem; import com.android.documentsui.Model; +import com.android.documentsui.R; import com.android.documentsui.base.MimeTypes; import com.android.documentsui.base.State; import com.android.documentsui.queries.SearchViewManager; import java.util.List; import java.util.function.IntFunction; -import com.android.documentsui.R; +import java.util.function.IntSupplier; public final class MenuManager extends com.android.documentsui.MenuManager { private boolean mOnlyDirectory; - public MenuManager(SearchViewManager searchManager, State displayState, DirectoryDetails dirDetails) { - super(searchManager, displayState, dirDetails); - + public MenuManager( + SearchViewManager searchManager, + State displayState, + DirectoryDetails dirDetails, + IntSupplier filesCountSupplier) { + super(searchManager, displayState, dirDetails, filesCountSupplier); } @Override @@ -66,6 +70,10 @@ public final class MenuManager extends com.android.documentsui.MenuManager { // May already be hidden because the root // doesn't support search. mSearchManager.showMenu(null); + + // Show on toolbar because there are only two menu items while ACTION_OPEN_TREE. + menu.findItem(R.id.option_menu_sort).setShowAsAction(mState.action == ACTION_OPEN_TREE + ? MenuItem.SHOW_AS_ACTION_ALWAYS : MenuItem.SHOW_AS_ACTION_NEVER); } } @@ -102,7 +110,27 @@ public final class MenuManager extends com.android.documentsui.MenuManager { } @Override + protected void updateSelectAll(MenuItem selectAll, SelectionDetails selectionDetails) { + final boolean visible = mState.allowMultiple + && selectionDetails.size() < mFilesCountSupplier.getAsInt(); + final boolean enabled = visible && !mOnlyDirectory; + selectAll.setVisible(visible); + selectAll.setEnabled(enabled); + } + + @Override + protected void updateDeselectAll(MenuItem deselectAll, SelectionDetails selectionDetails) { + final boolean visible = mState.allowMultiple + && selectionDetails.size() == mFilesCountSupplier.getAsInt(); + final boolean enabled = visible && !mOnlyDirectory; + deselectAll.setVisible(visible); + deselectAll.setEnabled(enabled); + } + + @Override protected void updateCreateDir(MenuItem createDir) { + createDir.setShowAsAction(picking() + ? MenuItem.SHOW_AS_ACTION_ALWAYS : MenuItem.SHOW_AS_ACTION_NEVER); createDir.setVisible(picking()); createDir.setEnabled(picking() && mDirDetails.canCreateDirectory()); } diff --git a/src/com/android/documentsui/picker/PickActivity.java b/src/com/android/documentsui/picker/PickActivity.java index 57969e0c2..f7f2ebe80 100644 --- a/src/com/android/documentsui/picker/PickActivity.java +++ b/src/com/android/documentsui/picker/PickActivity.java @@ -23,6 +23,7 @@ import static com.android.documentsui.base.State.ACTION_OPEN_TREE; import static com.android.documentsui.base.State.ACTION_PICK_COPY_DESTINATION; import android.content.Intent; +import android.content.res.Resources; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; @@ -93,7 +94,7 @@ public class PickActivity extends BaseActivity implements ActionHandler.Addons { new Config(), prefs, new MessageBuilder(this), - DialogController.create(features, this, null), + DialogController.create(features, this), DocumentsApplication.getFileTypeLookup(this), (Collection<RootInfo> roots) -> {}); @@ -108,7 +109,11 @@ public class PickActivity extends BaseActivity implements ActionHandler.Addons { this::focusSidebar, getColor(R.color.primary)); - mInjector.menuManager = new MenuManager(mSearchManager, mState, new DirectoryDetails(this)); + mInjector.menuManager = new MenuManager( + mSearchManager, + mState, + new DirectoryDetails(this), + mInjector.getModel()::getItemCount); mInjector.actionModeController = new ActionModeController( this, @@ -141,7 +146,8 @@ public class PickActivity extends BaseActivity implements ActionHandler.Addons { mInjector.searchManager::cancelSearch, this::popDir, mInjector.features, - mDrawer); + mDrawer, + mInjector.searchManager::onSearchBarClicked); setupLayout(intent); mInjector.actions.initLocation(intent); Metrics.logPickerLaunchedFrom(Shared.getCallingPackageName(this)); @@ -151,7 +157,7 @@ public class PickActivity extends BaseActivity implements ActionHandler.Addons { public void onBackPressed() { super.onBackPressed(); // log the case of user picking nothing. - mInjector.actions.getUpdatePickResultTask().execute(); + mInjector.actions.getUpdatePickResultTask().safeExecute(); } @Override @@ -240,11 +246,6 @@ public class PickActivity extends BaseActivity implements ActionHandler.Addons { } if (state.action == ACTION_PICK_COPY_DESTINATION) { - // Indicates that a copy operation (or move) includes a directory. - // Why? Directory creation isn't supported by some roots (like Downloads). - // This allows us to restrict available roots to just those with support. - state.directoryCopy = intent.getBooleanExtra( - Shared.EXTRA_DIRECTORY_COPY, false); state.copyOperationSubType = intent.getIntExtra( FileOperationService.EXTRA_OPERATION_TYPE, FileOperationService.OPERATION_COPY); @@ -260,21 +261,28 @@ public class PickActivity extends BaseActivity implements ActionHandler.Addons { @Override public String getDrawerTitle() { - String title = getIntent().getStringExtra(DocumentsContract.EXTRA_PROMPT); - if (title == null) { - if (mState.action == ACTION_OPEN || - mState.action == ACTION_GET_CONTENT || - mState.action == ACTION_OPEN_TREE) { - title = getResources().getString(R.string.title_open); - } else if (mState.action == ACTION_CREATE || - mState.action == ACTION_PICK_COPY_DESTINATION) { - title = getResources().getString(R.string.title_save); - } else { - // If all else fails, just call it "Documents". - title = getResources().getString(R.string.app_label); + String title; + try { + // Internal use case, we will send string id instead of string text. + title = getResources().getString( + getIntent().getIntExtra(DocumentsContract.EXTRA_PROMPT, -1)); + } catch (Resources.NotFoundException e) { + // 3rd party use case, it should send string text. + title = getIntent().getStringExtra(DocumentsContract.EXTRA_PROMPT); + if (title == null) { + if (mState.action == ACTION_OPEN + || mState.action == ACTION_GET_CONTENT + || mState.action == ACTION_OPEN_TREE) { + title = getResources().getString(R.string.title_open); + } else if (mState.action == ACTION_CREATE + || mState.action == ACTION_PICK_COPY_DESTINATION) { + title = getResources().getString(R.string.title_save); + } else { + // If all else fails, just call it "Documents". + title = getResources().getString(R.string.app_label); + } } } - return title; } @@ -377,9 +385,7 @@ public class PickActivity extends BaseActivity implements ActionHandler.Addons { @CallSuper @Override public boolean onKeyDown(int keyCode, KeyEvent event) { - return mSharedInputHandler.onKeyDown( - keyCode, - event) + return mSharedInputHandler.onKeyDown(keyCode, event) || super.onKeyDown(keyCode, event); } diff --git a/src/com/android/documentsui/picker/PickFragment.java b/src/com/android/documentsui/picker/PickFragment.java index 3ac59748f..1156882da 100644 --- a/src/com/android/documentsui/picker/PickFragment.java +++ b/src/com/android/documentsui/picker/PickFragment.java @@ -16,15 +16,14 @@ package com.android.documentsui.picker; -import static com.android.documentsui.services.FileOperationService.OPERATION_DELETE; -import static com.android.documentsui.services.FileOperationService.OPERATION_COPY; import static com.android.documentsui.services.FileOperationService.OPERATION_COMPRESS; +import static com.android.documentsui.services.FileOperationService.OPERATION_COPY; +import static com.android.documentsui.services.FileOperationService.OPERATION_DELETE; import static com.android.documentsui.services.FileOperationService.OPERATION_EXTRACT; import static com.android.documentsui.services.FileOperationService.OPERATION_MOVE; import static com.android.documentsui.services.FileOperationService.OPERATION_UNKNOWN; import android.os.Bundle; -import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -164,14 +163,10 @@ public class PickFragment extends Fragment { switch (mAction) { case State.ACTION_OPEN_TREE: - final BaseActivity activity = (BaseActivity) getActivity(); - final String target = activity.getCurrentTitle(); - final String text = TextUtils.isEmpty(target) - ? getString(R.string.button_select) - : getString(R.string.open_tree_button, target); - mPick.setText(text); + mPick.setText(getString(R.string.open_tree_button)); mPick.setWidth(Integer.MAX_VALUE); mCancel.setVisibility(View.GONE); + mPick.setEnabled(!mPickTarget.isBlockedFromTree()); break; case State.ACTION_PICK_COPY_DESTINATION: int titleId; diff --git a/src/com/android/documentsui/picker/UpdatePickResultTask.java b/src/com/android/documentsui/picker/UpdatePickResultTask.java index ff3513779..43f42ab0a 100644 --- a/src/com/android/documentsui/picker/UpdatePickResultTask.java +++ b/src/com/android/documentsui/picker/UpdatePickResultTask.java @@ -20,6 +20,7 @@ import android.content.Context; import android.net.Uri; import android.os.AsyncTask; import android.os.SystemClock; + import com.android.documentsui.Metrics; // load & update mime type & repeatedly pick count in background @@ -62,4 +63,12 @@ public class UpdatePickResultTask extends AsyncTask<Void, Void, Void> { Metrics.logPickResult(mPickResult); } + /** + * Check the status and only execute if task is pending. + */ + public void safeExecute() { + if (getStatus() == Status.PENDING) { + execute(); + } + } } diff --git a/src/com/android/documentsui/prefs/ScopedPreferences.java b/src/com/android/documentsui/prefs/ScopedPreferences.java index 545358539..a0db76ef7 100644 --- a/src/com/android/documentsui/prefs/ScopedPreferences.java +++ b/src/com/android/documentsui/prefs/ScopedPreferences.java @@ -30,13 +30,23 @@ import com.android.documentsui.R; */ public interface ScopedPreferences { - static final String INCLUDE_DEVICE_ROOT = "includeDeviceRoot"; - static final String ENABLE_ARCHIVE_CREATION = "enableArchiveCreation-"; + String INCLUDE_DEVICE_ROOT = "includeDeviceRoot"; + String RECORD_SEARCH = "recordSearch"; boolean getShowDeviceRoot(); void setShowDeviceRoot(boolean display); /** + * Get boolean preferences values of recordSearch. + */ + boolean isRecordSearch(); + + /** + * Set boolean preferences values of recordSearch. + */ + void setRecordSearch(boolean show); + + /** * @param scope An arbitrary string representitive of the scope * for prefs that are set using this object. */ @@ -70,6 +80,16 @@ public interface ScopedPreferences { public void setShowDeviceRoot(boolean display) { mSharedPrefs.edit().putBoolean(INCLUDE_DEVICE_ROOT, display).apply(); } + + @Override + public boolean isRecordSearch() { + return mSharedPrefs.getBoolean(RECORD_SEARCH, true); + } + + @Override + public void setRecordSearch(boolean show) { + mSharedPrefs.edit().putBoolean(RECORD_SEARCH, show).apply(); + } } static boolean shouldBackup(String s) { diff --git a/src/com/android/documentsui/queries/SearchChipViewManager.java b/src/com/android/documentsui/queries/SearchChipViewManager.java index 959da314f..ebda22bf3 100644 --- a/src/com/android/documentsui/queries/SearchChipViewManager.java +++ b/src/com/android/documentsui/queries/SearchChipViewManager.java @@ -18,7 +18,9 @@ package com.android.documentsui.queries; import android.animation.ObjectAnimator; import android.content.Context; +import android.graphics.drawable.Drawable; import android.os.Bundle; +import android.provider.DocumentsContract; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -37,6 +39,8 @@ import com.android.documentsui.base.Shared; import com.google.android.material.chip.Chip; import com.google.common.primitives.Ints; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -51,13 +55,21 @@ import java.util.Set; * Manages search chip behavior. */ public class SearchChipViewManager { - private static final int CHIP_MOVE_ANIMATION_DURATION = 250; - - private static final int TYPE_IMAGES = MetricConsts.TYPE_CHIP_IMAGES;; + // Defined large file as the size is larger than 10 MB. + private static final long LARGE_FILE_SIZE_BYTES = 10000000L; + // Defined a week ago as now in millis. + private static final long A_WEEK_AGO_MILLIS = + LocalDate.now().minusDays(7).atStartOfDay(ZoneId.systemDefault()) + .toInstant() + .toEpochMilli(); + + private static final int TYPE_IMAGES = MetricConsts.TYPE_CHIP_IMAGES; private static final int TYPE_DOCUMENTS = MetricConsts.TYPE_CHIP_DOCS; private static final int TYPE_AUDIO = MetricConsts.TYPE_CHIP_AUDIOS; private static final int TYPE_VIDEOS = MetricConsts.TYPE_CHIP_VIDEOS; + private static final int TYPE_LARGE_FILES = MetricConsts.TYPE_CHIP_LARGE_FILES; + private static final int TYPE_FROM_THIS_WEEK = MetricConsts.TYPE_CHIP_FROM_THIS_WEEK; private static final ChipComparator CHIP_COMPARATOR = new ChipComparator(); @@ -66,9 +78,11 @@ public class SearchChipViewManager { private static final String[] VIDEOS_MIMETYPES = new String[]{"video/*"}; private static final String[] AUDIO_MIMETYPES = new String[]{"audio/*", "application/ogg", "application/x-flac"}; - private static final String[] DOCUMENTS_MIMETYPES = new String[]{"application/*", "text/*"}; + private static final String[] DOCUMENTS_MIMETYPES = MimeTypes.getDocumentMimeTypeArray(); + private static final String[] EMPTY_MIMETYPES = new String[]{""}; - private static final Map<Integer, SearchChipData> sChipItems = new HashMap<>(); + private static final Map<Integer, SearchChipData> sMimeTypesChipItems = new HashMap<>(); + private static final Map<Integer, SearchChipData> sDefaultChipItems = new HashMap<>(); private final ViewGroup mChipGroup; private final List<Integer> mDefaultChipTypes = new ArrayList<>(); @@ -80,15 +94,23 @@ public class SearchChipViewManager { Set<SearchChipData> mCheckedChipItems = new HashSet<>(); static { - sChipItems.put(TYPE_IMAGES, + sMimeTypesChipItems.put(TYPE_IMAGES, new SearchChipData(TYPE_IMAGES, R.string.chip_title_images, IMAGES_MIMETYPES)); - sChipItems.put(TYPE_DOCUMENTS, + sMimeTypesChipItems.put(TYPE_DOCUMENTS, new SearchChipData(TYPE_DOCUMENTS, R.string.chip_title_documents, DOCUMENTS_MIMETYPES)); - sChipItems.put(TYPE_AUDIO, + sMimeTypesChipItems.put(TYPE_AUDIO, new SearchChipData(TYPE_AUDIO, R.string.chip_title_audio, AUDIO_MIMETYPES)); - sChipItems.put(TYPE_VIDEOS, + sMimeTypesChipItems.put(TYPE_VIDEOS, new SearchChipData(TYPE_VIDEOS, R.string.chip_title_videos, VIDEOS_MIMETYPES)); + sDefaultChipItems.put(TYPE_LARGE_FILES, + new SearchChipData(TYPE_LARGE_FILES, + R.string.chip_title_large_files, + EMPTY_MIMETYPES)); + sDefaultChipItems.put(TYPE_FROM_THIS_WEEK, + new SearchChipData(TYPE_FROM_THIS_WEEK, + R.string.chip_title_from_this_week, + EMPTY_MIMETYPES)); } public SearchChipViewManager(@NonNull ViewGroup chipGroup) { @@ -105,7 +127,13 @@ public class SearchChipViewManager { if (chipTypes != null) { clearCheckedChips(); for (int chipType : chipTypes) { - final SearchChipData chipData = sChipItems.get(chipType); + SearchChipData chipData = null; + if (sMimeTypesChipItems.containsKey(chipType)) { + chipData = sMimeTypesChipItems.get(chipType); + } else { + chipData = sDefaultChipItems.get(chipType); + } + mCheckedChipItems.add(chipData); setCheckedChip(chipData.getChipType()); } @@ -145,18 +173,33 @@ public class SearchChipViewManager { } /** - * Get the mime types of checked chips + * Get the query arguments of the checked chips. * - * @return the string array of mime types + * @return the bundle of query arguments */ - public String[] getCheckedMimeTypes() { - final ArrayList<String> args = new ArrayList<>(); + public Bundle getCheckedChipQueryArgs() { + final Bundle queryArgs = new Bundle(); + final ArrayList<String> checkedMimeTypes = new ArrayList<>(); for (SearchChipData data : mCheckedChipItems) { - for (String mimeType : data.getMimeTypes()) { - args.add(mimeType); + if (data.getChipType() == MetricConsts.TYPE_CHIP_LARGE_FILES) { + queryArgs.putLong(DocumentsContract.QUERY_ARG_FILE_SIZE_OVER, + LARGE_FILE_SIZE_BYTES); + } else if (data.getChipType() == MetricConsts.TYPE_CHIP_FROM_THIS_WEEK) { + queryArgs.putLong(DocumentsContract.QUERY_ARG_LAST_MODIFIED_AFTER, + A_WEEK_AGO_MILLIS); + } else { + for (String mimeType : data.getMimeTypes()) { + checkedMimeTypes.add(mimeType); + } } } - return args.toArray(new String[0]); + + if (!checkedMimeTypes.isEmpty()) { + queryArgs.putStringArray(DocumentsContract.QUERY_ARG_MIME_TYPES, + checkedMimeTypes.toArray(new String[0])); + } + + return queryArgs; } /** @@ -183,7 +226,7 @@ public class SearchChipViewManager { */ public void initChipSets(String[] acceptMimeTypes) { mDefaultChipTypes.clear(); - for (SearchChipData chipData : sChipItems.values()) { + for (SearchChipData chipData : sMimeTypesChipItems.values()) { final String[] mimeTypes = chipData.getMimeTypes(); final boolean isMatched = MimeTypes.mimeMatches(acceptMimeTypes, mimeTypes); if (isMatched) { @@ -205,21 +248,30 @@ public class SearchChipViewManager { final Context context = mChipGroup.getContext(); mChipGroup.removeAllViews(); - final LayoutInflater inflater = LayoutInflater.from(context); - for (Integer chipType : mDefaultChipTypes) { - final SearchChipData chipData = sChipItems.get(chipType); + final List<SearchChipData> mimeChipDataList = new ArrayList<>(); + for (int i = 0; i < mDefaultChipTypes.size(); i++) { + final SearchChipData chipData = sMimeTypesChipItems.get(mDefaultChipTypes.get(i)); final String[] mimeTypes = chipData.getMimeTypes(); final boolean isMatched = MimeTypes.mimeMatches(acceptMimeTypes, mimeTypes); if (isMatched) { - addChipToGroup(mChipGroup, chipData, inflater); + mimeChipDataList.add(chipData); } } + + final LayoutInflater inflater = LayoutInflater.from(context); + if (mimeChipDataList.size() > 1) { + for (int i = 0; i < mimeChipDataList.size(); i++) { + addChipToGroup(mChipGroup, mimeChipDataList.get(i), inflater); + } + } + + for (SearchChipData chipData : sDefaultChipItems.values()) { + addChipToGroup(mChipGroup, chipData, inflater); + } + reorderCheckedChips(null /* clickedChip */, false /* hasAnim */); mIsFirstUpdateChipsReady = true; mCurrentUpdateMimeTypes = acceptMimeTypes; - if (mChipGroup.getChildCount() < 2) { - mChipGroup.setVisibility(View.GONE); - } } private void addChipToGroup(ViewGroup group, SearchChipData data, LayoutInflater inflater) { @@ -317,11 +369,21 @@ public class SearchChipViewManager { } private void bindChip(Chip chip, SearchChipData chipData) { + final Context context = mChipGroup.getContext(); chip.setTag(chipData); - chip.setText(mChipGroup.getContext().getString(chipData.getTitleRes())); - // get the icon drawable with the first mimeType - chip.setChipIcon( - IconUtils.loadMimeIcon(mChipGroup.getContext(), chipData.getMimeTypes()[0])); + chip.setText(context.getString(chipData.getTitleRes())); + Drawable chipIcon; + if (chipData.getChipType() == TYPE_LARGE_FILES) { + chipIcon = context.getDrawable(R.drawable.ic_chip_large_files); + } else if (chipData.getChipType() == TYPE_FROM_THIS_WEEK) { + chipIcon = context.getDrawable(R.drawable.ic_chip_from_this_week); + } else if (chipData.getChipType() == TYPE_DOCUMENTS) { + chipIcon = IconUtils.loadMimeIcon(context, MimeTypes.GENERIC_TYPE); + } else { + // get the icon drawable with the first mimeType in chipData + chipIcon = IconUtils.loadMimeIcon(context, chipData.getMimeTypes()[0]); + } + chip.setChipIcon(chipIcon); chip.setOnClickListener(this::onChipClick); if (mCheckedChipItems.contains(chipData)) { diff --git a/src/com/android/documentsui/queries/SearchFragment.java b/src/com/android/documentsui/queries/SearchFragment.java index 5eb7435c6..bb7dc3e0d 100644 --- a/src/com/android/documentsui/queries/SearchFragment.java +++ b/src/com/android/documentsui/queries/SearchFragment.java @@ -20,6 +20,7 @@ import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.text.TextUtils; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -59,6 +60,11 @@ public class SearchFragment extends DialogFragment private List<String> mHistoryList; public static void showFragment(FragmentManager fm, String initQuery) { + if (fm.isStateSaved()) { + Log.w(TAG, "Skip show because state saved"); + return; + } + final SearchFragment fragment = new SearchFragment(); final Bundle args = new Bundle(); args.putString(KEY_QUERY, initQuery); @@ -140,6 +146,8 @@ public class SearchFragment extends DialogFragment super.onStart(); getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); + // To avoid a11y saying button description when dialog show. + getDialog().setTitle(" "); } @Override diff --git a/src/com/android/documentsui/queries/SearchViewManager.java b/src/com/android/documentsui/queries/SearchViewManager.java index c498329b9..f74aa8ace 100644 --- a/src/com/android/documentsui/queries/SearchViewManager.java +++ b/src/com/android/documentsui/queries/SearchViewManager.java @@ -37,6 +37,7 @@ import android.view.View.OnFocusChangeListener; import android.view.ViewGroup; import androidx.annotation.GuardedBy; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.appcompat.widget.SearchView; @@ -54,6 +55,7 @@ import com.android.documentsui.base.State; import java.util.Timer; import java.util.TimerTask; +import java.util.function.BooleanSupplier; /** * Manages searching UI behavior. @@ -72,6 +74,7 @@ public class SearchViewManager implements private final SearchChipViewManager mChipViewManager; private final Timer mTimer; private final Handler mUiHandler; + private final BooleanSupplier mRecordSearchSupplier; private final Object mSearchLock; @GuardedBy("mSearchLock") @@ -94,9 +97,10 @@ public class SearchViewManager implements SearchManagerListener listener, EventHandler<String> commandProcessor, ViewGroup chipGroup, - @Nullable Bundle savedState) { + @Nullable Bundle savedState, + @NonNull BooleanSupplier recordSearchSupplier) { this(listener, commandProcessor, new SearchChipViewManager(chipGroup), savedState, - new Timer(), new Handler(Looper.getMainLooper())); + recordSearchSupplier, new Timer(), new Handler(Looper.getMainLooper())); } @VisibleForTesting @@ -105,6 +109,7 @@ public class SearchViewManager implements EventHandler<String> commandProcessor, SearchChipViewManager chipViewManager, @Nullable Bundle savedState, + @NonNull BooleanSupplier recordSearchSupplier, Timer timer, Handler handler) { assert (listener != null); @@ -117,6 +122,7 @@ public class SearchViewManager implements mUiHandler = handler; mChipViewManager = chipViewManager; mChipViewManager.setSearchChipViewManagerListener(this::onChipCheckedStateChanged); + mRecordSearchSupplier = recordSearchSupplier; if (savedState != null) { mCurrentSearch = savedState.getString(Shared.EXTRA_QUERY); @@ -156,15 +162,11 @@ public class SearchViewManager implements * @return the bundle of query arguments */ public Bundle buildQueryArgs() { - final Bundle queryArgs = new Bundle(); + final Bundle queryArgs = mChipViewManager.getCheckedChipQueryArgs(); if (!TextUtils.isEmpty(mCurrentSearch)) { queryArgs.putString(DocumentsContract.QUERY_ARG_DISPLAY_NAME, mCurrentSearch); } - final String[] checkedMimeTypes = mChipViewManager.getCheckedMimeTypes(); - if (checkedMimeTypes != null && checkedMimeTypes.length > 0) { - queryArgs.putStringArray(DocumentsContract.QUERY_ARG_MIME_TYPES, checkedMimeTypes); - } return queryArgs; } @@ -538,6 +540,19 @@ public class SearchViewManager implements * Record current search for history. */ public void recordHistory() { + if (TextUtils.isEmpty(mCurrentSearch) || !mRecordSearchSupplier.getAsBoolean()) { + return; + } + + recordHistoryInternal(); + } + + protected void recordHistoryInternal() { + if (mSearchView == null) { + Log.w(TAG, "Search view is null, skip record history this time"); + return; + } + SearchHistoryManager.getInstance( mSearchView.getContext().getApplicationContext()).addHistory(mCurrentSearch); } @@ -548,6 +563,11 @@ public class SearchViewManager implements * @param history target string for removed. */ public void removeHistory(String history) { + if (mSearchView == null) { + Log.w(TAG, "Search view is null, skip remove history this time"); + return; + } + SearchHistoryManager.getInstance( mSearchView.getContext().getApplicationContext()).deleteHistory(history); } diff --git a/src/com/android/documentsui/roots/LoadFirstRootTask.java b/src/com/android/documentsui/roots/LoadFirstRootTask.java index ef91b4964..c6c04d10c 100644 --- a/src/com/android/documentsui/roots/LoadFirstRootTask.java +++ b/src/com/android/documentsui/roots/LoadFirstRootTask.java @@ -21,15 +21,19 @@ import android.net.Uri; import com.android.documentsui.AbstractActionHandler.CommonAddons; import com.android.documentsui.base.RootInfo; -import com.android.documentsui.base.State; +import com.android.documentsui.base.UserId; import java.util.Collection; public final class LoadFirstRootTask<T extends Activity & CommonAddons> extends LoadRootTask<T> { - public LoadFirstRootTask(T activity, ProvidersAccess providers, State state, Uri rootUri) { - super(activity, providers, state, rootUri); + public LoadFirstRootTask( + T activity, + ProvidersAccess providers, + Uri rootUri, + LoadRootCallback callback) { + super(activity, providers, rootUri, callback); } @Override @@ -37,7 +41,8 @@ public final class LoadFirstRootTask<T extends Activity & CommonAddons> final String authority = rootUri.getAuthority(); String rootId = null; - final Collection<RootInfo> roots = mProviders.getRootsForAuthorityBlocking(authority); + final Collection<RootInfo> roots = mProviders.getRootsForAuthorityBlocking( + UserId.DEFAULT_USER, authority); if (!roots.isEmpty()) { rootId = roots.iterator().next().rootId; } diff --git a/src/com/android/documentsui/roots/LoadRootTask.java b/src/com/android/documentsui/roots/LoadRootTask.java index a146090b2..3b4c23cf4 100644 --- a/src/com/android/documentsui/roots/LoadRootTask.java +++ b/src/com/android/documentsui/roots/LoadRootTask.java @@ -23,25 +23,30 @@ import android.net.Uri; import android.provider.DocumentsContract; import android.util.Log; +import androidx.annotation.Nullable; + import com.android.documentsui.AbstractActionHandler.CommonAddons; import com.android.documentsui.base.PairedTask; import com.android.documentsui.base.RootInfo; -import com.android.documentsui.base.State; +import com.android.documentsui.base.UserId; public class LoadRootTask<T extends Activity & CommonAddons> extends PairedTask<T, Void, RootInfo> { private static final String TAG = "LoadRootTask"; protected final ProvidersAccess mProviders; - - private final State mState; private final Uri mRootUri; + private final LoadRootCallback mCallback; - public LoadRootTask(T activity, ProvidersAccess providers, State state, Uri rootUri) { + public LoadRootTask( + T activity, + ProvidersAccess providers, + Uri rootUri, + LoadRootCallback callback) { super(activity); - mState = state; mProviders = providers; mRootUri = rootUri; + mCallback = callback; } @Override @@ -50,7 +55,8 @@ public class LoadRootTask<T extends Activity & CommonAddons> Log.d(TAG, "Loading root: " + mRootUri); } - return mProviders.getRootOneshot(mRootUri.getAuthority(), getRootId(mRootUri)); + return mProviders.getRootOneshot(UserId.DEFAULT_USER, mRootUri.getAuthority(), + getRootId(mRootUri)); } @Override @@ -59,14 +65,25 @@ public class LoadRootTask<T extends Activity & CommonAddons> if (DEBUG) { Log.d(TAG, "Loaded root: " + root); } - mOwner.onRootPicked(root); } else { Log.w(TAG, "Failed to find root: " + mRootUri); - mOwner.finish(); } + + mCallback.onRootLoaded(root); } protected String getRootId(Uri rootUri) { return DocumentsContract.getRootId(rootUri); } + + /** + * Callback for task finished. + */ + @FunctionalInterface + public interface LoadRootCallback { + /** + * Return the RootInfo of input uri, null if the uri is invalid. + */ + void onRootLoaded(@Nullable RootInfo root); + } } diff --git a/src/com/android/documentsui/roots/ProvidersAccess.java b/src/com/android/documentsui/roots/ProvidersAccess.java index aa4b530d9..822ce4ddc 100644 --- a/src/com/android/documentsui/roots/ProvidersAccess.java +++ b/src/com/android/documentsui/roots/ProvidersAccess.java @@ -21,9 +21,12 @@ import static com.android.documentsui.base.SharedMinimal.VERBOSE; import android.util.Log; +import androidx.annotation.Nullable; + import com.android.documentsui.base.MimeTypes; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.State; +import com.android.documentsui.base.UserId; import java.util.ArrayList; import java.util.Arrays; @@ -39,10 +42,10 @@ public interface ProvidersAccess { /** * Return the requested {@link RootInfo}, but only loading the roots for the - * requested authority. This is useful when we want to load fast without + * requested user and authority. This is useful when we want to load fast without * waiting for all the other roots to come back. */ - RootInfo getRootOneshot(String authority, String rootId); + RootInfo getRootOneshot(UserId userId, String authority, String rootId); Collection<RootInfo> getMatchingRootsBlocking(State state); @@ -52,15 +55,15 @@ public interface ProvidersAccess { RootInfo getRecentsRoot(); - String getApplicationName(String authority); + String getApplicationName(UserId userId, String authority); - String getPackageName(String authority); + String getPackageName(UserId userId, String authority); /** - * Returns a list of roots for the specified authority. If not found, then + * Returns a list of roots for the specified user and authority. If not found, then * an empty list is returned. */ - Collection<RootInfo> getRootsForAuthorityBlocking(String authority); + Collection<RootInfo> getRootsForAuthorityBlocking(UserId userId, String authority); public static List<RootInfo> getMatchingRoots(Collection<RootInfo> roots, State state) { @@ -105,12 +108,6 @@ public interface ProvidersAccess { continue; } - if (state.directoryCopy && root.isDownloads()) { - if (VERBOSE) Log.v( - tag, "Excluding downloads root because: unsupported directory copy."); - continue; - } - if (state.action == State.ACTION_OPEN && root.isEmpty()) { if (VERBOSE) Log.v(tag, "Excluding empty root because: ACTION_OPEN."); continue; @@ -144,4 +141,20 @@ public interface ProvidersAccess { } return matching; } + + /** + * Returns the root should default show on current state. + */ + static @Nullable RootInfo getDefaultRoot(Collection<RootInfo> roots, State state) { + for (RootInfo root : ProvidersAccess.getMatchingRoots(roots, state)) { + if (root.isExternalStorage() && state.action == State.ACTION_OPEN_TREE) { + return root; + } + if (root.isDownloads()) { + return root; + } + } + return null; + } + } diff --git a/src/com/android/documentsui/roots/ProvidersCache.java b/src/com/android/documentsui/roots/ProvidersCache.java index bd3ca1f44..cf822dafe 100644 --- a/src/com/android/documentsui/roots/ProvidersCache.java +++ b/src/com/android/documentsui/roots/ProvidersCache.java @@ -18,6 +18,8 @@ package com.android.documentsui.roots; import static android.provider.DocumentsContract.QUERY_ARG_MIME_TYPES; +import static androidx.core.util.Preconditions.checkNotNull; + import static com.android.documentsui.base.SharedMinimal.DEBUG; import static com.android.documentsui.base.SharedMinimal.VERBOSE; @@ -35,26 +37,30 @@ import android.database.Cursor; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; +import android.os.FileUtils; import android.os.Handler; +import android.os.Looper; import android.os.SystemClock; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Root; -import androidx.localbroadcastmanager.content.LocalBroadcastManager; import android.util.Log; +import androidx.annotation.GuardedBy; +import androidx.annotation.Nullable; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + import com.android.documentsui.DocumentsApplication; import com.android.documentsui.R; import com.android.documentsui.archives.ArchivesProvider; +import com.android.documentsui.base.LookupApplicationName; import com.android.documentsui.base.Providers; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.State; -import androidx.annotation.GuardedBy; +import com.android.documentsui.base.UserId; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; -import android.os.FileUtils; - import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -69,7 +75,7 @@ import java.util.concurrent.TimeUnit; /** * Cache of known storage backends and their roots. */ -public class ProvidersCache implements ProvidersAccess { +public class ProvidersCache implements ProvidersAccess, LookupApplicationName { private static final String TAG = "ProvidersCache"; // Not all providers are equally well written. If a provider returns @@ -83,7 +89,9 @@ public class ProvidersCache implements ProvidersAccess { }}; private final Context mContext; - private final ContentObserver mObserver; + + @GuardedBy("mRootsChangedObservers") + private final Map<UserId, RootsChangedObserver> mRootsChangedObservers = new HashMap<>(); private final RootInfo mRecentsRoot; @@ -96,20 +104,20 @@ public class ProvidersCache implements ProvidersAccess { private PendingResult mBootCompletedResult; @GuardedBy("mLock") - private Multimap<String, RootInfo> mRoots = ArrayListMultimap.create(); + private Multimap<UserAuthority, RootInfo> mRoots = ArrayListMultimap.create(); @GuardedBy("mLock") - private HashSet<String> mStoppedAuthorities = new HashSet<>(); + private HashSet<UserAuthority> mStoppedAuthorities = new HashSet<>(); @GuardedBy("mObservedAuthoritiesDetails") - private final Map<String, PackageDetails> mObservedAuthoritiesDetails = new HashMap<>(); + private final Map<UserAuthority, PackageDetails> mObservedAuthoritiesDetails = new HashMap<>(); public ProvidersCache(Context context) { mContext = context; - mObserver = new RootsChangedObserver(); // Create a new anonymous "Recents" RootInfo. It's a faker. mRecentsRoot = new RootInfo() {{ // Special root for recents + userId = UserId.DEFAULT_USER; derivedIcon = R.drawable.ic_root_recent; derivedType = RootInfo.TYPE_RECENTS; flags = Root.FLAG_LOCAL_ONLY | Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_SUPPORTS_SEARCH; @@ -119,9 +127,22 @@ public class ProvidersCache implements ProvidersAccess { }}; } + private RootsChangedObserver getRootsChangedObserver(UserId userId) { + synchronized (mRootsChangedObservers) { + if (!mRootsChangedObservers.containsKey(userId)) { + mRootsChangedObservers.put(userId, new RootsChangedObserver(userId)); + } + } + return mRootsChangedObservers.get(userId); + } + private class RootsChangedObserver extends ContentObserver { - public RootsChangedObserver() { - super(new Handler()); + + private final UserId mUserId; + + RootsChangedObserver(UserId userId) { + super(new Handler(Looper.getMainLooper())); + mUserId = userId; } @Override @@ -131,20 +152,21 @@ public class ProvidersCache implements ProvidersAccess { return; } if (DEBUG) { - Log.i(TAG, "Updating roots due to change at " + uri); + Log.i(TAG, "Updating roots due to change on user " + mUserId + "at " + uri); } updateAuthorityAsync(uri.getAuthority()); } } @Override - public String getApplicationName(String authority) { - return mObservedAuthoritiesDetails.get(authority).applicationName; + public String getApplicationName(UserId userId, String authority) { + return mObservedAuthoritiesDetails.get( + new UserAuthority(userId, authority)).applicationName; } @Override - public String getPackageName(String authority) { - return mObservedAuthoritiesDetails.get(authority).packageName; + public String getPackageName(UserId userId, String authority) { + return mObservedAuthoritiesDetails.get(new UserAuthority(userId, authority)).packageName; } public void updateAsync(boolean forceRefreshAll) { @@ -212,10 +234,9 @@ public class ProvidersCache implements ProvidersAccess { * {@link UpdateTask} passes ignore stopped applications. */ private void loadStoppedAuthorities() { - final ContentResolver resolver = mContext.getContentResolver(); synchronized (mLock) { - for (String authority : mStoppedAuthorities) { - mRoots.replaceValues(authority, loadRootsForAuthority(resolver, authority, true)); + for (UserAuthority userAuthority : mStoppedAuthorities) { + mRoots.replaceValues(userAuthority, loadRootsForAuthority(userAuthority, true)); } mStoppedAuthorities.clear(); } @@ -225,17 +246,16 @@ public class ProvidersCache implements ProvidersAccess { * Load roots from a stopped authority. Normal {@link UpdateTask} passes * ignore stopped applications. */ - private void loadStoppedAuthority(String authority) { - final ContentResolver resolver = mContext.getContentResolver(); + private void loadStoppedAuthority(UserAuthority userAuthority) { synchronized (mLock) { - if (!mStoppedAuthorities.contains(authority)) { + if (!mStoppedAuthorities.contains(userAuthority)) { return; } if (DEBUG) { - Log.d(TAG, "Loading stopped authority " + authority); + Log.d(TAG, "Loading stopped authority " + userAuthority); } - mRoots.replaceValues(authority, loadRootsForAuthority(resolver, authority, true)); - mStoppedAuthorities.remove(authority); + mRoots.replaceValues(userAuthority, loadRootsForAuthority(userAuthority, true)); + mStoppedAuthorities.remove(userAuthority); } } @@ -243,12 +263,15 @@ public class ProvidersCache implements ProvidersAccess { * Bring up requested provider and query for all active roots. Will consult cached * roots if not forceRefresh. Will query when cached roots is empty (which should never happen). */ - private Collection<RootInfo> loadRootsForAuthority( - ContentResolver resolver, String authority, boolean forceRefresh) { - if (VERBOSE) Log.v(TAG, "Loading roots for " + authority); + private Collection<RootInfo> loadRootsForAuthority(UserAuthority userAuthority, + boolean forceRefresh) { + UserId userId = userAuthority.userId; + String authority = userAuthority.authority; + if (VERBOSE) Log.v(TAG, "Loading roots on user " + userId + " for " + authority); + ContentResolver resolver = userId.getContentResolver(mContext); final ArrayList<RootInfo> roots = new ArrayList<>(); - final PackageManager pm = mContext.getPackageManager(); + final PackageManager pm = userId.getPackageManager(mContext); ProviderInfo provider = pm.resolveContentProvider( authority, PackageManager.GET_META_DATA); if (provider == null) { @@ -272,16 +295,17 @@ public class ProvidersCache implements ProvidersAccess { } synchronized (mObservedAuthoritiesDetails) { - if (!mObservedAuthoritiesDetails.containsKey(authority)) { + if (!mObservedAuthoritiesDetails.containsKey(userAuthority)) { CharSequence appName = pm.getApplicationLabel(provider.applicationInfo); String packageName = provider.applicationInfo.packageName; mObservedAuthoritiesDetails.put( - authority, new PackageDetails(appName.toString(), packageName)); + userAuthority, new PackageDetails(appName.toString(), packageName)); // Watch for any future updates final Uri rootsUri = DocumentsContract.buildRootsUri(authority); - mContext.getContentResolver().registerContentObserver(rootsUri, true, mObserver); + resolver.registerContentObserver(rootsUri, true, + getRootsChangedObserver(userId)); } } @@ -308,7 +332,7 @@ public class ProvidersCache implements ProvidersAccess { client = DocumentsApplication.acquireUnstableProviderOrThrow(resolver, authority); cursor = client.query(rootsUri, null, null, null, null); while (cursor.moveToNext()) { - final RootInfo root = RootInfo.fromRootsCursor(authority, cursor); + final RootInfo root = RootInfo.fromRootsCursor(userId, authority, cursor); roots.add(root); } } catch (Exception e) { @@ -337,32 +361,34 @@ public class ProvidersCache implements ProvidersAccess { } @Override - public RootInfo getRootOneshot(String authority, String rootId) { - return getRootOneshot(authority, rootId, false); + public RootInfo getRootOneshot(UserId userId, String authority, String rootId) { + return getRootOneshot(userId, authority, rootId, false); } - public RootInfo getRootOneshot(String authority, String rootId, boolean forceRefresh) { + public RootInfo getRootOneshot(UserId userId, String authority, String rootId, + boolean forceRefresh) { synchronized (mLock) { - RootInfo root = forceRefresh ? null : getRootLocked(authority, rootId); + UserAuthority userAuthority = new UserAuthority(userId, authority); + RootInfo root = forceRefresh ? null : getRootLocked(userAuthority, rootId); if (root == null) { - mRoots.replaceValues(authority, loadRootsForAuthority( - mContext.getContentResolver(), authority, forceRefresh)); - root = getRootLocked(authority, rootId); + mRoots.replaceValues(userAuthority, + loadRootsForAuthority(userAuthority, forceRefresh)); + root = getRootLocked(userAuthority, rootId); } return root; } } - public RootInfo getRootBlocking(String authority, String rootId) { + public RootInfo getRootBlocking(UserId userId, String authority, String rootId) { waitForFirstLoad(); loadStoppedAuthorities(); synchronized (mLock) { - return getRootLocked(authority, rootId); + return getRootLocked(new UserAuthority(userId, authority), rootId); } } - private RootInfo getRootLocked(String authority, String rootId) { - for (RootInfo root : mRoots.get(authority)) { + private RootInfo getRootLocked(UserAuthority userAuthority, String rootId) { + for (RootInfo root : mRoots.get(userAuthority)) { if (Objects.equals(root.rootId, rootId)) { return root; } @@ -398,33 +424,30 @@ public class ProvidersCache implements ProvidersAccess { } @Override - public Collection<RootInfo> getRootsForAuthorityBlocking(String authority) { + public Collection<RootInfo> getRootsForAuthorityBlocking(UserId userId, String authority) { waitForFirstLoad(); - loadStoppedAuthority(authority); + UserAuthority userAuthority = new UserAuthority(userId, authority); + loadStoppedAuthority(userAuthority); synchronized (mLock) { - final Collection<RootInfo> roots = mRoots.get(authority); + final Collection<RootInfo> roots = mRoots.get(userAuthority); return roots != null ? roots : Collections.<RootInfo>emptyList(); } } @Override public RootInfo getDefaultRootBlocking(State state) { - for (RootInfo root : ProvidersAccess.getMatchingRoots(getRootsBlocking(), state)) { - if (root.isDownloads()) { - return root; - } - } - return mRecentsRoot; + RootInfo root = ProvidersAccess.getDefaultRoot(getRootsBlocking(), state); + return root != null ? root : mRecentsRoot; } public void logCache() { - ContentResolver resolver = mContext.getContentResolver(); StringBuilder output = new StringBuilder(); - for (String authority : mObservedAuthoritiesDetails.keySet()) { + for (UserAuthority userAuthority : mObservedAuthoritiesDetails.keySet()) { List<String> roots = new ArrayList<>(); - Uri rootsUri = DocumentsContract.buildRootsUri(authority); - Bundle systemCache = resolver.getCache(rootsUri); + Uri rootsUri = DocumentsContract.buildRootsUri(userAuthority.authority); + Bundle systemCache = userAuthority.userId.getContentResolver(mContext).getCache( + rootsUri); if (systemCache != null) { ArrayList<RootInfo> cachedRoots = systemCache.getParcelableArrayList(TAG); for (RootInfo root : cachedRoots) { @@ -433,7 +456,7 @@ public class ProvidersCache implements ProvidersAccess { } output.append((output.length() == 0) ? "System cache: " : ", "); - output.append(authority).append("=").append(roots); + output.append(userAuthority).append("=").append(roots); } Log.i(TAG, output.toString()); @@ -442,9 +465,10 @@ public class ProvidersCache implements ProvidersAccess { private class UpdateTask extends AsyncTask<Void, Void, Void> { private final boolean mForceRefreshAll; private final String mForceRefreshPackage; + private final UserId mUserId = UserId.DEFAULT_USER; - private final Multimap<String, RootInfo> mTaskRoots = ArrayListMultimap.create(); - private final HashSet<String> mTaskStoppedAuthorities = new HashSet<>(); + private final Multimap<UserAuthority, RootInfo> mTaskRoots = ArrayListMultimap.create(); + private final HashSet<UserAuthority> mTaskStoppedAuthorities = new HashSet<>(); /** * Create task to update roots cache. @@ -463,9 +487,10 @@ public class ProvidersCache implements ProvidersAccess { protected Void doInBackground(Void... params) { final long start = SystemClock.elapsedRealtime(); - mTaskRoots.put(mRecentsRoot.authority, mRecentsRoot); + mTaskRoots.put(new UserAuthority(mRecentsRoot.userId, mRecentsRoot.authority), + mRecentsRoot); - final PackageManager pm = mContext.getPackageManager(); + final PackageManager pm = mUserId.getPackageManager(mContext); // Pick up provider with action string final Intent intent = new Intent(DocumentsContract.PROVIDER_INTERFACE); @@ -495,20 +520,59 @@ public class ProvidersCache implements ProvidersAccess { } private void handleDocumentsProvider(ProviderInfo info) { + UserAuthority userAuthority = new UserAuthority(mUserId, info.authority); // Ignore stopped packages for now; we might query them // later during UI interaction. if ((info.applicationInfo.flags & ApplicationInfo.FLAG_STOPPED) != 0) { - if (VERBOSE) Log.v(TAG, "Ignoring stopped authority " + info.authority); - mTaskStoppedAuthorities.add(info.authority); + if (VERBOSE) { + Log.v(TAG, + "Ignoring stopped authority " + info.authority + ", user " + mUserId); + } + mTaskStoppedAuthorities.add(userAuthority); return; } final boolean forceRefresh = mForceRefreshAll || Objects.equals(info.packageName, mForceRefreshPackage); - mTaskRoots.putAll(info.authority, loadRootsForAuthority(mContext.getContentResolver(), - info.authority, forceRefresh)); + mTaskRoots.putAll(userAuthority, loadRootsForAuthority(userAuthority, forceRefresh)); + } + + } + + private static class UserAuthority { + private final UserId userId; + @Nullable + private final String authority; + + private UserAuthority(UserId userId, @Nullable String authority) { + this.userId = checkNotNull(userId); + this.authority = authority; } + @Override + public boolean equals(Object o) { + if (o == null) { + return false; + } + + if (this == o) { + return true; + } + + if (o instanceof UserAuthority) { + UserAuthority other = (UserAuthority) o; + return Objects.equals(userId, other.userId) + && Objects.equals(authority, other.authority); + } + + return false; + } + + + @Override + public int hashCode() { + return Objects.hash(userId, authority); + } } private static class PackageDetails { diff --git a/src/com/android/documentsui/services/CopyJob.java b/src/com/android/documentsui/services/CopyJob.java index 5502e0a5a..c8bb8b163 100644 --- a/src/com/android/documentsui/services/CopyJob.java +++ b/src/com/android/documentsui/services/CopyJob.java @@ -19,12 +19,15 @@ package com.android.documentsui.services; import static android.content.ContentResolver.wrap; import static android.provider.DocumentsContract.buildChildDocumentsUri; import static android.provider.DocumentsContract.buildDocumentUri; +import static android.provider.DocumentsContract.findDocumentPath; import static android.provider.DocumentsContract.getDocumentId; import static android.provider.DocumentsContract.isChildDocument; import static com.android.documentsui.OperationDialogFragment.DIALOG_TYPE_CONVERTED; import static com.android.documentsui.base.DocumentInfo.getCursorLong; import static com.android.documentsui.base.DocumentInfo.getCursorString; +import static com.android.documentsui.base.Providers.AUTHORITY_DOWNLOADS; +import static com.android.documentsui.base.Providers.AUTHORITY_STORAGE; import static com.android.documentsui.base.SharedMinimal.DEBUG; import static com.android.documentsui.services.FileOperationService.EXTRA_DIALOG_TYPE; import static com.android.documentsui.services.FileOperationService.EXTRA_FAILED_DOCS; @@ -37,6 +40,7 @@ import android.app.Notification; import android.app.Notification.Builder; import android.app.PendingIntent; import android.content.ContentProviderClient; +import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.res.AssetFileDescriptor; @@ -55,13 +59,19 @@ import android.os.SystemClock; import android.os.storage.StorageManager; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Document; +import android.provider.DocumentsContract.Path; import android.system.ErrnoException; import android.system.Int64Ref; import android.system.Os; import android.system.OsConstants; +import android.system.StructStat; +import android.util.ArrayMap; import android.util.Log; import android.webkit.MimeTypeMap; +import androidx.annotation.StringRes; +import androidx.annotation.VisibleForTesting; + import com.android.documentsui.DocumentsApplication; import com.android.documentsui.MetricConsts; import com.android.documentsui.Metrics; @@ -82,13 +92,11 @@ import java.io.InputStream; import java.io.SyncFailedException; import java.text.NumberFormat; import java.util.ArrayList; +import java.util.Map; import java.util.concurrent.atomic.AtomicLong; import java.util.function.Function; import java.util.function.LongSupplier; -import androidx.annotation.StringRes; -import androidx.annotation.VisibleForTesting; - class CopyJob extends ResolvedResourcesJob { private static final String TAG = "CopyJob"; @@ -100,6 +108,7 @@ class CopyJob extends ResolvedResourcesJob { private final Handler mHandler = new Handler(Looper.getMainLooper()); private final Messenger mMessenger; + private final Map<String, Long> mDirSizeMap = new ArrayMap<>(); private CopyJobProgressTracker mProgressTracker; @@ -223,7 +232,9 @@ class CopyJob extends ResolvedResourcesJob { try { // Copying recursively to itself or one of descendants is not allowed. - if (mDstInfo.equals(srcInfo) || isDescendentOf(srcInfo, mDstInfo)) { + if (mDstInfo.equals(srcInfo) + || isDescendantOf(srcInfo, mDstInfo) + || isRecursiveCopy(srcInfo, mDstInfo)) { Log.e(TAG, "Skipping recursive copy of " + srcInfo.derivedUri); onFileFailed(srcInfo); } else { @@ -269,7 +280,7 @@ class CopyJob extends ResolvedResourcesJob { RootInfo root = stack.getRoot(); // Query root info here instead of using stack.root because the number there may be // stale. - root = cache.getRootOneshot(root.authority, root.rootId, true); + root = cache.getRootOneshot(root.userId, root.authority, root.rootId, true); if (root.availableBytes >= 0) { available = (batchSize <= root.availableBytes); } else { @@ -307,6 +318,22 @@ class CopyJob extends ResolvedResourcesJob { } /** + * Logs progress when optimized copy. + * + * @param doc the doc current copy. + */ + protected void makeOptimizedCopyProgress(DocumentInfo doc) { + long bytes; + if (doc.isDirectory()) { + Long byteObject = mDirSizeMap.get(doc.documentId); + bytes = byteObject == null ? 0 : byteObject.longValue(); + } else { + bytes = doc.size; + } + makeCopyProgress(bytes); + } + + /** * Copies a the given document to the given location. * * @param src DocumentInfos for the documents to copy. @@ -318,8 +345,6 @@ class CopyJob extends ResolvedResourcesJob { */ void processDocument(DocumentInfo src, DocumentInfo srcParent, DocumentInfo dstDirInfo) throws ResourceException { - - // TODO: When optimized copy kicks in, we'll not making any progress updates. // For now. Local storage isn't using optimized copy. // When copying within the same provider, try to use optimized copying. @@ -330,6 +355,7 @@ class CopyJob extends ResolvedResourcesJob { if (DocumentsContract.copyDocument(wrap(getClient(src)), src.derivedUri, dstDirInfo.derivedUri) != null) { Metrics.logFileOperated(operationType, MetricConsts.OPMODE_PROVIDER); + makeOptimizedCopyProgress(src); return; } } catch (FileNotFoundException | RemoteException | RuntimeException e) { @@ -657,8 +683,9 @@ class CopyJob extends ResolvedResourcesJob { if (src.isDirectory()) { // Directories need to be recursed into. try { - bytesRequired += - calculateFileSizesRecursively(getClient(src), src.derivedUri); + long size = calculateFileSizesRecursively(getClient(src), src.derivedUri); + bytesRequired += size; + mDirSizeMap.put(src.documentId, size); } catch (RemoteException e) { Log.w(TAG, "Failed to obtain the client for " + src.derivedUri, e); return new IndeterminateProgressTracker(bytesRequired); @@ -789,7 +816,7 @@ class CopyJob extends ResolvedResourcesJob { * Returns true if {@code doc} is a descendant of {@code parentDoc}. * @throws ResourceException */ - boolean isDescendentOf(DocumentInfo doc, DocumentInfo parent) + boolean isDescendantOf(DocumentInfo doc, DocumentInfo parent) throws ResourceException { if (parent.isDirectory() && doc.authority.equals(parent.authority)) { try { @@ -803,6 +830,72 @@ class CopyJob extends ResolvedResourcesJob { return false; } + + private boolean isRecursiveCopy(DocumentInfo source, DocumentInfo target) { + if (!source.isDirectory() || !target.isDirectory()) { + return false; + } + + // Recursive copy within the same authority is prevented by a check to isDescendantOf. + if (source.authority.equals(target.authority)) { + return false; + } + + if (!isFileSystemProvider(source) || !isFileSystemProvider(target)) { + return false; + } + + Uri sourceUri = source.derivedUri; + Uri targetUri = target.derivedUri; + + try { + final Path targetPath = findDocumentPath(wrap(getClient(target)), targetUri); + if (targetPath == null) { + return false; + } + + ContentResolver cr = wrap(getClient(source)); + try (ParcelFileDescriptor sourceFd = cr.openFile(sourceUri, "r", null)) { + StructStat sourceStat = Os.fstat(sourceFd.getFileDescriptor()); + final long sourceDev = sourceStat.st_dev; + final long sourceIno = sourceStat.st_ino; + // Walk down the target hierarchy. If we ever match the source, we know we are a + // descendant of them and should abort the copy. + for (String targetNodeDocId : targetPath.getPath()) { + Uri targetNodeUri = buildDocumentUri(target.authority, targetNodeDocId); + cr = wrap(getClient(target)); + + try (ParcelFileDescriptor targetFd = cr.openFile(targetNodeUri, "r", null)) { + StructStat targetNodeStat = Os.fstat(targetFd.getFileDescriptor()); + final long targetNodeDev = targetNodeStat.st_dev; + final long targetNodeIno = targetNodeStat.st_ino; + + // Devices differ, just return early. + if (sourceDev != targetNodeDev) { + return false; + } + + if (sourceIno == targetNodeIno) { + Log.w(TAG, String.format( + "Preventing copy from %s to %s", sourceUri, targetUri)); + return true; + } + + } + } + } + } catch (Throwable t) { + Log.w(TAG, String.format("Failed to determine if isRecursiveCopy" + + " for source %s and target %s", sourceUri, targetUri), t); + } + return false; + } + + private static boolean isFileSystemProvider(DocumentInfo info) { + return AUTHORITY_STORAGE.equals(info.authority) + || AUTHORITY_DOWNLOADS.equals(info.authority); + } + @Override public String toString() { return new StringBuilder() diff --git a/src/com/android/documentsui/services/MoveJob.java b/src/com/android/documentsui/services/MoveJob.java index faccedb51..cc1601bfe 100644 --- a/src/com/android/documentsui/services/MoveJob.java +++ b/src/com/android/documentsui/services/MoveJob.java @@ -141,9 +141,6 @@ final class MoveJob extends CopyJob { void processDocument(DocumentInfo src, DocumentInfo srcParent, DocumentInfo dest) throws ResourceException { - - // TODO: When optimized move kicks in, we're not making any progress updates. FIX IT! - // When moving within the same provider, try to use optimized moving. // If not supported, then fallback to byte-by-byte copy/move. if (src.authority.equals(dest.authority) && (srcParent != null || mSrcParent != null)) { @@ -153,6 +150,7 @@ final class MoveJob extends CopyJob { srcParent != null ? srcParent.derivedUri : mSrcParent.derivedUri, dest.derivedUri) != null) { Metrics.logFileOperated(operationType, MetricConsts.OPMODE_PROVIDER); + makeOptimizedCopyProgress(src); return; } } catch (FileNotFoundException | RemoteException | RuntimeException e) { diff --git a/src/com/android/documentsui/sidebar/AppItem.java b/src/com/android/documentsui/sidebar/AppItem.java index 8a8756c51..0487aa02e 100644 --- a/src/com/android/documentsui/sidebar/AppItem.java +++ b/src/com/android/documentsui/sidebar/AppItem.java @@ -27,6 +27,7 @@ import android.widget.TextView; import com.android.documentsui.ActionHandler; import com.android.documentsui.IconUtils; import com.android.documentsui.R; +import com.android.documentsui.base.UserId; /** * An {@link Item} for apps that supports some picking actions like @@ -39,8 +40,8 @@ public class AppItem extends Item { private final ActionHandler mActionHandler; - public AppItem(ResolveInfo info, String title, ActionHandler actionHandler) { - super(R.layout.item_root, title, getStringId(info)); + public AppItem(ResolveInfo info, String title, UserId userId, ActionHandler actionHandler) { + super(R.layout.item_root, title, getStringId(info), userId); this.info = info; mActionHandler = actionHandler; } @@ -103,7 +104,7 @@ public class AppItem extends Item { } @Override - String getPackageName() { + public String getPackageName() { return info.activityInfo.packageName; } @@ -111,6 +112,7 @@ public class AppItem extends Item { public String toString() { return "AppItem{" + "id=" + stringId + + ", userId=" + userId + ", resolveInfo=" + info + "}"; } diff --git a/src/com/android/documentsui/sidebar/Item.java b/src/com/android/documentsui/sidebar/Item.java index 8bd1f3273..84f990f5f 100644 --- a/src/com/android/documentsui/sidebar/Item.java +++ b/src/com/android/documentsui/sidebar/Item.java @@ -16,7 +16,6 @@ package com.android.documentsui.sidebar; -import androidx.annotation.LayoutRes; import android.view.DragEvent; import android.view.LayoutInflater; import android.view.Menu; @@ -24,8 +23,12 @@ import android.view.MenuInflater; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.LayoutRes; +import androidx.annotation.Nullable; + import com.android.documentsui.MenuManager; import com.android.documentsui.R; +import com.android.documentsui.base.UserId; /** * Describes a root navigation point of documents. Each one of them is presented as an item in the @@ -35,12 +38,14 @@ public abstract class Item { private final @LayoutRes int mLayoutId; public final String title; + public final UserId userId; final String stringId; - public Item(@LayoutRes int layoutId, String title, String stringId) { + public Item(@LayoutRes int layoutId, String title, String stringId, UserId userId) { mLayoutId = layoutId; this.title = title; this.stringId = stringId; + this.userId = userId; } public View getView(View convertView, ViewGroup parent) { @@ -60,10 +65,20 @@ public abstract class Item { abstract void open(); - String getPackageName() { + /** + * Get the package name string. + */ + public String getPackageName() { return ""; } + /** + * Get the root or app summary such as account information. + */ + public @Nullable String getSummary() { + return null; + } + boolean isDropTarget() { return isRoot(); } diff --git a/src/com/android/documentsui/sidebar/ProfileItem.java b/src/com/android/documentsui/sidebar/ProfileItem.java index ca9b69ad4..15068ad4b 100644 --- a/src/com/android/documentsui/sidebar/ProfileItem.java +++ b/src/com/android/documentsui/sidebar/ProfileItem.java @@ -21,6 +21,7 @@ import android.view.View; import android.widget.ImageView; import com.android.documentsui.ActionHandler; +import com.android.documentsui.base.UserId; /** * An {@link Item} for switch profile. This is only used in pickers. @@ -28,7 +29,7 @@ import com.android.documentsui.ActionHandler; class ProfileItem extends AppItem { public ProfileItem(ResolveInfo info, String title, ActionHandler actionHandler) { - super(info, title, actionHandler); + super(info, title, UserId.CURRENT_USER, actionHandler); } @Override @@ -45,6 +46,7 @@ class ProfileItem extends AppItem { public String toString() { return "ProfileItem{" + "id=" + stringId + + ", userId=" + userId + ", resolveInfo=" + info + "}"; } diff --git a/src/com/android/documentsui/sidebar/RootAndAppItem.java b/src/com/android/documentsui/sidebar/RootAndAppItem.java index 65bed6eec..c797febbb 100644 --- a/src/com/android/documentsui/sidebar/RootAndAppItem.java +++ b/src/com/android/documentsui/sidebar/RootAndAppItem.java @@ -66,6 +66,7 @@ class RootAndAppItem extends RootItem { public String toString() { return "RootAndAppItem{" + "id=" + stringId + + ", userId=" + userId + ", root=" + root + ", resolveInfo=" + resolveInfo + ", docInfo=" + docInfo diff --git a/src/com/android/documentsui/sidebar/RootItem.java b/src/com/android/documentsui/sidebar/RootItem.java index 774fb08f7..343b4ff83 100644 --- a/src/com/android/documentsui/sidebar/RootItem.java +++ b/src/com/android/documentsui/sidebar/RootItem.java @@ -16,7 +16,6 @@ package com.android.documentsui.sidebar; -import androidx.annotation.Nullable; import android.content.Context; import android.graphics.drawable.Drawable; import android.provider.DocumentsProvider; @@ -29,6 +28,8 @@ import android.view.View; import android.widget.ImageView; import android.widget.TextView; +import androidx.annotation.Nullable; + import com.android.documentsui.ActionHandler; import com.android.documentsui.IconUtils; import com.android.documentsui.MenuManager; @@ -53,7 +54,7 @@ public class RootItem extends Item { } public RootItem(RootInfo root, ActionHandler actionHandler, String packageName) { - super(R.layout.item_root, root.title, getStringId(root)); + super(R.layout.item_root, root.title, getStringId(root), root.userId); this.root = root; mActionHandler = actionHandler; mPackageName = packageName; @@ -140,11 +141,16 @@ public class RootItem extends Item { } @Override - String getPackageName() { + public String getPackageName() { return mPackageName; } @Override + public String getSummary() { + return root.summary; + } + + @Override boolean isDropTarget() { return root.supportsCreate(); } @@ -164,6 +170,7 @@ public class RootItem extends Item { public String toString() { return "RootItem{" + "id=" + stringId + + ", userId=" + userId + ", root=" + root + ", docInfo=" + docInfo + "}"; diff --git a/src/com/android/documentsui/sidebar/RootsFragment.java b/src/com/android/documentsui/sidebar/RootsFragment.java index 4d40bbc43..3af14731d 100644 --- a/src/com/android/documentsui/sidebar/RootsFragment.java +++ b/src/com/android/documentsui/sidebar/RootsFragment.java @@ -16,6 +16,8 @@ package com.android.documentsui.sidebar; +import static androidx.core.util.Preconditions.checkNotNull; + import static com.android.documentsui.base.Shared.compareToIgnoreCaseNullable; import static com.android.documentsui.base.SharedMinimal.DEBUG; import static com.android.documentsui.base.SharedMinimal.VERBOSE; @@ -66,9 +68,11 @@ import com.android.documentsui.base.BooleanConsumer; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.DocumentStack; import com.android.documentsui.base.Events; +import com.android.documentsui.base.Providers; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.Shared; import com.android.documentsui.base.State; +import com.android.documentsui.base.UserId; import com.android.documentsui.roots.ProvidersAccess; import com.android.documentsui.roots.ProvidersCache; import com.android.documentsui.roots.RootsLoader; @@ -246,9 +250,21 @@ public class RootsFragment extends Fragment { final String excludePackage = excludeSelf ? activity.getCallingPackage() : null; List<Item> sortedItems = sortLoadResult(roots, excludePackage, handlerAppIntent, DocumentsApplication.getProvidersCache(getContext())); + + // Get the first visible position and offset + final int firstPosition = mList.getFirstVisiblePosition(); + View firstChild = mList.getChildAt(0); + final int offset = + firstChild != null ? firstChild.getTop() - mList.getPaddingTop() : 0; + final int oriItemCount = mAdapter != null ? mAdapter.getCount() : 0; mAdapter = new RootsAdapter(activity, sortedItems, mDragListener); mList.setAdapter(mAdapter); + // recover the position. + if (oriItemCount == mAdapter.getCount()) { + mList.setSelectionFromTop(firstPosition, offset); + } + mInjector.shortcutsUpdater.accept(roots); mInjector.appsRowManager.updateList(mApplicationItemList); mInjector.appsRowManager.updateView(activity); @@ -295,7 +311,7 @@ public class RootsFragment extends Fragment { storageProviders.add(item); } else { item = new RootItem(root, mActionHandler, - providersAccess.getPackageName(root.authority)); + providersAccess.getPackageName(root.userId, root.authority)); otherProviders.add(item); } } @@ -343,31 +359,41 @@ public class RootsFragment extends Fragment { Intent handlerAppIntent, @Nullable String excludePackage, List<Item> result, List<RootItem> otherProviders) { if (VERBOSE) Log.v(TAG, "Adding handler apps for intent: " + handlerAppIntent); + + UserId userId = UserId.DEFAULT_USER; Context context = getContext(); - final PackageManager pm = context.getPackageManager(); + final PackageManager pm = userId.getPackageManager(context); final List<ResolveInfo> infos = pm.queryIntentActivities( handlerAppIntent, PackageManager.MATCH_DEFAULT_ONLY); final List<Item> rootList = new ArrayList<>(); - final Map<String, ResolveInfo> appsMapping = new HashMap<>(); - final Map<String, Item> appItems = new HashMap<>(); + final Map<UserPackageName, ResolveInfo> appsMapping = new HashMap<>(); + final Map<UserPackageName, Item> appItems = new HashMap<>(); ProfileItem profileItem = null; // Omit ourselves and maybe calling package from the list for (ResolveInfo info : infos) { + if (!info.activityInfo.exported) { + if (VERBOSE) { + Log.v(TAG, "Non exported activity: " + info.activityInfo); + } + continue; + } + final String packageName = info.activityInfo.packageName; if (!context.getPackageName().equals(packageName) && !TextUtils.equals(excludePackage, packageName)) { - appsMapping.put(packageName, info); + UserPackageName userPackageName = new UserPackageName(userId, packageName); + appsMapping.put(userPackageName, info); // for change personal profile root. if (PROFILE_TARGET_ACTIVITY.equals(info.activityInfo.targetActivity)) { profileItem = new ProfileItem(info, info.loadLabel(pm).toString(), mActionHandler); } else { - final Item item = new AppItem(info, info.loadLabel(pm).toString(), + final Item item = new AppItem(info, info.loadLabel(pm).toString(), userId, mActionHandler); - appItems.put(packageName, item); + appItems.put(userPackageName, item); if (VERBOSE) Log.v(TAG, "Adding handler app: " + item); } } @@ -375,13 +401,14 @@ public class RootsFragment extends Fragment { // If there are some providers and apps has the same package name, combine them as one item. for (RootItem rootItem : otherProviders) { - final String packageName = rootItem.getPackageName(); - final ResolveInfo resolveInfo = appsMapping.get(packageName); + final UserPackageName userPackageName = new UserPackageName(rootItem.userId, + rootItem.getPackageName()); + final ResolveInfo resolveInfo = appsMapping.get(userPackageName); final Item item; if (resolveInfo != null) { item = new RootAndAppItem(rootItem.root, resolveInfo, mActionHandler); - appItems.remove(packageName); + appItems.remove(userPackageName); } else { item = rootItem; } @@ -414,6 +441,12 @@ public class RootsFragment extends Fragment { @Override public void onResume() { super.onResume(); + final Context context = getActivity(); + // Update the information for Storage's root + if (context != null) { + DocumentsApplication.getProvidersCache(context).updateAuthorityAsync( + Providers.AUTHORITY_STORAGE); + } onDisplayStateChanged(); } @@ -602,4 +635,38 @@ public class RootsFragment extends Fragment { interface RootUpdater { void updateDocInfoForRoot(DocumentInfo doc); } + + private static class UserPackageName { + final UserId userId; + final String packageName; + + UserPackageName(UserId userId, String packageName) { + this.userId = checkNotNull(userId); + this.packageName = checkNotNull(packageName); + } + + @Override + public boolean equals(Object o) { + if (o == null) { + return false; + } + + if (this == o) { + return true; + } + + if (o instanceof UserPackageName) { + UserPackageName other = (UserPackageName) o; + return Objects.equals(userId, other.userId) + && Objects.equals(packageName, other.packageName); + } + + return false; + } + + @Override + public int hashCode() { + return Objects.hash(userId, packageName); + } + } } diff --git a/src/com/android/documentsui/sidebar/SpacerItem.java b/src/com/android/documentsui/sidebar/SpacerItem.java index 4ca466e57..d0f49c9d1 100644 --- a/src/com/android/documentsui/sidebar/SpacerItem.java +++ b/src/com/android/documentsui/sidebar/SpacerItem.java @@ -22,6 +22,7 @@ import android.util.Log; import android.view.View; import com.android.documentsui.R; +import com.android.documentsui.base.UserId; /** * Dummy {@link Item} for dividers between different types of {@link Item}s. @@ -33,7 +34,7 @@ class SpacerItem extends Item { public SpacerItem() { // Multiple spacer items can share the same string id as they're identical. - super(R.layout.item_root_spacer, "" /* title */, STRING_ID); + super(R.layout.item_root_spacer, "" /* title */, STRING_ID, UserId.UNSPECIFIED_USER); } @Override diff --git a/src/com/android/documentsui/sorting/SortListFragment.java b/src/com/android/documentsui/sorting/SortListFragment.java index 83db08a12..7c33c9d3a 100644 --- a/src/com/android/documentsui/sorting/SortListFragment.java +++ b/src/com/android/documentsui/sorting/SortListFragment.java @@ -1,8 +1,11 @@ package com.android.documentsui.sorting; +import static com.android.documentsui.base.SharedMinimal.TAG; + import android.app.Dialog; import android.content.Context; import android.os.Bundle; +import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; @@ -34,11 +37,18 @@ public class SortListFragment extends DialogFragment { private List<SortItem> mSortingList; public static void show(FragmentManager fm, SortModel model) { - SortListFragment fragment = new SortListFragment(); - Bundle args = new Bundle(); - args.putParcelable(TAG_MODEL, model); - fragment.setArguments(args); - fragment.show(fm, TAG_SORTING_LIST); + if (fm.isStateSaved()) { + Log.w(TAG, "Skip show sort dialog because state saved"); + return; + } + + if (fm.findFragmentByTag(TAG_SORTING_LIST) == null) { + SortListFragment fragment = new SortListFragment(); + Bundle args = new Bundle(); + args.putParcelable(TAG_MODEL, model); + fragment.setArguments(args); + fragment.show(fm, TAG_SORTING_LIST); + } } public SortListFragment() { diff --git a/src/com/android/documentsui/theme/ThemeOverlayManager.java b/src/com/android/documentsui/theme/ThemeOverlayManager.java index ca8326870..07508222d 100644 --- a/src/com/android/documentsui/theme/ThemeOverlayManager.java +++ b/src/com/android/documentsui/theme/ThemeOverlayManager.java @@ -22,7 +22,6 @@ import android.content.om.OverlayManager; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.AsyncTask; -import android.os.Environment; import android.os.UserHandle; import android.util.Log; @@ -76,9 +75,9 @@ public class ThemeOverlayManager { } /** - * Return the OverlayInfo which is provided by the docsUI overlay package located product, - * system or vendor. We assume there should only one docsUI overlay package because priority - * not work for non-static overlay, so vendor should put only one docsUI overlay package. + * Return the OverlayInfo which is provided by the docsUI overlay package pre-installed in + * device. We assume there should only one docsUI overlay package because priority not work + * for non-static overlay, so vendor should put only one docsUI overlay package. * * @param pm the PackageManager */ @@ -87,13 +86,7 @@ public class ThemeOverlayManager { for (OverlayInfo info : getOverlayInfo()) { try { final ApplicationInfo ai = pm.getApplicationInfo(info.getPackageName(), 0); - // Since isProduct(), isVendor() and isSystemApp() functions in ApplicationInfo are - // hidden. The best way to avoid unknown sideload APKs is filter path by string - // comparison. - final String sourceDir = ai.sourceDir; - if (sourceDir.startsWith(Environment.getProductDirectory().getAbsolutePath()) - || sourceDir.startsWith(Environment.getVendorDirectory().getAbsolutePath()) - || sourceDir.startsWith(Environment.getRootDirectory().getAbsolutePath())) { + if ((ai.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { return info; } } catch (PackageManager.NameNotFoundException e) { diff --git a/src/com/android/documentsui/ui/DialogController.java b/src/com/android/documentsui/ui/DialogController.java index 8e9673932..3a74cf9c6 100644 --- a/src/com/android/documentsui/ui/DialogController.java +++ b/src/com/android/documentsui/ui/DialogController.java @@ -16,15 +16,10 @@ package com.android.documentsui.ui; import android.app.Activity; -import android.content.DialogInterface; -import android.widget.Button; -import android.widget.TextView; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.FragmentManager; import com.android.documentsui.R; -import com.android.documentsui.base.ConfirmationCallback; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.Features; import com.android.documentsui.picker.ConfirmFragment; @@ -34,15 +29,11 @@ import com.android.documentsui.services.FileOperationService.OpType; import com.android.documentsui.services.FileOperations; import com.android.documentsui.services.FileOperations.Callback.Status; -import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.snackbar.Snackbar; -import java.util.List; - public interface DialogController { // Dialogs used in FilesActivity - void confirmDelete(List<DocumentInfo> docs, ConfirmationCallback callback); void showFileOperationStatus(int status, int opType, int docCount); /** @@ -56,6 +47,11 @@ public interface DialogController { void showViewInArchivesUnsupported(); void showDocumentsClipped(int size); + /** + * Dialogs used when share file count over limit + */ + void showShareOverLimit(int size); + // Dialogs used in PickActivity void confirmAction(FragmentManager fm, DocumentInfo pickTarget, int type); @@ -63,50 +59,12 @@ public interface DialogController { public static final class RuntimeDialogController implements DialogController { private final Activity mActivity; - private final MessageBuilder mMessages; private final Features mFeatures; private OperationProgressDialog mCurrentProgressDialog = null; - public RuntimeDialogController(Features features, Activity activity, MessageBuilder messages) { + public RuntimeDialogController(Features features, Activity activity) { mFeatures = features; mActivity = activity; - mMessages = messages; - } - - @Override - public void confirmDelete(List<DocumentInfo> docs, ConfirmationCallback callback) { - assert(!docs.isEmpty()); - - TextView message = - (TextView) mActivity.getLayoutInflater().inflate( - R.layout.dialog_delete_confirmation, null); - message.setText(mMessages.generateDeleteMessage(docs)); - - // For now, we implement this dialog NOT - // as a fragment (which can survive rotation and have its own state), - // but as a simple runtime dialog. So rotating a device with an - // active delete dialog...results in that dialog disappearing. - // We can do better, but don't have cycles for it now. - final AlertDialog alertDialog = new MaterialAlertDialogBuilder(mActivity) - .setView(message) - .setPositiveButton( - android.R.string.ok, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int id) { - callback.accept(ConfirmationCallback.CONFIRM); - } - }) - .setNegativeButton(android.R.string.cancel, null) - .create(); - - alertDialog.setOnShowListener( - (DialogInterface) -> { - Button positive = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE); - positive.setFocusable(true); - positive.requestFocus(); - }); - alertDialog.show(); } @Override @@ -200,12 +158,21 @@ public interface DialogController { } @Override + public void showShareOverLimit(int size) { + String message = mActivity.getString(R.string.toast_share_over_limit, size); + Snackbars.makeSnackbar(mActivity, message, Snackbar.LENGTH_SHORT).show(); + } + + @Override public void confirmAction(FragmentManager fm, DocumentInfo pickTarget, int type) { ConfirmFragment.show(fm, pickTarget, type); } } - static DialogController create(Features features, Activity activity, MessageBuilder messages) { - return new RuntimeDialogController(features, activity, messages); + /** + * Create DialogController Impl. + */ + static DialogController create(Features features, Activity activity) { + return new RuntimeDialogController(features, activity); } } diff --git a/tests/common/com/android/documentsui/DialogFragmentTest.java b/tests/common/com/android/documentsui/DialogFragmentTest.java index 05ad5fbb0..1fe2c3203 100644 --- a/tests/common/com/android/documentsui/DialogFragmentTest.java +++ b/tests/common/com/android/documentsui/DialogFragmentTest.java @@ -16,8 +16,6 @@ package com.android.documentsui; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -36,7 +34,13 @@ import androidx.test.platform.app.InstrumentationRegistry; import androidx.test.rule.ActivityTestRule; import androidx.test.runner.AndroidJUnit4; +import com.android.documentsui.base.DocumentInfo; +import com.android.documentsui.dirlist.RenameDocumentFragment; +import com.android.documentsui.files.DeleteDocumentFragment; import com.android.documentsui.files.FilesActivity; +import com.android.documentsui.queries.SearchFragment; +import com.android.documentsui.sorting.SortListFragment; +import com.android.documentsui.sorting.SortModel; import com.google.android.material.textfield.TextInputEditText; @@ -45,6 +49,7 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mockito; import java.io.FileInputStream; import java.io.IOException; @@ -76,7 +81,7 @@ public class DialogFragmentTest { mCreateDirectoryFragment = null; } - @Test +/* @Test public void testCreateDialogShows() throws Throwable { mActivityTestRule.runOnUiThread(() -> CreateDirectoryFragment.show(mFragmentManager)); InstrumentationRegistry.getInstrumentation().waitForIdleSync(); @@ -202,6 +207,49 @@ public class DialogFragmentTest { switchOrientation(mActivityTestRule.getActivity()); } + @Test + public void testCreateDirectoryFragmentShows_skipWhenStateSaved() { + mFragmentManager = Mockito.mock(FragmentManager.class); + Mockito.when(mFragmentManager.isStateSaved()).thenReturn(true); + + // Use mock FragmentManager will cause NPE then test fail when DialogFragment.show is + // called, so test pass means it skip. + CreateDirectoryFragment.show(mFragmentManager); + } +*/ + @Test + public void testDeleteDocumentFragmentShows_skipWhenStateSaved() { + mFragmentManager = Mockito.mock(FragmentManager.class); + Mockito.when(mFragmentManager.isStateSaved()).thenReturn(true); + + DeleteDocumentFragment.show(mFragmentManager, null, null); + } + + @Test + public void testRenameDocumentFragmentShows_skipWhenStateSaved() { + mFragmentManager = Mockito.mock(FragmentManager.class); + Mockito.when(mFragmentManager.isStateSaved()).thenReturn(true); + + RenameDocumentFragment.show(mFragmentManager, new DocumentInfo()); + } + + @Test + public void testSearchFragmentShows_skipWhenStateSaved() { + mFragmentManager = Mockito.mock(FragmentManager.class); + Mockito.when(mFragmentManager.isStateSaved()).thenReturn(true); + + SearchFragment.showFragment(mFragmentManager, ""); + } + + @Test + public void testSortListFragmentShows_skipWhenStateSaved() { + mFragmentManager = Mockito.mock(FragmentManager.class); + Mockito.when(mFragmentManager.isStateSaved()).thenReturn(true); + SortModel sortModel = Mockito.mock(SortModel.class); + + SortListFragment.show(mFragmentManager, sortModel); + } + private static int getInputTextHeight(TextInputEditText v) { Paint paint = v.getPaint(); final float textSize = paint.getTextSize(); diff --git a/tests/common/com/android/documentsui/DocumentsProviderHelper.java b/tests/common/com/android/documentsui/DocumentsProviderHelper.java index 45bc5c07f..7111508c3 100644 --- a/tests/common/com/android/documentsui/DocumentsProviderHelper.java +++ b/tests/common/com/android/documentsui/DocumentsProviderHelper.java @@ -30,6 +30,7 @@ import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.fail; import android.content.ContentProviderClient; +import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; @@ -48,6 +49,7 @@ import androidx.annotation.Nullable; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.RootInfo; +import com.android.documentsui.base.UserId; import com.android.documentsui.roots.RootCursorWrapper; import com.google.common.collect.Lists; @@ -64,13 +66,15 @@ import java.util.List; */ public class DocumentsProviderHelper { + private final UserId mUserId; private final String mAuthority; private final ContentProviderClient mClient; - public DocumentsProviderHelper(String authority, ContentProviderClient client) { + public DocumentsProviderHelper(UserId userId, String authority, Context context, String name) { checkArgument(!TextUtils.isEmpty(authority)); + mUserId = userId; mAuthority = authority; - mClient = client; + mClient = userId.getContentResolver(context).acquireContentProviderClient(name); } public RootInfo getRoot(String documentId) throws RemoteException { @@ -80,7 +84,7 @@ public class DocumentsProviderHelper { cursor = mClient.query(rootsUri, null, null, null, null); while (cursor.moveToNext()) { if (documentId.equals(getCursorString(cursor, Root.COLUMN_ROOT_ID))) { - return RootInfo.fromRootsCursor(mAuthority, cursor); + return RootInfo.fromRootsCursor(mUserId, mAuthority, cursor); } } throw new IllegalArgumentException("Can't find matching root for id=" + documentId); @@ -343,6 +347,15 @@ public class DocumentsProviderHelper { mClient.call("configure", args, configuration); } + public void simulateReadErrorsForFile(String args, Bundle configuration) + throws RemoteException { + mClient.call("simulateReadErrorsForFile", args, configuration); + } + + public void clear(String args, Bundle configuration) throws RemoteException { + mClient.call("clear", args, configuration); + } + public List<RootInfo> getRootList() throws RemoteException { List<RootInfo> list = new ArrayList<>(); final Uri rootsUri = DocumentsContract.buildRootsUri(mAuthority); @@ -350,7 +363,7 @@ public class DocumentsProviderHelper { try { cursor = mClient.query(rootsUri, null, null, null, null); while (cursor.moveToNext()) { - RootInfo rootInfo = RootInfo.fromRootsCursor(mAuthority, cursor); + RootInfo rootInfo = RootInfo.fromRootsCursor(mUserId, mAuthority, cursor); if (rootInfo != null) { list.add(rootInfo); } @@ -362,4 +375,8 @@ public class DocumentsProviderHelper { } return list; } + + public void cleanUp() { + mClient.close(); + } } diff --git a/tests/common/com/android/documentsui/SelectionHelpers.java b/tests/common/com/android/documentsui/SelectionHelpers.java index 2018252cb..ecb093468 100644 --- a/tests/common/com/android/documentsui/SelectionHelpers.java +++ b/tests/common/com/android/documentsui/SelectionHelpers.java @@ -18,7 +18,6 @@ package com.android.documentsui; import androidx.recyclerview.selection.DefaultSelectionTracker; import androidx.recyclerview.selection.SelectionPredicates; -import androidx.recyclerview.selection.SelectionTracker; import androidx.recyclerview.selection.SelectionTracker.SelectionPredicate; import androidx.recyclerview.selection.StorageStrategy; @@ -40,19 +39,13 @@ public class SelectionHelpers { public static DocsSelectionHelper createTestInstance(List<String> docs) { DocsSelectionHelper manager = new DocsSelectionHelper( - new DocsSelectionHelper.DelegateFactory() { - - @Override - SelectionTracker<String> create(SelectionTracker<String> selectionTracker) { - return new DefaultSelectionTracker<String>( - Integer.toHexString(System.identityHashCode(docs)), - new TestStableIdProvider(docs), - CAN_SET_ANYTHING, - StorageStrategy.createStringStorage()); - } - }); - - manager.reset(null); + new DocsSelectionHelper.DelegateFactory()); + + manager.reset(new DefaultSelectionTracker<String>( + Integer.toHexString(System.identityHashCode(docs)), + new TestStableIdProvider(docs), + CAN_SET_ANYTHING, + StorageStrategy.createStringStorage())); return manager; } } diff --git a/tests/common/com/android/documentsui/StubProvider.java b/tests/common/com/android/documentsui/StubProvider.java index 4366d318a..521df53c0 100644 --- a/tests/common/com/android/documentsui/StubProvider.java +++ b/tests/common/com/android/documentsui/StubProvider.java @@ -26,16 +26,20 @@ import android.database.MatrixCursor; import android.database.MatrixCursor.RowBuilder; import android.graphics.Point; import android.net.Uri; -import android.os.*; +import android.os.Bundle; +import android.os.CancellationSignal; +import android.os.FileUtils; +import android.os.Handler; +import android.os.Looper; +import android.os.ParcelFileDescriptor; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Document; import android.provider.DocumentsContract.Root; import android.provider.DocumentsProvider; -import androidx.annotation.VisibleForTesting; import android.text.TextUtils; import android.util.Log; -import android.os.FileUtils; +import androidx.annotation.VisibleForTesting; import java.io.File; import java.io.FileNotFoundException; @@ -183,7 +187,23 @@ public class StubProvider extends DocumentsProvider { 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); + + if (parentDocument.file == null || childDocument.file == null) { + return false; + } + + return contains( + parentDocument.file.getAbsolutePath(), childDocument.file.getAbsolutePath()); + } + + private static boolean contains(String dirPath, String filePath) { + if (dirPath.equals(filePath)) { + return true; + } + if (!dirPath.endsWith("/")) { + dirPath += "/"; + } + return filePath.startsWith(dirPath); } @Override diff --git a/tests/common/com/android/documentsui/TestActionModeAddons.java b/tests/common/com/android/documentsui/TestActionModeAddons.java index 5379bbb4c..c928d6f23 100644 --- a/tests/common/com/android/documentsui/TestActionModeAddons.java +++ b/tests/common/com/android/documentsui/TestActionModeAddons.java @@ -15,20 +15,12 @@ */ package com.android.documentsui; -import com.android.documentsui.testing.TestConfirmationCallback; - public class TestActionModeAddons implements ActionModeAddons { public boolean finishActionModeCalled; - public final TestConfirmationCallback finishOnConfirmed = new TestConfirmationCallback(); @Override public void finishActionMode() { finishActionModeCalled = true; } - - @Override - public void finishOnConfirmed(int code) { - finishOnConfirmed.accept(code); - } } diff --git a/tests/common/com/android/documentsui/bots/Bots.java b/tests/common/com/android/documentsui/bots/Bots.java index 3e43a6973..59fe88424 100644 --- a/tests/common/com/android/documentsui/bots/Bots.java +++ b/tests/common/com/android/documentsui/bots/Bots.java @@ -51,7 +51,7 @@ public final class Bots { public Bots(UiDevice device, UiAutomation automation, Context context, int timeout) { main = new UiBot(device, context, TIMEOUT); - breadcrumb = new BreadBot(device, context, TIMEOUT, main); + breadcrumb = new BreadBot(device, context, TIMEOUT); roots = new SidebarBot(device, context, TIMEOUT); directory = new DirectoryListBot(device, automation, context, TIMEOUT); sort = new SortBot(device, context, TIMEOUT, main); diff --git a/tests/common/com/android/documentsui/bots/BreadBot.java b/tests/common/com/android/documentsui/bots/BreadBot.java index c90899b91..d022f52f2 100644 --- a/tests/common/com/android/documentsui/bots/BreadBot.java +++ b/tests/common/com/android/documentsui/bots/BreadBot.java @@ -16,35 +16,13 @@ package com.android.documentsui.bots; -import static androidx.test.espresso.Espresso.onView; -import static androidx.test.espresso.action.ViewActions.click; -import static androidx.test.espresso.assertion.ViewAssertions.matches; -import static androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom; -import static androidx.test.espresso.matcher.ViewMatchers.withId; -import static androidx.test.espresso.matcher.ViewMatchers.withText; - -import static org.hamcrest.CoreMatchers.allOf; -import static org.hamcrest.CoreMatchers.anyOf; -import static org.hamcrest.CoreMatchers.is; - import android.content.Context; +import android.support.test.uiautomator.By; import android.support.test.uiautomator.UiDevice; -import android.support.test.uiautomator.UiObjectNotFoundException; -import android.view.View; - -import androidx.test.espresso.ViewInteraction; -import androidx.test.espresso.matcher.BoundedMatcher; - -import com.android.documentsui.DragOverTextView; -import com.android.documentsui.DropdownBreadcrumb; -import com.android.documentsui.R; -import com.android.documentsui.base.DocumentInfo; +import android.support.test.uiautomator.UiObject2; import junit.framework.Assert; -import org.hamcrest.Description; -import org.hamcrest.Matcher; - import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -58,62 +36,23 @@ import java.util.function.Predicate; */ public class BreadBot extends Bots.BaseBot { - private static final Matcher<View> DROPDOWN_BREADCRUMB = withId( - R.id.dropdown_breadcrumb); - - private static final Matcher<View> HORIZONTAL_BREADCRUMB = withId( - R.id.horizontal_breadcrumb); + private final String mBreadCrumbId; - // When any 'ol breadcrumb will do. Could be dropdown or horizontal. - @SuppressWarnings("unchecked") - private static final Matcher<View> BREADCRUMB = anyOf( - DROPDOWN_BREADCRUMB, HORIZONTAL_BREADCRUMB); - - private UiBot mMain; - - public BreadBot( - UiDevice device, Context context, int timeout, UiBot main) { + public BreadBot(UiDevice device, Context context, int timeout) { super(device, context, timeout); - mMain = main; - } - - public void assertTitle(String expected) { - // There is no discrete title part on the horizontal breadcrumb... - // so we only test on dropdown. - if (mMain.inDrawerLayout()) { - Matcher<Object> titleMatcher = dropdownTitleMatcher(expected); - onView(BREADCRUMB) - .check(matches(titleMatcher)); - } - } - - /** - * Reveals the bread crumb if it was hidden. This will likely be the case - * when the app is in drawer mode. - */ - public void revealAsNeeded() throws Exception { - if (mMain.inDrawerLayout()) { - onView(DROPDOWN_BREADCRUMB).perform(click()); - } + mBreadCrumbId = mTargetPackage + ":id/horizontal_breadcrumb"; } - public void clickItem(String label) throws UiObjectNotFoundException { - if (mMain.inFixedLayout()) { - findHorizontalEntry(label).perform(click()); - } else { - mMain.findMenuWithName(label).click(); - } + public void clickItem(String label) { + findHorizontalEntry(label).click(); } public void assertItemsPresent(String... items) { - Predicate<String> checker = mMain.inFixedLayout() - ? this::hasHorizontalEntry - : mMain::hasMenuWithName; - + Predicate<String> checker = this::hasHorizontalEntry; assertItemsPresent(items, checker); } - public void assertItemsPresent(String[] items, Predicate<String> predicate) { + private void assertItemsPresent(String[] items, Predicate<String> predicate) { List<String> absent = new ArrayList<>(); for (String item : items) { if (!predicate.test(item)) { @@ -126,29 +65,13 @@ public class BreadBot extends Bots.BaseBot { } } - public boolean hasHorizontalEntry(String label) { - return Matchers.present(findHorizontalEntry(label), withText(label)); + private boolean hasHorizontalEntry(String label) { + return findHorizontalEntry(label) != null; } @SuppressWarnings("unchecked") - public ViewInteraction findHorizontalEntry(String label) { - return onView(allOf(isAssignableFrom(DragOverTextView.class), withText(label))); - } - - private static Matcher<Object> dropdownTitleMatcher(String expected) { - final Matcher<String> textMatcher = is(expected); - return new BoundedMatcher<Object, DropdownBreadcrumb>(DropdownBreadcrumb.class) { - @Override - public boolean matchesSafely(DropdownBreadcrumb breadcrumb) { - DocumentInfo selectedDoc = (DocumentInfo) breadcrumb.getSelectedItem(); - return textMatcher.matches(selectedDoc.displayName); - } - - @Override - public void describeTo(Description description) { - description.appendText("with breadcrumb title: "); - textMatcher.describeTo(description); - } - }; + private UiObject2 findHorizontalEntry(String label) { + UiObject2 breadcrumb = mDevice.findObject(By.res(mBreadCrumbId)); + return breadcrumb.findObject(By.text(label)); } } diff --git a/tests/common/com/android/documentsui/bots/UiBot.java b/tests/common/com/android/documentsui/bots/UiBot.java index 0043bf7c1..499a56b34 100644 --- a/tests/common/com/android/documentsui/bots/UiBot.java +++ b/tests/common/com/android/documentsui/bots/UiBot.java @@ -204,6 +204,10 @@ public class UiBot extends Bots.BaseBot { onView(withText(label)).perform(click()); } + public void clickSaveButton() { + onView(withId(android.R.id.button1)).perform(click()); + } + public boolean waitForActionModeBarToAppear() { UiObject2 bar = mDevice.wait(Until.findObject( @@ -273,18 +277,19 @@ public class UiBot extends Bots.BaseBot { } UiObject2 findMenuWithName(String label) { - List<UiObject2> menuItems = mDevice.findObjects(By.clazz("android.widget.LinearLayout")); + UiObject2 list = mDevice.findObject(By.clazz("android.widget.ListView")); + List<UiObject2> menuItems = list.getChildren(); Iterator<UiObject2> it = menuItems.iterator(); UiObject2 menuItem = null; while (it.hasNext()) { menuItem = it.next(); UiObject2 text = menuItem.findObject(By.text(label)); - if (text != null && menuItem.isClickable()) { - break; + if (text != null) { + return menuItem; } } - return menuItem; + return null; } boolean hasMenuWithName(String label) { diff --git a/tests/common/com/android/documentsui/testing/TestActionHandler.java b/tests/common/com/android/documentsui/testing/TestActionHandler.java index 7b11d41f4..f28234203 100644 --- a/tests/common/com/android/documentsui/testing/TestActionHandler.java +++ b/tests/common/com/android/documentsui/testing/TestActionHandler.java @@ -59,7 +59,7 @@ public class TestActionHandler extends AbstractActionHandler<TestActivity> { } @Override - public void deleteSelectedDocuments() { + public void showDeleteDialog() { mDeleteHappened = true; } diff --git a/tests/common/com/android/documentsui/testing/TestEnv.java b/tests/common/com/android/documentsui/testing/TestEnv.java index 6ddd0470a..06f9dd109 100644 --- a/tests/common/com/android/documentsui/testing/TestEnv.java +++ b/tests/common/com/android/documentsui/testing/TestEnv.java @@ -200,6 +200,15 @@ public class TestEnv { selectionMgr.setItemsSelected(ids, true); } + public void selectMultipleFiles(int count) { + List<String> ids = new ArrayList<>(count); + for (int i = 0; i < count; i++) { + DocumentInfo info = model.createFile(String.valueOf(i)); + ids.add(ModelId.build(info.authority, info.documentId)); + } + selectionMgr.setItemsSelected(ids, true); + } + // Easily copy docs, so we don't pollute static data across tests. public static DocumentInfo clone(DocumentInfo a) { DocumentInfo b = new DocumentInfo(); diff --git a/tests/common/com/android/documentsui/testing/TestFeatures.java b/tests/common/com/android/documentsui/testing/TestFeatures.java index 7f3bd9d27..5facc0782 100644 --- a/tests/common/com/android/documentsui/testing/TestFeatures.java +++ b/tests/common/com/android/documentsui/testing/TestFeatures.java @@ -36,7 +36,6 @@ public class TestFeatures implements Features { public boolean remoteActions = true; public boolean systemKeyboardNavigation = true; public boolean virtualFilesSharing = true; - public boolean forceDefaultRoot = false; @Override public boolean isArchiveCreationEnabled() { @@ -114,11 +113,6 @@ public class TestFeatures implements Features { } @Override - public boolean isDefaultRootInBrowseEnabled() { - return forceDefaultRoot; - } - - @Override public void forceFeature(@BoolRes int feature, boolean enabled) { throw new UnsupportedOperationException("Implement as needed."); } diff --git a/tests/common/com/android/documentsui/testing/TestMenu.java b/tests/common/com/android/documentsui/testing/TestMenu.java index 61a7b4d71..e55a9aeb5 100644 --- a/tests/common/com/android/documentsui/testing/TestMenu.java +++ b/tests/common/com/android/documentsui/testing/TestMenu.java @@ -47,6 +47,7 @@ public abstract class TestMenu implements Menu { R.id.dir_menu_paste_from_clipboard, R.id.dir_menu_create_dir, R.id.dir_menu_select_all, + R.id.dir_menu_deselect_all, R.id.dir_menu_rename, R.id.dir_menu_delete, R.id.dir_menu_view_in_owner, @@ -62,6 +63,7 @@ public abstract class TestMenu implements Menu { R.id.action_menu_delete, R.id.action_menu_select, R.id.action_menu_select_all, + R.id.action_menu_deselect_all, R.id.action_menu_copy_to, R.id.action_menu_extract_to, R.id.action_menu_move_to, @@ -79,6 +81,7 @@ public abstract class TestMenu implements Menu { R.id.option_menu_settings, R.id.option_menu_inspect, R.id.option_menu_sort, + R.id.option_menu_launcher, R.id.sub_menu_grid, R.id.sub_menu_list); } diff --git a/tests/common/com/android/documentsui/testing/TestProvidersAccess.java b/tests/common/com/android/documentsui/testing/TestProvidersAccess.java index 13c5c3427..859e1615e 100644 --- a/tests/common/com/android/documentsui/testing/TestProvidersAccess.java +++ b/tests/common/com/android/documentsui/testing/TestProvidersAccess.java @@ -21,6 +21,7 @@ import com.android.documentsui.InspectorProvider; import com.android.documentsui.base.Providers; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.State; +import com.android.documentsui.base.UserId; import com.android.documentsui.roots.ProvidersAccess; import java.util.ArrayList; @@ -42,23 +43,28 @@ public class TestProvidersAccess implements ProvidersAccess { public static final RootInfo IMAGE; public static final RootInfo AUDIO; public static final RootInfo VIDEO; + public static final RootInfo DOCUMENT; public static final RootInfo EXTERNALSTORAGE; + public static final RootInfo NO_TREE_ROOT; static { + UserId userId = UserId.DEFAULT_USER; + DOWNLOADS = new RootInfo() {{ flags = Root.FLAG_SUPPORTS_CREATE; }}; + DOWNLOADS.userId = userId; DOWNLOADS.authority = Providers.AUTHORITY_DOWNLOADS; DOWNLOADS.rootId = Providers.ROOT_ID_DOWNLOADS; DOWNLOADS.title = "Downloads"; DOWNLOADS.derivedType = RootInfo.TYPE_DOWNLOADS; DOWNLOADS.flags = Root.FLAG_LOCAL_ONLY | Root.FLAG_SUPPORTS_CREATE - | Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_SUPPORTS_RECENTS; HOME = new RootInfo(); + HOME.userId = userId; HOME.authority = Providers.AUTHORITY_STORAGE; HOME.rootId = Providers.ROOT_ID_HOME; HOME.title = "Home"; @@ -69,6 +75,7 @@ public class TestProvidersAccess implements ProvidersAccess { | Root.FLAG_SUPPORTS_RECENTS; HAMMY = new RootInfo(); + HAMMY.userId = userId; HAMMY.authority = "yummies"; HAMMY.rootId = "hamsandwich"; HAMMY.title = "Ham Sandwich"; @@ -76,19 +83,25 @@ public class TestProvidersAccess implements ProvidersAccess { HAMMY.flags = Root.FLAG_LOCAL_ONLY; PICKLES = new RootInfo(); + PICKLES.userId = userId; PICKLES.authority = "yummies"; PICKLES.rootId = "pickles"; PICKLES.title = "Pickles"; - - RECENTS = new RootInfo() {{ - // Special root for recents - derivedType = RootInfo.TYPE_RECENTS; - flags = Root.FLAG_LOCAL_ONLY | Root.FLAG_SUPPORTS_IS_CHILD; - availableBytes = -1; - }}; + PICKLES.summary = "Yummy pickles"; + + RECENTS = new RootInfo() { + { + // Special root for recents + derivedType = RootInfo.TYPE_RECENTS; + flags = Root.FLAG_LOCAL_ONLY; + availableBytes = -1; + } + }; + RECENTS.userId = userId; RECENTS.title = "Recents"; INSPECTOR = new RootInfo(); + INSPECTOR.userId = userId; INSPECTOR.authority = InspectorProvider.AUTHORITY; INSPECTOR.rootId = InspectorProvider.ROOT_ID; INSPECTOR.title = "Inspector"; @@ -96,28 +109,49 @@ public class TestProvidersAccess implements ProvidersAccess { | Root.FLAG_SUPPORTS_CREATE; IMAGE = new RootInfo(); + IMAGE.userId = userId; IMAGE.authority = Providers.AUTHORITY_MEDIA; IMAGE.rootId = Providers.ROOT_ID_IMAGES; IMAGE.title = "Images"; IMAGE.derivedType = RootInfo.TYPE_IMAGES; AUDIO = new RootInfo(); + AUDIO.userId = userId; AUDIO.authority = Providers.AUTHORITY_MEDIA; AUDIO.rootId = Providers.ROOT_ID_AUDIO; AUDIO.title = "Audio"; AUDIO.derivedType = RootInfo.TYPE_AUDIO; VIDEO = new RootInfo(); + VIDEO.userId = userId; VIDEO.authority = Providers.AUTHORITY_MEDIA; VIDEO.rootId = Providers.ROOT_ID_VIDEOS; VIDEO.title = "Videos"; VIDEO.derivedType = RootInfo.TYPE_VIDEO; + DOCUMENT = new RootInfo(); + DOCUMENT.userId = userId; + DOCUMENT.authority = Providers.AUTHORITY_MEDIA; + DOCUMENT.rootId = Providers.ROOT_ID_DOCUMENTS; + DOCUMENT.title = "Documents"; + DOCUMENT.derivedType = RootInfo.TYPE_DOCUMENTS; + EXTERNALSTORAGE = new RootInfo(); + EXTERNALSTORAGE.userId = userId; EXTERNALSTORAGE.authority = Providers.AUTHORITY_STORAGE; EXTERNALSTORAGE.rootId = Providers.ROOT_ID_DEVICE; EXTERNALSTORAGE.title = "Device"; EXTERNALSTORAGE.derivedType = RootInfo.TYPE_LOCAL; + EXTERNALSTORAGE.flags = Root.FLAG_LOCAL_ONLY + | Root.FLAG_SUPPORTS_IS_CHILD; + + NO_TREE_ROOT = new RootInfo(); + NO_TREE_ROOT.userId = userId; + NO_TREE_ROOT.authority = "no.tree.authority"; + NO_TREE_ROOT.rootId = "1"; + NO_TREE_ROOT.title = "No Tree Title"; + NO_TREE_ROOT.derivedType = RootInfo.TYPE_LOCAL; + NO_TREE_ROOT.flags = Root.FLAG_LOCAL_ONLY; } public final Map<String, Collection<RootInfo>> roots = new HashMap<>(); @@ -128,6 +162,8 @@ public class TestProvidersAccess implements ProvidersAccess { add(HOME); add(HAMMY); add(PICKLES); + add(EXTERNALSTORAGE); + add(NO_TREE_ROOT); } private void add(RootInfo root) { @@ -142,13 +178,14 @@ public class TestProvidersAccess implements ProvidersAccess { pm.addStubContentProviderForRoot(TestProvidersAccess.HOME); pm.addStubContentProviderForRoot(TestProvidersAccess.HAMMY); pm.addStubContentProviderForRoot(TestProvidersAccess.PICKLES); + pm.addStubContentProviderForRoot(TestProvidersAccess.NO_TREE_ROOT); } @Override - public RootInfo getRootOneshot(String authority, String rootId) { + public RootInfo getRootOneshot(UserId userId, String authority, String rootId) { if (roots.containsKey(authority)) { for (RootInfo root : roots.get(authority)) { - if (rootId.equals(root.rootId)) { + if (rootId.equals(root.rootId) && root.userId.equals(userId)) { return root; } } @@ -166,7 +203,7 @@ public class TestProvidersAccess implements ProvidersAccess { } @Override - public Collection<RootInfo> getRootsForAuthorityBlocking(String authority) { + public Collection<RootInfo> getRootsForAuthorityBlocking(UserId userId, String authority) { return roots.get(authority); } @@ -190,12 +227,12 @@ public class TestProvidersAccess implements ProvidersAccess { } @Override - public String getApplicationName(String authority) { + public String getApplicationName(UserId userId, String authority) { return "Test Application"; } @Override - public String getPackageName(String authority) { + public String getPackageName(UserId userId, String authority) { return "com.android.documentsui"; } } diff --git a/tests/common/com/android/documentsui/testing/TestScopedPreferences.java b/tests/common/com/android/documentsui/testing/TestScopedPreferences.java index e2227b99c..2ef79c4d4 100644 --- a/tests/common/com/android/documentsui/testing/TestScopedPreferences.java +++ b/tests/common/com/android/documentsui/testing/TestScopedPreferences.java @@ -24,6 +24,7 @@ import com.android.documentsui.prefs.ScopedPreferences; public class TestScopedPreferences implements ScopedPreferences { private boolean mShowDeviceRoot; + private boolean mIsRecordSearch; @Override public boolean getShowDeviceRoot() { @@ -34,4 +35,14 @@ public class TestScopedPreferences implements ScopedPreferences { public void setShowDeviceRoot(boolean display) { mShowDeviceRoot = display; } - } + + @Override + public boolean isRecordSearch() { + return mIsRecordSearch; + } + + @Override + public void setRecordSearch(boolean show) { + mIsRecordSearch = show; + } +} diff --git a/tests/common/com/android/documentsui/testing/TestSearchViewManager.java b/tests/common/com/android/documentsui/testing/TestSearchViewManager.java index dbc5c4480..f5cde8aa0 100644 --- a/tests/common/com/android/documentsui/testing/TestSearchViewManager.java +++ b/tests/common/com/android/documentsui/testing/TestSearchViewManager.java @@ -66,7 +66,7 @@ public class TestSearchViewManager extends SearchViewManager { } }, new CommandInterceptor(new TestFeatures()), mock(ViewGroup.class), - null /* savedState */); + null /* savedState */, () -> true /* recordSearchSupplier */); } @Override diff --git a/tests/common/com/android/documentsui/ui/TestDialogController.java b/tests/common/com/android/documentsui/ui/TestDialogController.java index 190ce7235..41acee99e 100644 --- a/tests/common/com/android/documentsui/ui/TestDialogController.java +++ b/tests/common/com/android/documentsui/ui/TestDialogController.java @@ -17,7 +17,6 @@ package com.android.documentsui.ui; import androidx.fragment.app.FragmentManager; -import com.android.documentsui.base.ConfirmationCallback; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.picker.ConfirmFragment; import com.android.documentsui.services.FileOperation; @@ -25,27 +24,18 @@ import com.android.documentsui.services.FileOperations; import junit.framework.Assert; -import java.util.List; - public class TestDialogController implements DialogController { - public int mNextConfirmationCode; private int mFileOpStatus; private boolean mNoApplicationFound; private boolean mDocumentsClipped; private boolean mViewInArchivesUnsupported; private boolean mShowOperationUnsupported; + private boolean mShowShareOverLimit; private DocumentInfo mTarget; private int mConfrimType; public TestDialogController() { - // by default, always confirm - mNextConfirmationCode = ConfirmationCallback.CONFIRM; - } - - @Override - public void confirmDelete(List<DocumentInfo> docs, ConfirmationCallback callback) { - callback.accept(mNextConfirmationCode); } @Override @@ -79,6 +69,11 @@ public class TestDialogController implements DialogController { } @Override + public void showShareOverLimit(int size) { + mShowShareOverLimit = true; + } + + @Override public void confirmAction(FragmentManager fm, DocumentInfo pickTarget, int type) { mTarget = pickTarget; mConfrimType = type; @@ -107,6 +102,10 @@ public class TestDialogController implements DialogController { Assert.assertFalse(mDocumentsClipped); } + public void assertShareOverLimitShown() { + Assert.assertTrue(mShowShareOverLimit); + } + public void assertOverwriteConfirmed(DocumentInfo expected) { Assert.assertEquals(expected, mTarget); Assert.assertEquals(ConfirmFragment.TYPE_OVERWRITE, mConfrimType); @@ -116,12 +115,4 @@ public class TestDialogController implements DialogController { Assert.assertEquals(expected, mTarget); Assert.assertEquals(ConfirmFragment.TYPE_OEPN_TREE, mConfrimType); } - - public void confirmNext() { - mNextConfirmationCode = ConfirmationCallback.CONFIRM; - } - - public void rejectNext() { - mNextConfirmationCode = ConfirmationCallback.REJECT; - } } diff --git a/tests/functional/com/android/documentsui/ActionCreateDocumentUiTest.java b/tests/functional/com/android/documentsui/ActionCreateDocumentUiTest.java new file mode 100644 index 000000000..5c70f54d6 --- /dev/null +++ b/tests/functional/com/android/documentsui/ActionCreateDocumentUiTest.java @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2019 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 androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; + +import static com.android.documentsui.base.Providers.AUTHORITY_STORAGE; + +import static com.google.common.truth.Truth.assertThat; + +import android.app.Activity; +import android.app.Instrumentation; +import android.app.UiAutomation; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.provider.DocumentsContract; +import android.support.test.uiautomator.UiDevice; + +import androidx.test.filters.LargeTest; +import androidx.test.rule.ActivityTestRule; +import androidx.test.runner.AndroidJUnit4; + +import com.android.documentsui.bots.Bots; +import com.android.documentsui.picker.PickActivity; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.util.UUID; + + +@LargeTest +@RunWith(AndroidJUnit4.class) +public class ActionCreateDocumentUiTest { + + @Rule + public final ActivityTestRule<PickActivity> mRule = + new ActivityTestRule<>(PickActivity.class, false, false); + + private Context mTargetContext; + private Context mContext; + private Bots mBots; + + @Before + public void setup() { + UiDevice device = UiDevice.getInstance(getInstrumentation()); + UiAutomation automation = getInstrumentation().getUiAutomation(); + + mTargetContext = getInstrumentation().getTargetContext(); + mContext = getInstrumentation().getContext(); + mBots = new Bots(device, automation, mTargetContext, 5000); + } + + @Test + public void testActionCreate_TextFile() throws Exception { + Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT); + intent.addCategory(Intent.CATEGORY_DEFAULT); + intent.addCategory(Intent.CATEGORY_OPENABLE); + intent.setType("*/*"); + + Uri hintUri = DocumentsContract.buildRootUri(AUTHORITY_STORAGE, "primary"); + intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, hintUri); + + mRule.launchActivity(intent); + + String fileName = UUID.randomUUID().toString() + ".txt"; + + mBots.main.setDialogText(fileName); + mBots.main.clickSaveButton(); + + Instrumentation.ActivityResult activityResult = mRule.getActivityResult(); + + Intent result = activityResult.getResultData(); + Uri uri = result.getData(); + int flags = result.getFlags(); + + assertThat(activityResult.getResultCode()).isEqualTo(Activity.RESULT_OK); + assertThat(uri.getAuthority()).isEqualTo(AUTHORITY_STORAGE); + assertThat(uri.getPath()).contains(fileName); + + int expectedFlags = + Intent.FLAG_GRANT_READ_URI_PERMISSION + | Intent.FLAG_GRANT_WRITE_URI_PERMISSION + | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION; + + assertThat(flags).isEqualTo(expectedFlags); + assertThat(DocumentsContract.deleteDocument(mContext.getContentResolver(), uri)).isTrue(); + } + +}
\ No newline at end of file diff --git a/tests/functional/com/android/documentsui/ActivityTest.java b/tests/functional/com/android/documentsui/ActivityTest.java index 777992a8f..65271d092 100644 --- a/tests/functional/com/android/documentsui/ActivityTest.java +++ b/tests/functional/com/android/documentsui/ActivityTest.java @@ -36,6 +36,7 @@ import android.view.MotionEvent; import com.android.documentsui.base.Features; import com.android.documentsui.base.RootInfo; +import com.android.documentsui.base.UserId; import com.android.documentsui.bots.Bots; import com.android.documentsui.files.FilesActivity; @@ -64,6 +65,7 @@ public abstract class ActivityTest<T extends Activity> extends ActivityInstrumen public Bots bots; public UiDevice device; public Context context; + public UserId userId; public UiAutomation automation; public Features features; @@ -110,6 +112,7 @@ public abstract class ActivityTest<T extends Activity> extends ActivityInstrumen device = UiDevice.getInstance(getInstrumentation()); // NOTE: Must be the "target" context, else security checks in content provider will fail. context = getInstrumentation().getTargetContext(); + userId = UserId.DEFAULT_USER; automation = getInstrumentation().getUiAutomation(); features = new Features.RuntimeFeatures(context.getResources(), null); @@ -118,8 +121,8 @@ public abstract class ActivityTest<T extends Activity> extends ActivityInstrumen Configurator.getInstance().setToolType(MotionEvent.TOOL_TYPE_MOUSE); mResolver = context.getContentResolver(); - mClient = mResolver.acquireUnstableContentProviderClient(getTestingProviderAuthority()); - mDocsHelper = new DocumentsProviderHelper(getTestingProviderAuthority(), mClient); + mDocsHelper = new DocumentsProviderHelper(userId, getTestingProviderAuthority(), context, + getTestingProviderAuthority()); device.setOrientationNatural(); setupTestingRoots(); @@ -140,7 +143,7 @@ public abstract class ActivityTest<T extends Activity> extends ActivityInstrumen @Override public void tearDown() throws Exception { device.unfreezeRotation(); - mClient.release(); + mDocsHelper.cleanUp(); super.tearDown(); } @@ -156,7 +159,7 @@ public abstract class ActivityTest<T extends Activity> extends ActivityInstrumen } protected void resetStorage() throws RemoteException { - mClient.call("clear", null, null); + mDocsHelper.clear(null, null); device.waitForIdle(); } diff --git a/tests/functional/com/android/documentsui/FileCopyUiTest.java b/tests/functional/com/android/documentsui/FileCopyUiTest.java index 2dd2742f1..c616eda1f 100644 --- a/tests/functional/com/android/documentsui/FileCopyUiTest.java +++ b/tests/functional/com/android/documentsui/FileCopyUiTest.java @@ -20,7 +20,7 @@ import static com.android.documentsui.base.Providers.AUTHORITY_STORAGE; import static com.android.documentsui.base.Providers.ROOT_ID_DEVICE; import android.content.BroadcastReceiver; -import android.content.ContentProviderClient; +import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; @@ -42,9 +42,11 @@ import com.android.documentsui.files.FilesActivity; import com.android.documentsui.filters.HugeLongTest; import com.android.documentsui.services.TestNotificationService; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.UUID; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.zip.ZipEntry; @@ -66,6 +68,8 @@ public class FileCopyUiTest extends ActivityTest<FilesActivity> { private final Map<String, Long> mTargetFileList = new HashMap<String, Long>(); + private final List<RootAndFolderPair> mFoldersToCleanup = new ArrayList<>(); + private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { @@ -112,10 +116,11 @@ public class FileCopyUiTest extends ActivityTest<FilesActivity> { public void setUp() throws Exception { super.setUp(); - // Create ContentProviderClient and DocumentsProviderHelper for using SD Card. - ContentProviderClient storageClient = - mResolver.acquireUnstableContentProviderClient(AUTHORITY_STORAGE); - mStorageDocsHelper = new DocumentsProviderHelper(AUTHORITY_STORAGE, storageClient); + mFoldersToCleanup.clear(); + + // Create DocumentsProviderHelper for using SD Card. + mStorageDocsHelper = new DocumentsProviderHelper(userId, AUTHORITY_STORAGE, context, + AUTHORITY_STORAGE); // Set a flag to prevent many refreshes. Bundle bundle = new Bundle(); @@ -172,6 +177,10 @@ public class FileCopyUiTest extends ActivityTest<FilesActivity> { deleteDocuments(mDeviceLabel); deleteDocuments(mSdCardLabel); + for (RootAndFolderPair rootAndFolder : mFoldersToCleanup) { + deleteDocuments(rootAndFolder.root, rootAndFolder.folder); + } + if (mIsVirtualSdCard) { device.executeShellCommand("sm set-virtual-disk false"); } @@ -223,25 +232,29 @@ public class FileCopyUiTest extends ActivityTest<FilesActivity> { return true; } - private boolean deleteDocuments(String label) throws Exception { + private boolean deleteDocuments(String label, String targetFolder) throws Exception { if (TextUtils.isEmpty(label)) { return false; } bots.roots.openRoot(label); - if (!bots.directory.hasDocuments(TARGET_FOLDER)) { + if (!bots.directory.hasDocuments(targetFolder)) { return true; } - bots.directory.selectDocument(TARGET_FOLDER, 1); + bots.directory.selectDocument(targetFolder, 1); device.waitForIdle(); bots.main.clickToolbarItem(R.id.action_menu_delete); bots.main.clickDialogOkButton(); device.waitForIdle(); - bots.directory.findDocument(TARGET_FOLDER).waitUntilGone(WAIT_TIME_SECONDS); - return !bots.directory.hasDocuments(TARGET_FOLDER); + bots.directory.findDocument(targetFolder).waitUntilGone(WAIT_TIME_SECONDS); + return !bots.directory.hasDocuments(targetFolder); + } + + private boolean deleteDocuments(String label) throws Exception { + return deleteDocuments(label, TARGET_FOLDER); } private void loadImages(Uri root, DocumentsProviderHelper helper) throws Exception { @@ -435,4 +448,72 @@ public class FileCopyUiTest extends ActivityTest<FilesActivity> { assertFalse(bots.directory.findDocument(fileName1).isEnabled()); } + + @HugeLongTest + public void testRecursiveCopyDocuments_InternalStorageToDownloadsProvider() throws Exception { + // Create Download folder if it doesn't exist. + DocumentInfo info = mStorageDocsHelper.findFile(mPrimaryRoot.documentId, "Download"); + + if (info == null) { + ContentResolver cr = context.getContentResolver(); + Uri uri = mStorageDocsHelper.createFolder(mPrimaryRoot.documentId, "Download"); + info = DocumentInfo.fromUri(cr, uri); + } + + assertTrue(info != null && info.isDirectory()); + + // Setup folder /storage/emulated/0/Download/UUID + String randomFolder = UUID.randomUUID().toString(); + assertNull(mStorageDocsHelper.findFile(info.documentId, randomFolder)); + + Uri subFolderUri = mStorageDocsHelper.createFolder(info.documentId, randomFolder); + assertNotNull(subFolderUri); + mFoldersToCleanup.add(new RootAndFolderPair("Downloads", randomFolder)); + + // Load images into /storage/emulated/0/Download/UUID + loadImages(subFolderUri, mStorageDocsHelper); + + mCountDownLatch = new CountDownLatch(1); + + // Open Internal Storage Root. + bots.roots.openRoot(mDeviceLabel); + device.waitForIdle(); + + // Select Download folder. + bots.directory.selectDocument("Download"); + device.waitForIdle(); + + // Click copy button. + bots.main.clickToolbarOverflowItem(context.getResources().getString(R.string.menu_copy)); + device.waitForIdle(); + + // Downloads folder is automatically opened, so just open the folder defined + // by the UUID. + bots.directory.openDocument(randomFolder); + device.waitForIdle(); + + // Initiate the copy operation. + bots.main.clickDialogOkButton(); + device.waitForIdle(); + + try { + mCountDownLatch.await(WAIT_TIME_SECONDS, TimeUnit.SECONDS); + } catch (Exception e) { + fail("Cannot wait because of error." + e.toString()); + } + + assertFalse(mOperationExecuted); + } + + /** Holds a pair of a root and folder. */ + private static final class RootAndFolderPair { + + private final String root; + private final String folder; + + RootAndFolderPair(String root, String folder) { + this.root = root; + this.folder = folder; + } + } } diff --git a/tests/functional/com/android/documentsui/FilesActivityDefaultsUiTest.java b/tests/functional/com/android/documentsui/FilesActivityDefaultsUiTest.java index f8748fa90..ece8aff91 100644 --- a/tests/functional/com/android/documentsui/FilesActivityDefaultsUiTest.java +++ b/tests/functional/com/android/documentsui/FilesActivityDefaultsUiTest.java @@ -46,30 +46,6 @@ public class FilesActivityDefaultsUiTest extends ActivityTest<FilesActivity> { return null; // test the default, unaffected state of the app. } - public void testDefaultDirectory() throws Exception { - device.waitForIdle(); - - boolean defaultRootBrowse - = context.getResources().getBoolean(R.bool.feature_default_root_in_browse); - - if (defaultRootBrowse) { - // Separate logic for "Documents" root, which presence depends on the config setting - if (docsRootEnabled()) { - bots.main.assertWindowTitle("Documents"); - } else { - bots.main.assertWindowTitle("Downloads"); - } - } else { - boolean showSearchBar = - context.getResources().getBoolean(R.bool.show_search_bar); - if (showSearchBar) { - bots.main.assertSearchBarShow(); - } else { - bots.main.assertWindowTitle("Recent"); - } - } - } - @HugeLongTest public void testNavigate_FromEmptyDirectory() throws Exception { device.waitForIdle(); @@ -97,12 +73,12 @@ public class FilesActivityDefaultsUiTest extends ActivityTest<FilesActivity> { ROOT_0_ID, ROOT_1_ID); - // Separate logic for "Documents" root, which presence depends on the config setting - if (docsRootEnabled()) { - bots.roots.assertRootsPresent("Documents"); - } else { - bots.roots.assertRootsAbsent("Documents"); - } +// // Separate logic for "Documents" root, which presence depends on the config setting +// if (docsRootEnabled()) { +// bots.roots.assertRootsPresent("Documents"); +// } else { +// bots.roots.assertRootsAbsent("Documents"); +// } } private boolean docsRootEnabled() { diff --git a/tests/functional/com/android/documentsui/FilesActivityUiTest.java b/tests/functional/com/android/documentsui/FilesActivityUiTest.java index 2da83098b..697dee6df 100644 --- a/tests/functional/com/android/documentsui/FilesActivityUiTest.java +++ b/tests/functional/com/android/documentsui/FilesActivityUiTest.java @@ -84,12 +84,11 @@ public class FilesActivityUiTest extends ActivityTest<FilesActivity> { "file0.log", "file1.png", "file2.csv", "Ham & Cheese.sandwich"); } - public void testNavigate_inFixedLayout_byBreadcrumb() throws Exception { + public void testNavigate_byBreadcrumb() throws Exception { bots.directory.openDocument(dirName1); bots.directory.waitForDocument(childDir1); // wait for known content bots.directory.assertDocumentsPresent(childDir1); - bots.breadcrumb.revealAsNeeded(); device.waitForIdle(); bots.breadcrumb.assertItemsPresent(dirName1, "TEST_ROOT_0"); diff --git a/tests/functional/com/android/documentsui/InternalStorageUiTest.java b/tests/functional/com/android/documentsui/InternalStorageUiTest.java index 384b0ad0a..04b511dd3 100644 --- a/tests/functional/com/android/documentsui/InternalStorageUiTest.java +++ b/tests/functional/com/android/documentsui/InternalStorageUiTest.java @@ -44,8 +44,8 @@ public class InternalStorageUiTest extends ActivityTest<FilesActivity> { public void setUp() throws Exception { super.setUp(); - mClient = mResolver.acquireUnstableContentProviderClient(Providers.AUTHORITY_STORAGE); - mDocsHelper = new DocumentsProviderHelper(Providers.AUTHORITY_STORAGE, mClient); + mDocsHelper = new DocumentsProviderHelper(userId, Providers.AUTHORITY_STORAGE, context, + Providers.AUTHORITY_STORAGE); rootPrimary = mDocsHelper.getRoot(Providers.ROOT_ID_DEVICE); // If Internal Storage is not shown, turn on. diff --git a/tests/functional/com/android/documentsui/KeyboardNavigationUiTest.java b/tests/functional/com/android/documentsui/KeyboardNavigationUiTest.java index 91364fa92..cc3490377 100644 --- a/tests/functional/com/android/documentsui/KeyboardNavigationUiTest.java +++ b/tests/functional/com/android/documentsui/KeyboardNavigationUiTest.java @@ -85,7 +85,6 @@ public class KeyboardNavigationUiTest extends ActivityTest<FilesActivity> { bots.roots.openDrawer(); bots.keyboard.pressKey(KeyEvent.KEYCODE_TAB); - bots.keyboard.pressKey(KeyEvent.KEYCODE_TAB); for (int i = 0; i < 10; i++) { bots.keyboard.pressKey(KeyEvent.KEYCODE_DPAD_RIGHT); bots.roots.assertHasFocus(); diff --git a/tests/functional/com/android/documentsui/PermissionsTest.java b/tests/functional/com/android/documentsui/PermissionsTest.java new file mode 100644 index 000000000..2642d49a2 --- /dev/null +++ b/tests/functional/com/android/documentsui/PermissionsTest.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2020 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.Manifest; +import android.content.pm.PackageManager; +import android.os.Build; + +import com.android.documentsui.files.FilesActivity; + +import org.junit.Test; + +public class PermissionsTest extends ActivityTest<FilesActivity> { + + private static final String TAG = "PermissionsTest"; + + public PermissionsTest() { + super(FilesActivity.class); + } + + @Override + public void setUp() throws Exception { + super.setUp(); + } + + @Test + public void testPermissionGranted_interactAcrossUsersOnR() { + if (isAtLeastR()) { + assertEquals(PackageManager.PERMISSION_GRANTED, + context.checkSelfPermission(Manifest.permission.INTERACT_ACROSS_USERS)); + } + } + + private static boolean isAtLeastR() { + return (Build.VERSION.CODENAME.equals("REL") && Build.VERSION.SDK_INT >= 30) + || (Build.VERSION.CODENAME.length() == 1 + && Build.VERSION.CODENAME.charAt(0) >= 'R' + && Build.VERSION.CODENAME.charAt(0) <= 'Z'); + } +} diff --git a/tests/functional/com/android/documentsui/RenameDocumentUiTest.java b/tests/functional/com/android/documentsui/RenameDocumentUiTest.java index 1c7260077..2e66117ad 100644 --- a/tests/functional/com/android/documentsui/RenameDocumentUiTest.java +++ b/tests/functional/com/android/documentsui/RenameDocumentUiTest.java @@ -38,43 +38,43 @@ public class RenameDocumentUiTest extends ActivityTest<FilesActivity> { bots.roots.closeDrawer(); } -// public void testRenameEnabled_SingleSelection() throws Exception { -// bots.directory.selectDocument(fileName1, 1); -// bots.main.openOverflowMenu(); -// bots.main.assertMenuEnabled(R.string.menu_rename, true); -// -// // Dismiss more options window -// device.pressBack(); -// } -// -// public void testNoRenameSupport_SingleSelection() throws Exception { -// bots.directory.selectDocument(fileNameNoRename, 1); -// bots.main.openOverflowMenu(); -// bots.main.assertMenuEnabled(R.string.menu_rename, false); -// -// // Dismiss more options window -// device.pressBack(); -// } -// -// public void testOneHasRenameSupport_MultipleSelection() throws Exception { -// bots.directory.selectDocument(fileName1, 1); -// bots.directory.selectDocument(fileNameNoRename, 2); -// bots.main.openOverflowMenu(); -// bots.main.assertMenuEnabled(R.string.menu_rename, false); -// -// // Dismiss more options window -// device.pressBack(); -// } -// -// public void testRenameDisabled_MultipleSelection() throws Exception { -// bots.directory.selectDocument(fileName1, 1); -// bots.directory.selectDocument(fileName2, 2); -// bots.main.openOverflowMenu(); -// bots.main.assertMenuEnabled(R.string.menu_rename, false); -// -// // Dismiss more options window -// device.pressBack(); -// } + public void testRenameEnabled_SingleSelection() throws Exception { + bots.directory.selectDocument(fileName1, 1); + bots.main.openOverflowMenu(); + bots.main.assertMenuEnabled(R.string.menu_rename, true); + + // Dismiss more options window + device.pressBack(); + } + + public void testNoRenameSupport_SingleSelection() throws Exception { + bots.directory.selectDocument(fileNameNoRename, 1); + bots.main.openOverflowMenu(); + bots.main.assertMenuEnabled(R.string.menu_rename, false); + + // Dismiss more options window + device.pressBack(); + } + + public void testOneHasRenameSupport_MultipleSelection() throws Exception { + bots.directory.selectDocument(fileName1, 1); + bots.directory.selectDocument(fileNameNoRename, 2); + bots.main.openOverflowMenu(); + bots.main.assertMenuEnabled(R.string.menu_rename, false); + + // Dismiss more options window + device.pressBack(); + } + + public void testRenameDisabled_MultipleSelection() throws Exception { + bots.directory.selectDocument(fileName1, 1); + bots.directory.selectDocument(fileName2, 2); + bots.main.openOverflowMenu(); + bots.main.assertMenuEnabled(R.string.menu_rename, false); + + // Dismiss more options window + device.pressBack(); + } public void testRenameFile_OkButton() throws Exception { bots.directory.selectDocument(fileName1, 1); @@ -132,6 +132,8 @@ public class RenameDocumentUiTest extends ActivityTest<FilesActivity> { bots.directory.assertDocumentsPresent(fileName1); bots.directory.assertDocumentsAbsent(newName); bots.directory.assertDocumentsCount(4); + + bots.directory.assertSelection(1); } public void testRenameDir() throws Exception { diff --git a/tests/functional/com/android/documentsui/SidebarUiTest.java b/tests/functional/com/android/documentsui/SidebarUiTest.java index 3943a4672..148c27e1b 100644 --- a/tests/functional/com/android/documentsui/SidebarUiTest.java +++ b/tests/functional/com/android/documentsui/SidebarUiTest.java @@ -43,7 +43,7 @@ public class SidebarUiTest extends ActivityTest<FilesActivity> { @HugeLongTest public void testRootTapped_GoToRootFromChildDir() throws Exception { bots.directory.openDocument(dirName1); - bots.breadcrumb.assertTitle(dirName1); + bots.main.assertWindowTitle(dirName1); bots.roots.openRoot(ROOT_0_ID); bots.main.assertWindowTitle(ROOT_0_ID); assertDefaultContentOfTestDir0(); diff --git a/tests/unit/com/android/documentsui/DirectoryResultTest.java b/tests/unit/com/android/documentsui/DirectoryResultTest.java new file mode 100644 index 000000000..5994bdc1c --- /dev/null +++ b/tests/unit/com/android/documentsui/DirectoryResultTest.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2019 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.ContentProviderClient; +import android.database.MatrixCursor; + +import androidx.test.filters.MediumTest; +import androidx.test.runner.AndroidJUnit4; + +import com.android.documentsui.base.DocumentInfo; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; + +@RunWith(AndroidJUnit4.class) +@MediumTest +public class DirectoryResultTest { + + private ContentProviderClient mClient; + private MatrixCursor mCursor; + + @Before + public void setUp() { + mClient = Mockito.mock(ContentProviderClient.class); + mCursor = Mockito.mock(MatrixCursor.class); + } + + @Test + public void testClose() { + DirectoryResult result = new DirectoryResult(); + DocumentInfo doc = new DocumentInfo(); + + result.client = mClient; + result.cursor = mCursor; + result.doc = doc; + + result.close(); + + Mockito.verify(mClient).close(); + Mockito.verify(mCursor).close(); + } +} diff --git a/tests/unit/com/android/documentsui/DocsSelectionHelperTest.java b/tests/unit/com/android/documentsui/DocsSelectionHelperTest.java index c06201b9f..e377f0a50 100644 --- a/tests/unit/com/android/documentsui/DocsSelectionHelperTest.java +++ b/tests/unit/com/android/documentsui/DocsSelectionHelperTest.java @@ -22,7 +22,6 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import androidx.recyclerview.selection.Selection; -import androidx.recyclerview.selection.SelectionTracker; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; @@ -51,15 +50,7 @@ public class DocsSelectionHelperTest { @Before public void setup() { mCreated = new ArrayList<>(); - mFactory = new DelegateFactory() { - - @Override - TestSelectionManager create(SelectionTracker<String> selectionTracker) { - TestSelectionManager mgr = new TestSelectionManager(); - mCreated.add(mgr); - return mgr; - } - }; + mFactory = new DelegateFactory(); mSelectionMgr = new DocsSelectionHelper(mFactory); } @@ -105,7 +96,10 @@ public class DocsSelectionHelperTest { } private void resetSelectionHelper() { - mSelectionMgr.reset(null); // nulls are passed to factory. We ignore. + TestSelectionManager mgr = new TestSelectionManager(); + mCreated.add(mgr); + + mSelectionMgr.reset(mgr); } private static final class TestSelectionManager extends DummySelectionTracker<String> { diff --git a/tests/unit/com/android/documentsui/SharedInputHandlerTest.java b/tests/unit/com/android/documentsui/SharedInputHandlerTest.java index d774b85f8..6546117eb 100644 --- a/tests/unit/com/android/documentsui/SharedInputHandlerTest.java +++ b/tests/unit/com/android/documentsui/SharedInputHandlerTest.java @@ -47,6 +47,7 @@ public class SharedInputHandlerTest { private TestDrawerController mDrawer = TestDrawerController.create(); private boolean mDirPopHappened; private boolean mCanceledSearch; + private boolean mSearchExecuted; private Procedure mDirPopper = new Procedure() { @Override public boolean run() { @@ -54,6 +55,12 @@ public class SharedInputHandlerTest { return true; } }; + private Runnable mSearchExecutor = new Runnable() { + @Override + public void run() { + mSearchExecuted = true; + } + }; @Before public void setUp() { @@ -61,12 +68,11 @@ public class SharedInputHandlerTest { mSharedInputHandler = new SharedInputHandler( mFocusHandler, mSelectionMgr, - () -> { - return false; - }, + () -> false, mDirPopper, mFeatures, - mDrawer); + mDrawer, + mSearchExecutor); } @Test @@ -88,7 +94,8 @@ public class SharedInputHandlerTest { }, mDirPopper, new TestFeatures(), - mDrawer); + mDrawer, + mSearchExecutor); KeyEvent backEvent = new KeyEvent(0, 0, MotionEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK, 0, 0); assertTrue(mSharedInputHandler.onKeyDown(backEvent.getKeyCode(), backEvent)); @@ -146,7 +153,8 @@ public class SharedInputHandlerTest { }, mDirPopper, new TestFeatures(), - mDrawer); + mDrawer, + mSearchExecutor); KeyEvent escapeEvent = new KeyEvent(0, 0, MotionEvent.ACTION_DOWN, KeyEvent.KEYCODE_ESCAPE, 0, 0); assertTrue(mSharedInputHandler.onKeyDown(escapeEvent.getKeyCode(), escapeEvent)); @@ -208,4 +216,13 @@ public class SharedInputHandlerTest { assertTrue(mFocusHandler.focusDirectoryCalled); } + + @Test + public void testSearchKey_LaunchSearchView() { + KeyEvent searchEvent = + new KeyEvent(0, 0, MotionEvent.ACTION_DOWN, KeyEvent.KEYCODE_SEARCH, 0, 0); + assertTrue(mSharedInputHandler.onKeyDown(searchEvent.getKeyCode(), searchEvent)); + + assertTrue(mSearchExecuted); + } } diff --git a/tests/unit/com/android/documentsui/base/UserIdTest.java b/tests/unit/com/android/documentsui/base/UserIdTest.java new file mode 100644 index 000000000..0f5763760 --- /dev/null +++ b/tests/unit/com/android/documentsui/base/UserIdTest.java @@ -0,0 +1,147 @@ +/* + * 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.base; + +import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import android.content.Context; +import android.os.Process; +import android.os.UserHandle; +import android.test.AndroidTestCase; + +import androidx.test.core.app.ApplicationProvider; +import androidx.test.filters.SmallTest; + +import org.junit.Test; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.ProtocolException; + +@SmallTest +public class UserIdTest extends AndroidTestCase { + + private Context mContext = ApplicationProvider.getApplicationContext(); + + @Test + public void testEquals() { + assertEquals(UserId.CURRENT_USER, UserId.CURRENT_USER); + assertEquals(UserId.of(UserHandle.of(10)), UserId.of(UserHandle.of(10))); + } + + @Test + public void testEquals_handlesNulls() { + assertFalse(UserId.CURRENT_USER.equals(null)); + } + + @Test + public void testNotEquals_differentUserHandle() { + assertFalse(UserId.of(UserHandle.of(0)).equals(UserId.of(UserHandle.of(10)))); + } + + @Test + public void testHashCode_sameUserHandle() { + assertEquals(UserId.of(UserHandle.of(0)).hashCode(), + UserId.of(UserHandle.of(0)).hashCode()); + } + + @Test + public void testHashCode_differentUserHandle() { + assertThat(UserId.of(UserHandle.of(0)).hashCode()).isNotEqualTo( + UserId.of(UserHandle.of(10)).hashCode()); + } + + @Test + public void testAsContext_sameUserReturnProvidedContext() { + UserId userId = UserId.of(Process.myUserHandle()); + assertSame(mContext, userId.asContext(mContext)); + } + + @Test + public void testAsContext_unspecifiedUserReturnProvidedContext() { + assertSame(mContext, UserId.UNSPECIFIED_USER.asContext(mContext)); + } + + @Test + public void testAsContext_differentUserShouldCreatePackageContextAsUser() + throws Exception { + Context mockContext = mock(Context.class); + Context expectedContext = mock(Context.class); + UserHandle differentUserHandle = UserHandle.of(UserHandle.myUserId() + 1); + when(mockContext.createPackageContextAsUser("android", 0, differentUserHandle)).thenReturn( + expectedContext); + + assertThat(UserId.of(differentUserHandle).asContext(mockContext)).isSameAs( + expectedContext); + } + + @Test + public void testRead_success() throws IOException { + ByteArrayOutputStream output = new ByteArrayOutputStream(); + DataOutputStream o = new DataOutputStream(output); + + o.writeInt(1); // version + o.writeInt(10); // user id + + UserId userId = UserId.read( + new DataInputStream(new ByteArrayInputStream(output.toByteArray()))); + + assertThat(userId).isEqualTo(UserId.of(UserHandle.of(10))); + } + + @Test + public void testRead_failWithInvalidVersion() throws IOException { + ByteArrayOutputStream output = new ByteArrayOutputStream(); + DataOutputStream o = new DataOutputStream(output); + + o.writeInt(2); // version + o.writeInt(10); // user id + + try { + UserId.read(new DataInputStream(new ByteArrayInputStream(output.toByteArray()))); + fail(); + } catch (ProtocolException expected) { + } finally { + o.close(); + output.close(); + } + } + + @Test + public void testWrite_writeDataOutputStream() throws IOException { + ByteArrayOutputStream output = new ByteArrayOutputStream(); + DataOutputStream o = new DataOutputStream(output); + + UserId.write(o, UserId.of(UserHandle.of(12))); + + DataInputStream in = new DataInputStream(new ByteArrayInputStream(output.toByteArray())); + + assertEquals(in.readInt(), 1); // version + assertEquals(in.readInt(), 12); // user id + assertEquals(in.read(), -1); // end of stream + + output.close(); + o.close(); + in.close(); + } +} diff --git a/tests/unit/com/android/documentsui/dirlist/AccessibilityTest.java b/tests/unit/com/android/documentsui/dirlist/AccessibilityTest.java index 93b9ed6c9..07a55f89b 100644 --- a/tests/unit/com/android/documentsui/dirlist/AccessibilityTest.java +++ b/tests/unit/com/android/documentsui/dirlist/AccessibilityTest.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 The Android Open Source Project + * Copyright (C) 2019 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. @@ -83,8 +83,8 @@ public class AccessibilityTest extends AndroidTestCase { View item = Views.createTestView(true); AccessibilityNodeInfoCompat info = AccessibilityNodeInfoCompat.obtain(); mAccessibilityDelegate.getItemDelegate().onInitializeAccessibilityNodeInfo(item, info); - mAccessibilityDelegate.getItemDelegate() - .performAccessibilityAction(item, AccessibilityNodeInfoCompat.ACTION_CLICK, null); + mAccessibilityDelegate.getItemDelegate().performAccessibilityAction( + item, AccessibilityNodeInfoCompat.ACTION_CLICK, null); assertTrue(mClickCallbackCalled); } @@ -92,8 +92,8 @@ public class AccessibilityTest extends AndroidTestCase { View item = Views.createTestView(true); AccessibilityNodeInfoCompat info = AccessibilityNodeInfoCompat.obtain(); mAccessibilityDelegate.getItemDelegate().onInitializeAccessibilityNodeInfo(item, info); - mAccessibilityDelegate.getItemDelegate() - .performAccessibilityAction(item, AccessibilityNodeInfoCompat.ACTION_LONG_CLICK, null); + mAccessibilityDelegate.getItemDelegate().performAccessibilityAction( + item, AccessibilityNodeInfoCompat.ACTION_LONG_CLICK, null); assertTrue(mLongClickCallbackCalled); } -} +}
\ No newline at end of file diff --git a/tests/unit/com/android/documentsui/dirlist/AppsRowManagerTest.java b/tests/unit/com/android/documentsui/dirlist/AppsRowManagerTest.java index 9577550d6..7d19243d2 100644 --- a/tests/unit/com/android/documentsui/dirlist/AppsRowManagerTest.java +++ b/tests/unit/com/android/documentsui/dirlist/AppsRowManagerTest.java @@ -17,7 +17,7 @@ package com.android.documentsui.dirlist; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -34,6 +34,7 @@ import com.android.documentsui.ActionHandler; import com.android.documentsui.BaseActivity; import com.android.documentsui.R; import com.android.documentsui.base.State; +import com.android.documentsui.base.UserId; import com.android.documentsui.sidebar.AppItem; import com.android.documentsui.sidebar.Item; import com.android.documentsui.sidebar.RootItem; @@ -82,14 +83,18 @@ public class AppsRowManagerTest { final List<Item> rootList = new ArrayList<>(); rootList.add(new RootItem(TestProvidersAccess.INSPECTOR, mActionHandler)); rootList.add(new RootItem(TestProvidersAccess.PICKLES, mActionHandler)); + rootList.add(new RootItem(TestProvidersAccess.PICKLES, mActionHandler, "packageName")); + rootList.add(new RootItem(TestProvidersAccess.PICKLES, mActionHandler, "packageName")); final List<AppsRowItemData> chipDataList = mAppsRowManager.updateList(rootList); assertEquals(chipDataList.size(), rootList.size()); assertEquals(TestProvidersAccess.INSPECTOR.title, chipDataList.get(0).getTitle()); - assertFalse(chipDataList.get(0).showExitIcon()); + assertEquals(null, chipDataList.get(0).getSummary()); assertEquals(TestProvidersAccess.PICKLES.title, chipDataList.get(1).getTitle()); - assertFalse(chipDataList.get(1).showExitIcon()); + assertEquals(null, chipDataList.get(1).getSummary()); + assertEquals(TestProvidersAccess.PICKLES.summary, chipDataList.get(2).getSummary()); + assertEquals(TestProvidersAccess.PICKLES.summary, chipDataList.get(3).getSummary()); } @Test @@ -100,17 +105,17 @@ public class AppsRowManagerTest { List<Item> hybridList = new ArrayList<>(); hybridList.add(new RootItem(TestProvidersAccess.INSPECTOR, mActionHandler)); - hybridList.add(new AppItem(info, TestProvidersAccess.PICKLES.title, mActionHandler)); + hybridList.add(new AppItem(info, TestProvidersAccess.PICKLES.title, UserId.DEFAULT_USER, + mActionHandler)); final List<AppsRowItemData> chipDataList = mAppsRowManager.updateList(hybridList); assertEquals(chipDataList.size(), hybridList.size()); assertEquals(TestProvidersAccess.INSPECTOR.title, chipDataList.get(0).getTitle()); assertTrue(chipDataList.get(0) instanceof AppsRowItemData.RootData); - assertFalse(chipDataList.get(0).showExitIcon()); assertEquals(TestProvidersAccess.PICKLES.title, chipDataList.get(1).getTitle()); + assertNull(chipDataList.get(1).getSummary()); assertTrue(chipDataList.get(1) instanceof AppsRowItemData.AppData); - assertTrue(chipDataList.get(1).showExitIcon()); } @Test diff --git a/tests/unit/com/android/documentsui/files/ActionHandlerTest.java b/tests/unit/com/android/documentsui/files/ActionHandlerTest.java index e5141cd96..f00968663 100644 --- a/tests/unit/com/android/documentsui/files/ActionHandlerTest.java +++ b/tests/unit/com/android/documentsui/files/ActionHandlerTest.java @@ -74,7 +74,9 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; @RunWith(AndroidJUnit4.class) @MediumTest @@ -106,8 +108,6 @@ public class ActionHandlerTest { mHandler = createHandler(); - mDialogs.confirmNext(); - mEnv.selectDocument(TestEnv.FILE_GIF); } @@ -161,36 +161,28 @@ public class ActionHandlerTest { } @Test - public void testDeleteSelectedDocuments_NoSelection() { + public void testShowDeleteDialog_NoSelection() { mEnv.populateStack(); mEnv.selectionMgr.clearSelection(); - mHandler.deleteSelectedDocuments(); - mDialogs.assertNoFileFailures(); + mHandler.showDeleteDialog(); mActivity.startService.assertNotCalled(); - mActionModeAddons.finishOnConfirmed.assertNeverCalled(); + assertFalse(mActionModeAddons.finishActionModeCalled); } @Test - public void testDeleteSelectedDocuments_Cancelable() { + public void testDeleteSelectedDocuments() { mEnv.populateStack(); - mDialogs.rejectNext(); - mHandler.deleteSelectedDocuments(); - mDialogs.assertNoFileFailures(); - mActivity.startService.assertNotCalled(); - mActionModeAddons.finishOnConfirmed.assertRejected(); - } + mEnv.selectionMgr.clearSelection(); + mEnv.selectDocument(TestEnv.FILE_PNG); - // Recents root means when deleting the srcParent will be null. - @Test - public void testDeleteSelectedDocuments_RecentsRoot() { - mEnv.state.stack.changeRoot(TestProvidersAccess.RECENTS); + List<DocumentInfo> docs = new ArrayList<>(); + docs.add(TestEnv.FILE_PNG); + mHandler.deleteSelectedDocuments(docs, mEnv.state.stack.peek()); - mHandler.deleteSelectedDocuments(); - mDialogs.assertNoFileFailures(); mActivity.startService.assertCalled(); - mActionModeAddons.finishOnConfirmed.assertCalled(); + assertTrue(mActionModeAddons.finishActionModeCalled); } @Test @@ -241,6 +233,17 @@ public class ActionHandlerTest { } @Test + public void testShareSelectedDocuments_overShareLimit() { + mActivity.resources.strings.put(R.string.share_via, "Sharezilla!"); + mEnv.selectMultipleFiles(500); + mHandler.shareSelectedDocuments(); + + Intent intent = mActivity.startActivity.getLastValue(); + assertNull(intent); + mDialogs.assertShareOverLimitShown(); + } + + @Test public void testShareSelectedDocuments_VirtualFiles() { if (!mEnv.features.isVirtualFilesSharingEnabled()) { return; @@ -426,18 +429,8 @@ public class ActionHandlerTest { } @Test - public void testInitLocation_DefaultsToRecent() throws Exception { - mActivity.resources.bools.put(R.bool.show_documents_root, false); - mFeatures.forceDefaultRoot = false; - - mHandler.initLocation(mActivity.getIntent()); - assertRecentPicked(); - } - - @Test public void testInitLocation_forceDefaultsToRoot() throws Exception { mActivity.resources.bools.put(R.bool.show_documents_root, false); - mFeatures.forceDefaultRoot = true; mActivity.resources.strings.put(R.string.default_root_uri, TestProvidersAccess.DOWNLOADS.getUri().toString()); @@ -448,7 +441,6 @@ public class ActionHandlerTest { @Test public void testInitLocation_DocumentsRootEnabled() throws Exception { mActivity.resources.bools.put(R.bool.show_documents_root, true); - mFeatures.forceDefaultRoot = true; mActivity.resources.strings.put(R.string.default_root_uri, TestProvidersAccess.HOME.getUri().toString()); @@ -473,10 +465,9 @@ public class ActionHandlerTest { intent.setData(DocumentsContract.buildRootsUri("com.test.wrongauthority")); mActivity.resources.strings.put(R.string.default_root_uri, TestProvidersAccess.HOME.getUri().toString()); - mFeatures.forceDefaultRoot = false; mHandler.initLocation(intent); - assertRecentPicked(); + assertRootPicked(TestProvidersAccess.HOME.getUri()); } @Test @@ -711,12 +702,6 @@ public class ActionHandlerTest { assertEquals(expectedUri, root.getUri()); } - private void assertRecentPicked() throws Exception{ - mEnv.beforeAsserts(); - assertEquals(TestProvidersAccess.RECENTS, mEnv.state.stack.getRoot()); - mActivity.refreshCurrentRootAndDirectory.assertCalled(); - } - private ActionHandler<TestActivity> createHandler() { return new ActionHandler<>( mActivity, diff --git a/tests/unit/com/android/documentsui/files/MenuManagerTest.java b/tests/unit/com/android/documentsui/files/MenuManagerTest.java index 6f79c9441..744c9ca1a 100644 --- a/tests/unit/com/android/documentsui/files/MenuManagerTest.java +++ b/tests/unit/com/android/documentsui/files/MenuManagerTest.java @@ -33,6 +33,7 @@ import com.android.documentsui.SelectionHelpers; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.State; +import com.android.documentsui.base.UserId; import com.android.documentsui.dirlist.TestData; import com.android.documentsui.testing.TestDirectoryDetails; import com.android.documentsui.testing.TestEnv; @@ -63,6 +64,7 @@ public final class MenuManagerTest { private TestMenuItem dirPasteFromClipboard; private TestMenuItem dirCreateDir; private TestMenuItem dirSelectAll; + private TestMenuItem mDirDeselectAll; private TestMenuItem dirRename; private TestMenuItem dirDelete; private TestMenuItem dirViewInOwner; @@ -82,6 +84,7 @@ public final class MenuManagerTest { private TestMenuItem actionModeShare; private TestMenuItem actionModeDelete; private TestMenuItem actionModeSelectAll; + private TestMenuItem mActionModeDeselectAll; private TestMenuItem actionModeCopyTo; private TestMenuItem actionModeExtractTo; private TestMenuItem actionModeMoveTo; @@ -101,6 +104,7 @@ public final class MenuManagerTest { private TestMenuItem optionSettings; private TestMenuItem optionInspector; private TestMenuItem optionSort; + private TestMenuItem mOptionLauncher; /* Sub Option Menu items */ private TestMenuItem subOptionGrid; @@ -118,6 +122,8 @@ public final class MenuManagerTest { private TestActivity activity = TestActivity.create(TestEnv.create()); private SelectionTracker<String> selectionManager; + private int mFilesCount; + @Before public void setUp() { testMenu = TestMenu.create(); @@ -131,6 +137,7 @@ public final class MenuManagerTest { dirPasteFromClipboard = testMenu.findItem(R.id.dir_menu_paste_from_clipboard); dirCreateDir = testMenu.findItem(R.id.dir_menu_create_dir); dirSelectAll = testMenu.findItem(R.id.dir_menu_select_all); + mDirDeselectAll = testMenu.findItem(R.id.dir_menu_deselect_all); dirRename = testMenu.findItem(R.id.dir_menu_rename); dirDelete = testMenu.findItem(R.id.dir_menu_delete); dirViewInOwner = testMenu.findItem(R.id.dir_menu_view_in_owner); @@ -148,6 +155,7 @@ public final class MenuManagerTest { actionModeShare = testMenu.findItem(R.id.action_menu_share); actionModeDelete = testMenu.findItem(R.id.action_menu_delete); actionModeSelectAll = testMenu.findItem(R.id.action_menu_select_all); + mActionModeDeselectAll = testMenu.findItem(R.id.action_menu_deselect_all); actionModeCopyTo = testMenu.findItem(R.id.action_menu_copy_to); actionModeExtractTo = testMenu.findItem(R.id.action_menu_extract_to); actionModeMoveTo = testMenu.findItem(R.id.action_menu_move_to); @@ -167,6 +175,7 @@ public final class MenuManagerTest { optionSettings = testMenu.findItem(R.id.option_menu_settings); optionInspector = testMenu.findItem(R.id.option_menu_inspect); optionSort = testMenu.findItem(R.id.option_menu_sort); + mOptionLauncher = testMenu.findItem(R.id.option_menu_launcher); // Menu actions on root title row. subOptionGrid = testMenu.findItem(R.id.sub_menu_grid); @@ -186,6 +195,9 @@ public final class MenuManagerTest { selectionManager = SelectionHelpers.createTestInstance(TestData.create(1)); selectionManager.select("0"); + selectionDetails.size = 1; + mFilesCount = 10; + mgr = new MenuManager( features, testSearchManager, @@ -194,7 +206,8 @@ public final class MenuManagerTest { activity, selectionManager, this::getApplicationNameFromAuthority, - this::getUriFromModelId); + this::getUriFromModelId, + this::getFilesCount); testRootInfo = new RootInfo(); testDocInfo = new DocumentInfo(); @@ -204,10 +217,15 @@ public final class MenuManagerTest { private Uri getUriFromModelId(String id) { return Uri.EMPTY; } - private String getApplicationNameFromAuthority(String authority) { + + private String getApplicationNameFromAuthority(UserId userId, String authority) { return "TestApp"; } + private int getFilesCount() { + return mFilesCount; + } + @Test public void testActionMenu() { selectionDetails.canDelete = true; @@ -226,6 +244,10 @@ public final class MenuManagerTest { actionModeViewInOwner.assertInvisible(); actionModeSort.assertVisible(); actionModeSort.assertEnabled(); + actionModeSelectAll.assertVisible(); + actionModeSelectAll.assertEnabled(); + mActionModeDeselectAll.assertInvisible(); + mActionModeDeselectAll.assertDisabled(); } @Test @@ -308,7 +330,8 @@ public final class MenuManagerTest { activity, selectionManager, this::getApplicationNameFromAuthority, - this::getUriFromModelId); + this::getUriFromModelId, + this::getFilesCount); selectionDetails.canViewInOwner = true; mgr.updateActionMenu(testMenu, selectionDetails); @@ -410,6 +433,19 @@ public final class MenuManagerTest { } @Test + public void testActionMenu_CanDeselectAll() { + selectionDetails.size = 1; + mFilesCount = 1; + + mgr.updateActionMenu(testMenu, selectionDetails); + + actionModeSelectAll.assertInvisible(); + actionModeSelectAll.assertDisabled(); + mActionModeDeselectAll.assertVisible(); + mActionModeDeselectAll.assertEnabled(); + } + + @Test public void testOptionMenu() { mgr.updateOptionMenu(testMenu); @@ -419,6 +455,7 @@ public final class MenuManagerTest { optionDebug.assertInvisible(); optionSort.assertEnabled(); optionSort.assertVisible(); + mOptionLauncher.assertInvisible(); assertTrue(testSearchManager.updateMenuCalled()); } @@ -501,10 +538,12 @@ public final class MenuManagerTest { @Test public void testContextMenu_EmptyArea() { - mgr.updateContextMenuForContainer(testMenu); + mgr.updateContextMenuForContainer(testMenu, selectionDetails); dirSelectAll.assertVisible(); dirSelectAll.assertEnabled(); + mDirDeselectAll.assertInvisible(); + mDirDeselectAll.assertDisabled(); dirPasteFromClipboard.assertVisible(); dirPasteFromClipboard.assertDisabled(); dirCreateDir.assertVisible(); @@ -512,11 +551,24 @@ public final class MenuManagerTest { } @Test + public void testContextMenu_EmptyArea_CanDeselectAll() { + selectionDetails.size = 1; + mFilesCount = 1; + + mgr.updateContextMenuForContainer(testMenu, selectionDetails); + + dirSelectAll.assertInvisible(); + dirSelectAll.assertDisabled(); + mDirDeselectAll.assertVisible(); + mDirDeselectAll.assertEnabled(); + } + + @Test public void testContextMenu_EmptyArea_NoItemToPaste() { dirDetails.hasItemsToPaste = false; dirDetails.canCreateDoc = true; - mgr.updateContextMenuForContainer(testMenu); + mgr.updateContextMenuForContainer(testMenu, selectionDetails); dirSelectAll.assertVisible(); dirSelectAll.assertEnabled(); @@ -531,7 +583,7 @@ public final class MenuManagerTest { dirDetails.hasItemsToPaste = true; dirDetails.canCreateDoc = false; - mgr.updateContextMenuForContainer(testMenu); + mgr.updateContextMenuForContainer(testMenu, selectionDetails); dirSelectAll.assertVisible(); dirSelectAll.assertEnabled(); @@ -546,7 +598,7 @@ public final class MenuManagerTest { dirDetails.hasItemsToPaste = true; dirDetails.canCreateDoc = true; - mgr.updateContextMenuForContainer(testMenu); + mgr.updateContextMenuForContainer(testMenu, selectionDetails); dirSelectAll.assertVisible(); dirSelectAll.assertEnabled(); @@ -560,7 +612,7 @@ public final class MenuManagerTest { public void testContextMenu_EmptyArea_CanCreateDirectory() { dirDetails.canCreateDirectory = true; - mgr.updateContextMenuForContainer(testMenu); + mgr.updateContextMenuForContainer(testMenu, selectionDetails); dirSelectAll.assertVisible(); dirSelectAll.assertEnabled(); @@ -640,7 +692,7 @@ public final class MenuManagerTest { public void testContextMenu_CanInspectContainer() { features.inspector = true; dirDetails.canInspectDirectory = true; - mgr.updateContextMenuForContainer(testMenu); + mgr.updateContextMenuForContainer(testMenu, selectionDetails); dirInspect.assertVisible(); dirInspect.assertEnabled(); } diff --git a/tests/unit/com/android/documentsui/files/TestActivity.java b/tests/unit/com/android/documentsui/files/TestActivity.java index 4d49649a5..d69b9b832 100644 --- a/tests/unit/com/android/documentsui/files/TestActivity.java +++ b/tests/unit/com/android/documentsui/files/TestActivity.java @@ -16,7 +16,7 @@ package com.android.documentsui.files; -import com.android.documentsui.files.ActionHandler; +import com.android.documentsui.AbstractActionHandler; import com.android.documentsui.testing.TestEnv; import org.mockito.Mockito; @@ -33,4 +33,4 @@ public abstract class TestActivity extends AbstractBase { // Trick Mockito into finding our Addons methods correctly. W/o this // hack, Mockito thinks Addons methods are not implemented. abstract class AbstractBase extends com.android.documentsui.TestActivity - implements ActionHandler.Addons {} + implements AbstractActionHandler.CommonAddons {} diff --git a/tests/unit/com/android/documentsui/inspector/InspectorControllerTest.java b/tests/unit/com/android/documentsui/inspector/InspectorControllerTest.java index 33693ed4d..3d1aaceb2 100644 --- a/tests/unit/com/android/documentsui/inspector/InspectorControllerTest.java +++ b/tests/unit/com/android/documentsui/inspector/InspectorControllerTest.java @@ -38,6 +38,7 @@ import com.android.documentsui.InspectorProvider; import com.android.documentsui.R; import com.android.documentsui.TestProviderActivity; import com.android.documentsui.base.DocumentInfo; +import com.android.documentsui.base.UserId; import com.android.documentsui.inspector.InspectorController.ActionDisplay; import com.android.documentsui.inspector.InspectorController.DataSupplier; import com.android.documentsui.inspector.InspectorController.DebugDisplay; @@ -63,6 +64,7 @@ public class InspectorControllerTest { private static final String OPEN_IN_PROVIDER_DOC = "OpenInProviderTest"; + private UserId mUserId; private TestActivity mActivity; private TestLoaderManager mLoaderManager; private TestDataSupplier mDataSupplier; @@ -82,6 +84,7 @@ public class InspectorControllerTest { @Before public void setUp() throws Exception { + mUserId = UserId.DEFAULT_USER; mEnv = TestEnv.create(); mPm = TestPackageManager.create(); mLoaderManager = new TestLoaderManager(); @@ -174,7 +177,7 @@ public class InspectorControllerTest { Uri uri = DocumentsContract.buildDocumentUri(InspectorProvider.AUTHORITY, OPEN_IN_PROVIDER_DOC); - mController.showInProvider(uri); + mController.showInProvider(uri, mUserId); assertNotNull(mActivity.started); assertEquals("com.android.documentsui", mActivity.started.getPackage()); diff --git a/tests/unit/com/android/documentsui/picker/ActionHandlerTest.java b/tests/unit/com/android/documentsui/picker/ActionHandlerTest.java index 0d070611d..647ce719e 100644 --- a/tests/unit/com/android/documentsui/picker/ActionHandlerTest.java +++ b/tests/unit/com/android/documentsui/picker/ActionHandlerTest.java @@ -16,10 +16,10 @@ package com.android.documentsui.picker; -import static org.mockito.Mockito.verify; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; import android.app.Activity; import android.content.ClipData; @@ -52,13 +52,13 @@ import com.android.documentsui.testing.TestLastAccessedStorage; import com.android.documentsui.testing.TestProvidersAccess; import com.android.documentsui.testing.TestResolveInfo; -import java.util.concurrent.Executor; import org.junit.AfterClass; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import java.util.Arrays; +import java.util.concurrent.Executor; @RunWith(AndroidJUnit4.class) @MediumTest @@ -91,8 +91,6 @@ public class ActionHandlerTest { mPickCountRecord ); - mEnv.dialogs.confirmNext(); - mEnv.selectionMgr.select("1"); AsyncTask.setDefaultExecutor(mEnv.mExecutor); @@ -220,13 +218,32 @@ public class ActionHandlerTest { } @Test - public void testInitLocation_DefaultToDownloads_ActionOpenTree() throws Exception { - testInitLocationDefaultToDownloadsOnAction(State.ACTION_OPEN_TREE); + public void testInitLocation_DefaultsToDownloads_ActionCreate() throws Exception { + testInitLocationDefaultToDownloadsOnAction(State.ACTION_CREATE); } @Test - public void testInitLocation_DefaultsToDownloads_ActionCreate() throws Exception { - testInitLocationDefaultToDownloadsOnAction(State.ACTION_CREATE); + public void testInitLocation_DefaultToDeviceRoot_ActionOpenTree() throws Exception { + mEnv.state.action = State.ACTION_OPEN_TREE; + + mHandler.initLocation(mActivity.getIntent()); + + assertRootPicked(TestProvidersAccess.EXTERNALSTORAGE.getUri()); + } + + @Test + public void testInitLocation_DefaultToDeviceRoot_ActionOpenTree_RootDoesNotSupportChildren() + throws Exception { + mEnv.state.action = State.ACTION_OPEN_TREE; + + String authority = TestProvidersAccess.NO_TREE_ROOT.authority; + String rootId = TestProvidersAccess.NO_TREE_ROOT.rootId; + Uri hintUri = DocumentsContract.buildRootUri(authority, rootId); + + mActivity.getIntent().putExtra(DocumentsContract.EXTRA_INITIAL_URI, hintUri); + mHandler.initLocation(mActivity.getIntent()); + + assertRootPicked(TestProvidersAccess.EXTERNALSTORAGE.getUri()); } @Test @@ -239,6 +256,14 @@ public class ActionHandlerTest { } @Test + public void testOpenContainerDocument_sameDocumentInfo() { + mHandler.openContainerDocument(TestEnv.FOLDER_0); + mHandler.openContainerDocument(TestEnv.FOLDER_0); + + assertEquals(1, mEnv.state.stack.size()); + } + + @Test public void testIncreasePickCountRecordCalled() throws Exception { mEnv.state.action = State.ACTION_GET_CONTENT; mEnv.state.stack.changeRoot(TestProvidersAccess.HOME); @@ -528,6 +553,26 @@ public class ActionHandlerTest { } @Test + public void testOpenAppRoot_removeFlags() throws Exception { + mActivity.intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT + | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION + | Intent.FLAG_GRANT_PREFIX_URI_PERMISSION + | Intent.FLAG_GRANT_WRITE_URI_PERMISSION + | Intent.FLAG_GRANT_READ_URI_PERMISSION); + mHandler.openRoot(TestResolveInfo.create()); + assertEquals((long) mActivity.startActivityForResult.getLastValue().second, + AbstractActionHandler.CODE_FORWARD); + assertNotNull(mActivity.startActivityForResult.getLastValue().first); + + int flags = mActivity.startActivityForResult.getLastValue().first.getFlags(); + assertEquals(0, flags & Intent.FLAG_ACTIVITY_FORWARD_RESULT); + assertEquals(0, flags & Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION); + assertEquals(0, flags & Intent.FLAG_GRANT_PREFIX_URI_PERMISSION); + assertEquals(0, flags & Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + assertEquals(0, flags & Intent.FLAG_GRANT_READ_URI_PERMISSION); + } + + @Test public void testOpenAppRootWithQueryContent_matchedContent() throws Exception { final String queryContent = "query"; mActivity.intent.putExtra(Intent.EXTRA_CONTENT_QUERY, queryContent); diff --git a/tests/unit/com/android/documentsui/picker/MenuManagerTest.java b/tests/unit/com/android/documentsui/picker/MenuManagerTest.java index 8287e9f17..3e1344071 100644 --- a/tests/unit/com/android/documentsui/picker/MenuManagerTest.java +++ b/tests/unit/com/android/documentsui/picker/MenuManagerTest.java @@ -63,6 +63,7 @@ public final class MenuManagerTest { private TestMenuItem dirPasteFromClipboard; private TestMenuItem dirCreateDir; private TestMenuItem dirSelectAll; + private TestMenuItem mDirDeselectAll; private TestMenuItem dirRename; private TestMenuItem dirDelete; private TestMenuItem dirViewInOwner; @@ -82,6 +83,7 @@ public final class MenuManagerTest { private TestMenuItem actionModeShare; private TestMenuItem actionModeDelete; private TestMenuItem actionModeSelectAll; + private TestMenuItem mActionModeDeselectAll; private TestMenuItem actionModeCopyTo; private TestMenuItem actionModeExtractTo; private TestMenuItem actionModeMoveTo; @@ -99,6 +101,7 @@ public final class MenuManagerTest { private TestMenuItem optionAdvanced; private TestMenuItem optionSettings; private TestMenuItem optionSort; + private TestMenuItem mOptionLauncher; private TestMenuItem subOptionGrid; private TestMenuItem subOptionList; @@ -111,6 +114,8 @@ public final class MenuManagerTest { private DocumentInfo testDocInfo; private MenuManager mgr; + private int mFilesCount; + @Before public void setUp() { testMenu = TestMenu.create(); @@ -122,6 +127,7 @@ public final class MenuManagerTest { dirPasteFromClipboard = testMenu.findItem(R.id.dir_menu_paste_from_clipboard); dirCreateDir = testMenu.findItem(R.id.dir_menu_create_dir); dirSelectAll = testMenu.findItem(R.id.dir_menu_select_all); + mDirDeselectAll = testMenu.findItem(R.id.dir_menu_deselect_all); dirRename = testMenu.findItem(R.id.dir_menu_rename); dirDelete = testMenu.findItem(R.id.dir_menu_delete); dirViewInOwner = testMenu.findItem(R.id.dir_menu_view_in_owner); @@ -138,6 +144,7 @@ public final class MenuManagerTest { actionModeShare = testMenu.findItem(R.id.action_menu_share); actionModeDelete = testMenu.findItem(R.id.action_menu_delete); actionModeSelectAll = testMenu.findItem(R.id.action_menu_select_all); + mActionModeDeselectAll = testMenu.findItem(R.id.action_menu_deselect_all); actionModeCopyTo = testMenu.findItem(R.id.action_menu_copy_to); actionModeExtractTo = testMenu.findItem(R.id.action_menu_extract_to); actionModeMoveTo = testMenu.findItem(R.id.action_menu_move_to); @@ -154,6 +161,7 @@ public final class MenuManagerTest { optionAdvanced = testMenu.findItem(R.id.option_menu_advanced); optionSettings = testMenu.findItem(R.id.option_menu_settings); optionSort = testMenu.findItem(R.id.option_menu_sort); + mOptionLauncher = testMenu.findItem(R.id.option_menu_launcher); // Menu actions on root title row. subOptionGrid = testMenu.findItem(R.id.sub_menu_grid); @@ -162,7 +170,9 @@ public final class MenuManagerTest { selectionDetails = new TestSelectionDetails(); dirDetails = new TestDirectoryDetails(); testSearchManager = new TestSearchViewManager(); - mgr = new MenuManager(testSearchManager, state, dirDetails); + mgr = new MenuManager(testSearchManager, state, dirDetails, this::getFilesCount); + selectionDetails.size = 1; + mFilesCount = 10; testRootInfo = new RootInfo(); testDocInfo = new DocumentInfo(); @@ -170,6 +180,10 @@ public final class MenuManagerTest { state.allowMultiple = true; } + private int getFilesCount() { + return mFilesCount; + } + @Test public void testActionMenu() { mgr.updateActionMenu(testMenu, selectionDetails); @@ -178,6 +192,7 @@ public final class MenuManagerTest { actionModeShare.assertInvisible(); actionModeRename.assertInvisible(); actionModeSelectAll.assertVisible(); + mActionModeDeselectAll.assertInvisible(); actionModeViewInOwner.assertInvisible(); actionModeSort.assertVisible(); actionModeSort.assertEnabled(); @@ -221,6 +236,7 @@ public final class MenuManagerTest { mgr.updateActionMenu(testMenu, selectionDetails); actionModeSelectAll.assertInvisible(); + mActionModeDeselectAll.assertInvisible(); } @Test @@ -229,6 +245,19 @@ public final class MenuManagerTest { mgr.updateActionMenu(testMenu, selectionDetails); actionModeSelectAll.assertVisible(); + mActionModeDeselectAll.assertInvisible(); + } + + @Test + public void testActionMenu_CanDeselectAll() { + state.allowMultiple = true; + selectionDetails.size = 1; + mFilesCount = 1; + + mgr.updateActionMenu(testMenu, selectionDetails); + + actionModeSelectAll.assertInvisible(); + mActionModeDeselectAll.assertVisible(); } @Test @@ -238,8 +267,10 @@ public final class MenuManagerTest { optionAdvanced.assertInvisible(); optionAdvanced.assertTitle(R.string.menu_advanced_show); optionCreateDir.assertDisabled(); + optionDebug.assertInvisible(); optionSort.assertEnabled(); optionSort.assertVisible(); + mOptionLauncher.assertInvisible(); assertTrue(testSearchManager.showMenuCalled()); } @@ -311,10 +342,12 @@ public final class MenuManagerTest { dirDetails.canCreateDoc = false; dirDetails.canCreateDirectory = false; - mgr.updateContextMenuForContainer(testMenu); + mgr.updateContextMenuForContainer(testMenu, selectionDetails); dirSelectAll.assertVisible(); dirSelectAll.assertEnabled(); + mDirDeselectAll.assertInvisible(); + mDirDeselectAll.assertDisabled(); dirPasteFromClipboard.assertVisible(); dirPasteFromClipboard.assertDisabled(); dirCreateDir.assertVisible(); @@ -326,7 +359,7 @@ public final class MenuManagerTest { dirDetails.hasItemsToPaste = false; dirDetails.canCreateDoc = true; - mgr.updateContextMenuForContainer(testMenu); + mgr.updateContextMenuForContainer(testMenu, selectionDetails); dirSelectAll.assertVisible(); dirSelectAll.assertEnabled(); @@ -341,7 +374,7 @@ public final class MenuManagerTest { dirDetails.hasItemsToPaste = true; dirDetails.canCreateDoc = false; - mgr.updateContextMenuForContainer(testMenu); + mgr.updateContextMenuForContainer(testMenu, selectionDetails); dirSelectAll.assertVisible(); dirSelectAll.assertEnabled(); @@ -356,7 +389,7 @@ public final class MenuManagerTest { dirDetails.hasItemsToPaste = true; dirDetails.canCreateDoc = true; - mgr.updateContextMenuForContainer(testMenu); + mgr.updateContextMenuForContainer(testMenu, selectionDetails); dirSelectAll.assertVisible(); dirSelectAll.assertEnabled(); @@ -370,7 +403,7 @@ public final class MenuManagerTest { public void testContextMenu_EmptyArea_CanCreateDirectory() { dirDetails.canCreateDirectory = true; - mgr.updateContextMenuForContainer(testMenu); + mgr.updateContextMenuForContainer(testMenu, selectionDetails); dirSelectAll.assertVisible(); dirSelectAll.assertEnabled(); @@ -381,6 +414,19 @@ public final class MenuManagerTest { } @Test + public void testContextMenu_EmptyArea_CanDeselectAll() { + selectionDetails.size = 1; + mFilesCount = 1; + + mgr.updateContextMenuForContainer(testMenu, selectionDetails); + + dirSelectAll.assertInvisible(); + dirSelectAll.assertDisabled(); + mDirDeselectAll.assertVisible(); + mDirDeselectAll.assertEnabled(); + } + + @Test public void testContextMenu_OnFile() { mgr.updateContextMenuForFiles(testMenu, selectionDetails); // We don't want share in pickers. diff --git a/tests/unit/com/android/documentsui/picker/UpdatePickResultTaskTest.java b/tests/unit/com/android/documentsui/picker/UpdatePickResultTaskTest.java new file mode 100644 index 000000000..4c2fb89ae --- /dev/null +++ b/tests/unit/com/android/documentsui/picker/UpdatePickResultTaskTest.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2019 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.picker; + +import android.content.Context; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.SmallTest; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +@SmallTest +public class UpdatePickResultTaskTest { + + private UpdatePickResultTask mTask; + + @Before + public void setUp() { + Context context = InstrumentationRegistry.getInstrumentation().getTargetContext(); + mTask = new UpdatePickResultTask(context, new PickResult()); + } + + @Test + public void testSafeExcute_noCrash() throws Exception { + mTask.safeExecute(); + mTask.safeExecute(); + } +} diff --git a/tests/unit/com/android/documentsui/queries/SearchChipViewManagerTest.java b/tests/unit/com/android/documentsui/queries/SearchChipViewManagerTest.java index 03b7358af..9dbef02a7 100644 --- a/tests/unit/com/android/documentsui/queries/SearchChipViewManagerTest.java +++ b/tests/unit/com/android/documentsui/queries/SearchChipViewManagerTest.java @@ -22,7 +22,7 @@ import static org.mockito.Mockito.spy; import android.content.Context; import android.os.Bundle; - +import android.provider.DocumentsContract; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; @@ -47,7 +47,12 @@ import java.util.Set; @SmallTest public final class SearchChipViewManagerTest { - private static final String[] TEST_MIME_TYPES = new String[]{"image/*", "video/*"}; + private static final String LARGE_FILES_CHIP_MIME_TYPE = ""; + private static final String FROM_THIS_WEEK_CHIP_MIME_TYPE = ""; + private static final String[] TEST_MIME_TYPES = + new String[]{"image/*", "video/*"}; + private static final String[] TEST_OTHER_TYPES = + new String[]{LARGE_FILES_CHIP_MIME_TYPE, FROM_THIS_WEEK_CHIP_MIME_TYPE}; private static int CHIP_TYPE = 1000; private Context mContext; @@ -66,32 +71,43 @@ public final class SearchChipViewManagerTest { } @Test - public void testInitChipSets_HasCorrectValue() throws Exception { + public void testInitChipSets_hasCorrectChipCount() throws Exception { mSearchChipViewManager.initChipSets(TEST_MIME_TYPES); mSearchChipViewManager.updateChips(new String[] {"*/*"}); - assertThat(mChipGroup.getChildCount()).isEqualTo(TEST_MIME_TYPES.length); + int totalChipLength = TEST_MIME_TYPES.length + TEST_OTHER_TYPES.length; + assertThat(mChipGroup.getChildCount()).isEqualTo(totalChipLength); } @Test - public void testUpdateChips_HasCorrectValue() throws Exception { + public void testUpdateChips_hasCorrectChipCount() throws Exception { mSearchChipViewManager.updateChips(TEST_MIME_TYPES); - assertThat(mChipGroup.getChildCount()).isEqualTo(TEST_MIME_TYPES.length); + int totalChipLength = TEST_MIME_TYPES.length + TEST_OTHER_TYPES.length; + assertThat(mChipGroup.getChildCount()).isEqualTo(totalChipLength); + } + + @Test + public void testUpdateChips_withSingleMimeType_hasCorrectChipCount() throws Exception { + mSearchChipViewManager.updateChips(new String[]{"image/*"}); + + assertThat(mChipGroup.getChildCount()).isEqualTo(TEST_OTHER_TYPES.length); } @Test - public void testGetCheckedChipMimeTypes_HasCorrectValue() throws Exception { + public void testGetCheckedChipMimeTypes_hasCorrectValue() throws Exception { mSearchChipViewManager.mCheckedChipItems = getFakeSearchChipDataList(); - final String[] checkedMimeTypes = mSearchChipViewManager.getCheckedMimeTypes(); + String[] checkedMimeTypes = + mSearchChipViewManager.getCheckedChipQueryArgs() + .getStringArray(DocumentsContract.QUERY_ARG_MIME_TYPES); assertThat(MimeTypes.mimeMatches(TEST_MIME_TYPES, checkedMimeTypes[0])).isTrue(); assertThat(MimeTypes.mimeMatches(TEST_MIME_TYPES, checkedMimeTypes[1])).isTrue(); } @Test - public void testRestoreCheckedChipItems_HasCorrectValue() throws Exception { + public void testRestoreCheckedChipItems_hasCorrectValue() throws Exception { Bundle bundle = new Bundle(); bundle.putIntArray(Shared.EXTRA_QUERY_CHIPS, new int[]{2}); @@ -103,7 +119,7 @@ public final class SearchChipViewManagerTest { } @Test - public void testSaveInstanceState_HasCorrectValue() throws Exception { + public void testSaveInstanceState_hasCorrectValue() throws Exception { mSearchChipViewManager.mCheckedChipItems = getFakeSearchChipDataList(); Bundle bundle = new Bundle(); @@ -127,18 +143,18 @@ public final class SearchChipViewManagerTest { } @Test - public void testBindMirrorGroup_hideRow() throws Exception { + public void testBindMirrorGroup_showRow() throws Exception { mSearchChipViewManager.updateChips(new String[] {"image/*"}); ViewGroup mirror = spy(new LinearLayout(mContext)); mSearchChipViewManager.bindMirrorGroup(mirror); - assertThat(View.GONE).isEqualTo(mirror.getVisibility()); + assertThat(View.VISIBLE).isEqualTo(mirror.getVisibility()); } private static Set<SearchChipData> getFakeSearchChipDataList() { final Set<SearchChipData> chipDataList = new HashSet<>(); - chipDataList.add(new SearchChipData(CHIP_TYPE, 0, TEST_MIME_TYPES)); + chipDataList.add(new SearchChipData(CHIP_TYPE, 0 /* titleRes */, TEST_MIME_TYPES)); return chipDataList; } } diff --git a/tests/unit/com/android/documentsui/queries/SearchViewManagerTest.java b/tests/unit/com/android/documentsui/queries/SearchViewManagerTest.java index c4be9f3b1..265739016 100644 --- a/tests/unit/com/android/documentsui/queries/SearchViewManagerTest.java +++ b/tests/unit/com/android/documentsui/queries/SearchViewManagerTest.java @@ -26,6 +26,7 @@ import static com.android.documentsui.base.State.ACTION_GET_CONTENT; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; +import static junit.framework.Assert.assertNull; import static junit.framework.Assert.assertTrue; import static org.mockito.Mockito.mock; @@ -42,10 +43,12 @@ import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; +import com.android.documentsui.MetricConsts; import com.android.documentsui.R; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.DocumentStack; @@ -62,10 +65,13 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.HashSet; import java.util.Set; import java.util.Timer; import java.util.TimerTask; +import java.util.function.BooleanSupplier; @RunWith(AndroidJUnit4.class) @SmallTest @@ -80,6 +86,7 @@ public final class SearchViewManagerTest { private SearchChipViewManager mSearchChipViewManager; private boolean mListenerOnSearchChangedCalled; + private boolean mRecordSearch; @Before public void setUp() { @@ -116,8 +123,11 @@ public final class SearchViewManagerTest { ViewGroup chipGroup = mock(ViewGroup.class); mSearchChipViewManager = spy(new SearchChipViewManager(chipGroup)); + BooleanSupplier supplier = () -> mRecordSearch; + mRecordSearch = true; mSearchViewManager = new TestableSearchViewManager(searchListener, mTestEventHandler, - mSearchChipViewManager, null /* savedState */, mTestTimer, mTestHandler); + mSearchChipViewManager, null /* savedState */, supplier, + mTestTimer, mTestHandler); mTestMenu = TestMenu.create(); mSearchMenuItem = mTestMenu.findItem(R.id.option_menu_search); @@ -127,15 +137,18 @@ public final class SearchViewManagerTest { private static class TestableSearchViewManager extends SearchViewManager { private String mHistoryRecorded; + private boolean mIsHistoryRecorded; public TestableSearchViewManager( SearchManagerListener listener, EventHandler<String> commandProcessor, SearchChipViewManager chipViewManager, @Nullable Bundle savedState, + @NonNull BooleanSupplier pauseHistorySupplier, Timer timer, Handler handler) { - super(listener, commandProcessor, chipViewManager, savedState, timer, handler); + super(listener, commandProcessor, chipViewManager, savedState, + pauseHistorySupplier, timer, handler); } @Override @@ -146,13 +159,18 @@ public final class SearchViewManagerTest { } @Override - public void recordHistory() { + protected void recordHistoryInternal() { mHistoryRecorded = getCurrentSearch(); + mIsHistoryRecorded = true; } public String getRecordedHistory() { return mHistoryRecorded; } + + public boolean isHistoryRecorded() { + return mIsHistoryRecorded; + } } private void fastForwardTo(long timeMs) { @@ -313,6 +331,23 @@ public final class SearchViewManagerTest { } @Test + public void testHistoryRecorded_pauseRecord() { + mRecordSearch = false; + + mSearchViewManager.onClick(null); + mSearchViewManager.onQueryTextSubmit("q"); + + assertNull(mSearchViewManager.getRecordedHistory()); + } + + @Test + public void testHistoryRecorded_skipWhenNoSearchString() { + mSearchViewManager.recordHistory(); + + assertFalse(mSearchViewManager.isHistoryRecorded()); + } + + @Test public void testCheckedChipItems_IsEmptyIfSearchCanceled() throws Exception { mSearchViewManager.onClick(null); mSearchChipViewManager.mCheckedChipItems = getFakeSearchChipDataList(); @@ -349,6 +384,31 @@ public final class SearchViewManagerTest { } @Test + public void testBuildQueryArgs_hasLargeFilesSize() throws Exception { + mSearchViewManager.onClick(null); + mSearchChipViewManager.mCheckedChipItems = getFakeSearchChipDataList(); + + final Bundle queryArgs = mSearchViewManager.buildQueryArgs(); + assertFalse(queryArgs.isEmpty()); + + final long largeFilesSize = queryArgs.getLong(QUERY_ARG_FILE_SIZE_OVER); + assertEquals(10000000L, largeFilesSize); + } + + @Test + public void testBuildQueryArgs_hasWeekAgoTime() throws Exception { + mSearchViewManager.onClick(null); + mSearchChipViewManager.mCheckedChipItems = getFakeSearchChipDataList(); + + final Bundle queryArgs = mSearchViewManager.buildQueryArgs(); + assertFalse(queryArgs.isEmpty()); + + final long weekAgoTime = queryArgs.getLong(QUERY_ARG_LAST_MODIFIED_AFTER); + assertEquals(LocalDate.now().minusDays(7).atStartOfDay(ZoneId.systemDefault()) + .toInstant().toEpochMilli(), weekAgoTime); + } + + @Test public void testSupportsMimeTypesSearch_showChips() throws Exception { RootInfo root = spy(new RootInfo()); when(root.isRecents()).thenReturn(false); @@ -404,7 +464,12 @@ public final class SearchViewManagerTest { private static Set<SearchChipData> getFakeSearchChipDataList() { final Set<SearchChipData> chipDataList = new HashSet<>(); - chipDataList.add(new SearchChipData(0 /* chipType */, 0, new String[]{"image/*"})); + chipDataList.add(new SearchChipData(MetricConsts.TYPE_CHIP_IMAGES, + 0 /* titleRes */, new String[]{"image/*"})); + chipDataList.add(new SearchChipData(MetricConsts.TYPE_CHIP_LARGE_FILES, + 0 /* titleRes */, new String[]{""})); + chipDataList.add(new SearchChipData(MetricConsts.TYPE_CHIP_FROM_THIS_WEEK, + 0 /* titleRes */, new String[]{""})); return chipDataList; } } diff --git a/tests/unit/com/android/documentsui/roots/ProvidersAccessTest.java b/tests/unit/com/android/documentsui/roots/ProvidersAccessTest.java index d2022a6ea..a52f2b6cf 100644 --- a/tests/unit/com/android/documentsui/roots/ProvidersAccessTest.java +++ b/tests/unit/com/android/documentsui/roots/ProvidersAccessTest.java @@ -18,6 +18,7 @@ package com.android.documentsui.roots; import static com.google.common.collect.Lists.newArrayList; +import android.provider.DocumentsContract; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.SmallTest; @@ -67,20 +68,6 @@ public class ProvidersAccessTest extends AndroidTestCase { ProvidersAccess.getMatchingRoots(mRoots, mState)); } - public void testMatchingRoots_DirectoryCopy() throws Exception { - RootInfo downloads = buildForMimeTypes("*/*"); - downloads.authority = Providers.AUTHORITY_DOWNLOADS; - mRoots.add(downloads); - - mState.acceptMimes = new String[] { "*/*" }; - mState.directoryCopy = true; - - // basically we're asserting that the results don't contain downloads - assertContainsExactly( - newArrayList(mNull, mWild, mImages, mAudio, mDocs, mMalformed1, mMalformed2), - ProvidersAccess.getMatchingRoots(mRoots, mState)); - } - public void testMatchingRoots_PngOrWild() throws Exception { mState.acceptMimes = new String[] { "image/png", "*/*" }; assertContainsExactly( @@ -130,6 +117,28 @@ public class ProvidersAccessTest extends AndroidTestCase { ProvidersAccess.getMatchingRoots(mRoots, mState)); } + public void testDefaultRoot() { + mState.acceptMimes = new String[] { "*/*" }; + assertNull(ProvidersAccess.getDefaultRoot(mRoots, mState)); + + RootInfo downloads = buildForMimeTypes("*/*"); + downloads.authority = Providers.AUTHORITY_DOWNLOADS; + mRoots.add(downloads); + + assertEquals(downloads, ProvidersAccess.getDefaultRoot(mRoots, mState)); + } + + public void testDefaultRoot_openDocumentTree() { + RootInfo storage = buildForMimeTypes("*/*"); + storage.authority = Providers.AUTHORITY_STORAGE; + storage.flags = DocumentsContract.Root.FLAG_SUPPORTS_IS_CHILD; + mRoots.add(storage); + + mState.action = State.ACTION_OPEN_TREE; + mState.acceptMimes = new String[] { "*/*" }; + assertEquals(storage, ProvidersAccess.getDefaultRoot(mRoots, mState)); + } + public void testExcludedAuthorities() throws Exception { final List<RootInfo> roots = newArrayList(); diff --git a/tests/unit/com/android/documentsui/services/AbstractCopyJobTest.java b/tests/unit/com/android/documentsui/services/AbstractCopyJobTest.java index 7ebd3b77b..eaafb37e2 100644 --- a/tests/unit/com/android/documentsui/services/AbstractCopyJobTest.java +++ b/tests/unit/com/android/documentsui/services/AbstractCopyJobTest.java @@ -164,7 +164,7 @@ public abstract class AbstractCopyJobTest<T extends CopyJob> extends AbstractJob mDocs.writeDocument(testFile, HAM_BYTES); String testId = DocumentsContract.getDocumentId(testFile); - mClient.call("simulateReadErrorsForFile", testId, null); + mDocs.simulateReadErrorsForFile(testId, null); createJob(newArrayList(testFile)).run(); diff --git a/tests/unit/com/android/documentsui/services/AbstractJobTest.java b/tests/unit/com/android/documentsui/services/AbstractJobTest.java index bb29daad1..db77c9ca3 100644 --- a/tests/unit/com/android/documentsui/services/AbstractJobTest.java +++ b/tests/unit/com/android/documentsui/services/AbstractJobTest.java @@ -19,7 +19,6 @@ package com.android.documentsui.services; import static com.android.documentsui.StubProvider.ROOT_0_ID; import static com.android.documentsui.StubProvider.ROOT_1_ID; -import android.content.ContentProviderClient; import android.content.ContentResolver; import android.content.Context; import android.net.Uri; @@ -35,6 +34,7 @@ import com.android.documentsui.StubProvider; import com.android.documentsui.base.DocumentInfo; import com.android.documentsui.base.DocumentStack; import com.android.documentsui.base.RootInfo; +import com.android.documentsui.base.UserId; import com.android.documentsui.clipping.UrisSupplier; import com.android.documentsui.services.FileOperationService.OpType; import com.android.documentsui.testing.DocsProviders; @@ -49,9 +49,9 @@ public abstract class AbstractJobTest<T extends Job> extends AndroidTestCase { static final byte[] HAM_BYTES = "ham and cheese".getBytes(); static final byte[] FRUITY_BYTES = "I love fruit cakes!".getBytes(); + UserId mUserId; Context mContext; ContentResolver mResolver; - ContentProviderClient mClient; DocumentsProviderHelper mDocs; TestJobListener mJobListener; RootInfo mSrcRoot; @@ -70,11 +70,11 @@ public abstract class AbstractJobTest<T extends Job> extends AndroidTestCase { mJobListener = new TestJobListener(); // NOTE: Must be the "target" context, else security checks in content provider will fail. + mUserId = UserId.DEFAULT_USER; mContext = getContext(); mResolver = mContext.getContentResolver(); - mClient = mResolver.acquireContentProviderClient(AUTHORITY); - mDocs = new DocumentsProviderHelper(AUTHORITY, mClient); + mDocs = new DocumentsProviderHelper(mUserId, AUTHORITY, mContext, AUTHORITY); initTestFiles(); } @@ -82,12 +82,12 @@ public abstract class AbstractJobTest<T extends Job> extends AndroidTestCase { @Override protected void tearDown() throws Exception { resetStorage(); - mClient.release(); + mDocs.cleanUp(); super.tearDown(); } private void resetStorage() throws RemoteException { - mClient.call("clear", null, null); + mDocs.clear(null, null); } private void initTestFiles() throws RemoteException { diff --git a/tests/unit/com/android/documentsui/sidebar/RootsFragmentTest.java b/tests/unit/com/android/documentsui/sidebar/RootsFragmentTest.java index 6dd03093b..11629610e 100644 --- a/tests/unit/com/android/documentsui/sidebar/RootsFragmentTest.java +++ b/tests/unit/com/android/documentsui/sidebar/RootsFragmentTest.java @@ -26,6 +26,7 @@ import androidx.test.filters.MediumTest; import androidx.test.runner.AndroidJUnit4; import com.android.documentsui.base.RootInfo; +import com.android.documentsui.base.UserId; import com.android.documentsui.testing.TestProvidersAccess; import com.android.documentsui.testing.TestResolveInfo; @@ -51,6 +52,7 @@ public class RootsFragmentTest { TestProvidersAccess.IMAGE.title, TestProvidersAccess.VIDEO.title, TestProvidersAccess.AUDIO.title, + TestProvidersAccess.DOCUMENT.title, TestProvidersAccess.DOWNLOADS.title, "" /* SpacerItem */, TestProvidersAccess.EXTERNALSTORAGE.title, @@ -101,7 +103,7 @@ public class RootsFragmentTest { final ResolveInfo info = TestResolveInfo.create(); info.activityInfo.packageName = testPackageName; - rootList.add(new AppItem(info, TestProvidersAccess.PICKLES.title, + rootList.add(new AppItem(info, TestProvidersAccess.PICKLES.title, UserId.DEFAULT_USER, null /* actionHandler */)); rootList.add(new RootAndAppItem(TestProvidersAccess.INSPECTOR, info, null /* actionHandler */)); @@ -138,6 +140,7 @@ public class RootsFragmentTest { fakeRootInfoList.add(TestProvidersAccess.RECENTS); fakeRootInfoList.add(TestProvidersAccess.IMAGE); fakeRootInfoList.add(TestProvidersAccess.EXTERNALSTORAGE); + fakeRootInfoList.add(TestProvidersAccess.DOCUMENT); return fakeRootInfoList; } } diff --git a/tests/unit/com/android/documentsui/theme/ThemeOverlayManagerTest.java b/tests/unit/com/android/documentsui/theme/ThemeOverlayManagerTest.java index c87954d75..488f79fb2 100644 --- a/tests/unit/com/android/documentsui/theme/ThemeOverlayManagerTest.java +++ b/tests/unit/com/android/documentsui/theme/ThemeOverlayManagerTest.java @@ -18,6 +18,7 @@ package com.android.documentsui.theme; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -28,6 +29,8 @@ import android.content.Context; import android.content.Intent; import android.content.om.OverlayInfo; import android.content.om.OverlayManager; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; import android.os.UserHandle; import androidx.core.util.Consumer; @@ -58,6 +61,9 @@ public class ThemeOverlayManagerTest { @Mock OverlayManager mOverlayManager; + @Mock + PackageManager mPackageManager; + Consumer<Boolean> mCallback; Context mContext; CountDownLatch mLatch; @@ -183,6 +189,33 @@ public class ThemeOverlayManagerTest { } } + @Test + public void testGetValidOverlay_system_valid() throws Exception { + mThemeOverlayManager = new ThemeOverlayManager(mOverlayManager, + getEnabledTargetPackageId()); + + ApplicationInfo ai = mock(ApplicationInfo.class); + ai.flags |= ApplicationInfo.FLAG_SYSTEM; + when(mPackageManager.getApplicationInfo(getOverlayPackageId(), 0)).thenReturn(ai); + + assertThat(mThemeOverlayManager.getValidOverlay(mPackageManager)).isEqualTo( + mOverlayManager.getOverlayInfosForTarget(getEnabledTargetPackageId(), + mUserHandle).iterator().next()); + } + + @Test + public void testGetValidOverlay_data_invalid() throws Exception { + mThemeOverlayManager = new ThemeOverlayManager(mOverlayManager, + getEnabledTargetPackageId()); + + ApplicationInfo ai = mock(ApplicationInfo.class); + String path = "/data/app/DocumentUIOverlay/DocumentUIOverlay.apk"; + ai.sourceDir = path; + when(mPackageManager.getApplicationInfo(getOverlayPackageId(), 0)).thenReturn(ai); + + assertThat(mThemeOverlayManager.getValidOverlay(mPackageManager)).isEqualTo(null); + } + private static OverlayInfo createOverlayInfo(String packageName, String targetPackageName, boolean enabled) { return new OverlayInfo(packageName, targetPackageName, null, null, "", |