<?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 for duration < 1 hour -->
    <string translatable="false" name="durationformatshort"><xliff:g id="format">%2$d:%5$02d</xliff:g></string>
    <!-- Do not translate. Duration format for duration >= 1 hour -->
    <string translatable="false" name="durationformatlong"><xliff:g id="format">%1$d:%3$02d:%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 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 artist -->
    <string name="delete_artist_desc_nosdcard">All songs by <xliff:g id="artist">%s</xliff:g> will be permanently deleted from USB storage.</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 an entire album -->
    <string name="delete_album_desc_nosdcard">The entire album \"<xliff:g id="album">%s</xliff:g>\" will be permanently deleted from USB storage.</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 when deleting a single song -->
    <string name="delete_song_desc_nosdcard">\"<xliff:g id="song">%s</xliff:g>\" will be permanently deleted from USB storage.</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>
    <!-- shown in dialog while the media scanner is starting up -->
    <string name="scanning_nosdcard">Scanning USB storage\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>
    <!-- Title of screen when no sd card is present -->
    <string name="sdcard_missing_title_nosdcard">No USB storage</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 no sd card is present -->
    <string name="sdcard_missing_message_nosdcard">Your phone does not have USB storage.</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 that the sd card is present, but currently unavailable -->
    <string name="sdcard_busy_title_nosdcard">USB storage 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>
    <!-- label underneath icon used to indicate sd card is mounted to your computer via USB -->
    <string name="sdcard_busy_message_nosdcard">Sorry, your USB storage is busy.</string>
    <!-- Title of screen when there was an error accessing the sd card -->
    <string name="sdcard_error_title">SD card error</string>
    <!-- Title of screen when there was an error accessing the sd card -->
    <string name="sdcard_error_title_nosdcard">USB storage 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>
    <!-- label underneath icon used to indicate there was an error accessing the sd card -->
    <string name="sdcard_error_message_nosdcard">An error was encountered on your USB storage.</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">\"<xliff:g id="name" example="Alarm Bell">%s</xliff:g>\" 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"><xliff:g id="number" example="27">%d</xliff:g> 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 <xliff:g id="term" example="Beethoven">%s</xliff:g> 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>

    <!-- The string used to describe Music as a searchable item within system search settings. -->
    <string name="search_settings_description">Artists, albums, and tracks</string>

    <!-- Shown in the search box as a hint -->
    <string name="search_hint">Search Music</string>

    <!--The fast scroll thumb will show one character from this string depending on the position in the list -->
    <string name="fast_scroll_alphabet">\u0020ABCDEFGHIJKLMNOPQRSTUVWXYZ</string>

    <!-- Text shown on widget when first loaded -->
    <string name="widget_initial_text">Touch to select music.</string>

    <!-- Menu text for the item controlling the audio effects panel [CHAR LIMIT=15] -->
    <string name="effectspanel">Sound effects</string>
</resources>

