<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 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">
    <!-- General strings -->

    <!-- label for the icon meaning 'show me all the images' -->
    <string name="all_images">All pictures</string>

    <!-- label for the icon meaning 'show me all the videos' -->
    <string name="all_videos">All videos</string>

    <!-- label for the icon meaning 'show me all the images that were taken with the camera' -->
    <string name="camera_label">Camera</string>

    <!-- label for the 'pictures application shown in the top level 'all applications' -->
    <string name="gallery_picker_label">Gallery</string>

    <!-- label for the gallery application (displayed when the user needs to
         choose an application to pick a picture or a video) -->
    <string name="gallery_label">Gallery</string>

    <!-- label for the folder that contains Camera pictures in the gallery -->
    <string name="gallery_camera_bucket_name">Camera pictures</string>

    <!-- label for the folder that contains Camera videos in the gallery -->
    <string name="gallery_camera_videos_bucket_name">Camera videos</string>

    <!-- label for the folder that contains Camera videos in the gallery -->
    <string name="gallery_camera_media_bucket_name">Camera media</string>

    <!-- menu pick: crop the currently selected image -->
    <string name="crop_label">Crop picture</string>

    <!-- menu pick: view the currently selected image -->
    <string name="view_label">View picture</string>

    <!-- menu pick: go to the preferences screen for the camera or image gallery -->
    <string name="preferences_label">Camera settings</string>

    <!-- alert to the user to wait for some operation to complete -->
    <string name="wait">Please wait\u2026</string>

    <!-- alert to the user to that shared storage must be available before using the camera [CHAR LIMIT=NONE] -->
    <string name="no_storage" product="nosdcard">You need to mount the shared storage before using the camera.</string>
    <!-- alert to the user to that an SD card must be installed before using the camera -->
    <string name="no_storage" product="default">You need to insert an SD card before using the camera.</string>

    <!-- alert to the user to that the shared storage is too full to complete the operation [CHAR LIMIT=NONE] -->
    <string name="not_enough_space" product="nosdcard">Your shared storage is full.</string>
    <!-- alert to the user to that the SD card is too full to complete the operation -->
    <string name="not_enough_space" product="default">Your SD card is full.</string>

    <!-- alert to the user to that the shared storage is being disk-checked [CHAR LIMIT=NONE] -->
    <string name="preparing_sd" product="nosdcard">Preparing shared storage\u2026</string>
    <!-- alert to the user to that the SD card is being disk-checked -->
    <string name="preparing_sd" product="default">Preparing SD card\u2026</string>

    <!-- Toast/alert after saving wallpaper -->
    <string name="wallpaper">Setting wallpaper\u2026</string>

    <!-- Settings stuff -->

    <!-- Toast/alert that the image is being saved to the SD card -->
    <string name="savingImage">Saving picture\u2026</string>

    <!-- Toast/alert that the face detection is being run -->
    <string name="runningFaceDetection">Please wait\u2026</string>


    <!-- Menu items: -->
    <!-- menu pick to view the currently selected image -->
    <string name="view">View</string>

    <!-- menu pick to view the details of the currently selected image -->
    <string name="details">Details</string>

    <!-- menu pick to show the location of the currently selected image on maps-->
    <string name="show_on_map">Show on Maps</string>

    <!-- menu pick to rotate the currently selected image (brings up submenu) -->
    <string name="rotate">Rotate</string>

    <!-- menu pick to rotate the currently selected image to the left -->
    <string name="rotate_left">Rotate left</string>

    <!-- menu pick to rotate the currently selected image to the right -->
    <string name="rotate_right">Rotate right</string>

    <!-- menu pick to start a slide show -->
    <string name="slide_show">Slideshow</string>

    <!-- menu pick to enter multiselect mode -->
    <string name="multiselect">Multiselect</string>

    <!-- menu pick to go to camera mode to capture a picture -->
    <string name="capture_picture">Capture picture</string>
    <!-- menu pick to go to video mode to capture a video -->
    <string name="capture_video">Capture video</string>

    <!-- button indicating that the cropped image should be saved -->
    <string name="crop_save_text">Save</string>
    <!-- button indicating that the cropped image should be reverted back to the original -->
    <string name="crop_discard_text">Discard</string>

    <!-- Confirmation dialog title after deleting a picture -->
    <string name="confirm_delete_title">Delete</string>
    <!-- Confirmation dialog message after deleting a picture -->
    <string name="confirm_delete_message">Delete this picture?</string>
    <!-- Confirmation dialog message after deleting a video -->
    <string name="confirm_delete_video_message">Delete this video?</string>

    <!-- Confirmation dialog message after deleting a multiple media files -->
    <string name="confirm_delete_multiple_message">Delete these media files?</string>

    <!-- button indicating that the picture just taken should be deleted -->
    <string name="camera_toss">Delete</string>

    <!-- button indicating that the picture just taken should be shared by email, mms, etc -->
    <string name="camera_share">Share</string>

    <!-- button indicating that the picture just taken should be set as a contact photo, wallpaper, etc -->
    <string name="camera_set">Set as</string>

    <!-- button indicating that the video just taken should be played -->
    <string name="camera_play">Play</string>

    <!-- button indicating that the video just taken should be accepted as an attachment -->
    <string name="camera_attach">Attach</string>

    <!-- button indicating that the video recording session should be canceled -->
    <string name="camera_cancel">Cancel</string>

    <!-- button indicating that the picture just taken should be cropped -->
    <string name="camera_crop">Crop</string>

    <!-- Toast after trying to share a picture indicating that there are no applications which are capable of so doing. -->
    <string name="no_way_to_share_image">There\'s no app available to share the picture.</string>

    <!-- Toast after trying to share a video indicating that there are no applications which are capable of so doing. -->
    <string name="no_way_to_share_video">There\'s no app available to share the video.</string>

    <!-- Toast after trying to share multiple media files indicating that there are no applications which are capable of so doing. -->
    <string name="no_way_to_share">There\'s no app available to share the media file(s).</string>

    <!-- Menu item for playing the video. -->
    <string name="video_play">Play</string>

    <!-- String indicating an action of picking a picture to use as wallpaper (e.g. set wallpaper from "Pictures") -->
    <string name="camera_pick_wallpaper">Pictures</string>
    <string name="camera_setas_wallpaper">Wallpaper</string>

    <!-- Settings screen, section heading  -->
    <string name="pref_gallery_category">General settings</string>

    <!-- Settings screen, section heading  -->
    <string name="pref_slideshow_category">Slideshow settings</string>

    <!-- Settings screen, setting summary text -->
    <string name="pref_gallery_size_title">Display size</string>

    <!-- Settings screen, title for preference for image size to be used in the im -->
    <string name="pref_gallery_size_summary">Choose the display size of pictures and videos</string>
    <!-- Title of dialog that appears after selecting Picture size setting option -->
    <string name="pref_gallery_size_dialogtitle">Picture size</string>
    <!-- Options in dialog that appears after selecting Picture size setting option -->
    <string-array name="pref_gallery_size_choices">
        <!-- size choice of "large" -->
        <item>Large</item>
        <!-- size choice of "small" -->
        <item>Small</item>
    </string-array>
    <!-- Option values in dialog that appears after selecting Picture size setting option -->
    <string-array name="pref_gallery_size_values" translatable="false">
        <item>1</item>
        <item>0</item>
    </string-array>
    <!-- Default option value in dialog that appears after selecting Picture size setting option -->
    <string name="default_value_pref_gallery_size" translatable="false">1</string>
    <!-- Settings screen, setting option name -->
    <string name="pref_gallery_sort_title">Sort order</string>
    <!-- Settings screen, setting summary text -->
    <string name="pref_gallery_sort_summary">Choose the sort order of pictures and videos</string>
    <!-- Title of dialog that appears after selecting Picture sort setting option -->
    <string name="pref_gallery_sort_dialogtitle">Picture sort</string>
    <!-- Options in dialog that appears after selecting Picture sort setting option -->
    <string-array name="pref_gallery_sort_choices">
        <!-- Preference choice to show "newest first" -->
        <item>Newest first</item>
        <!-- Preference choice to show "newest last" -->
        <item>Newest last</item>
    </string-array>
    <!-- Option values in dialog that appears after selecting Picture sort setting option -->
    <string-array name="pref_gallery_sort_values" translatable="false">
        <item>descending</item>
        <item>ascending</item>
    </string-array>
    <!-- Default option value in dialog that appears after selecting Picture sort setting option -->
    <string name="default_value_pref_gallery_sort" translatable="false">descending</string>
    <!-- Settings screen, setting option name -->
    <string name="pref_gallery_slideshow_interval_title">Slideshow interval</string>
    <!-- Settings screen, setting summary text -->
    <string name="pref_gallery_slideshow_interval_summary">Choose how long each slide displays in the show</string>
    <!-- Title of dialog that appears after selecting Slideshow interval setting option -->
    <string name="pref_gallery_slideshow_interval_dialogtitle">Slideshow interval</string>
    <!-- Options in dialog that appears after selecting Slideshow interval setting option -->
    <string-array name="pref_gallery_slideshow_interval_choices">
        <!-- slide show interval "N seconds" where N is 2 -->
        <item>2 seconds</item>
        <!-- slide show interval "N seconds" where N is 3 -->
        <item>3 seconds</item>
        <!-- slide show interval "N seconds" where N is 4 -->
        <item>4 seconds</item>
    </string-array>
    <!-- Option values in dialog that appears after selecting Slideshow interval setting option -->
    <string-array name="pref_gallery_slideshow_interval_values" translatable="false">
        <item>"2"</item>
        <item>"3"</item>
        <item>"4"</item>
    </string-array>
    <!-- Default option value in dialog that appears after selecting Slideshow interval setting option -->
    <string name="default_value_pref_gallery_slideshow_interval" translatable="false">"2"</string>
    <!-- Settings screen, setting option name -->
    <string name="pref_gallery_slideshow_transition_title">Slideshow transition</string>
    <!-- Settings screen, setting summary text -->
    <string name="pref_gallery_slideshow_transition_summary">Choose the effect used when moving from one slide to the next</string>
    <!-- Title of dialog that appears after selecting Slideshow transition setting option -->
    <string name="pref_gallery_slideshow_transition_dialogtitle">Slideshow transition</string>
    <!-- Options in dialog that appears after selecting Slideshow transition
     setting option -->
    <string-array name="pref_gallery_slideshow_transition_choices">
        <!-- Slide show transition to fade in and fade out -->
        <item>Fade in &amp; out</item>
        <!-- Slide show transition to slide in and out from the left and right -->
        <item>Slide left - right</item>
        <!-- Slide show transition to slide in and out from the top and bottom -->
        <item>Slide up - down</item>
        <!-- Slide show transition to be chosen randomly -->
        <item>Random selection</item>
    </string-array>
    <!-- Option values in dialog that appears after selecting Slideshow transition setting option -->
    <string-array name="pref_gallery_slideshow_transition_values" translatable="false">
        <item>"0"</item>
        <item>"1"</item>
        <item>"2"</item>
        <item>"-1"</item>
    </string-array>
    <!-- Default option value in dialog that appears after selecting Slideshow transition setting option -->
    <string name="default_value_pref_gallery_slideshow_transition" translatable="false">"0"</string>

    <!-- Settings screen, setting check box name -->
    <string name="pref_gallery_slideshow_repeat_title">Repeat slideshow</string>

    <!-- Settings screen, setting summary text -->
    <string name="pref_gallery_slideshow_repeat_summary">Play slideshow more than once</string>

    <!-- Settings screen, setting check box name -->
    <string name="pref_gallery_slideshow_shuffle_title">Shuffle slides</string>

    <!-- Settings screen, setting summary text -->
    <string name="pref_gallery_slideshow_shuffle_summary">Show pictures in random order</string>

    <!-- Menu item to go to the settings screen -->
    <string name="camerasettings">Settings</string>

    <!-- Text message indicating that there are no pictures or videos in a particular
         bucket on the SD card -->
    <string name="image_gallery_NoImageView_text">No media found.</string>

    <!-- Preference title for whether the user should be prompted form confirmation when deleting images  -->
    <string name="pref_gallery_confirm_delete_title">Confirm deletions</string>

    <!-- Preference summary for whether the user should be prompted form confirmation when deleting images  -->
    <string name="pref_gallery_confirm_delete_summary">Show confirmation before deleting a picture or video</string>

    <!-- Message to show when there's no lat/lng information in the image -->
    <string name="no_location_image">There\'s no location information stored in this image.</string>
    <!-- Title of Details dialog  -->
    <string name="details_panel_title">Details</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_file_size">File size:</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_image_resolution">Resolution:</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_image_make">Manufacturer:</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_image_model">Model:</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_image_whitebalance">WhiteBalance:</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_image_latitude">GPS latitude:</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_image_longitude">GPS longitude:</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_image_location">Location:</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_duration">Duration:</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_date_taken">Date taken:</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_frame_rate">Frame rate:</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_bit_rate">Bit rate:</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_codec">Codec:</string>
    <!-- Label in message of Details dialog  -->
    <string name="details_format">Format:</string>

    <!-- Used to format image dimensions in Details dialog. e.g. 64 x 64 -->
    <string name="details_dimension_x"><xliff:g id="width" example="640">%1$d</xliff:g> x <xliff:g id="height" example="480">%2$d</xliff:g></string>
    <!-- Used to format short video duration in Details dialog. minutes:seconds e.g. 00:30 -->
    <string name="details_ms"><xliff:g id="minutes">%1$02d</xliff:g>:<xliff:g id="seconds">%2$02d</xliff:g></string>
    <!-- Used to format video duration in Details dialog. hours:minutes:seconds e.g. 0:21:30 -->
    <string name="details_hms"><xliff:g id="hours">%1$d</xliff:g>:<xliff:g id="minutes">%2$02d</xliff:g>:<xliff:g id="seconds">%3$02d</xliff:g></string>
    <!-- Unit of measure in the Details dialog frames per second. e.g. 20 fps -->
        <string name="details_fps"><xliff:g id="frames" example="30">%1$d</xliff:g> fps</string>
    <!-- Unit of measure in the Details dialog K bits per second. e.g. 192 Kbps -->
    <string name="details_kbps"><xliff:g id="speed" example="192">%1$d</xliff:g> Kbps</string>
    <!-- Unit of measure in the Details dialog M bits per second. e.g. 2.3 Mbps -->
    <string name="details_mbps"><xliff:g id="speed" example="2.3">%1$g</xliff:g> Mbps</string>
    <!-- Details dialog "OK" button. Dismisses dialog. -->
    <string name="details_ok">OK</string>

    <!-- Text of context menu when an image is selected -->
    <string name="context_menu_header">Picture options</string>
    <!-- Text of context menu when a video is selected -->
    <string name="video_context_menu_header">Video options</string>
    <!-- Hint that appears when cropping an image with more than one face -->
    <string name="multiface_crop_help">Touch a face to begin.</string>

    <!-- Activity title when in the image gallery to see pictures -->
    <string name="photos_gallery_title">Gallery</string>

    <!-- Activity title when in the image gallery to select a picture -->
    <string name="pick_photos_gallery_title">Choose picture</string>

    <!-- Activity title when in the image gallery to see videos -->
    <string name="videos_gallery_title">Gallery</string>

    <!-- Activity title when in the image gallery to select a video -->
    <string name="pick_videos_gallery_title">Choose video</string>

    <!-- Displayed in the title of the dialog for things to do with a picture that
         is to be sent to another application: -->
    <string name="sendImage">Share picture via</string>

    <!-- Displayed in the title of the dialog for things to do with a picture that
         is to be "set as" (e.g. set as contact photo or set as wallpaper) -->
    <string name="setImage">Set picture as</string>

    <!-- Displayed in the title of the dialog for things to do with a video that
         is to be sent to another application. -->
    <string name="sendVideo">Share video via</string>

    <!-- Displayed in the title of the dialog for things to do with media files that
         are to be sent to another application: -->
    <string name="send_media_files">Share media files via</string>

    <!-- Activity label. This might show up in the activity-picker -->
    <string name="movieviewlabel">Movies</string>
    <!-- shown in the video player view while the video is being loaded, before it starts playing -->
    <string name="loading_video">Loading video\u2026</string>

    <!-- Movie View Resume Playing dialog title -->
    <string name="resume_playing_title">Resume video</string>

    <!-- Movie View Start Playing dialog title -->
    <string name="resume_playing_message">Resume playing video from <xliff:g id="duration" example="5:30">%s</xliff:g>?</string>

    <!-- Movie View Start Playing button "Resume from bookmark" -->
    <string name="resume_playing_resume">Resume playing</string>

    <!-- Movie View Start Playing button "Beginning" -->
    <string name="resume_playing_restart">Start over</string>

    <!-- Title for picture frame gadget to show in list of all available gadgets -->
    <string name="gadget_title">Picture frame</string>

    <!-- Title for the file information dialog -->
    <string name="file_info_title">File info:</string>

    <!-- The video is execeed the size limit of a MMS, and suggest user to record a shorter length clip -->
    <string name="video_exceed_mms_limit">The video you recorded is too large to send via MMS. Try recording a shorter length clip.</string>

    <!-- The title shown on the button which share the selected images by gmail, mms, and etc. -->
    <string name="multiselect_share">Share</string>

    <!-- The title shown on the button which will delete all the selected images -->
    <string name="multiselect_delete">Delete</string>

    <!-- Title shown on the button which will close the multiselction mode -->
    <string name="multiselect_cancel">Cancel</string>

    <!-- The messsage shown on progress dialog when deleting images -->
    <string name="delete_images_message">Deleting images\u2026</string>
</resources>
