am 3134634: AI 148147: Import lots of zh_TW translation changes.

Merge commit '31346348b8eea2e0bab6b7d17ff675a6ab02859f' into donut

* commit '31346348b8eea2e0bab6b7d17ff675a6ab02859f':
  AI 148147: Import lots of zh_TW translation changes.
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 23f76c0..8ca4408 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -26,10 +26,10 @@
     <item quantity="one">"1 Album"</item>
     <item quantity="other">"<xliff:g id="COUNT">%d</xliff:g> Alben"</item>
   </plurals>
-    <string name="goto_start">"Bibliothek"</string>
+    <string name="goto_start">"Startübersicht"</string>
     <string name="goto_playback">"Wiedergeben"</string>
-    <string name="party_shuffle">"Party-Shuffle"</string>
-    <string name="party_shuffle_off">"Party-Shuffle deaktivieren"</string>
+    <string name="party_shuffle">"Zufallswiedergabe (Party)"</string>
+    <string name="party_shuffle_off">"Zufallswiedergabe (Party) deaktivieren"</string>
     <string name="delete_item">"Löschen"</string>
     <string name="shuffle_all">"Alle zufällig wiedergeben"</string>
     <string name="play_all">"Alle wiedergeben"</string>
@@ -43,7 +43,7 @@
   </plurals>
     <string name="scanning">"SD-Karte wird gelesenen..."</string>
     <string name="nowplaying_title">"Aktuelle Wiedergabe"</string>
-    <string name="partyshuffle_title">"Party-Shuffle"</string>
+    <string name="partyshuffle_title">"Zufallswiedergabe (Party)"</string>
     <string name="artists_title">"Interpreten"</string>
     <string name="albums_menu">"Alben"</string>
     <string name="albums_title">"Alben"</string>
@@ -92,7 +92,7 @@
     <item quantity="one">"1 Titel zur Playlist hinzugefügt"</item>
     <item quantity="other">"%d Titel zur Playlist hinzugefügt."</item>
   </plurals>
-    <string name="emptyplaylist">"Playlist ist leer"</string>
+    <string name="emptyplaylist">"Ausgewählte Playlist ist leer"</string>
     <string name="create_playlist_create_text">"Speichern"</string>
     <string name="create_playlist_overwrite_text">"Überschreiben"</string>
     <string name="service_start_error_title">"Problem bei der Wiedergabe"</string>
@@ -126,14 +126,14 @@
     <string name="remove_from_playlist">"Von Playlist entfernen"</string>
     <string name="streamloadingtext">"Verbindung mit <xliff:g id="HOST">%s</xliff:g> wird hergestellt"</string>
     <string name="mediasearch">"Nach %s suchen mithilfe von:"</string>
-    <string name="working_artists">"Interpreten..."</string>
+    <string name="working_artists">"Künstler…"</string>
     <string name="working_albums">"Alben…"</string>
     <string name="working_songs">"Lieder…"</string>
     <string name="working_playlists">"Playlists…"</string>
     <string name="loading">"Wird geladen"</string>
-    <string name="sort_by_track">"Tracks"</string>
+    <string name="sort_by_track">"Titel"</string>
     <string name="sort_by_album">"Alben"</string>
-    <string name="sort_by_artist">"Interpreten"</string>
-    <string name="music_picker_title">"Musiktrack auswählen"</string>
+    <string name="sort_by_artist">"Künstler"</string>
+    <string name="music_picker_title">"Musiktitel auswählen"</string>
     <string name="gadget_track">"Track <xliff:g id="TRACK_NUMBER">%d</xliff:g>"</string>
 </resources>
diff --git a/res/values-es-rUS-finger/strings2.xml b/res/values-es-rUS-finger/strings2.xml
new file mode 100644
index 0000000..120ac61
--- /dev/null
+++ b/res/values-es-rUS-finger/strings2.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="notification_artist_album">"Segmento <xliff:g id="ALBUM">%2$s</xliff:g>"\n"<xliff:g id="ARTIST">%1$s</xliff:g>"</string>
+</resources>
diff --git a/res/values-es-rUS-keysexposed/strings.xml b/res/values-es-rUS-keysexposed/strings.xml
new file mode 100644
index 0000000..279e05a
--- /dev/null
+++ b/res/values-es-rUS-keysexposed/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="create_playlist_create_text_prompt">"Nombre de lista de reproducción"</string>
+    <string name="rename_playlist_same_prompt">"Cambiar nombre \"<xliff:g id="PLAYLIST">%s</xliff:g>\" por"</string>
+    <string name="rename_playlist_diff_prompt">"Cambiar nombre \"<xliff:g id="PLAYLIST">%s</xliff:g>\" por"</string>
+</resources>
diff --git a/res/values-es-rUS-keyshidden/strings.xml b/res/values-es-rUS-keyshidden/strings.xml
new file mode 100644
index 0000000..0b3c3a1
--- /dev/null
+++ b/res/values-es-rUS-keyshidden/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="create_playlist_create_text_prompt">"Abre el teclado para asignar un nombre a tu lista de reproducción nueva o selecciona Guardar para nombrarla \"%s\"."</string>
+    <string name="rename_playlist_same_prompt">"Abrir el teclado para asignar un nombre nuevo a la lista de reproducción \"<xliff:g id="PLAYLIST">%s</xliff:g>\"."</string>
+    <string name="rename_playlist_diff_prompt">"Abre el teclado para asignar un nombre nuevo a la lista de reproducción \"<xliff:g id="PLAYLIST">%s</xliff:g>\" o selecciona Guardar para nombrarla \"%s\"."</string>
+</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..c90fc7b
--- /dev/null
+++ b/res/values-es-rUS/strings.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2009 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:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="onesong">"1 canción"</string>
+  <plurals name="Nsongs">
+    <item quantity="other">"<xliff:g id="COUNT">%d</xliff:g> canciones"</item>
+  </plurals>
+  <plurals name="Nsongscomp">
+    <item quantity="other">"<xliff:g id="COUNT_FOR_ARTIST">%2$d</xliff:g> de <xliff:g id="TOTAL_COUNT">%1$d</xliff:g> canciones"</item>
+  </plurals>
+  <plurals name="Nalbums">
+    <item quantity="one">"1 álbum"</item>
+    <item quantity="other">"<xliff:g id="COUNT">%d</xliff:g> álbumes"</item>
+  </plurals>
+    <string name="goto_start">"Biblioteca"</string>
+    <string name="goto_playback">"Reproducir"</string>
+    <string name="party_shuffle">"Party shuffle"</string>
+    <string name="party_shuffle_off">"Party shuffle desactivado"</string>
+    <string name="delete_item">"Eliminar"</string>
+    <string name="shuffle_all">"Arrastrar todo"</string>
+    <string name="play_all">"Reproducir todo"</string>
+    <string name="delete_artist_desc">"Todas las canciones de <xliff:g id="ARTIST">%s</xliff:g> se eliminarán definitivamente de la tarjeta SD."</string>
+    <string name="delete_album_desc">"El álbum \"<xliff:g id="ALBUM">%s</xliff:g>\" se eliminará definitivamente de la tarjeta SD.\n."</string>
+    <string name="delete_song_desc">"\"<xliff:g id="SONG">%s</xliff:g>\" se eliminará definitivamente de la tarjeta SD."</string>
+    <string name="delete_confirm_button_text">"Aceptar"</string>
+  <plurals name="NNNtracksdeleted">
+    <item quantity="one">"Se eliminó 1 canción."</item>
+    <item quantity="other">"Se eliminaron <xliff:g id="SONGS_TO_DELETE">%d</xliff:g> canciones."</item>
+  </plurals>
+    <string name="scanning">"Escaneando tarjeta SD..."</string>
+    <string name="nowplaying_title">"Reproduciendo ahora"</string>
+    <string name="partyshuffle_title">"Party shuffle"</string>
+    <string name="artists_title">"Artistas"</string>
+    <string name="albums_menu">"Álbumes"</string>
+    <string name="albums_title">"Álbumes"</string>
+    <string name="tracks_menu">"Canciones"</string>
+    <string name="tracks_title">"Canciones"</string>
+    <string name="playlists_menu">"Listas de reproducción"</string>
+    <string name="playlists_title">"Listas de reproducción"</string>
+    <string name="videos_title">"Videos"</string>
+    <string name="all_title">"Todos los medios"</string>
+    <string name="browse_menu">"Artistas"</string>
+    <string name="search_title">"Buscar"</string>
+    <string name="no_tracks_title">"No hay canciones"</string>
+    <string name="no_videos_title">"No hay videos"</string>
+    <string name="no_playlists_title">"No hay listas de reproducción"</string>
+    <string name="delete_playlist_menu">"Eliminar"</string>
+    <string name="edit_playlist_menu">"Editar"</string>
+    <string name="rename_playlist_menu">"Cambiar nombre"</string>
+    <string name="playlist_deleted_message">"Lista de reproducción eliminada."</string>
+    <string name="playlist_renamed_message">"Se cambió el nombre de la lista de reproducción."</string>
+    <string name="recentlyadded">"Últimos agregados"</string>
+    <string name="recentlyadded_title">"Últimos agregados"</string>
+    <string name="podcasts_listitem">"Podcasts"</string>
+    <string name="podcasts_title">"Podcasts"</string>
+    <string name="sdcard_missing_title">"No hay tarjeta SD"</string>
+    <string name="sdcard_missing_message">"Tu teléfono no tiene una tarjeta SD."</string>
+    <string name="sdcard_busy_title">"Tarjeta SD no disponible"</string>
+    <string name="sdcard_busy_message">"Lo sentimos, pero tu tarjeta SD está ocupada."</string>
+    <string name="sdcard_error_title">"Error de tarjeta SD"</string>
+    <string name="sdcard_error_message">"Se encontró un error en tu tarjeta SD."</string>
+    <string name="unknown_artist_name">"Artista desconocido"</string>
+    <string name="unknown_album_name">"Álbum desconocido"</string>
+    <string name="shuffle_on_notif">"El shuffle está activado."</string>
+    <string name="shuffle_off_notif">"El shuffle está desactivado."</string>
+    <string name="repeat_off_notif">"Repetir está desactivado."</string>
+    <string name="repeat_current_notif">"Repitiendo canción actual."</string>
+    <string name="repeat_all_notif">"Repitiendo todas las canciones."</string>
+    <string name="ringtone_menu">"Usar como tono de timbre del teléfono"</string>
+    <string name="ringtone_menu_short">"Usar como tono de timbre"</string>
+    <string name="ringtone_set">"\"%s\" definidos como tono de timbre del teléfono."</string>
+    <string name="play_selection">"Reproducir"</string>
+    <string name="add_to_playlist">"Agregar a lista de reproducción"</string>
+    <string name="queue">"Lista de reproducción actual"</string>
+    <string name="new_playlist">"Nuevos"</string>
+    <string name="new_playlist_name_template">"Lista de reproducción nueva <xliff:g id="NUMBER">%d</xliff:g>"</string>
+  <plurals name="NNNtrackstoplaylist">
+    <item quantity="one">"Se agregó una canción a la lista de reproducción."</item>
+    <item quantity="other">"%d canciones agregadas a la lista de reproducción."</item>
+  </plurals>
+    <string name="emptyplaylist">"La lista de reproducción seleccionada está vacía."</string>
+    <string name="create_playlist_create_text">"Guardar"</string>
+    <string name="create_playlist_overwrite_text">"Sobreescribir"</string>
+    <string name="service_start_error_title">"Problema de reproducción"</string>
+    <string name="service_start_error_msg">"Lo sentimos, pero la canción no se pudo reproducir."</string>
+    <string name="service_start_error_button">"Aceptar"</string>
+  <string-array name="weeklist">
+    <item>"1 semana"</item>
+    <item>"2 semanas"</item>
+    <item>"3 semanas"</item>
+    <item>"4 semanas"</item>
+    <item>"5 semanas"</item>
+    <item>"6 semanas"</item>
+    <item>"7 semanas"</item>
+    <item>"8 semanas"</item>
+    <item>"9 semanas"</item>
+    <item>"10 semanas"</item>
+    <item>"11 semanas"</item>
+    <item>"12 semanas"</item>
+  </string-array>
+    <string name="weekpicker_set">"Finalizado"</string>
+    <string name="weekpicker_title">"Fijar hora"</string>
+    <string name="save_as_playlist">"Guardar como lista de reproducción"</string>
+    <string name="clear_playlist">"Borrar lista de reproducción"</string>
+    <string name="musicbrowserlabel">"Música"</string>
+    <string name="musicshortcutlabel">"Lista de reproducción de música"</string>
+    <string name="mediaplaybacklabel">"Música"</string>
+    <string name="videobrowserlabel">"Videos"</string>
+    <string name="mediapickerlabel">"Música"</string>
+    <string name="playback_failed">"Lo sentimos, pero el reproductor no admite este tipo de archivo de audio."</string>
+    <string name="cancel">"Cancelar"</string>
+    <string name="remove_from_playlist">"Suprimir de la lista de reproducción"</string>
+    <string name="streamloadingtext">"Conectándose a <xliff:g id="HOST">%s</xliff:g>"</string>
+    <string name="mediasearch">"Buscar %s usando:"</string>
+    <string name="working_artists">"Artistas..."</string>
+    <string name="working_albums">"Álbumes..."</string>
+    <string name="working_songs">"Canciones..."</string>
+    <string name="working_playlists">"Listas de reproducción..."</string>
+    <string name="loading">"Cargando"</string>
+    <string name="sort_by_track">"Pista"</string>
+    <string name="sort_by_album">"Álbumes"</string>
+    <string name="sort_by_artist">"Artistas"</string>
+    <string name="music_picker_title">"Seleccionar pista de música"</string>
+    <string name="gadget_track">"Pista <xliff:g id="TRACK_NUMBER">%d</xliff:g>"</string>
+</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index e45f2c0..00c743f 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -49,8 +49,8 @@
     <string name="albums_title">"Álbumes"</string>
     <string name="tracks_menu">"Canciones"</string>
     <string name="tracks_title">"Canciones"</string>
-    <string name="playlists_menu">"Listas reprod."</string>
-    <string name="playlists_title">"Listas reprod."</string>
+    <string name="playlists_menu">"Listas de reproducción"</string>
+    <string name="playlists_title">"Listas de reproducción"</string>
     <string name="videos_title">"Vídeos"</string>
     <string name="all_title">"Todos los medios"</string>
     <string name="browse_menu">"Artistas"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 6a24ff5..b434be0 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -26,7 +26,7 @@
     <item quantity="one">"1 album"</item>
     <item quantity="other">"<xliff:g id="COUNT">%d</xliff:g> albums"</item>
   </plurals>
-    <string name="goto_start">"Bibliothèque"</string>
+    <string name="goto_start">"Médiathèque"</string>
     <string name="goto_playback">"Lecture"</string>
     <string name="party_shuffle">"Lecture aléatoire"</string>
     <string name="party_shuffle_off">"La lecture aléatoire est désactivée."</string>
@@ -76,7 +76,7 @@
     <string name="unknown_artist_name">"Artiste inconnu"</string>
     <string name="unknown_album_name">"Album inconnu"</string>
     <string name="shuffle_on_notif">"La lecture aléatoire est activée."</string>
-    <string name="shuffle_off_notif">"La lecture aléatoire est désactivée."</string>
+    <string name="shuffle_off_notif">"Le mode aléatoire est désactivé."</string>
     <string name="repeat_off_notif">"La lecture en boucle est désactivée."</string>
     <string name="repeat_current_notif">"Lecture en boucle de la chanson en écoute."</string>
     <string name="repeat_all_notif">"Lecture en boucle de toutes les chansons"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 9029805..6b0bc1a 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -64,7 +64,7 @@
     <string name="playlist_deleted_message">"プレイリストを削除しました。"</string>
     <string name="playlist_renamed_message">"プレイリストの名前を変更しました。"</string>
     <string name="recentlyadded">"最近追加したアイテム"</string>
-    <string name="recentlyadded_title">"最近追加したアイテム"</string>
+    <string name="recentlyadded_title">"最近追加した項目"</string>
     <string name="podcasts_listitem">"ポッドキャスト"</string>
     <string name="podcasts_title">"ポッドキャスト"</string>
     <string name="sdcard_missing_title">"SDカードがありません"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index ca75826..1b5a390 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -28,8 +28,8 @@
   </plurals>
     <string name="goto_start">"Biblioteka"</string>
     <string name="goto_playback">"Odtwórz"</string>
-    <string name="party_shuffle">"Losowo – tryb imprezy"</string>
-    <string name="party_shuffle_off">"Wyłącz tryb imprezy"</string>
+    <string name="party_shuffle">"Losowo w trybie imprezy"</string>
+    <string name="party_shuffle_off">"Wyłączono losowe odtwarzanie w trybie imprezy"</string>
     <string name="delete_item">"Usuń"</string>
     <string name="shuffle_all">"Wszystkie losowo"</string>
     <string name="play_all">"Odtwórz wszystko"</string>
@@ -90,7 +90,7 @@
     <string name="new_playlist_name_template">"Nowa playlista <xliff:g id="NUMBER">%d</xliff:g>"</string>
   <plurals name="NNNtrackstoplaylist">
     <item quantity="one">"Dodano 1 utwór do playlisty."</item>
-    <item quantity="other">"Utworów dodanych do playlisty: %d."</item>
+    <item quantity="other">"%d utworów dodano do listy odtwarzania."</item>
   </plurals>
     <string name="emptyplaylist">"Wybrana playlista jest pusta."</string>
     <string name="create_playlist_create_text">"Zapisz"</string>
@@ -129,11 +129,11 @@
     <string name="working_artists">"Wykonawcy…"</string>
     <string name="working_albums">"Albumy…"</string>
     <string name="working_songs">"Utwory…"</string>
-    <string name="working_playlists">"Playlisty…"</string>
+    <string name="working_playlists">"Listy odtwarzania..."</string>
     <string name="loading">"Ładowanie"</string>
     <string name="sort_by_track">"Utwory"</string>
     <string name="sort_by_album">"Albumy"</string>
     <string name="sort_by_artist">"Wykonawcy"</string>
     <string name="music_picker_title">"Wybierz utwór muzyczny"</string>
-    <string name="gadget_track">"Utwór <xliff:g id="TRACK_NUMBER">%d</xliff:g>"</string>
+    <string name="gadget_track">"Ścieżka <xliff:g id="TRACK_NUMBER">%d</xliff:g>"</string>
 </resources>
diff --git a/src/com/android/music/MediaPlaybackActivity.java b/src/com/android/music/MediaPlaybackActivity.java
index e04b73e..1f7b404 100644
--- a/src/com/android/music/MediaPlaybackActivity.java
+++ b/src/com/android/music/MediaPlaybackActivity.java
@@ -277,8 +277,11 @@
             return true;
         }
         
-        boolean knownartist = !MediaFile.UNKNOWN_STRING.equals(artist);
-        boolean knownalbum = !MediaFile.UNKNOWN_STRING.equals(album);
+        boolean knownartist =
+            (artist != null) && !MediaFile.UNKNOWN_STRING.equals(artist);
+
+        boolean knownalbum =
+            (album != null) && !MediaFile.UNKNOWN_STRING.equals(album);
         
         if (knownartist && view.equals(mArtistName.getParent())) {
             title = artist;
@@ -293,6 +296,12 @@
             }
             mime = MediaStore.Audio.Albums.ENTRY_CONTENT_TYPE;
         } else if (view.equals(mTrackName.getParent()) || !knownartist || !knownalbum) {
+            if ((song == null) || MediaFile.UNKNOWN_STRING.equals(song)) {
+                // A popup of the form "Search for null/'' using ..." is pretty
+                // unhelpful, plus, we won't find any way to buy it anyway.
+                return true;
+            }
+
             title = song;
             if (knownartist) {
                 query = artist + " " + song;