<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 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">

    <!-- used in various places to indicate there is one song for a given artist or album -->
    <string name="onesong">1 song</string>
    <!-- used in various places to indicate there is some number other than one songs for a given artist or album. -->
    <plurals name="Nsongs">
        <item quantity="other"><xliff:g id="count">%d</xliff:g> songs</item>
    </plurals>

    <!-- shows how many songs on the album are by the selected artist, out of how many total, if those two numbers are different -->
    <plurals name="Nsongscomp">
        <item quantity="other"><xliff:g id="count_for_artist">%2$d</xliff:g> of <xliff:g id="total_count">%1$d</xliff:g> songs</item>
    </plurals>

    <!-- Used in artists list view, indicates how many albums exist for a given artist. -->
    <plurals name="Nalbums">
        <!-- number of albums is one -->
        <item quantity="one">1 album</item>
        <!-- number of albums is not equal to one -->
        <item quantity="other"><xliff:g id="count">%d</xliff:g> albums</item>
    </plurals>
    
    <!--
    This string is used as the format string in a String.format call,
    and 5 additional arguments are available for printing:
    1 - hours
    2 - minutes
    3 - minutes%60
    4 - seconds
    5 - second%60
    -->
    <skip/>
    <!-- Do not translate. Duration format. -->
    <string name="durationformat"><xliff:g id="format">%2$d:%5$02d</xliff:g></string>

    <!-- Menu item that takes the user back to the top level screen of the music player -->
    <string name="goto_start">Library</string>
    <!-- Menu item that takes the user to the "now playing" screen of the music player -->
    <string name="goto_playback">Playback</string>
    <!-- Menu item that switches the music player in to party shuffle mode -->
    <string name="party_shuffle">Party shuffle</string>
    <!-- Menu item that switches the music player out of party shuffle mode -->
    <string name="party_shuffle_off">Party shuffle off</string>
    <!-- Menu item that deletes the currently selected item, which might be a single song, or a collection of songs.
         The user will be prompted to confirm before deletion actually takes place -->
    <string name="delete_item">Delete</string>
    <!-- Menu item to play back all the songs in the currently showing list in shuffle mode -->
    <string name="shuffle_all">Shuffle all</string>
    <!-- Menu item to play back all the songs in the currently showing list in list order -->
    <string name="play_all">Play all</string>

    <!-- Delete confirmation dialog when deleting an entire artist -->
    <string name="delete_artist_desc">All songs by <xliff:g id="artist">%s</xliff:g> will be permanently deleted from the SD card.</string>

    <!-- Delete confirmation dialog when deleting an entire album -->
    <string name="delete_album_desc">The entire album \"<xliff:g id="album">%s</xliff:g>\" will be permanently deleted from the SD card.</string>

    <!-- Delete confirmation dialog when deleting a single song -->
    <string name="delete_song_desc">\"<xliff:g id="song">%s</xliff:g>\" will be permanently deleted from the SD card.</string>

    <!-- Delete confirmation dialog, confirmation button text -->
    <string name="delete_confirm_button_text">OK</string>
    <!-- Toast confirming that song(s) was/were deleted. -->
    <plurals name="NNNtracksdeleted">
        <!-- delete confirmation message for 1 song -->
        <item quantity="one">1 song was deleted.</item>
        <!-- delete confirmation message for 0 or more than 1 songs -->
        <item quantity="other"><xliff:g id="songs_to_delete">%d</xliff:g> songs were deleted.</item>
    </plurals>

    <!-- shown in dialog while the media scanner is starting up -->
    <string name="scanning">Scanning SD card\u2026</string>

    <!-- title of the "current playlist" screen when not in party shuffle mode -->
    <string name="nowplaying_title">Now playing</string>
    <!-- title of the "current playlist" screen when in party shuffle mode-->
    <string name="partyshuffle_title">Party shuffle</string>
    <!-- Artist screen title -->
    <string name="artists_title">Artists</string>
    <!-- Category label on Library screen -->
    <string name="albums_menu">Albums</string>
    <!-- Albums screen title -->
    <string name="albums_title">Albums</string>
    <!-- Category label on Library screen -->
    <string name="tracks_menu">Songs</string>
    <!-- Songs screen title -->
    <string name="tracks_title">Songs</string>
    <!-- Category label on Library screen -->
    <string name="playlists_menu">Playlists</string>
    <!-- Playlists screen title -->
    <string name="playlists_title">Playlists</string>
    <!-- Videos screen title -->
    <string name="videos_title">Videos</string>
    <!-- All media screen title -->
    <string name="all_title">All media</string>
    <!-- Category label on Library screen -->
    <string name="browse_menu">Artists</string>
    <!-- Library screen, menu item -->
    <string name="search_title">Search</string>
    <!-- Title of screen when there are no songs, or if the SD card is busy -->
    <string name="no_tracks_title">No songs</string>
    <!-- Title of screen when there are no videos, or if the SD card is busy -->
    <string name="no_videos_title">No videos</string>
    <!-- Title of screen when there are no playlists, or if the SD card is busy -->
    <string name="no_playlists_title">No playlists</string>
    <!-- Playlist context menu item to delete the selected playlist. -->
    <string name="delete_playlist_menu">Delete</string>
    <!-- Playlist context menu item to edit the selected playlist -->
    <string name="edit_playlist_menu">Edit</string>
    <!-- Playlist context menu item to rename the selected playlist-->
    <string name="rename_playlist_menu">Rename</string>
    <!-- Transient popup message shown after deleting a playlist -->
    <string name="playlist_deleted_message">Playlist deleted.</string>
    <!-- Transient popup message shown after renaming a playlist -->
    <string name="playlist_renamed_message">Playlist renamed.</string>
    <!-- The name of the pseudo-playlist that holds all the recently added files, shown in list view -->
    <string name="recentlyadded">Recently added</string>
    <!-- The name of the pseudo-playlist that holds all the recently added files, shown in title bar of songs list -->
    <string name="recentlyadded_title">Recently added</string>
    <!-- The name of the pseudo-playlist that holds all the podcasts, shown in list view -->
    <string name="podcasts_listitem">Podcasts</string>
    <!-- The name of the pseudo-playlist that holds all the podcasts, shown in title bar of songs list -->
    <string name="podcasts_title">Podcasts</string>
    <!-- Title of screen when no sd card is present -->
    <string name="sdcard_missing_title">No SD card</string>
    <!-- label underneath icon used to indicate that no sd card is present -->
    <string name="sdcard_missing_message">Your phone does not have an SD card inserted.</string>
    <!-- label underneath icon used to indicate that the sd card is present, but currently unavailable -->
    <string name="sdcard_busy_title">SD card unavailable</string>
    <!-- label underneath icon used to indicate sd card is mounted to your computer via USB -->
    <string name="sdcard_busy_message">Sorry, your SD card is busy.</string>
    <!-- Title of screen when there was an error accessing the sd card -->
    <string name="sdcard_error_title">SD card error</string>
    <!-- label underneath icon used to indicate there was an error accessing the sd card -->
    <string name="sdcard_error_message">An error was encountered on your SD card.</string>
    <!-- Default name of artist that doesn't have a name in the metadata -->
    <string name="unknown_artist_name">Unknown artist</string>
    <!-- Default name of album that doesn't have a name in the metadata -->
    <string name="unknown_album_name">Unknown album</string>
    <!-- Toast after turning shuffle on -->
    <string name="shuffle_on_notif">Shuffle is on.</string>
    <!-- Toast after turning shuffle off -->
    <string name="shuffle_off_notif">Shuffle is off.</string>
    <!-- Toast after turning repeat off -->
    <string name="repeat_off_notif">Repeat is off.</string>
    <!-- Toast after turning single repeat on -->
    <string name="repeat_current_notif">Repeating current song.</string>
    <!-- Toast after turning repeat all on -->
    <string name="repeat_all_notif">Repeating all songs.</string>
    <!-- Individual song context menu item -->
    <string name="ringtone_menu">Use as phone ringtone</string>
    <!-- Menu item -->
    <string name="ringtone_menu_short">Use as ringtone</string>
    <!-- Toast after setting a song as phone ringtone -->
    <string name="ringtone_set">\"%s\" set as phone ringtone.</string>
    <!-- Context menu item -->
    <string name="play_selection">Play</string>
    <!-- Context menu item -->
    <string name="add_to_playlist">Add to playlist</string>
    <!-- Context menu item -->
    <string name="queue">Current playlist</string>
    <!-- Context menu item -->
    <string name="new_playlist">New</string>
    <!-- Template for newly created playlist name -->
    <string name="new_playlist_name_template">New playlist <xliff:g id="number">%d</xliff:g></string>
    <!-- Toasts after adding song(s) to playlists -->
    <plurals name="NNNtrackstoplaylist">
        <!-- message shown when one song was added -->
        <item quantity="one">1 song added to playlist.</item>
        <!-- message shown when zero or more than one song was added -->
        <item quantity="other">%d songs added to playlist.</item>
    </plurals>
    <!-- Toast after selecting an empty playlist -->
    <string name="emptyplaylist">Selected playlist is empty.</string>
    <!-- Button name when saving a playlist -->
    <string name="create_playlist_create_text">Save</string>
    <!-- Button name when saving a playlist and the new playlist will overwrite an existing one -->
    <string name="create_playlist_overwrite_text">Overwrite</string>
    <!-- Dialog box title -->
    <string name="service_start_error_title">Playback problem</string>
    <!-- Dialog box message -->
    <string name="service_start_error_msg">Sorry, the song could not be played.</string>
    <!-- Dialog box button -->
    <string name="service_start_error_button">OK</string>
    <!-- Time span edit options that appear when editing system playlist "Recently added" -->
    <!-- Used to indicate the number of weeks the "recently added" playlist covers in a selector widget -->
    <string-array name="weeklist">
        <item>"1 week"</item>
        <item>"2 weeks"</item>
        <item>"3 weeks"</item>
        <item>"4 weeks"</item>
        <item>"5 weeks"</item>
        <item>"6 weeks"</item>
        <item>"7 weeks"</item>
        <item>"8 weeks"</item>
        <item>"9 weeks"</item>
        <item>"10 weeks"</item>
        <item>"11 weeks"</item>
        <item>"12 weeks"</item>
    </string-array>
    <!-- Button name in time span picker -->
    <string name="weekpicker_set">Done</string>
    <!-- Title of time span picker -->
    <string name="weekpicker_title">Set time</string>
    <!-- Do not translate. Background color for currently dragged item in playlist edit mode. -->
    <color name="dragndrop_background">#e0103010</color>
    <!-- Do not translate. Background color for albums in the artists list view. -->
    <color name="expanding_child_background">#ff404040</color>

    <!-- menu item to save the current list as a new playlist -->
    <string name="save_as_playlist">Save as playlist</string>
    <!-- menu item to clear the current playlist -->
    <string name="clear_playlist">Clear playlist</string>

    <!-- Activity label. This might show up in the activity-picker -->
    <string name="musicbrowserlabel">Music</string>
    <!-- Activity label. This might show up in the activity-picker -->
    <string name="musicshortcutlabel">Music playlist</string>
    <!-- Activity label. This might show up in the activity-picker -->
    <string name="mediaplaybacklabel">Music</string>
    <!-- Activity label. This might show up in the activity-picker -->
    <string name="videobrowserlabel">Videos</string>
    <!-- Activity label. This might show up in the activity-picker -->
    <string name="mediapickerlabel">Music</string>

    <!-- Shown as a transient message whenever a file fails to play -->
    <string name="playback_failed">Sorry, the player does not support this type of audio file.</string>

    <!-- Text for the "cancel" button in the "delete" and "create playlist" confirmation dialogs -->
    <string name="cancel">Cancel</string>

    <!-- context menu item to remove the selected item from the playlist -->
    <string name="remove_from_playlist">Remove from playlist</string>

    <!-- shown when connecting to a music stream, before it starts playing -->
    <string name="streamloadingtext">Connecting to <xliff:g id="host">%s</xliff:g></string>

    <!-- title of contextual music search menu -->
    <string name="mediasearch">Search for %s using:</string>

    <!-- Shown in the title bar while the list of artists is being retrieved in the background -->
    <string name="working_artists">Artists\u2026</string>
    <!-- Shown in the title bar while the list of albums is being retrieved in the background -->
    <string name="working_albums">Albums\u2026</string>
    <!-- Shown in the title bar while the list of songs is being retrieved in the background -->
    <string name="working_songs">Songs\u2026</string>
    <!-- Shown in the title bar while the list of playlists is being retrieved in the background -->
    <string name="working_playlists">Playlists\u2026</string>
    
    <!-- Shown in the music picker while loading the music database. -->
    <string name="loading">Loading</string>
    <!-- Menu in music picker to sort the list by track/song name. -->
    <string name="sort_by_track">Tracks</string>
    <!-- Menu in music picker to sort the list by album name. -->
    <string name="sort_by_album">Albums</string>
    <!-- Menu in music picker to sort the list by artist name. -->
    <string name="sort_by_artist">Artists</string>
    <!--  Title of the music picker activity. -->
    <string name="music_picker_title">Select music track</string>

    <!-- Title for track number in music gadget -->
    <string name="gadget_track">Track <xliff:g id="track_number">%d</xliff:g></string>

    <!-- Mixes together track number and track title in music gadget -->
    <string name="gadget_track_num_title" translatable="false"><xliff:g id="track_number">%d</xliff:g>. <xliff:g id="track_title">%s</xliff:g></string>
</resources>

