<?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">Permanently delete all songs by <xliff:g id="artist">%s</xliff:g> from the SD card?</string>
    <!-- Delete confirmation dialog when deleting an entire artist -->
    <string name="delete_artist_desc_nosdcard">Permanently delete all songs by <xliff:g id="artist">%s</xliff:g> from USB storage?</string>

    <!-- Delete confirmation dialog when deleting an entire album -->
    <string name="delete_album_desc">Permanently delete the entire album \"<xliff:g id="album">%s</xliff:g>\" from the SD card?</string>
    <!-- Delete confirmation dialog when deleting an entire album -->
    <string name="delete_album_desc_nosdcard">Permanently delete the entire album \"<xliff:g id="album">%s</xliff:g>\" from USB storage?</string>

    <!-- Delete confirmation dialog when deleting a single song -->
    <string name="delete_song_desc">Permanently delete \"<xliff:g id="song">%s</xliff:g>\" from the SD card?</string>
    <!-- Delete confirmation dialog when deleting a single song -->
    <string name="delete_song_desc_nosdcard">Permanently delete \"<xliff:g id="song">%s</xliff:g>\" 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 doesn\'t 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 doesn\'t 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">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">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">The song couldn\'t 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">The player doesn\'t 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>\u2026</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\u2026</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">Choose 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 choose music.</string>

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

