<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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">
    <string name="app_name">Storage Manager</string>

    <!-- Button label for generic cancel action [CHAR LIMIT=20] -->
    <string name="cancel">Cancel</string>
    <!-- Storage setting. Menu option for using the deletion helper. [CHAR LIMIT=30] -->
    <string name="storage_menu_free">Free up space</string>
    <!-- Activity title for deletion helper. [CHAR LIMIT=25] -->
    <string name="deletion_helper_title">Remove items</string>
    <!-- Summary of how much storage an app is using and the number of days since last use. [CHAR LIMIT=NONE]-->
    <string name="deletion_helper_app_summary"><xliff:g id="days" example="67">%1$d</xliff:g> days ago</string>
    <!-- Value indicating how much space this item takes up on disk -->
    <string name="deletion_helper_app_summary_item_size"><xliff:g id="used" example="1.2GB">%1$s</xliff:g></string>
    <!-- Summary of how much storage an app is using when it has not been used in the last year. [CHAR LIMIT=NONE]-->
    <string name="deletion_helper_app_summary_never_used">Not used in last year</string>
    <!-- Summary of how much storage an app is using when its last use is unknown. [CHAR LIMIT=NONE]-->
    <string name="deletion_helper_app_summary_unknown_used">Not sure when last used</string>
    <!-- Button which clears out storage in the deletion helper. [CHAR LIMIT=60]-->
    <string name="deletion_helper_free_button">Free up <xliff:g id="freeable" example="1.2GB">%1$s</xliff:g></string>

    <!-- Preference group title for the photos and videos deletion service. [CHAR LIMIT=40]-->
    <string name="deletion_helper_photos_title">Backed up photos &amp; videos</string>

    <!-- Summary string describing at least how old the photos must be in order to show in deletion helper [CHAR LIMIT=40]-->
    <string name="deletion_helper_photos_age_summary">Over 30 days old</string>

    <!-- Summary of how much backed up storage that photos and videos service can clear from the local device. [CHAR LIMIT=NONE]-->
    <string name="deletion_helper_photos_summary"><xliff:g id="used" example="1.2GB">%1$s</xliff:g></string>

    <!-- Preference title for the downloads deletion service. [CHAR LIMIT=40]-->
    <string name="deletion_helper_downloads_title">Downloads</string>

    <!-- Summary of how much stale data can be cleared from the local download folder. [CHAR LIMIT=NONE]-->
    <string name="deletion_helper_downloads_category_summary"><xliff:g id="used" example="1.2GB">%1$s</xliff:g></string>

    <!-- Summary for when when there is nothing in the downloads folder to clear. [CHAR LIMIT=NONE]-->
    <string name="deletion_helper_downloads_summary_empty"><xliff:g id="used" example="1.2GB">%1$s</xliff:g></string>

    <!-- Title of dialog warn the user before clearing space in the deletion helper. [CHAR LIMIT=NONE] -->
    <string name="deletion_helper_clear_dialog_title">Free up space</string>

    <!-- Message to warn the user before clearing space in the deletion helper. [CHAR LIMIT=NONE] -->
    <string name="deletion_helper_clear_dialog_message"><xliff:g id="clearable_bytes" example="1.2GB">%1$s</xliff:g> of content will be removed from your device</string>

    <!-- Button label for the dialog prompt for clearing data in deletion helper. [CHAR LIMIT=40] -->
    <string name="deletion_helper_clear_dialog_remove">Free up space</string>

    <!-- Title for the dialog to up sell the storage manager. [CHAR LIMIT=NONE] -->
    <string name="deletion_helper_upsell_title">Manage storage automatically?</string>
    <!-- Summary for the dialog to up sell the storage manager. [CHAR LIMIT=NONE] -->
    <string name="deletion_helper_upsell_summary"><xliff:g id="used" example="1.2GB">%1$s</xliff:g> now free. Let Storage manager automatically free up space by removing backed up content from your device?</string>
    <!-- Button to delay turning on the storage manager on the storage manager upsell. [CHAR LIMIT=20]-->
    <string name="deletion_helper_upsell_cancel">No thanks</string>
    <!-- Button to activate the storage manager on the storage manager upsell. [CHAR LIMIT=20]-->
    <string name="deletion_helper_upsell_activate">Turn on</string>

    <!-- Title for the apps category in the deletion helper. [CHAR LIMIT=40]-->
    <string name="deletion_helper_apps_group_title">Infrequently used apps</string>

    <!-- Summary for the apps category in the deletion helper, showing how many space to clear. [CHAR LIMIT=NONE]-->
    <string name="deletion_helper_apps_group_summary"><xliff:g id="used" example="1.2GB">%1$s</xliff:g></string>

    <!-- Category title for the automatic settings in the storage manager settings. [CHAR LIMIT=40] -->
    <string name="deletion_helper_automatic_title">Automatic</string>

    <!-- Category title for the manual settings in the storage manager settings. [CHAR LIMIT=40] -->
    <string name="deletion_helper_manual_title">Manual</string>

    <!-- Preference menu title for accessing the deletion helper from the storage manager settings. [CHAR LIMIT=30]-->
    <string name="deletion_helper_preference_title">Free space now</string>

    <!-- Automatic storage management service label. [CHAR LIMIT=40]-->
    <string name="automatic_storage_manager_service_label">Automatic Storage Management Service</string>

    <!-- Notification title for the low storage notification. [CHAR LIMIT=40]-->
    <string name="automatic_storage_manager_notification_title" product="default">Your phone is low on space</string>
    <!-- Notification title for the low storage notification. [CHAR LIMIT=40]-->
    <string name="automatic_storage_manager_notification_title" product="tablet">Your tablet is low on space</string>
    <!-- Notification body for the low storage notification. [CHAR LIMIT=NONE] -->
    <string name="automatic_storage_manager_notification_summary">Let Storage Manager free up space by automatically removing old photos and videos when your phone starts to get full again.</string>
    <!-- Action to dismiss the low storage notification. [CHAR LIMIT=40]-->
    <string name="automatic_storage_manager_cancel_button">No thanks</string>
    <!-- Action to turn on ASM in the low storage notification. [CHAR LIMIT=40]-->
    <string name="automatic_storage_manager_activate_button">Turn on</string>

    <string name="deletion_helper_photos_loading_title">Backed up photos &amp; videos</string>
    <string name="deletion_helper_photos_loading_summary">Finding items…</string>

    <!-- Help URI, Deletion Helper [DO NOT TRANSLATE] -->
    <string name="help_uri_deletion_helper" translatable="false"></string>

    <!-- String to allow users to select no threshold for deletion helper -->
    <string name="deletion_helper_no_threshold">Show all items</string>
    <!-- String to allow users to select default threshold for deletion helper -->
    <string name="deletion_helper_default_threshold">Hide recent items</string>

    <!-- Message to warn the user before clearing space in the deletion helper for the first time. [CHAR LIMIT=NONE] -->
    <string name="deletion_helper_clear_dialog_message_first_time"><xliff:g id="clearable_bytes" example="1.2GB">%1$s</xliff:g> of content will be removed from your device</string>

    <!-- Warning when activating the automatic storage manager on legacy devices. [CHAR LIMIT=NONE] -->
    <string name="automatic_storage_manager_activation_warning">Your storage is now being managed by the storage manager</string>

    <!-- Title to show in the ActionBar when there are no items to remove [CHAR LIMIT=30] -->
    <string name="empty_state_title">Nothing to remove</string>

    <!-- String which is clickable that removes the time threshold on items allowing the user to delete more things [CHAR LIMIT=NONE] -->
    <string name="empty_state_review_items_link">Review recent items</string>

    <!-- Empty state summary for the Deletion Helper [CHAR LIMIT=NONE]-->
    <string name="empty_state_summary">There aren\'t any older files to remove. To make space, remove recent photos, videos, and apps.</string>

    <!-- Prompt for describing what space a particular app is requesting from the Storage Manager. [CHAR LIMIT=NONE] -->
    <string name="app_requesting_space"><xliff:g id="app" example="Dialer">%1$s</xliff:g> needs <xliff:g id="clearable_bytes" example="1.2GB">%2$s</xliff:g> of space</string>
</resources>
