Changeset 226506
- Timestamp:
- 04/08/2010 05:03:28 PM (16 years ago)
- Location:
- zina/trunk
- Files:
-
- 2 added
- 18 edited
-
zina.php (modified) (1 diff)
-
zina/batch.php (modified) (1 diff)
-
zina/common.php (modified) (2 diffs)
-
zina/extras/extras_lyr_chartlyrics.php (modified) (2 diffs)
-
zina/extras/extras_lyr_leoslyrics.php (modified) (1 diff)
-
zina/extras/extras_lyr_lyricsmania.php (added)
-
zina/extras/extras_lyr_lyricwiki.php (modified) (4 diffs)
-
zina/extras/scrobbler.class.php (modified) (1 diff)
-
zina/index.php (modified) (37 diffs)
-
zina/lang/be.php (added)
-
zina/lang/de.php (modified) (1 diff)
-
zina/mp3.class.php (modified) (2 diffs)
-
zina/theme.php (modified) (2 diffs)
-
zina/zinamp/skins/Silver/skin.xml (modified) (1 diff)
-
zina/zinamp/skins/SilverAll/skin.xml (modified) (3 diffs)
-
zina/zinamp/skins/SilverSmall/skin.xml (modified) (1 diff)
-
zina/zinamp/skins/WinampClassic/skin.xml (modified) (1 diff)
-
zina/zinamp/skins/WinampClassicAll/skin.xml (modified) (4 diffs)
-
zina/zinamp/skins/WinampClassicSmall/skin.xml (modified) (1 diff)
-
zina/zinamp/zinamp.swf (modified) (previous)
Legend:
- Unmodified
- Added
- Removed
-
zina/trunk/zina.php
r145926 r226506 4 4 Plugin URI: http://pancake.org/zina 5 5 Description: Zina is a graphical interface to your MP3 collection, a personal jukebox, an MP3 streamer. 6 Version: 2.0b1 46 Version: 2.0b15 7 7 Author: Ryan Lathouwers 8 8 Author URI: http://www.pancake.org -
zina/trunk/zina/batch.php
r146465 r226506 118 118 function _zbatch_page() { 119 119 $batch =& zbatch_get(); 120 120 // 121 121 // Retrieve the current state of batch from db. 122 122 if (isset($_REQUEST['id']) && $data = zdbq_single("SELECT batch FROM {batch} WHERE bid = %d AND token = '%s'", $_REQUEST['id'], zina_token('get', $_REQUEST['id']))) { -
zina/trunk/zina/common.php
r145926 r226506 450 450 if ($a['mtime'] == $b['mtime']) return 0; 451 451 return ($a['mtime'] > $b['mtime']) ? -1 : 1; 452 } 453 454 function zsort_trackno($a, $b) { 455 if ($a['info']->track == $b['info']->track) return 0; 456 return ((int)$a['info']->track < (int)$b['info']->track) ? -1 : 1; 452 457 } 453 458 … … 659 664 660 665 function zxml_encode($x) { 661 return htmlspecialchars(zdecode_entities($x), ENT_QUOTES); 666 #TODO???? 667 return htmlspecialchars(zdecode_entities($x)); 668 #return htmlspecialchars(zdecode_entities($x), ENT_QUOTES); 662 669 } 663 670 -
zina/trunk/zina/extras/extras_lyr_chartlyrics.php
r145926 r226506 7 7 #$lyrics = zina_extras_lyr_chartlyrics('New Order', 'Love Vigilantes'); 8 8 #$lyrics = zina_extras_lyr_chartlyrics('Kinks, The', 'Fancy'); 9 #$lyrics = zina_extras_lyr_chartlyrics('Modern Lovers', 'Dance with Me'); 9 10 #function zt($x, $y) {return $x.$y;} 11 #function zina_debug($x){print_r($x);} 10 12 #print_r($lyrics); 13 14 function zina_socket_get($url_in, $timeout = 2) { 15 $url = parse_url($url_in); 16 $socket_timeout = $timeout; 17 18 $as_socket = @fsockopen($url['host'], 80, $errno, $errstr, $socket_timeout); 19 20 if (!$as_socket) { 21 zina_debug('chartlyrics: cannot open socket ('.$url['host'].'): '.$errstr); 22 return false; 23 } 24 25 $action = "GET ".$url['path']; 26 if (isset($url['query'])) $action .= '?'.$url['query']; 27 28 fwrite($as_socket, $action." HTTP/1.1\r\n"); 29 fwrite($as_socket, "Host: ".$url['host']."\r\n"); 30 fwrite($as_socket, "Connection: Close\r\n\r\n"); 31 32 stream_set_blocking($as_socket, FALSE); 33 stream_set_timeout($as_socket,$timeout); 34 $info = stream_get_meta_data($as_socket); 35 36 $buffer = ''; 37 while ((!feof($as_socket)) && (!$info['timed_out'])) { 38 $buffer .= fread($as_socket, 4096); 39 $info = stream_get_meta_data($as_socket); 40 } 41 fclose($as_socket); 42 43 if ($info['timed_out']) { 44 zina_debug('chartlyrics: connection timed out ('.$url['host'].'): '.$errstr); 45 return false; 46 } 47 return $buffer; 48 } 11 49 12 50 function zina_extras_lyr_chartlyrics($artist, $song) { … … 15 53 $artist = trim(implode(' ', array_reverse($arr))); 16 54 } 17 $url = 'http://api.chartlyrics.com/apiv1.asmx/SearchLyric?artist='.rawurlencode($artist).'&song='.urlencode($song); 18 if ($xml = @simplexml_load_file($url)) { 55 $buffer = zina_socket_get('http://api.chartlyrics.com/apiv1.asmx/SearchLyric?artist='.rawurlencode($artist).'&song='.urlencode($song)); 56 if (!$buffer) return false; 57 58 $response = preg_split("/\r\n\r\n/", $buffer, 2); 59 60 $code = substr($response[0],0, 15); 61 if ($code != 'HTTP/1.1 200 OK' || !isset($response[1])) { 62 zina_debug('chartlyric: invalid response ('.$code.')'); 63 return false; 64 } 65 66 if ($xml = simplexml_load_string($response[1])) { 19 67 if (isset($xml->SearchLyricResult->LyricId)) { 20 if ($xml2 = @simplexml_load_file('http://api.chartlyrics.com/apiv1.asmx/GetLyric?lyricId='.$xml->SearchLyricResult->LyricId.'&lyricCheckSum='.$xml->SearchLyricResult->LyricChecksum)) { 21 if (isset($xml2->Lyric)) { 22 $source = '<a href="http://www.chartlyrics.com.org" class="zina_lyr_source">chartlyrics.com</a>'; 23 $result['output'] = strip_tags((string)$xml2->Lyric,'<br>'); 24 $result['source'] = zt('Lyrics provided by !url', array('!url'=>$source)); 25 return $result; 68 foreach($xml->SearchLyricResult as $res) { 69 if (stristr($res->Artist, $artist) && stristr($res->Song, $song)) { 70 $buff2 = zina_socket_get('http://api.chartlyrics.com/apiv1.asmx/GetLyric?lyricId='.$res->LyricId.'&lyricCheckSum='.$res->LyricChecksum); 71 $resp2 = preg_split("/\r\n\r\n/", $buff2, 2); 72 73 # todo: weak 74 if (substr($resp2[0],0, 15) != 'HTTP/1.1 200 OK' || !isset($resp2[1])) { 75 zina_debug('chartlyrics: invalid response (2nd connect)'); 76 return false; 77 } 78 79 if (preg_match('/<Lyric>(.*?)<\/Lyric>/si', $resp2[1], $matches)) { 80 $source = '<a href="http://www.chartlyrics.com.org" class="zina_lyr_source">chartlyrics.com</a>'; 81 $result['output'] = strip_tags(trim($matches[1]),'<br>'); 82 $result['source'] = zt('Lyrics provided by !url', array('!url'=>$source)); 83 return $result; 84 } 26 85 } 27 86 } 28 87 } 29 88 } 89 30 90 return false; 31 91 } -
zina/trunk/zina/extras/extras_lyr_leoslyrics.php
r145926 r226506 7 7 #$lyrics = zina_extras_lyr_leoslyrics('New Order', 'Love Vigilantes'); 8 8 #print_r($lyrics); 9 #function zina_debug($x){print_r($x);} 9 10 10 11 function zina_extras_lyr_leoslyrics($artist, $song) { 11 // // 12 /* 13 $url = parse_url('http://api.leoslyrics.com/api_search.php?auth=duane&artist='.rawurlencode($artist).'&songtitle='.rawurlencode($song)); 14 print_r($url); 12 15 13 if ($xml = simplexml_load_file('http://api.leoslyrics.com/api_search.php?auth=duane&artist='.rawurlencode($artist).'&songtitle='.rawurlencode($song))) { 16 $socket_timeout = 2; 17 $as_socket = @fsockopen($url['host'], 80, $errno, $errstr, $socket_timeout); 18 19 if (!$as_socket) { 20 echo "NO SOCKET!!!<br/>\n"; 21 zina_debug('cannot open socket ('.$url['host'].'): '.$errstr); 22 return false; 23 } 24 25 $action = "GET ".$url['path']; 26 if (isset($url['query'])) $action .= '?'.$url['query']; 27 28 fwrite($as_socket, $action." HTTP/1.1\r\n"); 29 fwrite($as_socket, "Host: ".$url['host']."\r\n"); 30 */ 31 #fwrite($as_socket, "Accept: */*\r\n\r\n"); 32 /* 33 $buffer = ''; 34 while(!feof($as_socket)) { 35 $buffer .= fread($as_socket, 4096); 36 } 37 fclose($as_socket); 38 39 return false; 40 */ 41 if (($xml = @simplexml_load_file('http://api.leoslyrics.com/api_search.php?auth=duane&artist='.rawurlencode($artist).'&songtitle='.rawurlencode($song))) !== FALSE) { 14 42 if (isset($xml->response) && $xml->response == 'SUCCESS') { 15 43 $attr = $xml->searchResults->result->attributes(); 16 44 if ($attr['exactMatch'] == 'true') { 17 if ($xml2 = simplexml_load_file('http://api.leoslyrics.com/api_lyrics.php?auth=duane&hid='.$attr['hid'])) {45 if ($xml2 = @simplexml_load_file('http://api.leoslyrics.com/api_lyrics.php?auth=duane&hid='.$attr['hid'])) { 18 46 if (isset($xml2->response) && $xml2->response == 'SUCCESS') { 19 47 $source = '<a href="http://leoslyrics.com" class="zina_lyr_source">leoslyrics.com</a>'; -
zina/trunk/zina/extras/extras_lyr_lyricwiki.php
r145926 r226506 1 1 <?php 2 2 /* 3 * lyric wiki.org3 * lyrics.wikia.com 4 4 */ 5 5 #$lyrics = zina_extras_lyr_lyricwiki('New Order', 'Love Vigilantes'); 6 6 #$lyrics = zina_extras_lyr_lyricwiki('Kinks, The', 'Fancy'); 7 #$lyrics = zina_extras_lyr_lyricwiki('Modern Lovers', 'Dance with Me'); 8 7 9 #function zxml_encode($x) { return utf8_encode($x); } 8 10 #function zt($x, $y) {return $x.$y;} … … 10 12 11 13 function zina_extras_lyr_lyricwiki($artist, $song) { 12 $url = parse_url('http://lyric wiki.org/server.php');14 $url = parse_url('http://lyrics.wikia.com/server.php'); 13 15 14 16 $soap = '<?xml version="1.0" encoding="UTF-8" standalone="no"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:si="http://soapinterop.org/xsd" xmlns:tns="urn:LyricWiki" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><mns:getSongResult xmlns:mns="urn:LyricWiki" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><artist xsi:type="xsd:string">'. … … 38 40 if (preg_match('/<url.*?>(.*?)<\/url/is', $buffer, $matches)) { 39 41 if ($page = file_get_contents($matches[1])) { 40 if (preg_match('/<div class=[\'"]lyricbox.*?>(.*?)< p><!--/is', $page, $lyrics)) {42 if (preg_match('/<div class=[\'"]lyricbox.*?>(.*?)<!--/is', $page, $lyrics)) { 41 43 $source = '<a href="http://lyricwiki.org" class="zina_lyr_source">lyricwiki.org</a>'; 42 print_r($lyrics[1]); 43 $result['output'] = str_replace(array('<br />','<br>', '<br/>'), "\n", strip_tags($lyrics[1],'<br>')); 44 $lyric = preg_replace('/^.*?<\/div>/i','', $lyrics[1]); 45 $lyric = html_entity_decode(strip_tags($lyric,'<br>')); 46 $result['output'] = str_replace(array('<br />','<br>', '<br/>'), "\n", $lyric); 44 47 $result['source'] = zt('Lyrics provided by !url', array('!url'=>$source)); 45 48 return $result; … … 48 51 } 49 52 } 50 /*51 if (preg_match('/<lyrics.*?>(.*?)<\/lyrics/is', $buffer, $matches) && $matches[1] != 'Not found') {52 $result['output'] = nl2br($matches[1]);53 $source = '<a href="http://lyricwiki.org" class="zina_lyr_source">lyricwiki.org</a>';54 $result['source'] = zt('Lyrics provided by !url', array('!url'=>$source));55 return $result;56 }57 */58 53 return false; 59 54 } -
zina/trunk/zina/extras/scrobbler.class.php
r104241 r226506 237 237 238 238 fwrite($as_socket, $query_str."\r\n\r\n"); 239 239 #TODO: test 240 stream_set_timeout($as_socket, $this->submit_socket_timeout); 241 $info = stream_get_meta_data($as_socket); 242 240 243 $buffer = ''; 241 while(!feof($as_socket)) { 242 $buffer .= fread($as_socket, 8192); 244 while(!feof($as_socket) && !$info['timed_out']) { 245 $buffer .= fread($as_socket, 4096); 246 $info = stream_get_meta_data($as_socket); 243 247 } 244 248 fclose($as_socket); -
zina/trunk/zina/index.php
r145926 r226506 12 12 * License: GNU GPL2 <http://www.gnu.org/copyleft/gpl.html> 13 13 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 define('ZINA_VERSION', '2.0b1 4');14 define('ZINA_VERSION', '2.0b15'); 15 15 16 16 #TODO: … … 56 56 $badpath = true; 57 57 } 58 58 59 if (!$badpath && strstr($imgsrc,'..')) { 59 60 $badpath = true; … … 109 110 } 110 111 if ($file_not_found) { 111 #XXX:QQQ112 112 $tmp_path = utf8_decode($path); 113 113 $tmp_cur_dir = $zc['mp3_dir']. (!empty($tmp_path) ? '/'.$tmp_path : ''); … … 282 282 } 283 283 } elseif ($m == 3) { 284 #TODO: XXXcombine 3 & 4... combine 1,3&4?284 #TODO: combine 3 & 4... combine 1,3&4? 285 285 if ($zc['database']) { 286 286 $runtime = time(); 287 #XXX288 287 #TODO: make sure dirs & file assoc are up to date??? 289 288 $operations = array(); … … 572 571 return zina_not_found(); 573 572 574 } elseif (in_array($level, array(3,5,6,7,8,10,11,12,16,17,25,53,54,56,57 ))) {573 } elseif (in_array($level, array(3,5,6,7,8,10,11,12,16,17,25,53,54,56,57,66))) { 575 574 # STREAM FUNCTIONS 576 575 … … 811 810 Case 57 : # 3rd party lyrics 812 811 if ($zc['song_extras'] && in_array($m, $zc['song_es_exts'])) { 812 @session_write_close(); 813 813 if ($zc['zinamp'] && $playlist == 'zinamp') { 814 814 $content = zina_content_blurb($zina, $path, array('type'=>$m, 'return'=>true, 'item'=>null)); … … 825 825 826 826 $opts = explode(',', $zc['third_lyr_order']); 827 828 827 $output = ''; 829 828 830 829 if (!empty($info['artist']) && !empty($info['title'])) { 831 832 830 foreach($opts as $source) { 833 831 if (!in_array($source, $lyr_opts)) continue; … … 843 841 if (isset($result['source'])) $output .= ztheme('extras_source', $result['source']); 844 842 break; 845 } else {846 #if ($zc['debug'])847 843 } 848 844 } … … 854 850 } 855 851 break; 852 853 Case 66 : 854 if ($zc['zinamp'] && $zc['lastfm']) { 855 zina_zinamp_start($path); 856 } 857 break; 858 856 859 } 857 860 exit; … … 875 878 if (zina_check_password($_POST['un'], $_POST['up'])) { 876 879 $_SESSION['za-'.ZINA_VERSION] = true; 877 if ($zc['session']) { 880 if ($zc['session']) { // standalone only 878 881 $sess_id = zina_token_sess('1'); 879 882 setcookie('ZINA_SESSION', $sess_id, time() + (60*60*$zc['session_lifetime']), '/'); … … 1041 1044 1042 1045 if (is_file($zc['cur_dir']) && $zc['rss'] && basename($path) == $zc['rss_file']) { 1043 #XXX QQQ1044 #zina_set_header('Content-Type: application/xml');1045 #zina_send_file($zc['cur_dir']);1046 1047 1046 $output = file_get_contents($zc['cur_dir']); 1048 1047 $output = utf8_decode($output); … … 1718 1717 } elseif ($zc['files_sort'] == 3) { 1719 1718 usort($dir['files'],'zsort_date_desc'); 1719 } elseif ($zc['files_sort'] == 4) { 1720 usort($dir['files'],'zsort_trackno'); 1720 1721 } 1721 1722 … … 1981 1982 if (isset($_SESSION['z_sp'])) { 1982 1983 $sp_perc = round(strlen($_SESSION['z_sp']) / $zc['sp_len'] * 100, 1); 1983 $songs = unserialize (utf8_decode($_SESSION['z_sp']));1984 $songs = unserialize_utf8($_SESSION['z_sp']); 1984 1985 } else { 1985 1986 $sp_perc = 0; … … 1991 1992 $songs = zunserialize_alt(file_get_contents($filename)); 1992 1993 } 1994 #XXX:QQQ -> Make this like search, or with ID3 tags opt at least??? XXX:QQQ 1995 #USE:? function zina_content_search_list(&$results, $checkbox, $opts = array(), $extras = array()) { 1993 1996 1994 1997 if (sizeof($songs) > 0) { … … 2181 2184 if (!file_exists($text_file)) { 2182 2185 $text = zina_content_rss($path); 2183 #XXX QQQ2184 2186 $text = utf8_decode($text); 2185 2187 } … … 2351 2353 2352 2354 if ($zc['database']) { 2353 #XXXzina_set_message('trying to update...');2354 2355 $result = zdb_update_other($songs, 'rss', $path); 2355 } else { 2356 #XXXzina_set_message('trying to update...but no db???'); 2357 } 2358 #XXX 2356 } 2359 2357 $songs = utf8_encode($songs); 2360 2358 } elseif ($m == 6) { … … 2501 2499 if (isset($result['thumbnail_url'])) $output .= ' | <a href="'.$result['image_url'].'">'.zt('View Original').'</a>'; 2502 2500 $output .= ' | <a href="'.$save_url.'" onclick="zinaSaveImage(\''.$save_url.'\',\''.$class.'\'); return false;">'.zt('Save this image').'</a></div>'; 2503 #$output .= ' | <a href="javascript:void 0;" onclick="zinaSaveImage(\''.$save_url.'\',\''.$class.'\'); return false;">'.zt('Save this image').'</a></div>';2504 #XXX:QQQ2505 #$output .= ' | <a href="javascript:zinaSaveImage(\''.$save_url.'\',\''.$class.'\');">'.zt('Save this image').'</a></div>';2506 2501 echo $output; 2507 2502 } else { … … 2544 2539 $other = unserialize(zdbq_single("SELECT other FROM {dirs} WHERE path = '%s'", $path)); 2545 2540 if (isset($other['rss']) && !empty($other['rss'])) { 2546 #XXX QQQ2547 2541 return $other['rss']; 2548 2542 } … … 2556 2550 $zina = array(); 2557 2551 zina_content_breadcrumb($zina, $path, null); 2558 #XXX:QQQ2559 2552 $rss['title'] = $zina['title']; 2560 2553 $rss['lang_code'] = $zc['lang']; … … 2627 2620 } else { 2628 2621 $dir_write = true; 2629 #XXX2630 2622 $js2 = 'function zinaDeleteImage(url, imgclass){'. 2631 2623 'if (confirm("'.zt('Delete this image?').'")){'. … … 3403 3395 if (isset($files[$path])) { 3404 3396 $db_filepath = zcheck_utf8($path); 3397 $db_filepath = utf8_encode($path);; 3398 3405 3399 if (isset($db_files[$db_filepath])) { 3406 3400 $file = array_merge($file, $db_files[$db_filepath]); … … 3424 3418 $file['mtime'] = $mtime; 3425 3419 } 3426 /*3427 if (!isset($file['mtime']) || $file['mtime'] != $mtime) {3428 # stale db info, get from id3/file3429 unset($file['info']);3430 unset($file['genre']);3431 unset($file['id3_info']);3432 $extras = null;3433 $file['mtime'] = $mtime;3434 $dir['regen'] = true;3435 }3436 */3437 3420 } 3438 3421 $file['new'] = ($zc['new_highlight'] && $now - $file['mtime'] < $diff); … … 3817 3800 3818 3801 if ($zc['zinamp'] && $zc['lastfm']) { 3819 $now = time(); 3820 $_SESSION['zinamp_track'][$path] = $now; 3821 if (sizeof($_SESSION['zinamp_track']) > 2) { 3822 foreach($_SESSION['zinamp_track'] as $track => $time) { 3823 if ($now > $time + (60*60*1)) { 3824 unset($_SESSION['zinamp_track'][$track]); 3825 } 3826 } 3827 } 3802 zina_zinamp_start($path); 3803 3828 3804 $output .= xml_field('complete_url', zurl($path,'l=56',null,true).'&n='); 3805 $output .= xml_field('start_url', zurl($path,'l=66',null,true)); 3829 3806 } 3830 3807 $result['path'] = $path; … … 3842 3819 3843 3820 $output .= "<info>\n<![CDATA[".ztheme('zinamp_song_info',$result)."]]>\n</info>"; 3821 3844 3822 return $output.'</track>'; 3823 } 3824 3825 function zina_zinamp_start($path) { 3826 $now = time(); 3827 3828 $_SESSION['zinamp_track'][$path] = $now; 3829 if (sizeof($_SESSION['zinamp_track']) > 2) { 3830 foreach($_SESSION['zinamp_track'] as $track => $time) { 3831 if ($now > $time + (60*60*1)) { 3832 unset($_SESSION['zinamp_track'][$track]); 3833 } 3834 } 3835 } 3845 3836 } 3846 3837 … … 3926 3917 $meta .= xml_field('link', zurl($file,'l=54',NULL,TRUE)); 3927 3918 $meta .= xml_field('meta', 'audio'); 3928 #XXX3929 /*3930 if ($zc['zinamp']) { #XXX && $count < $zc['stream_extinf_limit'] + 1)3931 $img_path = dirname($file);3932 $img = zina_get_dir_item($zc['mp3_dir'].'/'.$img_path,'/\.('.$zc['ext_graphic'].')$/i');3933 #todo: make 'sub' configable?3934 $img_url = zina_get_image_url($img_path, $img, 'sub', true);3935 $meta .= xml_field('image', $img_url);3936 $meta .= xml_field('image_url', zurl($img_path, null, null, true));3937 }3938 */3939 3919 return '<track><location>'.$url.'</location>'.$meta.'</track>'."\n"; 3940 3920 } … … 4342 4322 if ($zc['pos_kill']) exec($zc['pos_kill_cmd']); 4343 4323 $pos_cmd = str_replace('%TEMPFILENAME%', $tmpfname, $zc['pos_cmd']); 4344 if ($zc['pos_hack'])session_write_close();4324 @session_write_close(); 4345 4325 exec($pos_cmd); 4346 4326 #sleep(2); … … 4447 4427 if($zc['session_pls'] && $playlist == 'zina_session_playlist') { 4448 4428 if (isset($_SESSION['z_sp'])) { 4449 $songs = zunserialize_alt($_SESSION['z_sp']);4429 $songs = unserialize_utf8($_SESSION['z_sp']); 4450 4430 } 4451 4431 } else { … … 4606 4586 4607 4587 if ($count < $least) { 4608 $limit -=$count;4588 $limit = $least - $count; 4609 4589 $floor++; 4610 4590 } … … 4700 4680 zina_set_header('Content-Disposition: inline; filename="'.$filename.'"'); 4701 4681 4682 @session_write_close(); 4702 4683 if ($passthru) { 4703 4684 if (!$cache) { … … 4784 4765 if ($resample) { 4785 4766 @set_time_limit(0); 4767 @session_write_close(); 4786 4768 $opts = str_replace('%FILE%', '"'.$file.'"', $zc['encoders'][$ext]['opts']); 4787 4769 $begin = time(); … … 4837 4819 unset($_SESSION['zinamp_track'][$path]); 4838 4820 } 4821 } else { 4822 zina_debug(zt('scrobbler session not set: @path', array('@path'=>$path)), 'error'); 4839 4823 } 4840 4824 } … … 4855 4839 function zina_send_file($file) { 4856 4840 @set_time_limit(0); 4841 @session_write_close(); 4857 4842 $fp = @fopen($file, 'rb'); 4858 4843 if ($fp !== false) { … … 4867 4852 echo fread($fp, 8192); 4868 4853 flush(); 4869 #XXX 4870 #usleep(20000); 4854 #usleep(20000); # XXX 4871 4855 if (connection_status() != 0) break; 4872 4856 } … … 4959 4943 } else { # new/additions 4960 4944 if ($type == 'a' && isset($_SESSION['z_sp'])) { 4961 $existing = u tf8_decode($_SESSION['z_sp']);4945 $existing = unserialize_utf8($_SESSION['z_sp']); 4962 4946 $content = serialize(array_merge($existing, $files)); 4963 4947 } … … 5883 5867 2 => zt('By Date'), 5884 5868 3 => zt('By Date Descending'), 5869 4 => zt('ID3 Track Number'), 5885 5870 ); 5886 5871 } … … 5890 5875 #TODO: get from directory... extras/extras_'.$m.'_* 5891 5876 #$opts = array('lyricwiki', 'lyricsfly'); 5892 return array('l eoslyrics', 'lyricwiki', 'chartlyrics');5877 return array('lyricwiki', 'chartlyrics', 'lyricsmania'); 5893 5878 } 5894 5879 … … 6257 6242 'pos' => array( 6258 6243 'pos' => array('type'=>'radio', 'opts'=>'zina_get_opt_tf', 'def'=>0, 'v'=>array('tf')), 6259 'pos_hack' => array('type'=>'radio', 'opts'=>'zina_get_opt_tf', 'def'=>0, 'v'=>array('tf')),6260 6244 'pos_cmd' => array('type'=>'textfield', 'def'=>'bgrun.exe C:\Progra~1\Winamp\winamp.exe %TEMPFILENAME%.m3u >NUL', 6261 6245 'v'=>array('if'=>array('pos'=>'req'))), -
zina/trunk/zina/lang/de.php
r67912 r226506 1 1 <?php 2 # German translation by: Philipp Bock 3 # original code page: "iso-8859-1"; 4 $language = 'German'; 2 /* 3 * 4 * 5 * These are most of the translation strings currently in Zina. 6 * Save this file to LANGCODE.php and modify it. 7 * Format: 'english words' => 'your translation' 8 * 9 * You do not have to do them all (just delete the lines you do not do). 10 * If you are making a new translation or completing an older one, move the file to the "lang" directory. 11 * If languages.txt file exists in your cache directory, delete it. 12 * Or a copy in your theme folder will override the default language file. 13 * English users can change wording/phrasings this way. 14 * 15 * Test it out. 16 * 17 * If you would like it to be included in Zina, please email it: to: <[email protected]> 18 */ 19 20 $language = "German"; 5 21 6 22 $lang['de'] = array( 7 'Artists' => 'Interpret', 8 'Albums' => 'Alben', 9 'Songs' => 'Titel', 10 'Song' => 'Titel', 11 'See Also' => 'Ähnliche Alben', 12 'Add To' => 'Hinzufügen', 13 'Delete' => 'Löschen', 14 'Download' => 'Herunterladen', 15 'Home' => 'Zina-Startseite', 16 'More' => 'Weitere', 17 'Play' => 'Anhören', 18 'Play Low Fidelity' => 'Abspielen in geringerer Qualität', 19 'Playlists' => 'Wiedergabeliste', 20 'Playlist' => 'Wiedergabelisten', 23 'Bad path: @path' => 'Ungültiger Pfad: @path', 24 'Path does not exist: @path' => 'Pfad existiert nicht: @path', 25 'Cannot read override file.' => 'Datei nicht überschreibbar.', 26 'Settings updated.' => 'Einstellungen aktualisiert', 27 'Your settings were not saved!' => 'Ihre Einstellungen wurden nicht gespeichert!', 28 'Regenerating directory and file caches.' => 'Erneuere Verzeichnis und Datei Caches', 29 'Caches generated successfully.' => 'Caches erfolgreich generiert.', 30 'Cache generated successfully.' => 'Cache erfolgreich generiert.', 31 'Regenerating genre caches.' => 'Erneuere Musikrichtungs Cache.', 32 'Genre cache generated successfully.' => 'Musikruchtungs Cache erfolgreich erneuert.', 33 'Invalid option' => 'Ungültige Option', 34 'Database cleaned.' => 'Datenbank aufgeräumt.', 35 'Images cache files deleted.' => 'Gecachte Bilddateien wurden gelöscht.', 36 'Compressed cache files deleted.' => 'Komprimierte Cache Dateien gelöscht', 37 'Test it out.' => 'Probiere es aus.', 38 'Language' => 'Sprachauswahl', 39 'Nothing Found' => 'Nichts gefunden', 40 'Genre deleted.' => 'Musikrichtung gelöscht.', 41 'Could not delete file.' => 'Kann Datei nicht löschen.', 42 'Deleted: @file' => 'Gelöscht: @file', 43 'Failed' => 'Fehlgeschlagen', 44 'Image Saved: @src -> @dest' => 'Bilddatei gespeichert Saved: @src -> @dest', 45 'Deleted' => 'gelöscht', 46 'Thank you' => 'Danke', 47 'No @type found.' => 'Kein @type gefunden', 48 'Username and/or password are incorrect.' => 'Benutzername und/oder Passwort sind falsch.', 49 'Added to playlist' => 'Zur Playlist hinzugefügt', 50 'Logged out succesfully.' => 'Erfolgreich ausgeloggt.', 51 'Genres' => 'Musikrichtungen', 52 'Search Results' => 'Suchergebnisse', 53 'Search type not found in index.' => 'Suchtyp nicht im Index gefunden.', 54 'Search term must be longer than @num characters' => 'Der Suchbegriff muss länger als @num Zeichen lang sein', 21 55 'Login' => 'Anmelden', 22 'Search Results' => 'Suchergebnisse', 23 'Not Found' => 'Nicht gefunden', 24 'View/Edit Playlist' => 'Wiedergabeliste ansehen/bearbeiten', 25 'Session Playlist' => 'Derzeitige Wiedergabeliste', 26 'Sorry, there are no playlists.' => 'Leider keine Wiedergabelisten vorhanden.', 56 'Username' => 'Benutzername', 57 'Password' => 'Passwort', 27 58 'New Playlist' => 'Neue Wiedergabeliste', 28 59 'Playlist Name' => 'Name der Wiedergabeliste', 29 60 'Submit' => 'Speichern', 30 'Random' => 'Zufälliges Abspielen von', 31 'Username' => 'Benutzername', 32 'Password' => 'Passwort', 61 'Rename' => 'Umbenennen', 62 'Cannot rename playlist.' => 'Wiedergabeliste momentan nicht umbenennbar.', 63 'Playlist' => 'Wiedergabelisten', 64 'Settings' => 'Eigenschaften', 65 'Help / Support Information' => 'Hilfe / Support Informationen', 66 'Clean up database' => 'Datenbank aufräumen', 67 'All' => 'Alle', 68 'Remove' => 'Entfernen', 69 'Ignore' => 'Ignorieren', 70 'View/Edit Playlist' => 'Wiedergabeliste ansehen/bearbeiten', 71 '@title Playlist' => '@title Wiedergabeliste', 72 'This playlist is empty.' => 'Diese Wiedergabeliste ist leer.', 73 'Playlists' => 'Wiedergabelisten', 74 'Session Playlist' => 'Derzeitige Wiedergabeliste', 75 '@file does not exist.' => '@file existiert nicht.', 76 'Updated.' => 'Aktualisiert.', 77 'Could not write file.' => 'Kann Datei nicht schreiben.', 33 78 'Error' => 'Fehler', 34 'Custom' => 'Eigene', 79 'View Original' => 'Original ansehen', 80 'Save this image' => 'Dieses Bild abspeichern', 81 'Not found: ' => 'Nicht gefunden: ', 82 'Delete this image?' => 'Dieses Bild löschen?', 83 'Delete' => 'Löschen', 84 'Loading...' => 'Laden...', 85 'FOR REFERENCE ONLY: NOT ALL THESE OPTIONS MAKE SENSE' => 'NUR FÜR REFERENZZWECKE: NICHT ALLE EINSTELLUNGEN SIND SINNVOLL', 35 86 'Update' => 'aktualisieren', 36 'Rename' => 'Umbenennen', 37 'All' => 'Alle', 38 'Selected' => 'Ausgewählte', 87 'Install the database' => 'Datenbank installieren', 88 'This could take a while.' => 'Das kann eine Weile dauern.', 89 'Are your sure you want to do this?' => 'Möchten Sie das wirklich jetzt machen?', 90 'Database Update: ' => 'Datenbankaktualisierung', 91 'Regenerate Genre Cache' => 'Musikrichtungscache erneuern', 92 'Update search index' => 'Aktualisiere Suchindex', 93 'Should only be necessary after upgrading your database or if files are changed and their timestamps are not modified for some reason.' => '', 94 'This will find entries in the database that no longer exist in the filesystem and give you an opportunity to delete, ignore or update them.' => '', 95 'Regenerate Statistics' => 'Erneuere Statistiken', 96 'Find Missing Images/Artwork' => 'Suche fehlendes Artwork', 97 'Delete cached images files' => 'Lösche gecachte Bilddateien', 98 'Administrative Functions' => 'Administrative Funktionen', 99 'Most regenerative functions will be run automatically if your CMSes cron functionality is setup, or if the cron.php file in the zina directory is run regularly.' => '', 100 'No playlist selected.' => 'Keine Playlist gewählt.', 101 'Nothing to delete.' => 'Nichts zum Löschen.', 102 'Nothing to add to playlist.' => 'Kann nichts zur Playlist hinzufügen.', 103 'Nothing to view.' => 'Nichts zum Anzeigen.', 104 'At least one song must be selected.' => 'Mindestens ein Song muss gewählt sein.', 105 'Could not read directory' => 'Konnte Verzeichnis nicht lesen', 106 'Edit @extra' => 'Bearbeite @extra', 107 'Statistics' => 'Statistiken', 108 'No genres found.' => 'Keine Musikrichtungen gefunden.', 109 'Unknown' => 'Unbekannt', 110 'Could not read directory: @dir' => 'Konnte Verzeichnis nicht lesen: @dir', 111 'Unknown: @code' => 'Unbekannt: @code', 112 'English' => 'Englisch', 113 'Title' => 'Titel', 114 'File Date' => 'Dateidatum', 115 'Genre' => 'Musikrichtung', 116 'Rating' => 'Bewertung', 117 'Type' => 'Typ', 118 'Votes' => 'Stimmen', 119 'Year' => 'Jahr', 120 'Ascending' => 'Austeigend', 121 'Descending' => 'Absteigend', 122 'Zina Error: Could not open image file' => 'Zine Fehler: Kann Bilddatei nicht öffnen', 123 'Artists' => 'Interpret', 39 124 'None' => 'Keine', 40 'Artist/Title' => 'Interpret/Künstler', 41 'Cannot rename playlist.' => 'Wiedergabeliste momentan nicht umbenennbar.', 42 'Check' => 'Markieren', 43 'Login Incorrect.' => 'Anmelden fehlgeschlagen!', 44 'Log out' => 'Ausloggen', 45 'Edit' => 'Bearbeiten', 46 'Settings' => 'Eigenschaften', 47 'At least one song must be selected.' => 'Mindestens ein Song muss gewählt sein.', 48 'No playlist selected.' => 'Keine Playlist gewählt.', 49 'Nothing to add to playlist.' => 'Kann nichts zur Playlist hinzufügen.', 50 'Play Recursively' => 'rekursiv spielen', 51 'Play Recursively Random' => 'zufällig-rekursiv spielen', 52 'Genres' => 'Musikrichtungen', 53 'End' => 'Ende', 54 'Regenerate Cache' => 'Cache erneuern', 55 'Regenerate Genre Cache' => 'Musikrichtungscache erneuern', 56 'Use .M3U playlists' => '.m3u-Playlists verwenden', 57 'Use .ASX playlists' => '.asx-Playlists verwenden', 125 'External' => 'Externe', 126 'Internal PHP Zip Library' => 'Interne PHP Zip Bibliothek', 127 'Play' => 'Anhören', 128 'Alphabetically' => 'Alphabetisch', 129 'Alphabetically Descending' => 'Alphabetisch absteigend', 130 'By Date' => 'Nach Datum', 131 'By Date Descending' => 'Nach Datum absteigend', 132 'Full Page' => 'Ganze Seite', 58 133 'True' => 'An', 59 134 'False' => 'Aus', 135 'GD not detected' => 'GD nicht gefunden', 136 'Logout' => 'Abmelden', 137 'Edit Text' => 'Text bearbeiten', 138 'Edit Podcast' => 'Podcast bearbeiten', 139 'Update database' => 'Datenbank aktualisieren', 140 'Edit images' => 'Bilder bearbeiten', 141 'Rate' => 'Bewerten', 142 'Share' => 'Teilen', 143 'Other' => 'Andere', 144 'New' => 'Neu', 145 'First' => 'Erste', 146 'Previous' => 'Vorherige', 147 'Next' => 'Nächste', 148 'Last' => 'Letzte', 149 'Sort Ascending' => 'Aufsteigend sortieren', 150 'Sort Descending' => 'Absteigend sortieren', 151 'Sort' => 'Sortieren', 152 'Date' => 'Datum', 153 'Albums' => 'Alben', 154 'See Also' => 'ähnliche Alben', 155 'Play Low Fidelity' => 'Abspielen in geringerer Qualität', 156 'Download' => 'Herunterladen', 157 'Play recursively' => 'Rekursiv wiedergeben', 158 'Play recursively random' => 'Rekursiv/zufällig wiedergeben', 159 'Edit' => 'Bearbeiten', 160 'More' => 'Weitere', 161 'Remove Vote' => 'Stimme entfernen', 162 'vote' => 'Stimme', 163 'votes' => 'Stimmen', 164 'Directories with no image:' => 'Verzeichnisse ohne Bild', 165 'Close' => 'Schließen', 166 'Current Images' => 'Aktuelle Bilder', 167 'Remote Images' => 'Entfernte Bilder', 168 'Subscribe' => 'Aboniere', 169 'View Playlists' => 'Wiedergabelisten ansehen', 170 'Songs' => 'Titel', 171 'Edit Genre' => 'Musikrichtung bearbeiten', 172 'Update Playlist' => 'Playlist aktualisieren', 173 'Check' => 'Markieren', 174 'Update custom playlist' => 'Eigene Playlist aktualisieren', 175 'Create custom playlist' => 'Eigene Playlist erstellen', 176 'Play random' => 'Spiele zufällig', 177 'Selected' => 'Ausgewählte', 178 'Play custom playlist' => 'Spiele eigene Playlist', 179 'Download custom files' => 'Downloade eigene Dateien', 180 'Play @title' => 'Spiele @title', 181 'Search' => 'Suche', 182 'Add a genre' => 'Eine Musikrichtung hinzufügen', 183 'Add To' => 'Hinzufügen', 60 184 'Top' => 'Seitenanfang', 61 'FOR REFERENCE ONLY: NOT ALL THESE OPTIONS MAKE SENSE' => 'NUR FÜR REFERENZZWECKE: NICHT ALLE EINSTELLUNGEN SIND SINNVOLL', 62 'This will regenerate the cache.' => 'Cache wird erneuert.', 63 'It could take a while.' => 'Dies kann eine Weile dauern.', 64 'Are your sure you want to do this?' => 'Möchten Sie das wirklich jetzt machen?', 65 'This will regenerate the GENRE cache.' => 'Musikrichtungscache wird erneuert.', 66 'Music Directory (full path)<br>(Windows use forward slash, e.g. F:/music)' => 'Musikverzeichnis (kompletter Pfad)<br>(Windows benutzt den Schrägstrich, z.B. F:/_zina)', 67 'Zina Files Directory (full path)<br>(Windows use forward slash, e.g. F:/_zina)' => 'Zina-Dateiverzeichnis (absoluter Pfad)<br>(Windows benutzt den Schrägstrich, z.B. F:/_zina)', 68 'Zina Files Directory (relative path)' => 'Zina-Dateiverzeichnis (relativer Pfad)', 69 'Language' => 'Sprachauswahl', 70 'Override language character set' => 'Anderen Zeichensatz angeben', 71 'Theme' => 'Erscheinungsbild', 72 'Embedded' => 'Zina eingebunden', 73 'Post/PHPnuke logged in users only' => 'Post/PHPnuke nur für angemeldete Benutzer', 74 'Zina width' => 'Breite für alle Seiten', 75 'Title of Main Directory' => 'Überschrift des Hauptverzeichnisses', 76 'Show option to "play"' => '„Anhören“ anzeigen', 77 'Show option to "play selected"' => '„Markierte anhören” anzeigen', 78 'Show option to "play recursive"' => '„Rekursiv anhören” anzeigen', 79 'Show option to "play recursive random"' => '„Zufällig-rekursiv abspielen” anzeigen', 80 'Show navigation' => 'Navigation anzeigen', 81 'Show search form' => 'Suche aktivieren', 82 'Show download icon' => 'Download-Symbol anzeigen', 83 'Show AMG search box' => 'AMG-Suche aktivieren', 84 'Genre functionality' => 'Musikrichtung-Funktion', 85 'Playlist functionality (other options depend on this)' => 'Wiedergabeliste-Funktion (Andere Optionen hängen hiervon ab)', 86 'Allow user to have session playlist' => 'Benutzern Wiedergabeliste erlauben', 87 'Show an option to use .asx files instead (WMP)' => '.asx- statt .wmp-Dateine benutzen', 88 'Only return .asx files (WMP). Requires previous set to true' => 'Nur .asx-(WMP-)Dateien zurückgeben. Dazu muss vorherige Option auf „an” gesetzt werden', 89 'Max length of session playlist' => 'Maximale Länge der Wiedergabeliste', 90 'Show play random option' => '„Zufälliges abspielen von” aktivieren', 91 'Default random selected' => 'Standardauswahl', 92 'Random Number Options' => 'Angabe der Auswahlmöglichkeiten (Durch Kommata getrennt)', 93 'Default random number "selected"' => 'Standardeintrag von „Zufälliges abspielen von”', 94 'Have random play use custom playlists' => '„Zufälliges Abspielen von” auch von eigenen Widergabelisten?', 95 'Use Main Cache (for custom playlists, faster random playlists, genres)' => 'Cache benutzen (Cache-Verzeichnis muss Schreibrechte für den Web-Server haben)', 96 'Main Cache life (in days)' => 'Cachelebensdauer (in Tagen)', 97 'Script timeout (in seconds)' => 'Skripttimeout (in Sekunden)', 98 'Extensions of graphic files' => 'Dateityp der Bilddateien (Dateisuffixe durch | getrennt, kein Punkt)', 99 'Use local paths when running Zina locally' => 'Lokale Pfade benutzen, wenn Zina lokal verwendet wird', 100 'Remove white space between HTML tags' => 'Entfernen von Whitespaces zwischen HTML-tags?', 101 'Administrator user name' => 'Benutzername des Admininistrators', 102 'If running on local machine, user is admin' => 'Wenn Zina auf einem lokalen Rechner läuft, ist der Benutzer automatisch Admin', 103 'If remote IP is found in this string, remote user is admin' => 'Wenn von dieser IP-Adresse zugegriffen wird, ist der Benutzer automatisch Admin', 104 'Append Apache user:password to playlist urls' => 'Für Apache-Webserver: Einfügen von „user:password” in Wiedergabelisten-URLs', 105 'Stream internally' => 'Interner Stream', 106 'Add #EXTINF Artist - Title info to playlists' => 'Hinzufügen von #EXTINF-(Interpret - Titel)-Info in Wiedergabelisten', 107 'Name of blurb file for directories' => 'Name der Textdatei, die in Verzeichnissen angezeigt werden soll', 108 'If multiple directory images, let clicking on image rotate through them' => 'Durch Anklicken eines Bildes das nächste Bild im selben Verzeichnis anzeigen (falls vorhanden)', 109 'Show album year (based on ID3 tag)' => 'Zeige Jahr des Albums (basierend auf ID3-Tags)', 110 'Show album genre (based on ID3 tag)' => 'Zeige Genre des Albums (basierend auf ID3-Tags)', 111 'Show genre on a artist page by looking at an album genre (based on ID3 tag)' => 'Anzeigen des Genres in einer Künstler-/Interpreten-Seite aufgrund der Musikrichtung des Albums (basierend auf ID3-Tags)', 112 'Dirs with this prefix are not displayed' => 'Verzeichnisse mit diesem Vorzeichen werden nicht angezeigt', 113 'Regex that cleans up sub-directory names' => 'Regulärer Audruck, der bestimmte Zeichen in Unterverzeichnissen „bereinigt”', 114 'String to search for in directory title' => 'Nach angegebenen Zeichen suchen (innerhalb von Verzeichnissen)', 115 'String to replace' => '...und durch dieses Zeichen ersetzen (Leerzeichen möglich)', 116 'Show a "missing directory" image' => 'Anzeigen, wenn kein Bild im Verzeichnis vorhanden ist?', 117 'Ignore string at beginning of directory name for sorting purposes' => 'Zeichen, die beim Sortieren nicht berücksichtigt werden sollen, aktivieren', 118 'String to ignore' => 'Angabe des Zeichens/der Zeichen (durch | getrennt)', 119 'Name of file that makes a directory a "category"' => 'Name der Datei, die aus einem Verzeichnis eine „Kategorie” macht', 120 'Category Width' => 'Breite', 121 'Number of columns on a "category" page' => 'Anzahl der Spalten in einer Kategorie-Seite', 122 'Length of text to truncate after' => 'Maximale Länge des Textes, nach dem „...” angezeigt wird', 123 'Split category page into different pages' => 'Aufteilen in verschiedene Seiten', 124 'Number of items per split page (prettier if a multiple of category colums)' => 'Anzahl der Einträge pro Seite (sieht besser aus, wenn sehr viele Spalten angeziegt werden sollen)', 125 'Display sub-directory listing' => 'Anzeige von Unterverzeichnissen', 126 'Title of sub-directory listing' => 'Name der Unterverzeichnisse', 127 'Truncate long sub-directory names' => 'Abkürzen von langen Unterverzeichnisnamen (ab Zeichen)', 128 'Display sub-directory images' => 'Bilder in Unterverzeichnissen anzeigen', 129 'Center sub-directory images' => 'Zentrieren von Bildern in Unterverzeichnissen', 130 'Number of columns for sub-directory images' => 'Anzahl der Spalten von Bildern in Unterverzeichnissen', 131 'Display sub-dir name below sub-dir image' => 'Anzeige des Unterverzeichnisnamens unterhalb des jeweiligen Bildes', 132 'Show a "missing sub-dir" image' => 'Anzeige eines fehlenden Bildes in einem Unterverzeichnis', 133 'Highlight new files and directories' => 'Neue Dateien und Verzeichnisse zusätzlich kennzeichnen', 134 'Highlight within how many days?' => 'Anzeigedauer (in Tagen)', 135 'Use theme image' => 'Symbol angezeigen', 136 'Prefixed string' => 'Textangabe vor der Datei/Verzeichnis', 137 'Suffixed string' => 'Textangabe nach der Datei/Verzeichnis', 138 'Alternate/Related Directories' => 'Alternative/Verwandte Verzeichnisse', 139 'Display Alternate/Related Directories Images' => 'Anzeige von Bildern in Alternativen/Verwandten Verzeichnissen', 140 'Filename that contains list' => 'Dateiname der die Einträge beinhaltet', 141 'Text heading' => 'Überschrift', 142 'Get filesize, length, kpbs, time from mp3 files?' => 'Sollen Spieldauer (MM:SS), kbps, Frequenz und Dateigröße von mp3-Dateien angezeigt werden?', 143 'Get mp3 info faster (slightly less accurate)' => 'Schnelleres Errechnen der mp3-Information (weniger genau)', 144 'Use ID3v1/2 song titles (if they exist)' => 'Verwenden von ID3v1/2-Liedtiteln (falls vorhanden)', 145 'If no ID3 tags, this regex cleans up song titles' => 'Ist kein ID3-Tag vorhanden, wird durch diesen regulären Ausdruck der Liedtitel „bereinigt”', 146 'String to search for in song title' => 'Zeichen, nach dem im Liedtitel gesucht werden soll', 147 'String to replace' => '...und durch dieses Zeichen ersetzt wird', 148 'Check for song blurb (named same as mp3, but with .txt instead)' => 'Zusätzliche Informationen unterhalb des Liedtitels? (Gleicher Dateiname wie mp3-Datei, als Suffix aber .txt)', 149 'Display "Artist - Title" as song title (needs ID3 tags)' => 'Anzeigen von „Interpret - Titel” als Liedtitel (ID3-Tag muss dafür vorhanden sein)', 150 'Name of file to make a directory list as "Artist - Title"' => 'Name der Datei, um aus einem Verzeichnis die Anzeige "Interpret - Titel" zu machen', 151 'Look for "fake" songs' => 'Suche nach Platzhalter für Lieder', 152 'Fake file extension' => 'Dateisuffix, um Platzhalter für Lieder zu definieren', 153 'Look for "remote" songs' => 'Nach „entfernten” Liedern suchen', 154 'Remote file extension' => 'Dateisuffix für „entfernte” Lieder', 155 'Look for second (lower quality) mp3 with following suffix' => 'Suchen einer zweiten mp3-Datei (geringere Qualität) mit folgender Dateiendung', 156 'Suffix for lo-fi mp3 name[suffix].ext; e.g. "song.lofi.mp3"' => 'Dateiendung für Lo-Fi-mp3-Dateien Name_der_Datei.[suffix].ext; bsp. "lied.lofi.mp3"', 157 'Lofi Lookahead: Try only if resample is false, Lofi is true and not all directories have lofi files' => 'Lo-Fi nur wenn kein Resapmpling aktiviert ist, Lo-Fi „an” und nicht alle Unterverzeichnisse Lo-Fi-Dateien haben', 158 'Resample' => 'Resampling', 159 'Encoding program' => 'Programm zum Enkodieren', 160 'Input resize types (supported by YOUR configuration)' => 'Bildtyp(en), deren Größe angpasst werden soll (von Ihrer Konfiguration abhängig)', 161 'Output resize type (supported by YOUR configuration)' => 'Bildtyp nach Größenanpassung (von Ihrer Konfiguration abhängig)', 162 'JPEG quality (1=worst/100=best)' => 'JPEG-Qualität (1 (schlecht) - 100 (sehr gut))', 163 'Directory images' => 'Verzeichnisbilder', 164 'Directory scale to width (pixels)' => 'Angabe der Größe der Bilder in Verzeichnissen (in Pixel)', 165 'JPEG quality (1=worst/100=best)' => 'JPEG-Qualität (1 (schlecht) - 100 (sehr gut))', 166 'Subdirectory images' => 'Unterverzeichnisbilder', 167 'Subdir scale to width (pixels)' => 'Angabe der Größe der Bilder in Unterverzeichnissen (in Pixel)', 168 'Only rescale if orig width > rescale width' => 'Nur dann Größe anpassen, wenn Originalbreite größer als neue Breite ist', 169 'Write directory title on missing image' => 'Angabe des Verzeichnisses bei fehlendem Bild', 170 'Directory text color (RGB)' => 'Textfarbe des Verzeichnisses (RGB)', 171 'Write subdir title on missing image' => 'Angabe des Unterverzeichnisse bei fehlendem Bild', 172 'Subdir text color (RGB)' => 'Farbe des Unterverzeichnisses (RGB)', 173 'Wrap long text at this character' => 'Wortumbruch bei xx-Zeichen', 174 'Full path to TrueType font' => 'Vollständiger Pfad zu einer TrueType-Schriftart', 175 'Font Size' => 'Schriftgröße', 176 'Download selected songs as compressed file' => 'Download von ausgewählten Dateien als eine komprimierte Datei', 177 'Compression via internal PHP zlib module' => 'Komprimierung mit internem PHP Zlib Modul', 178 'Compression program (full path)' => 'Vollständiger Pfad zum Komprimierungsprogramm', 179 'Compressed file extension' => 'Dateisuffix der komprimierten Datei', 180 'Compression program options' => 'Parameter für Komprimierungsprogramm', 181 'Compressed file mime-type' => 'Komprimierter Datei-MIME-Typ', 182 'Play on server' => 'Vom Server abspielen', 183 'mpg123 hack (try if using and having problems)' => 'MPG123-Umgehung (wenn Probleme auftreten, bitte versuchen)', 184 'Play on server command' => 'Befehlsfolge, um auf dem Server abzuspielen', 185 'Kill (necessary on linux/unix systems)' => 'Kill (Notwendig auf Linux/Unix Systemen)', 186 'Kill command' => 'Kill-Anweisung', 187 'Other media types' => 'Andere Mediendateien', 188 'Media types' => 'Mediendateien', 189 'Media playlists' => 'Arten von Wiedergabelisten', 190 'Time based functionality' => 'Funktionen zeitabhängig steuern', 191 'Time based options' => 'Parameter', 192 'Old Password' => 'Altes Passwort', 193 'New Password' => 'Neues Passwort', 194 'Confirm Password' => 'Passwort bestätigen', 195 'Look for Other Non-Music Media Types' => 'Andere Medientypen berücksichtigen', 196 'Other Non-Music Media Types' => 'Andere Medientypen', 197 'Allow Download' => 'Download erlauben', 198 'Section Heading' => 'Überschrift', 199 185 'Random' => 'Zufälliges Abspielen von', 186 'No results' => 'Keine Ergebnisse', 187 'Missing Title' => 'Fehlender Titel', 188 'No tracks found in playlist' => 'Keine Titel in Wiedergabeliste gefunden', 189 'Error opening' => 'Fehler beim öffnen', 190 'Nothing to play' => 'Nichts zum Wiedergeben', 191 'Seek' => 'Suchen', 192 'Volume' => 'Lautstärke', 193 'File not found' => 'Datei nicht gefunden', 194 'Summary' => 'Zusammenfassung', 195 'Last Year' => 'Letztes Jahr', 196 'Last 30 days' => 'Letzter Monat', 197 'Last 7 days' => 'Letzte Woche', 198 'Last 24 hours' => 'Die letzten 24 Stunden', 199 'Timezone' => 'Zeitzone', 200 'Music Directory' => 'Musikverzeichnis', 201 'Zina Files Directory (full path)<br>(Windows use forward slash, e.g. F:/_zina)' => 'Zina-Dateiverzeichnis (absoluter Pfad)<br>(Windows benutzt den Schrägstrich, z.B. F:/_zina)', 202 'Theme' => 'Erscheinungsbild', 203 'Show amg.com search box' => 'Zeige amg.com Suchbox', 204 'Title of Main Directory' => 'Überschrift des Hauptverzeichnisses', 205 'Show option to "play selected"' => '„Markierte anhören” anzeigen', 206 'Show option to "play recursive"' => '„Rekursiv anhören” anzeigen', 207 'Show option to "play recursive random"' => '„Zufällig-rekursiv abspielen” anzeigen', 208 'Show search form' => 'Suche aktivieren', 209 'Allow downloads' => 'Erlaube Downloads', 210 'Sort files' => 'Sortiere Dateien', 211 'Genre functionality' => 'Musikrichtung-Funktion', 212 'Show genre images' => 'Zeige Musikrichtungsbilder', 213 'Limit genre names to' => 'Begrenze Musikrichtungsbilder auf', 214 'Allow user to have session playlist' => 'Benutzern Wiedergabeliste erlauben', 215 'Max length of session playlist' => 'Maximale Länge der Wiedergabeliste', 216 'Show play random option' => '„Zufälliges abspielen von” aktivieren', 217 'Random Number Options' => 'Angabe der Auswahlmöglichkeiten (Durch Kommata getrennt)', 218 'Default random number "selected"' => 'Standardeintrag von „Zufälliges abspielen von”', 219 'Have random play use custom playlists' => '„Zufälliges Abspielen von” auch von eigenen Widergabelisten?', 220 'Script timeout (in seconds)' => 'Skripttimeout (in Sekunden)', 221 'Use local paths when running Zina locally' => 'Lokale Pfade benutzen, wenn Zina lokal verwendet wird', 222 'Administrator user name' => 'Benutzername des Admininistrators', 223 'If running on local machine, user is admin' => 'Wenn Zina auf einem lokalen Rechner läuft, ist der Benutzer automatisch Admin', 224 'If remote IP is found in this string, remote user is admin' => 'Wenn von dieser IP-Adresse zugegriffen wird, ist der Benutzer automatisch Admin', 225 'Append Apache user:password to playlist urls' => 'Für Apache-Webserver: Einfügen von „user:password” in Wiedergabelisten-URLs', 226 'Stream internally' => 'Interner Stream', 227 'Dirs with this prefix are not displayed' => 'Verzeichnisse mit diesem Vorzeichen werden nicht angezeigt', 228 'Ignore string at beginning of directory name for sorting purposes' => 'Zeichen, die beim Sortieren nicht berücksichtigt werden sollen, aktivieren', 229 'String to ignore' => 'Angabe des Zeichens/der Zeichen (durch | getrennt)', 230 'Name of file that makes a directory a "category"' => 'Name der Datei, die aus einem Verzeichnis eine „Kategorie” macht', 231 'Number of columns on a "category" page' => 'Anzahl der Spalten in einer Kategorie-Seite', 232 'Show images' => 'Zeige Bilder', 233 'Display sub-directory listing' => 'Anzeige von Unterverzeichnissen', 234 'Display sub-directory images' => 'Bilder in Unterverzeichnissen anzeigen', 235 'Number of columns' => 'Anazhl der Spalten', 236 'Highlight new files and directories' => 'Neue Dateien und Verzeichnisse zusätzlich kennzeichnen', 237 'Alternate/Related Directories' => 'Alternative/Verwandte Verzeichnisse', 238 'Filename that contains list' => 'Dateiname der die Einträge beinhaltet', 239 'Get mp3 info faster (slightly less accurate)' => 'Schnelleres Errechnen der mp3-Information (weniger genau)', 240 'Use ID3v1/2 song titles (if they exist)' => 'Verwenden von ID3v1/2-Liedtiteln (falls vorhanden)', 241 'Name of file to make a directory list as "Artist - Title"' => 'Name der Datei, um aus einem Verzeichnis die Anzeige "Interpret - Titel" zu machen', 242 'Remote file extension' => 'Dateisuffix für „entfernte” Lieder', 243 'Look for second (lower quality) mp3 with following suffix' => 'Suchen einer zweiten mp3-Datei (geringere Qualität) mit folgender Dateiendung', 244 'Suffix for lo-fi mp3 name[suffix].ext; e.g. "song.lofi.mp3"' => 'Dateiendung für Lo-Fi-mp3-Dateien Name_der_Datei.[suffix].ext; bsp. "lied.lofi.mp3"', 245 'Encoding program' => 'Programm zum Enkodieren', 246 'Directory images' => 'Verzeichnisbilder', 247 'Write directory title on missing image' => 'Angabe des Verzeichnisses bei fehlendem Bild', 248 'Search font size' => 'Suche Schriftgröße', 249 'Download selected songs as compressed file' => 'Download von ausgewählten Dateien als eine komprimierte Datei', 250 'Compression program (full path)' => 'Vollständiger Pfad zum Komprimierungsprogramm', 251 'Compressed file extension' => 'Dateisuffix der komprimierten Datei', 252 'Compression program options' => 'Parameter für Komprimierungsprogramm', 253 'Compressed file mime-type' => 'Komprimierter Datei-MIME-Typ', 254 'Play on server' => 'Vom Server abspielen', 255 'mpg123 hack (try if using and having problems)' => 'MPG123-Umgehung (wenn Probleme auftreten, bitte versuchen)', 256 'Play on server command' => 'Befehlsfolge, um auf dem Server abzuspielen', 257 'Kill (necessary on linux/unix systems)' => 'Kill (Notwendig auf Linux/Unix Systemen)', 258 'Kill command' => 'Kill-Anweisung', 259 'Other media types' => 'Andere Mediendateien', 260 'Media types' => 'Mediendateien', 261 'Time based functionality' => 'Funktionen zeitabhängig steuern', 262 'Time based options' => 'Parameter', 263 'Old Password' => 'Altes Passwort', 264 'New Password' => 'Neues Passwort', 265 'Confirm Password' => 'Passwort bestätigen', 266 'Look for Other Non-Music Media Types' => 'Andere Medientypen berücksichtigen', 267 'Other Non-Music Media Types' => 'Andere Medientypen', 268 'Allow Download' => 'Download erlauben', 269 'Database type' => 'Datenbanktyp', 270 'Database hostname' => 'Datenbank Host', 271 'Database name' => 'Datenbankname', 272 'Database user' => 'Datenbank Benutzer', 273 'Database user password' => 'Datenbank Passwort', 274 'Database table prefix' => 'Datenbank Präfix', 275 'Gather statistics' => 'Sammele Statistiken', 276 'Last.fm username' => 'Last.fm Benutzername', 277 'Last.fm password' => 'Last.fm Passwort', 278 'Twitter username' => 'Twitter Benutzername', 279 'Twitter password' => 'Twitter Passwort', 280 'Clean URLs' => 'Saubere URLs', 281 'Generate a sitemap' => 'Sitemap generieren', 282 'Cache Sitemap file' => 'Sitemap cachen', 283 'Stay logged in for' => 'Angemeldet bleiben für', 284 'Configuration' => 'Konfiguration', 285 'Database' => 'Datenbank', 286 'Directory as Category' => 'Verzeichnis als Kategorie', 287 'Music Files' => 'Musik Dateien', 288 'Advanced' => 'Erweitert', 289 'Authentication' => 'Authentifizierung', 290 'Play on Server' => 'Auf der Server wiedergeben', 291 'Media Types' => 'Medien Typen', 292 'An example' => 'Ein Beispiel' 200 293 ); 201 294 ?> -
zina/trunk/zina/mp3.class.php
r145926 r226506 48 48 49 49 $v2h = $this->getV2Header($fh); 50 $this->track = 0; 50 51 51 52 if (!empty($v2h) && !($v2h->major_ver < 2)) { … … 120 121 121 122 if ($genre) $this->getGenre(); 123 #$this->track = (int)$this->track; 122 124 return $this->tag; 123 125 } -
zina/trunk/zina/theme.php
r145926 r226506 1887 1887 '<meta http-equiv="Content-Type" content="text/html; charset='.$zina['charset'].'" />'. 1888 1888 '<link rel="shortcut icon" href="'.$theme_path.'/zina.ico" type="image/x-icon" />'. 1889 $zina['head_js'].'<style>body{margin:0;padding:0;}</style></head><body onload=" setTimeout(\'window.document.zinamp.addPlaylist(window.opener.zinamp_playlist)\',500);">'.$zina['content'].'</body></html>';1889 $zina['head_js'].'<style>body{margin:0;padding:0;}</style></head><body onload="zinampFocus();setTimeout(\'window.document.zinamp.addPlaylist(window.opener.zinamp_playlist);\',500);">'.$zina['content'].'</body></html>'; 1890 1890 1891 1891 } … … 1961 1961 ; 1962 1962 #); 1963 zina_set_js('inline', 'function zinampFocus(){document.getElementById("zinamp").focus();}'); 1963 1964 zina_set_js('inline', 'function zinampUrl(url){if(window.opener){window.opener.location=url;}else{self.location=url;}stop;}'); 1964 1965 -
zina/trunk/zina/zinamp/skins/Silver/skin.xml
r104241 r226506 9 9 <object label="background" image="../Silver/images/background_medium.png" /> 10 10 11 <object label="prev iousButton" shape="circle" x="13" y="72" width="23" height="23" alpha="1" />12 <object label="prev iousButtonPressed" image="../Silver/images/previousButtonPressed.png" x="12" y="71" />11 <object label="prevButton" shape="circle" x="13" y="72" width="23" height="23" alpha="1" /> 12 <object label="prevButtonPressed" image="../Silver/images/previousButtonPressed.png" x="12" y="71" /> 13 13 <object label="playButton" shape="circle" x="38" y="72" width="23" height="23" alpha="1" /> 14 14 <object label="playButtonPressed" image="../Silver/images/playPressed.png" x="37" y="71" /> -
zina/trunk/zina/zinamp/skins/SilverAll/skin.xml
r104241 r226506 9 9 <object label="background" image="../Silver/images/background_medium.png" /> 10 10 11 <object label="previousButton" shape="circle" x="13" y="72" width="23" height="23" alpha="1" /> 12 <object label="previousButtonPressed" image="../Silver/images/previousButtonPressed.png" x="12" y="71" /> 13 <object label="playButton" shape="circle" x="38" y="72" width="23" height="23" alpha="1" /> 11 <object label="playButton" shape="circle" x="38" y="72" width="23" height="23" alpha="0" /> 12 <object label="playButtonOn" shape="circle" x="38" y="72" width="23" height="23" alpha="0" /> 14 13 <object label="playButtonPressed" image="../Silver/images/playPressed.png" x="37" y="71" /> 15 <object label="pauseButton" shape="circle" x="63" y="72" width="23" height="23" alpha="1" /> 14 <object label="pauseButton" shape="circle" x="63" y="72" width="23" height="23" alpha="0" /> 15 <object label="pauseButtonOn" image="../Silver/images/pauseButtonPressed.png" x="62" y="71" /> 16 16 <object label="pauseButtonPressed" image="../Silver/images/pauseButtonPressed.png" x="62" y="71" /> 17 <object label="stopButton" shape="circle" x="88" y="72" width="23" height="23" alpha=" 1" />17 <object label="stopButton" shape="circle" x="88" y="72" width="23" height="23" alpha="0" /> 18 18 <object label="stopButtonPressed" image="../Silver/images/stopButtonPressed.png" x="87" y="71" /> 19 <object label="nextButton" shape="circle" x="113" y="72" width="23" height="23" alpha="1" /> 19 <object label="prevButton" shape="circle" x="13" y="72" width="23" height="23" alpha="0" /> 20 <object label="prevButtonPressed" image="../Silver/images/previousButtonPressed.png" x="12" y="71" /> 21 <object label="nextButton" shape="circle" x="113" y="72" width="23" height="23" alpha="0" /> 20 22 <object label="nextButtonPressed" image="../Silver/images/nextButtonPressed.png" x="112" y="71" /> 23 24 <object label="shuffleButton" x="146" y="72" width="29" height="22" alpha="0" hoverMessage="Shuffle" /> 25 <object label="shuffleButtonOn" image="../Silver/images/shuffleOn.png" x="146" y="72" hoverMessage="Shuffle" /> 26 <object label="shuffleButtonPressed" image="../Silver/images/shufflePressed.png" x="146" y="72" /> 27 28 <object label="repeatButton" x="179" y="72" width="29" height="22" alpha="0" hoverMessage="Repeat" /> 29 <object label="repeatButtonOn" image="../Silver/images/repeatOn.png" x="179" y="72" hoverMessage="Repeat" /> 30 <object label="repeatButtonPressed" image="../Silver/images/repeatPressed.png" x="179" y="72" /> 31 32 <object label="playlistButton" x="222" y="46" width="20" height="11" alpha="0" /> 33 <object label="playlistButtonOn" image="../Silver/images/playlistOn_medium.png" x="222" y="46" /> 34 <object label="playlistButtonPressed" image="../Silver/images/playlistPressed.png" x="222" y="46" /> 21 35 22 36 <object label="trackDisplay" x="9" y="8" width="238" height="14" size="12" color="000000" font="Arial" /> … … 28 42 <object label="mono" image="../Silver/images/mono.png" x="223" y="31" width="20" height="5" /> 29 43 44 <object label="loveButton" image="../Silver/images/love_medium.png" x="212" y="72" hoverMessage="Love this track" /> 45 <object label="loveButtonOn" image="../Silver/images/love_medium_selected.png" x="212" y="72" hoverMessage="Love this track" /> 46 47 <object label="panSlider" x="180" y="49" width="34" height="4" /> 48 <object label="panHandle" image="../Silver/images/volumeHandle_medium.png" x="180" y="47" width="7" height="7" hoverMessage="Balance"/> 49 50 <object label="volumeSlider" x="109" y="49" width="62" height="4" /> 51 <object label="volumeHandle" image="../Silver/images/volumeHandle_medium.png" x="109" y="47" width="7" height="7" hoverMessage="Volume"/> 52 30 53 <object label="loadBar" image="../Silver/images/loadBar_medium.png" x="9" y="61" width="236" height="4" /> 31 54 32 55 <object label="timeSlider" x="9" y="61" width="236" height="6" color="666666"/> 33 56 <object label="timeHandle" image="../Silver/images/timeHandle.png" x="9" y="60" width="28" height="6" /> 34 35 <object label="volumeSlider" x="109" y="49" width="62" height="4" />36 <object label="volumeHandle" image="../Silver/images/volumeHandle_medium.png" x="109" y="47" width="7" height="7" hoverMessage="Volume"/>37 38 <object label="panSlider" x="180" y="49" width="34" height="4" />39 <object label="panHandle" image="../Silver/images/volumeHandle_medium.png" x="180" y="47" width="7" height="7" hoverMessage="Balance"/>40 41 <object label="shuffleButton" x="146" y="72" width="29" height="22" alpha="1" hoverMessage="Shuffle" />42 <object label="shuffleButtonOn" image="../Silver/images/shuffleOn.png" x="146" y="72" hoverMessage="Shuffle" />43 <object label="shuffleButtonPressed" image="../Silver/images/shufflePressed.png" x="146" y="72" />44 45 <object label="repeatButton" x="179" y="72" width="29" height="22" alpha="1" hoverMessage="Repeat" />46 <object label="repeatButtonOn" image="../Silver/images/repeatOn.png" x="179" y="72" hoverMessage="Repeat" />47 <object label="repeatButtonPressed" image="../Silver/images/repeatPressed.png" x="179" y="72" />48 49 <object label="playlistButton" x="222" y="46" width="20" height="11" alpha="1" />50 <object label="playlistButtonOn" image="../Silver/images/playlistOn_medium.png" x="222" y="46" />51 <object label="playlistButtonPressed" image="../Silver/images/playlistPressed.png" x="222" y="46" />52 53 <object label="loveButton" image="../Silver/images/love_medium.png" x="212" y="72" />54 <object label="loveButtonOn" image="../Silver/images/love_medium_selected.png" x="212" y="72" />55 57 56 58 <object label="songInfoBackground" x="0" y="100" width="254" height="100" image="../Silver/images/song_info.png" /> … … 60 62 <object label="playlistBackground" image="../Silver/images/playlist.png" x="0" y="200" width="254" height="170" /> 61 63 <object label="playlistDisplay" x="5" y="205" width="237" height="160" color="000000" selectedColor="1D5CB1" selectedBgColor="1D5CB1" selectedBgTxtColor="ffffff" font="Verdana" size="10" /> 62 <object label="playlistSlider" x="242" y="205" width="7" height="160" color="CCCCCC" alpha="1" /> 64 65 <object label="playlistSlider" x="242" y="205" width="7" height="160" color="CCCCCC" alpha="0" /> 63 66 <object label="playlistHandle" image="../Silver/images/playlistHandle.png" x="242" y="205" width="7" height="18" /> 64 67 65 68 <object label="lyricsBackground" image="../Silver/images/playlist.png" x="0" y="370" width="254" height="170" /> 66 69 <object label="lyricsDisplay" x="5" y="375" width="237" height="158" color="000000" selectedColor="1D5CB1" selectedBgColor="1D5CB1" selectedBgTxtColor="ffffff" font="Verdana" size="10" /> 67 <object label="lyricsSlider" x="242" y="375" width="7" height="160" color="CCCCCC" alpha=" 1" />70 <object label="lyricsSlider" x="242" y="375" width="7" height="160" color="CCCCCC" alpha="0" /> 68 71 <object label="lyricsHandle" image="../Silver/images/playlistHandle.png" x="242" y="375" width="7" height="18" /> 69 70 72 </objects> 71 73 </skin> -
zina/trunk/zina/zinamp/skins/SilverSmall/skin.xml
r104241 r226506 7 7 <object label="background" image="../Silver/images/background.png" /> 8 8 9 <object label="prev iousButton" shape="circle" x="5" y="4" width="20" height="20" alpha="1" />9 <object label="prevButton" shape="circle" x="5" y="4" width="20" height="20" alpha="1" /> 10 10 <object label="playpauseButton" shape="circle" x="29" y="4" width="20" height="20" alpha="1" /> 11 11 <object label="playpauseButtonOn" image="../Silver/images/playpauseButton.png" x="29" y="4" width="20" height="20" /> -
zina/trunk/zina/zinamp/skins/WinampClassic/skin.xml
r102460 r226506 18 18 <object label="stopButtonPressed" image="images/stopPressed.png" x="84" y="88" width="22" height="17" /> 19 19 20 <object label="prev iousButton" x="15" y="88" width="22" height="17" alpha="0" hoverMessage="Previous" />21 <object label="prev iousButtonPressed" image="images/previousPressed.png" x="15" y="88" width="22" height="17" />20 <object label="prevButton" x="15" y="88" width="22" height="17" alpha="0" hoverMessage="Previous" /> 21 <object label="prevButtonPressed" image="images/previousPressed.png" x="15" y="88" width="22" height="17" /> 22 22 23 23 <object label="nextButton" x="108" y="88" width="22" height="17" alpha="0" hoverMessage="Forward" /> -
zina/trunk/zina/zinamp/skins/WinampClassicAll/skin.xml
r102460 r226506 17 17 <object label="stopButton" x="84" y="88" width="22" height="17" alpha="0" hoverMessage="Stop" /> 18 18 <object label="stopButtonPressed" image="../WinampClassic/images/stopPressed.png" x="84" y="88" width="22" height="17" /> 19 20 <object label="previousButton" x="15" y="88" width="22" height="17" alpha="0" hoverMessage="Previous" /> 21 <object label="previousButtonPressed" image="../WinampClassic/images/previousPressed.png" x="15" y="88" width="22" height="17" /> 22 19 <object label="prevButton" x="15" y="88" width="22" height="17" alpha="0" hoverMessage="Previous" /> 20 <object label="prevButtonPressed" image="../WinampClassic/images/previousPressed.png" x="15" y="88" width="22" height="17" /> 23 21 <object label="nextButton" x="108" y="88" width="22" height="17" alpha="0" hoverMessage="Forward" /> 24 22 <object label="nextButtonPressed" image="../WinampClassic/images/nextPressed.png" x="108" y="88" width="22" height="17" /> … … 41 39 <object label="bitrate" text="=1" x="110" y="38" width="19" height="10" size="9" align="right" font="Geneva, sans-serif" color="00E200" /> 42 40 <object label="frequency" text="1" x="155" y="38" width="13" height="10" size="9" align="right" font="Geneva, sans-serif" color="00E200" /> 43 41 <object label="stereo" image="../WinampClassic/images/stereo.png" x="239" y="41" width="28" height="13" /> 44 42 <object label="mono" image="../WinampClassic/images/mono.png" x="214" y="41" width="25" height="12" /> 45 <object label="stereo" image="../WinampClassic/images/stereo.png" x="239" y="41" width="28" height="13" />46 43 47 44 <object label="loveButton" image="../WinampClassic/images/heart.png" x="246" y="56" hoverMessage="Love this track" /> … … 68 65 <object label="playlistSlider" x="261" y="248" width="6" height="148" color="CCCCCC" alpha="1" /> 69 66 <object label="playlistHandle" image="../WinampClassic/images/playlistHandle.png" x="260" y="248" width="8" height="18" /> 70 <object label="scrollUpButton" x="260" y="395" width="8" height="6" alpha="1"/>71 <object label="scrollDownButton" x="260" y="401" width="8" height="6" alpha="1"/>72 67 73 68 <object label="lyricsBackground" image="../WinampClassic/images/playlist.png" x="0" y="416" width="275" height="178" /> … … 75 70 <object label="lyricsSlider" x="261" y="426" width="6" height="149" color="CCCCCC" alpha="1" /> 76 71 <object label="lyricsHandle" image="../WinampClassic/images/playlistHandle.png" x="260" y="426" width="8" height="18" /> 72 73 <object label="scrollUpButton" x="260" y="395" width="8" height="6" alpha="1"/> 74 <object label="scrollDownButton" x="260" y="401" width="8" height="6" alpha="1"/> 77 75 </objects> 78 76 </skin> -
zina/trunk/zina/zinamp/skins/WinampClassicSmall/skin.xml
r102460 r226506 16 16 <object label="stopButtonPressed" image="../WinampClassic/images/stopPressed.png" x="84" y="88" width="22" height="17" /> 17 17 18 <object label="prev iousButton" x="15" y="88" width="22" height="17" alpha="0" hoverMessage="Previous" />19 <object label="prev iousButtonPressed" image="../WinampClassic/images/previousPressed.png" x="15" y="88" width="22" height="17" />18 <object label="prevButton" x="15" y="88" width="22" height="17" alpha="0" hoverMessage="Previous" /> 19 <object label="prevButtonPressed" image="../WinampClassic/images/previousPressed.png" x="15" y="88" width="22" height="17" /> 20 20 21 21 <object label="nextButton" x="108" y="88" width="22" height="17" alpha="0" hoverMessage="Forward" />
Note: See TracChangeset
for help on using the changeset viewer.