<?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">
    <!-- Title of the documents application [CHAR LIMIT=32] -->
    <string name="app_label">Documents</string>

    <!-- Title of the standalone files activity. [CHAR LIMIT=32] -->
    <string name="files_label">Files</string>

    <!-- Title of the standalone downloads activity. [CHAR LIMIT=32] -->
    <string name="downloads_label">Downloads</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=24] -->
    <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=24] -->
    <string name="menu_grid">Grid view</string>
    <!-- Menu item that switches view to show documents as a list [CHAR LIMIT=24] -->
    <string name="menu_list">List view</string>
    <!-- Menu item that switches the criteria with which documents are sorted [CHAR LIMIT=24] -->
    <string name="menu_sort">Sort by</string>
    <!-- Menu item that enters a mode to search for documents [CHAR LIMIT=24] -->
    <string name="menu_search">Search</string>
    <!-- Menu item that enters activity to change settings for current root [CHAR LIMIT=24] -->
    <string name="menu_settings">Storage settings</string>

    <!-- Menu item title that opens the selected documents [CHAR LIMIT=24] -->
    <string name="menu_open">Open</string>
    <!-- Menu item title that saves the current document [CHAR LIMIT=24] -->
    <string name="menu_save">Save</string>
    <!-- Menu item title that shares the selected documents [CHAR LIMIT=24] -->
    <string name="menu_share">Share</string>
    <!-- Menu item title that deletes the selected documents [CHAR LIMIT=24] -->
    <string name="menu_delete">Delete</string>
    <!-- Menu item title that selects all documents in the current directory [CHAR LIMIT=24] -->
    <string name="menu_select_all">Select all</string>
    <!-- Menu item title that copies the selected documents [CHAR LIMIT=24] -->
    <string name="menu_copy">Copy to\u2026</string>
    <!-- Menu item title that moves the selected documents [CHAR LIMIT=24] -->
    <string name="menu_move">Move to\u2026</string>

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

    <!-- Menu item that reveals internal storage built into the device [CHAR LIMIT=24] -->
    <string name="menu_advanced_show">Show internal storage</string>
    <!-- Menu item that hides internal storage built into the device [CHAR LIMIT=24] -->
    <string name="menu_advanced_hide">Hide internal storage</string>

    <!-- Menu item that reveals the sizes of displayed files [CHAR LIMIT=24] -->
    <string name="menu_file_size_show">Show file size</string>
    <!-- Menu item that hides the sizes of displayed files [CHAR LIMIT=24] -->
    <string name="menu_file_size_hide">Hide file size</string>

    <!-- Button label that 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 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>

    <!-- Mode that sorts documents by their display name alphabetically [CHAR LIMIT=24] -->
    <string name="sort_name">By name</string>
    <!-- Mode that sorts documents by their last modified time in descending order; most recent first [CHAR LIMIT=24] -->
    <string name="sort_date">By date modified</string>
    <!-- Mode that sorts documents by their file size in descending order; largest first [CHAR LIMIT=24] -->
    <string name="sort_size">By size</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 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 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>

    <!-- 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 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> file.</item>
        <item quantity="other">Copying <xliff:g id="count" example="3">%1$d</xliff:g> files.</item>
    </plurals>
    <plurals name="move_begin">
        <item quantity="one">Moving <xliff:g id="count" example="1">%1$d</xliff:g> file.</item>
        <item quantity="other">Moving <xliff:g id="count" example="3">%1$d</xliff:g> files.</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> file.</item>
        <item quantity="other">Deleting <xliff:g id="count" example="3">%1$d</xliff:g> files.</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 for copy\u2026</string>
    <!-- Text shown on the notification while DocumentsUI performs setup in preparation for moving files [CHAR LIMIT=32] -->
    <string name="move_preparing">Preparing for move\u2026</string>
    <!-- Text shown on the notification while DocumentsUI performs setup in preparation for deleting files [CHAR LIMIT=32] -->
    <string name="delete_preparing">Preparing for delete\u2026</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> file</item>
        <item quantity="other">Couldn\u2019t copy <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> file</item>
        <item quantity="other">Couldn\u2019t move <xliff:g id="count" example="2">%1$d</xliff:g> files</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> file</item>
        <item quantity="other">Couldn\u2019t delete <xliff:g id="count" example="2">%1$d</xliff:g> files</item>
    </plurals>
    <!-- Second line for notifications saying that more information will be shown after touching [CHAR LIMIT=48] -->
    <string name="notification_touch_for_details">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] -->
    <string name="copy_failure_alert_content">These files weren\u2019t copied: <xliff:g id="list">%1$s</xliff:g></string>
    <!-- Contents of the moving failure alert dialog. [CHAR LIMIT=48] -->
    <string name="move_failure_alert_content">These files weren\u2019t moved: <xliff:g id="list">%1$s</xliff:g></string>
    <!-- Contents of the copying warning dialog due to converted files. [CHAR LIMIT=64] -->
    <string name="copy_converted_warning_content">These files were converted to another format: <xliff:g id="list" example="Document.pdf, Photo.jpg, Song.ogg">%1$s</xliff:g></string>
    <!-- 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> file to clipboard.</item>
        <item quantity="other">Copied <xliff:g id="count" example="3">%1$d</xliff:g> files to clipboard.</item>
    </plurals>
    <!-- Toast shown when a user tries to paste files into an unsupported location. -->
    <string name="clipboard_files_cannot_paste">Cannot paste the selected files in this location.</string>
    <!-- Menu item that renames the selected document [CHAR LIMIT=24] -->
    <string name="menu_rename">Rename</string>
    <!-- Toast shown when renaming document failed with an error [CHAR LIMIT=48] -->
    <string name="rename_error">Failed to rename document</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>

    <!--  DO NOT TRANSLATE - final phrase has not been decided yet (b/26750152) -->
    <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> folder on
        <xliff:g id="storage" example="SD Card"><i>^3</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 title shown to users when asking if they want to delete files (a confirmation). -->
    <string name="delete_confirmation_title">Delete files?</string>
    <!-- Dialog text shown to users when asking if they want to delete files (a confirmation). -->
    <plurals name="delete_confirmation_message">
        <item quantity="one">Are you sure you want to delete <xliff:g id="count" example="1">%1$d</xliff:g> file?</item>
        <item quantity="other">Are you sure you want to delete <xliff:g id="count" example="3">%1$d</xliff:g> files?</item>
    </plurals>
</resources>
