<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">

    <!-- Error when rename does not have any string-->
    <string name="missing_rename_error">You need to rename this</string>

    <!-- Error to create new folder when name is not added -->
    <string name="add_folder_name_error">You need to add a folder name</string>

    <!-- Title of the Files application [CHAR LIMIT=32] -->
    <string name="files_label">Files</string>

    <!-- Title of the Downloads application, which sometimes Files is known as [CHAR LIMIT=16] -->
    <string name="downloads_label">Downloads</string>

    <!-- Title of the documents application [CHAR LIMIT=32] -->
    <string name="app_label">@string/files_label</string>

    <!-- Title of the documents application [CHAR LIMIT=32] -->
    <string name="launcher_label">@string/files_label</string>

    <!-- Action bar title prompting user to choose a location to open a document from [CHAR LIMIT=32] -->
    <string name="title_open">Open from</string>
    <!-- Action bar title prompting user to choose a location to save a document to [CHAR LIMIT=32] -->
    <string name="title_save">Save to</string>

    <!-- Menu item that creates a new directory/folder at the current location [CHAR LIMIT=28] -->
    <string name="menu_create_dir">New folder</string>
    <!-- Menu item that switches view to show documents as a large-format grid of thumbnails [CHAR LIMIT=28] -->
    <string name="menu_grid">Grid view</string>
    <!-- Menu item that switches view to show documents as a list [CHAR LIMIT=28] -->
    <string name="menu_list">List view</string>
    <!-- Menu item that enters a mode to search for documents [CHAR LIMIT=28] -->
    <string name="menu_search">Search</string>
    <!-- Menu item that opens settings/options for a device (like an SD card). [CHAR LIMIT=28] -->
    <string name="menu_settings">Storage settings</string>

    <!-- Menu item title that opens the selected documents [CHAR LIMIT=28] -->
    <string name="menu_open">Open</string>
    <!-- Menu item title that shows a chooser to user to pick the app to open the selected documents. [CHAR LIMIT=28] -->
    <string name="menu_open_with">Open with</string>
    <!-- Menu item title that opens a doc in new window. [CHAR LIMIT=28] -->
    <string name="menu_open_in_new_window">Open in new window</string>
    <!-- Menu item title that saves the current document [CHAR LIMIT=28] -->
    <string name="menu_save">Save</string>
    <!-- Menu item title that shares the selected documents [CHAR LIMIT=28] -->
    <string name="menu_share">Share</string>
    <!-- Menu item title that deletes the selected documents [CHAR LIMIT=28] -->
    <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] -->
    <string name="menu_sort">Sort by...</string>
    <!-- Menu item title that copies the selected documents [CHAR LIMIT=28] -->
    <string name="menu_copy">Copy to\u2026</string>
    <!-- Menu item title that moves the selected documents [CHAR LIMIT=28] -->
    <string name="menu_move">Move to\u2026</string>
    <!-- Menu item title that compresses the selected documents to the current directory [CHAR LIMIT=28] -->
    <string name="menu_compress">Compress</string>
    <!-- Menu item title that extracts the selected documents [CHAR LIMIT=28] -->
    <string name="menu_extract">Extract to\u2026</string>
    <!-- Menu item that renames the selected document [CHAR LIMIT=28] -->
    <string name="menu_rename">Rename</string>
    <!-- Menu item that displays properties about the selected document [CHAR LIMIT=28] -->
    <string name="menu_inspect">Get info</string>
    <!-- Menu item that shows hidden files [CHAR LIMIT=36] -->
    <string name="menu_show_hidden_files">Show hidden files</string>
    <!-- Menu item that hides hidden files [CHAR LIMIT=36] -->
    <string name="menu_hide_hidden_files">Don\u2019t show hidden files</string>
    <!-- Menu item that renames the selected document [CHAR LIMIT=28] -->
    <string name="menu_view_in_owner">View in <xliff:g id="source" example="Google Drive">%1$s</xliff:g></string>

    <!-- Menu item title that creates a new window in the activity [CHAR LIMIT=28] -->
    <string name="menu_new_window">New window</string>
    <!-- Menu item title that cuts the selected documents to clipboard [CHAR LIMIT=28] -->
    <string name="menu_cut_to_clipboard">Cut</string>
    <!-- Menu item title that copies the selected documents to clipboard [CHAR LIMIT=28] -->
    <string name="menu_copy_to_clipboard">Copy</string>
    <!-- Menu item title that pastes files from the clipboard [CHAR LIMIT=28] -->
    <string name="menu_paste_from_clipboard">Paste</string>
    <!-- Menu item title that pastes files into the selected folder [CHAR LIMIT=28] -->
    <string name="menu_paste_into_folder">Paste into folder</string>

    <!-- Translators asked for a length exemption for the show/hide internal storage strings.
         Thus the CHAR LIMIT=24/30 deviation is 'splained. -->
    <!-- Menu item that reveals internal storage built into the device [CHAR LIMIT=30] -->
    <string name="menu_advanced_show">Show internal storage</string>
    <!-- Menu item that hides internal storage built into the device [CHAR LIMIT=30] -->
    <string name="menu_advanced_hide">Hide internal storage</string>

    <!-- Button label that select the current directory [CHAR LIMIT=24] -->
    <string name="button_select">Select</string>
    <!-- Button label that copies files to the current directory [CHAR LIMIT=24] -->
    <string name="button_copy">Copy</string>
    <!-- Button label that compresses files to the current directory [CHAR LIMIT=24] -->
    <string name="button_compress">Compress</string>
    <!-- Button label that extracts files to the current directory [CHAR LIMIT=24] -->
    <string name="button_extract">Extract</string>
    <!-- Button label that moves files to the current directory [CHAR LIMIT=24] -->
    <string name="button_move">Move</string>
    <!-- Button label that hides the error bar [CHAR LIMIT=24] -->
    <string name="button_dismiss">Dismiss</string>
    <string name="button_retry">Try Again</string>
    <!-- Button label that removes the default application to open a file. -->
    <string name="button_clear">Clear</string>
    <!-- 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>
    <!-- Table header for file name [CHAR_LIMIT=24] -->
    <string name="sort_dimension_name">Name</string>
    <!-- Table header for metadata of downloaded files, such as download source and progress. [CHAR_LIMIT=24] -->
    <string name="sort_dimension_summary">Summary</string>
    <!-- Table header for file type. [CHAR_LIMIT=12] -->
    <string name="sort_dimension_file_type">Type</string>
    <!-- Table header for file size. [CHAR_LIMIT=12] -->
    <string name="sort_dimension_size">Size</string>
    <!-- Table header for last modified time. [CHAR_LIMIT=18] -->
    <string name="sort_dimension_date">Modified</string>
    <!-- Bottom sheet list title for file name ascending [CHAR_LIMIT=42] -->
    <string name="sort_dimension_name_ascending">File name (A to Z)</string>
    <!-- Bottom sheet list title for file type name ascending [CHAR_LIMIT=42] -->
    <string name="sort_dimension_file_type_ascending">Type (A to Z)</string>
    <!-- Bottom sheet list title for size ascending [CHAR_LIMIT=42] -->
    <string name="sort_dimension_size_ascending">Size (smallest first)</string>
    <!-- Bottom sheet list title for date ascending [CHAR_LIMIT=42] -->
    <string name="sort_dimension_date_ascending">Modified (oldest first)</string>
    <!-- Bottom sheet list title for file name descending [CHAR_LIMIT=42] -->
    <string name="sort_dimension_name_descending">File name (Z to A)</string>
    <!-- Bottom sheet list title for file type name descending [CHAR_LIMIT=42] -->
    <string name="sort_dimension_file_type_descending">Type (Z to A)</string>
    <!-- Bottom sheet list title for size descending [CHAR_LIMIT=42] -->
    <string name="sort_dimension_size_descending">Size (largest first)</string>
    <!-- Bottom sheet list title for date descending [CHAR_LIMIT=42] -->
    <string name="sort_dimension_date_descending">Modified (newest first)</string>
    <!-- Bottom sheet dialog title [CHAR_LIMIT=42] -->
    <string name="sort_dimension_dialog_title">Sort by</string>
    <!-- Dropdown sort wiget button title. [CHAR_LIMIT=60] -->
    <string name="sort_dimension_button_title">Sorted by <xliff:g id="label" example="File name (A to Z)">%s</xliff:g></string>

    <!--Table header for number of items in a folder.-->
    <string name="directory_items">Number of items</string>

    <!-- content description to describe ascending sorting used with upward arrow in table header. -->
    <string name="sort_direction_ascending">Ascending</string>
    <!-- content description to describe descending sorting used with downward arrow in table header. -->
    <string name="sort_direction_descending">Descending</string>

    <!-- content description to describe the action icon to open the app on the root item. -->
    <string name="open_external_app">Open <xliff:g id="appName" example="Drive">%1$s</xliff:g></string>

    <!-- Accessibility title to open the drawer showing all roots where documents can be stored [CHAR LIMIT=32] -->
    <string name="drawer_open">Show roots</string>
    <!-- Accessibility title to close the drawer showing all roots where documents can be stored [CHAR LIMIT=32] -->
    <string name="drawer_close">Hide roots</string>

    <!-- Toast shown when saving a document failed with an error [CHAR LIMIT=48] -->
    <string name="save_error">Failed to save document</string>
    <!-- Toast shown when creating a folder failed with an error [CHAR LIMIT=48] -->
    <string name="create_error">Failed to create folder</string>
    <!-- Error message shown when querying for a list of documents failed [CHAR LIMIT=48] -->
    <string name="query_error">Can\u2019t load content at the moment</string>

    <!-- Title of an error message. This screen is shown when the user's work profile is paused. [CHAR LIMIT=72] -->
    <string name="quiet_mode_error_title">Work apps are paused</string>
    <!-- Button text shown on a button when work profile is paused. Tapping the button will switch on the work profile [CHAR LIMIT=48] -->
    <string name="quiet_mode_button">Turn on work apps</string>

    <!-- Title of an error message. This screen is shown when the selected profile is paused. [CHAR LIMIT=72] -->
    <string name="profile_quiet_mode_error_title">
        <xliff:g id="profile" example="Work">%1$s</xliff:g> apps are paused
    </string>
    <!-- Button text shown on a button when selected profile is paused. Tapping the button will switch on the selected profile [CHAR LIMIT=48] -->
    <string name="profile_quiet_mode_button">
        Turn on <xliff:g id="profile" example="work">%1$s</xliff:g> apps
    </string>

    <!-- Error message title shown when a user's IT admin does not allow the user to select work files from a personal app. [CHAR LIMIT=72] -->
    <string name="cant_select_work_files_error_title">Can\u2019t select work files</string>
    <!-- Error message that's shown when the user's IT admin doesn't allow the user to select work files from a personal app. [CHAR LIMIT=200] -->
    <string name="cant_select_work_files_error_message">Your IT admin doesn\u2019t allow you to
        access work files from a personal app
    </string>

    <!-- Error message title shown when the user's IT admin doesn't allow them to select personal files from a work app. [CHAR LIMIT=72] -->
    <string name="cant_select_personal_files_error_title">Can\u2019t select personal files</string>
    <!-- Error message that's shown when the user's IT admin doesn't allow the user to select personal files from a work app. [CHAR LIMIT=200] -->
    <string name="cant_select_personal_files_error_message">Your IT admin doesn\u2019t allow you to
        access personal files from a work app
    </string>

    <!-- Error message title shown when a user's cross profile setting does not allow the user to select one profile's files from another profile app. [CHAR LIMIT=72] -->
    <string name="cant_select_cross_profile_files_error_title">Can\u2019t select
        <xliff:g id="profile" example="work">%1$s</xliff:g> files
    </string>
    <!-- Error message that's shown when the user's cross profile setting doesn't allow the user to select one profile's files from another profile app. [CHAR LIMIT=200] -->
    <string name="cant_select_cross_profile_files_error_message">Your IT admin doesn\u2019t allow
        you to access <xliff:g id="profile" example="work">%1$s</xliff:g> files from a
        <xliff:g id="profile" example="personal">%2$s</xliff:g> app
    </string>

    <!-- Error message title shown when the admin does not allow the user to save files from their personal profile to their work profile. [CHAR LIMIT=72] -->
    <string name="cant_save_to_work_error_title">Can\u2019t save to work profile</string>
    <!-- Error message shown when the user's IT admin doesn't allow the user to save files from their personal profile to their work profile. [CHAR LIMIT=200] -->
    <string name="cant_save_to_work_error_message">Your IT admin doesn\u2019t allow you to save
        personal files to your work profile
    </string>

    <!-- Error message title shown when the admin does not allow the user to save files from their work profile to their personal profile. [CHAR LIMIT=72] -->
    <string name="cant_save_to_personal_error_title">Can\u2019t save to personal profile</string>
    <!-- Error message shown when the user's IT admin doesn't allow the user to save files from their work profile to their personal profile. [CHAR LIMIT=200] -->
    <string name="cant_save_to_personal_error_message">Your IT admin doesn\u2019t allow you to save
        work files to your personal profile
    </string>

    <!-- Error message title shown when the user's cross profile setting does not allow the user to save files from one profile to another profile. [CHAR LIMIT=72] -->
    <string name="cant_save_to_cross_profile_error_title">Can\u2019t save to
        <xliff:g id="profile" example="work">%1$s</xliff:g> profile
    </string>
    <!-- Error message shown when the user's cross profile setting doesn't allow the user to save files from one profile to another profile. [CHAR LIMIT=200] -->
    <string name="cant_save_to_cross_profile_error_message">Your IT admin doesn\u2019t allow you to
        save <xliff:g id="profile" example="personal">%1$s</xliff:g> files to your
        <xliff:g id="profile" example="work">%2$s</xliff:g> profile
    </string>

    <!-- Error message title. This message is shown when a user tries to do something on their work device, but that action isn't allowed by their IT admin. [CHAR LIMIT=72] -->
    <string name="cross_profile_action_not_allowed_title">This action isn\u2019t allowed</string>
    <!-- Error message. This message is shown when a user tries to do something on their work device, but that action isn't allowed by their IT admin. [CHAR LIMIT=200] -->
    <string name="cross_profile_action_not_allowed_message">To learn more, contact your IT admin</string>

    <!-- Title of storage root location that contains recently modified or used documents [CHAR LIMIT=24] -->
    <string name="root_recent">Recent</string>
    <!-- Subtitle of storage root indicating the total free space available, in bytes [CHAR LIMIT=24] -->
    <string name="root_available_bytes"><xliff:g id="size" example="3GB">%1$s</xliff:g> free</string>

    <!-- Header title for list of storage roots that contains cloud services [CHAR LIMIT=24] -->
    <string name="root_type_service">Storage services</string>
    <!-- Header title for list of storage roots that contains shortcuts to documents that may be available elsewhere [CHAR LIMIT=24] -->
    <string name="root_type_shortcut">Shortcuts</string>
    <!-- Header title for list of storage roots that contains physical devices [CHAR LIMIT=24] -->
    <string name="root_type_device">Devices</string>
    <!-- Header title for list of additional apps that can provide documents [CHAR LIMIT=24] -->
    <string name="root_type_apps">More apps</string>

    <!-- Text shown when a directory of documents is empty [CHAR LIMIT=24] -->
    <string name="empty">No items</string>
    <!-- Text shown when a file search returns no items [CHAR LIMIT=32] -->
    <string name="no_results">No matches in %1$s</string>

    <!-- Toast shown when no app can be found to open the selected document [CHAR LIMIT=48] -->
    <string name="toast_no_application">Can\u2019t open file</string>
    <!-- Toast notifying that it's impossible to open files inside archives [CHAR LIMIT=48] -->
    <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>

    <!-- Toast shown when a document is not allowed to share across users. This is a last-resort toast and not expected to be shown. [CHAR LIMIT=48] -->
    <string name="toast_action_not_allowed">Action not allowed</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>

    <!-- Title of the copy notification [CHAR LIMIT=24] -->
    <string name="copy_notification_title">Copying files</string>
    <!-- Title of the compress notification [CHAR LIMIT=24] -->
    <string name="compress_notification_title">Compressing files</string>
    <!-- Title of the extract notification [CHAR LIMIT=24] -->
    <string name="extract_notification_title">Extracting files</string>
    <!-- Title of the move notification [CHAR LIMIT=24] -->
    <string name="move_notification_title">Moving files</string>
    <!-- Title of the move notification [CHAR LIMIT=24] -->
    <string name="delete_notification_title">Deleting files</string>
    <!-- Text shown on the copy notification to indicate remaining time, in minutes [CHAR LIMIT=24] -->
    <string name="copy_remaining"><xliff:g id="duration" example="3 minutes">%s</xliff:g> left</string>
    <!-- Toast shown when a file copy is kicked off -->
    <plurals name="copy_begin">
        <item quantity="one">Copying <xliff:g id="count" example="1">%1$d</xliff:g> item.</item>
        <item quantity="other">Copying <xliff:g id="count" example="3">%1$d</xliff:g> items.</item>
    </plurals>
    <!-- Toast shown when a file compressing is kicked off -->
    <plurals name="compress_begin">
        <item quantity="one">Compressing <xliff:g id="count" example="1">%1$d</xliff:g> file.</item>
        <item quantity="other">Compressing <xliff:g id="count" example="3">%1$d</xliff:g> files.</item>
    </plurals>
    <!-- Toast shown when a file extracting is kicked off -->
    <plurals name="extract_begin">
        <item quantity="one">Extracting <xliff:g id="count" example="1">%1$d</xliff:g> file.</item>
        <item quantity="other">Extracting <xliff:g id="count" example="3">%1$d</xliff:g> files.</item>
    </plurals>
    <!-- Toast shown when a file move is kicked off -->
    <plurals name="move_begin">
        <item quantity="one">Moving <xliff:g id="count" example="1">%1$d</xliff:g> item.</item>
        <item quantity="other">Moving <xliff:g id="count" example="3">%1$d</xliff:g> items.</item>
    </plurals>
    <!-- Text shown when files are deleted -->
    <plurals name="deleting">
        <item quantity="one">Deleting <xliff:g id="count" example="1">%1$d</xliff:g> item.</item>
        <item quantity="other">Deleting <xliff:g id="count" example="3">%1$d</xliff:g> items.</item>
    </plurals>
    <!-- Text shown for the undo button -->
    <string name="undo">Undo</string>
    <!-- Text shown on the notification while DocumentsUI performs setup in preparation for copying files [CHAR LIMIT=32] -->
    <string name="copy_preparing">Preparing...</string>
    <!-- Text shown on the notification while DocumentsUI performs setup in preparation for compressing files [CHAR LIMIT=32] -->
    <string name="compress_preparing">Preparing...</string>
    <!-- Text shown on the notification while DocumentsUI performs setup in preparation for extracting files [CHAR LIMIT=32] -->
    <string name="extract_preparing">Preparing...</string>
    <!-- Text shown on the notification while DocumentsUI performs setup in preparation for moving files [CHAR LIMIT=32] -->
    <string name="move_preparing">Preparing...</string>
    <!-- Text shown on the notification while DocumentsUI performs setup in preparation for deleting files [CHAR LIMIT=32] -->
    <string name="delete_preparing">Preparing...</string>
    <!-- Text progress shown on the notification while DocumentsUI is deleting files. -->
    <string name="delete_progress"><xliff:g id="count" example="3">%1$d</xliff:g> / <xliff:g id="totalCount" example="5">%2$d</xliff:g></string>
    <!-- Title of the copy error notification [CHAR LIMIT=48] -->
    <plurals name="copy_error_notification_title">
        <item quantity="one">Couldn\u2019t copy <xliff:g id="count" example="1">%1$d</xliff:g> item</item>
        <item quantity="other">Couldn\u2019t copy <xliff:g id="count" example="2">%1$d</xliff:g> items</item>
    </plurals>
    <!-- Title of the compress error notification [CHAR LIMIT=48] -->
    <plurals name="compress_error_notification_title">
        <item quantity="one">Couldn\u2019t compress <xliff:g id="count" example="1">%1$d</xliff:g> file</item>
        <item quantity="other">Couldn\u2019t compress <xliff:g id="count" example="2">%1$d</xliff:g> files</item>
    </plurals>
    <!-- Title of the move error notification [CHAR LIMIT=48] -->
    <plurals name="move_error_notification_title">
        <item quantity="one">Couldn\u2019t move <xliff:g id="count" example="1">%1$d</xliff:g> item</item>
        <item quantity="other">Couldn\u2019t move <xliff:g id="count" example="2">%1$d</xliff:g> items</item>
    </plurals>
    <!-- Title of the delete error notification [CHAR LIMIT=48] -->
    <plurals name="delete_error_notification_title">
        <item quantity="one">Couldn\u2019t delete <xliff:g id="count" example="1">%1$d</xliff:g> item</item>
        <item quantity="other">Couldn\u2019t delete <xliff:g id="count" example="2">%1$d</xliff:g> items</item>
    </plurals>
    <!-- Second line for notifications saying that more information will be shown after touching [CHAR LIMIT=48] -->
    <string name="notification_touch_for_details">Tap to view details</string>
    <!-- Label of the close dialog button.[CHAR LIMIT=24] -->
    <string name="close">Close</string>
    <!-- Contents of the copying failure alert dialog. [CHAR LIMIT=48] -->
    <plurals name="copy_failure_alert_content">
        <item quantity="one">This file wasn\u2019t copied: <xliff:g id="list" example="Document.pdf">%1$s</xliff:g></item>
        <item quantity="other">These files weren\u2019t copied: <xliff:g id="list" example="Document.pdf, Photo.jpg, Song.ogg">%1$s</xliff:g></item>
    </plurals>
    <!-- Contents of the compressing failure alert dialog. [CHAR LIMIT=48] -->
    <plurals name="compress_failure_alert_content">
        <item quantity="one">This file wasn\u2019t compressed: <xliff:g id="list" example="Document.pdf">%1$s</xliff:g></item>
        <item quantity="other">These files weren\u2019t compressed: <xliff:g id="list" example="Document.pdf, Photo.jpg, Song.ogg">%1$s</xliff:g></item>
    </plurals>
    <!-- Contents of the extracting failure alert dialog. [CHAR LIMIT=48] -->
    <plurals name="extract_failure_alert_content">
        <item quantity="one">This file wasn\u2019t extracted: <xliff:g id="list" example="Document.pdf">%1$s</xliff:g></item>
        <item quantity="other">These files weren\u2019t extracted: <xliff:g id="list" example="Document.pdf, Photo.jpg, Song.ogg">%1$s</xliff:g></item>
    </plurals>
    <!-- Contents of the moving failure alert dialog. [CHAR LIMIT=48] -->
    <plurals name="move_failure_alert_content">
        <item quantity="one">This file wasn\u2019t moved: <xliff:g id="list" example="Document.pdf">%1$s</xliff:g></item>
        <item quantity="other">These files weren\u2019t moved: <xliff:g id="list" example="Document.pdf, Photo.jpg, Song.ogg">%1$s</xliff:g></item>
    </plurals>
    <!-- Contents of the deleting failure alert dialog. [CHAR LIMIT=48] -->
    <plurals name="delete_failure_alert_content">
        <item quantity="one">This file wasn\u2019t deleted: <xliff:g id="list" example="Document.pdf">%1$s</xliff:g></item>
        <item quantity="other">These files weren\u2019t deleted: <xliff:g id="list" example="Document.pdf, Photo.jpg, Song.ogg">%1$s</xliff:g></item>
    </plurals>
    <!-- Contents of the copying warning dialog due to converted files. [CHAR LIMIT=64] -->
    <plurals name="copy_converted_warning_content">
        <item quantity="one">This file was converted to another format: <xliff:g id="list" example="Document.pdf">%1$s</xliff:g></item>
        <item quantity="other">These files were converted to another format: <xliff:g id="list" example="Document.pdf, Photo.jpg, Song.ogg">%1$s</xliff:g></item>
    </plurals>
    <!-- Toast shown when a user copies files to clipboard. -->
    <plurals name="clipboard_files_clipped">
        <item quantity="one">Copied <xliff:g id="count" example="1">%1$d</xliff:g> item to clipboard.</item>
        <item quantity="other">Copied <xliff:g id="count" example="3">%1$d</xliff:g> items to clipboard.</item>
    </plurals>
    <!-- Toast shown when the file operation is not supported [CHAR LIMIT=48] -->
    <string name="file_operation_rejected">File operation is not supported.</string>
    <!-- Toast shown when the file operation is not supported [CHAR LIMIT=48] -->
    <string name="file_operation_error">File operation failed.</string>
    <!-- Toast shown when renaming document failed with an error [CHAR LIMIT=48] -->
    <string name="rename_error">Failed to rename document</string>
    <!-- Context Menu item that ejects the root selected [CHAR LIMIT=24] -->
    <string name="menu_eject_root">Eject</string>
    <!-- First line for notifications saying that some files were converted to a different format
         during a copy. [CHAR LIMIT=48] -->
    <string name="notification_copy_files_converted_title">Some files were converted</string>

    <!-- Text in an alert dialog asking user to grant app access to a given directory in an external storage volume -->
    <string name="open_external_dialog_request">Grant <xliff:g id="appName" example="System Settings"><b>^1</b></xliff:g>
        access to <xliff:g id="directory" example="Pictures"><i>^2</i></xliff:g> directory on
        <xliff:g id="storage" example="SD Card"><i>^3</i></xliff:g>?</string>
    <!-- Text in an alert dialog asking user to grant app access to a given directory in the internal storage -->
    <string name="open_external_dialog_request_primary_volume">Grant <xliff:g id="appName" example="System Settings"><b>^1</b></xliff:g>
        access to <xliff:g id="directory" example="Pictures"><i>^2</i></xliff:g> directory?</string>
    <!-- Text in an alert dialog asking user to grant app access to all data in an external storage volume -->
    <string name="open_external_dialog_root_request">Grant <xliff:g id="appName" example="System Settings"><b>^1</b></xliff:g>
        access to your data, including photos and videos, on <xliff:g id="storage" example="SD Card"><i>^2</i></xliff:g>?</string>
    <!-- Text in the button asking user to allow access to a given directory. -->
    <string name="allow">Allow</string>
    <!-- Text in the button asking user to deny access to a given directory. -->
    <string name="deny">Deny</string>
    <!-- Dialog text shown to users when asking if they want to delete files (a confirmation). -->
    <!-- Label text showing user how many items are selected. Can be one or more elements. -->
    <plurals name="elements_selected">
        <item quantity="one"><xliff:g id="count" example="1">%1$d</xliff:g> selected</item>
        <item quantity="other"><xliff:g id="count" example="3">%1$d</xliff:g> selected</item>
    </plurals>

    <!-- Label text showing user how many items are being dragged. Can be one or more elements. -->
    <plurals name="elements_dragged">
        <item quantity="one"><xliff:g id="count" example="1">%1$d</xliff:g> item</item>
        <item quantity="other"><xliff:g id="count" example="3">%1$d</xliff:g> items</item>
    </plurals>

    <!-- Dialog text shown to users when asking if they want to delete a file (a confirmation) -->
    <string name="delete_filename_confirmation_message">Delete \"<xliff:g id="name" example="cat.jpg">%1$s</xliff:g>\"?</string>
    <!-- Dialog text shown to users when asking if they want to delete a folder (a confirmation) -->
    <string name="delete_foldername_confirmation_message">Delete folder \"<xliff:g id="name" example="Photos">%1$s</xliff:g>\" and its contents?</string>
    <!-- Dialog text shown to users when asking if they want to delete files (a confirmation). -->
    <plurals name="delete_files_confirmation_message">
        <item quantity="one">Delete <xliff:g id="count" example="1">%1$d</xliff:g> file?</item>
        <item quantity="other">Delete <xliff:g id="count" example="3">%1$d</xliff:g> files?</item>
    </plurals>
    <!-- Dialog text shown to users when asking if they want to delete folders (a confirmation). -->
    <plurals name="delete_folders_confirmation_message">
        <item quantity="one">Delete <xliff:g id="count" example="1">%1$d</xliff:g> folder and its contents?</item>
        <item quantity="other">Delete <xliff:g id="count" example="3">%1$d</xliff:g> folders and their contents?</item>
    </plurals>
    <!-- Dialog text shown to users when asking if they want to delete mixed type items: files and folders (a confirmation). -->
    <plurals name="delete_items_confirmation_message">
        <item quantity="one">Delete <xliff:g id="count" example="1">%1$d</xliff:g> item?</item>
        <item quantity="other">Delete <xliff:g id="count" example="3">%1$d</xliff:g> items?</item>
    </plurals>

    <!-- Shortcut label of Images root folder -->
    <string name="images_shortcut_label">Images</string>

    <!-- Error message shown when an archive fails to load -->
    <string name="archive_loading_failed">Unable to open archive for browsing. File is either corrupt, or an unsupported format.</string>

    <!-- Error message displayed in rename dialog when there is a conflict with an existing file. -->
    <string name="name_conflict">A file with this name already exists.</string>

    <!-- Error message shown when more authentication is necessary to view files  -->
    <string name="authentication_required">To view this directory, sign in to <xliff:g id="name" example="Cloud Storage">%1$s</xliff:g></string>

    <!-- Error message shown when content cannot be displayed due to lack of authentication -->
    <string name="cant_display_content">Can\u2019t display contents</string>

    <!-- Text shown on button to open an application that needs user to sign in -->
    <string name="sign_in">Sign in</string>

    <!-- File name of an archive file created when compressing files, without the file extension (.zip). -->
    <string name="new_archive_file_name">archive<xliff:g id="extension" example=".zip">%s</xliff:g></string>

    <!-- Dialog text shown when confirming if they want to overwrite a file -->
    <string name="overwrite_file_confirmation_message">Overwrite <xliff:g id="name" example="foobar.txt">%1$s</xliff:g>?</string>

    <!-- Button for continuing a file operation in background, eg. copying, moving or extracting. [CHAR LIMIT=48] -->
    <string name="continue_in_background">Continue in background</string>

    <!-- Label describing the number of selected items [CHAR LIMIT=48] -->
    <plurals name="selected_count">
        <item quantity="one"><xliff:g id="count" example="1">%1$d</xliff:g> selected</item>
        <item quantity="other"><xliff:g id="count" example="3">%1$d</xliff:g> selected</item>
    </plurals>

    <!-- Header title for list of documents in recent root. [CHAR_LIMIT=60] -->
    <string name="root_info_header_recent">Recent files</string>
    <!-- Header title for list of documents in global searching. [CHAR_LIMIT=60] -->
    <string name="root_info_header_global_search">Files</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] -->
    <string name="root_info_header_app_with_summary">Files from <xliff:g id="label" example="Drive">%1$s</xliff:g> / <xliff:g id="summary" example="example@com">%2$s</xliff:g></string>
    <!-- On photo picking state, the header title for list of documents in recent root. [CHAR_LIMIT=60] -->
    <string name="root_info_header_image_recent">Recent images</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</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] -->
    <string name="root_info_header_image_app_with_summary">Images from <xliff:g id="label" example="Drive">%1$s</xliff:g> / <xliff:g id="summary" example="example@com">%2$s</xliff:g></string>

    <!-- Title for images chip. [CHAR_LIMIT=25] -->
    <string name="chip_title_images">Images</string>
    <!-- Title for audio chip. [CHAR_LIMIT=25] -->
    <string name="chip_title_audio">Audio</string>
    <!-- Title for videos chip. [CHAR_LIMIT=25] -->
    <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>
    <!-- Hint on text input field for rename the file or the folder. [CHAR_LIMIT=48] -->
    <string name="input_hint_rename">New name</string>

    <!-- Content description for preview function. -->
    <string name="preview_file">Preview the file <xliff:g id="fileName" example="example.jpg">%1$s</xliff:g></string>
    <!-- Content description text that's spoken by a screen reader. This text is for previewing a work file before opening it. -->
    <string name="preview_work_file">Preview the work file <xliff:g id="fileName" example="example.jpg">%1$s</xliff:g></string>
    <!-- Content description text that's spoken by a screen reader. This text is for previewing a private file before opening it. -->
    <string name="preview_cross_profile_file">Preview the <xliff:g id="profile" example="work">%1$s</xliff:g> file <xliff:g id="fileName" example="example.jpg">%2$s</xliff:g></string>

    <!-- Apps row title. [CHAR_LIMIT=60] -->
    <string name="apps_row_title">Browse files in other apps</string>

    <!-- 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">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">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>
    <!-- Header message title show on open document tree flow when directory is blocked. [CHAR_LIMIT=48] -->
    <string name="directory_blocked_header_title">Can\u2019t use this folder</string>
    <!-- Header message subtitle show on open document tree flow when directory is blocked. [CHAR_LIMIT=90]-->
    <string name="directory_blocked_header_subtitle">To protect your privacy, choose another folder</string>
    <!-- Button text for the "create new folder" button. [CHAR_LIMIT=48] -->
    <string name="create_new_folder_button">Create new folder</string>


    <!-- Search hint on search view. [CHAR LIMIT=48] -->
    <string name="search_bar_hint">Search this device</string>

    <!-- Content description for deleting search history. [CHAR_LIMIT=60] -->
    <string name="delete_search_history">Delete search history <xliff:g id="text" example="image">%1$s</xliff:g></string>

    <!-- Label in tab and sidebar to indicate personal content [CHAR LIMIT=40] -->
    <string name="personal_tab">Personal</string>

    <!-- Label in tab and sidebar tab to indicate work content [CHAR LIMIT=40] -->
    <string name="work_tab">Work</string>

    <!-- Accessibility label to indicate the subject(e.g. file/folder) is from work profile -->
    <string name="a11y_work">Work</string>

    <!-- Snackbar shown when users drag and drop files from another app
    to DocumentsUI. [CHAR_LIMIT=100] -->
    <string name="drag_from_another_app">You can\u2019t move files from another app.</string>

    <!-- Accessibility announcement when switching to grid mode of files and directories shown. [CHAR_LIMIT=100] -->
    <string name="grid_mode_showing">Showing in grid mode.</string>

    <!-- Accessibility announcement when switching to list mode of files and directories shown. [CHAR_LIMIT=100] -->
    <string name="list_mode_showing">Showing in list mode.</string>

</resources>
