<?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> 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 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> 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 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_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 Documents root folder -->
    <string name="documents_shortcut_label">Documents</string>
    <!-- Shortcut label of Downloads root folder -->
    <string name="downloads_shortcut_label">Downloads</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>

    <!-- 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>
</resources>
