<?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">Files</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 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 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>

    <!-- 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 last modified time. [CHAR_LIMIT=18] -->
    <string name="sort_dimension_date">Modified</string>
    <!-- Table header for file size. [CHAR_LIMIT=12] -->
    <string name="sort_dimension_size">Size</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>

    <!-- 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 compress notification [CHAR LIMIT=24] -->
    <string name="compress_notification_title">Compressing 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>
    <!-- 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> 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 compressing files [CHAR LIMIT=32] -->
    <string name="compress_preparing">Preparing for compress\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>
    <!-- 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> file</item>
        <item quantity="other">Couldn\u2019t copy <xliff:g id="count" example="2">%1$d</xliff:g> files</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> 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] -->
    <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> 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 the file operation is not supported [CHAR LIMIT=48] -->
    <string name="file_operation_error">File operation is not supported.</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>
    <!-- Checkbox that allows user to not be questioned about the directory access request again -->
    <string name="never_ask_again">Don\'t ask again</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">Authentification is required to see the content of this directory</string>

    <!-- Text shown on button to open an application -->
    <string name="open_app">Open <xliff:g id="name" example="Cloud Storage">%1$s</xliff:g></string>
</resources>
