PowerPress Podcasting plugin by Blubrry - Version 3.0

Version Description

  • Released on 2/10/2012
  • PowerPress now requires WordPress version 3.0 or newer.
  • New Meta Marks feature learn more
  • Media duration detection and verification now supports AAC .m4a audio and H.264 .mp4/.m4v video (in addition to mpeg3 .mp3). Media duration detection now requires PHP 5.0.5 or newer.
  • Added new 'Disable Warnings' option for Podcast Entry Box. Errors are still displayed.
  • Media verification (Verify button) no longer warns if mp3 Channel mode is mono.
  • Media verification (Verify button) now verifies that the media URL's content type is valid when detecting duration information.
  • Media verification (Verify button) now displays the link to the media upon error so user can test URL manually.
  • Media verification (Verify button) now includes a more readable message when URL returns 404 file not found.
  • Added new Feed Discovery option, Adds "feed discovery" links to your web site's headers allowing web browsers and feed readers to auto-detect your podcast feeds.
  • Removed iTunes update iTunes listing logic, it is pretty obvious Apple does not plan on restoring the ping which Apple took offline in February of 2011.
  • Added warning in settings that podcast feed is invalid until create at least one podcast episode.
  • Warning now displayed if a Media Embed is entered but no Media URL is present.
  • Removed third party JSON library, no longer needed for WP versions 2.9+.
  • Podcast Channels can now be associated with specific Custom Post Types of type 'post'.
  • Added option to upload/change HTML5 audio and video play icons. Video play icon must be 60 x 60 pixels in size. Audio play icon has no size restrictions.
  • Added link to WordPress Settings to PowerPress basic setings, This is to resolve the many complains we receive by new users who cannot find PowerPress settings menu.
  • Fixed bug with ID3 tag writing feature not functioning correctly. (Thanks Dave from School of Podcasting for reporting the problem)
  • Fixed bug detected latest versoin of iPad for displaying the HTML5 player.
  • Flow Player Classic now displays full screen button when playing video.
  • Romanian translation for v2.0.4+ added by Alexander Ovsov (Thanks Alexander!)
  • Italian translation for v2.0.4+ by Umberto (thanks Umberto!)
  • Fixed a number of PHP notice messages when in WP_DEBUG mode. (Thanks Jeremy Clarke for introducing us to the Debug Bar plugin!)
Download this release

Release Info

Developer amandato
Plugin Icon 128x128 PowerPress Podcasting plugin by Blubrry
Version 3.0
Comparing to
See all releases

Code changes from version 2.0.4 to 3.0

3rdparty/JSON.php DELETED
@@ -1,806 +0,0 @@
1
- <?php
2
- /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
3
-
4
- /**
5
- * Converts to and from JSON format.
6
- *
7
- * JSON (JavaScript Object Notation) is a lightweight data-interchange
8
- * format. It is easy for humans to read and write. It is easy for machines
9
- * to parse and generate. It is based on a subset of the JavaScript
10
- * Programming Language, Standard ECMA-262 3rd Edition - December 1999.
11
- * This feature can also be found in Python. JSON is a text format that is
12
- * completely language independent but uses conventions that are familiar
13
- * to programmers of the C-family of languages, including C, C++, C#, Java,
14
- * JavaScript, Perl, TCL, and many others. These properties make JSON an
15
- * ideal data-interchange language.
16
- *
17
- * This package provides a simple encoder and decoder for JSON notation. It
18
- * is intended for use with client-side Javascript applications that make
19
- * use of HTTPRequest to perform server communication functions - data can
20
- * be encoded into JSON notation for use in a client-side javascript, or
21
- * decoded from incoming Javascript requests. JSON format is native to
22
- * Javascript, and can be directly eval()'ed with no further parsing
23
- * overhead
24
- *
25
- * All strings should be in ASCII or UTF-8 format!
26
- *
27
- * LICENSE: Redistribution and use in source and binary forms, with or
28
- * without modification, are permitted provided that the following
29
- * conditions are met: Redistributions of source code must retain the
30
- * above copyright notice, this list of conditions and the following
31
- * disclaimer. Redistributions in binary form must reproduce the above
32
- * copyright notice, this list of conditions and the following disclaimer
33
- * in the documentation and/or other materials provided with the
34
- * distribution.
35
- *
36
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
37
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
38
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
39
- * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
40
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
41
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
42
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
44
- * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
45
- * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
46
- * DAMAGE.
47
- *
48
- * @category
49
- * @package Services_JSON
50
- * @author Michal Migurski <mike-json@teczno.com>
51
- * @author Matt Knapp <mdknapp[at]gmail[dot]com>
52
- * @author Brett Stimmerman <brettstimmerman[at]gmail[dot]com>
53
- * @copyright 2005 Michal Migurski
54
- * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $
55
- * @license http://www.opensource.org/licenses/bsd-license.php
56
- * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198
57
- */
58
-
59
- /**
60
- * Marker constant for Services_JSON::decode(), used to flag stack state
61
- */
62
- define('SERVICES_JSON_SLICE', 1);
63
-
64
- /**
65
- * Marker constant for Services_JSON::decode(), used to flag stack state
66
- */
67
- define('SERVICES_JSON_IN_STR', 2);
68
-
69
- /**
70
- * Marker constant for Services_JSON::decode(), used to flag stack state
71
- */
72
- define('SERVICES_JSON_IN_ARR', 3);
73
-
74
- /**
75
- * Marker constant for Services_JSON::decode(), used to flag stack state
76
- */
77
- define('SERVICES_JSON_IN_OBJ', 4);
78
-
79
- /**
80
- * Marker constant for Services_JSON::decode(), used to flag stack state
81
- */
82
- define('SERVICES_JSON_IN_CMT', 5);
83
-
84
- /**
85
- * Behavior switch for Services_JSON::decode()
86
- */
87
- define('SERVICES_JSON_LOOSE_TYPE', 16);
88
-
89
- /**
90
- * Behavior switch for Services_JSON::decode()
91
- */
92
- define('SERVICES_JSON_SUPPRESS_ERRORS', 32);
93
-
94
- /**
95
- * Converts to and from JSON format.
96
- *
97
- * Brief example of use:
98
- *
99
- * <code>
100
- * // create a new instance of Services_JSON
101
- * $json = new Services_JSON();
102
- *
103
- * // convert a complexe value to JSON notation, and send it to the browser
104
- * $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4)));
105
- * $output = $json->encode($value);
106
- *
107
- * print($output);
108
- * // prints: ["foo","bar",[1,2,"baz"],[3,[4]]]
109
- *
110
- * // accept incoming POST data, assumed to be in JSON notation
111
- * $input = file_get_contents('php://input', 1000000);
112
- * $value = $json->decode($input);
113
- * </code>
114
- */
115
- class Services_JSON
116
- {
117
- /**
118
- * constructs a new JSON instance
119
- *
120
- * @param int $use object behavior flags; combine with boolean-OR
121
- *
122
- * possible values:
123
- * - SERVICES_JSON_LOOSE_TYPE: loose typing.
124
- * "{...}" syntax creates associative arrays
125
- * instead of objects in decode().
126
- * - SERVICES_JSON_SUPPRESS_ERRORS: error suppression.
127
- * Values which can't be encoded (e.g. resources)
128
- * appear as NULL instead of throwing errors.
129
- * By default, a deeply-nested resource will
130
- * bubble up with an error, so all return values
131
- * from encode() should be checked with isError()
132
- */
133
- function Services_JSON($use = 0)
134
- {
135
- $this->use = $use;
136
- }
137
-
138
- /**
139
- * convert a string from one UTF-16 char to one UTF-8 char
140
- *
141
- * Normally should be handled by mb_convert_encoding, but
142
- * provides a slower PHP-only method for installations
143
- * that lack the multibye string extension.
144
- *
145
- * @param string $utf16 UTF-16 character
146
- * @return string UTF-8 character
147
- * @access private
148
- */
149
- function utf162utf8($utf16)
150
- {
151
- // oh please oh please oh please oh please oh please
152
- if(function_exists('mb_convert_encoding')) {
153
- return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
154
- }
155
-
156
- $bytes = (ord($utf16{0}) << 8) | ord($utf16{1});
157
-
158
- switch(true) {
159
- case ((0x7F & $bytes) == $bytes):
160
- // this case should never be reached, because we are in ASCII range
161
- // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
162
- return chr(0x7F & $bytes);
163
-
164
- case (0x07FF & $bytes) == $bytes:
165
- // return a 2-byte UTF-8 character
166
- // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
167
- return chr(0xC0 | (($bytes >> 6) & 0x1F))
168
- . chr(0x80 | ($bytes & 0x3F));
169
-
170
- case (0xFFFF & $bytes) == $bytes:
171
- // return a 3-byte UTF-8 character
172
- // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
173
- return chr(0xE0 | (($bytes >> 12) & 0x0F))
174
- . chr(0x80 | (($bytes >> 6) & 0x3F))
175
- . chr(0x80 | ($bytes & 0x3F));
176
- }
177
-
178
- // ignoring UTF-32 for now, sorry
179
- return '';
180
- }
181
-
182
- /**
183
- * convert a string from one UTF-8 char to one UTF-16 char
184
- *
185
- * Normally should be handled by mb_convert_encoding, but
186
- * provides a slower PHP-only method for installations
187
- * that lack the multibye string extension.
188
- *
189
- * @param string $utf8 UTF-8 character
190
- * @return string UTF-16 character
191
- * @access private
192
- */
193
- function utf82utf16($utf8)
194
- {
195
- // oh please oh please oh please oh please oh please
196
- if(function_exists('mb_convert_encoding')) {
197
- return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
198
- }
199
-
200
- switch(strlen($utf8)) {
201
- case 1:
202
- // this case should never be reached, because we are in ASCII range
203
- // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
204
- return $utf8;
205
-
206
- case 2:
207
- // return a UTF-16 character from a 2-byte UTF-8 char
208
- // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
209
- return chr(0x07 & (ord($utf8{0}) >> 2))
210
- . chr((0xC0 & (ord($utf8{0}) << 6))
211
- | (0x3F & ord($utf8{1})));
212
-
213
- case 3:
214
- // return a UTF-16 character from a 3-byte UTF-8 char
215
- // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
216
- return chr((0xF0 & (ord($utf8{0}) << 4))
217
- | (0x0F & (ord($utf8{1}) >> 2)))
218
- . chr((0xC0 & (ord($utf8{1}) << 6))
219
- | (0x7F & ord($utf8{2})));
220
- }
221
-
222
- // ignoring UTF-32 for now, sorry
223
- return '';
224
- }
225
-
226
- /**
227
- * encodes an arbitrary variable into JSON format
228
- *
229
- * @param mixed $var any number, boolean, string, array, or object to be encoded.
230
- * see argument 1 to Services_JSON() above for array-parsing behavior.
231
- * if var is a strng, note that encode() always expects it
232
- * to be in ASCII or UTF-8 format!
233
- *
234
- * @return mixed JSON string representation of input var or an error if a problem occurs
235
- * @access public
236
- */
237
- function encode($var)
238
- {
239
- switch (gettype($var)) {
240
- case 'boolean':
241
- return $var ? 'true' : 'false';
242
-
243
- case 'NULL':
244
- return 'null';
245
-
246
- case 'integer':
247
- return (int) $var;
248
-
249
- case 'double':
250
- case 'float':
251
- return (float) $var;
252
-
253
- case 'string':
254
- // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT
255
- $ascii = '';
256
- $strlen_var = strlen($var);
257
-
258
- /*
259
- * Iterate over every character in the string,
260
- * escaping with a slash or encoding to UTF-8 where necessary
261
- */
262
- for ($c = 0; $c < $strlen_var; ++$c) {
263
-
264
- $ord_var_c = ord($var{$c});
265
-
266
- switch (true) {
267
- case $ord_var_c == 0x08:
268
- $ascii .= '\b';
269
- break;
270
- case $ord_var_c == 0x09:
271
- $ascii .= '\t';
272
- break;
273
- case $ord_var_c == 0x0A:
274
- $ascii .= '\n';
275
- break;
276
- case $ord_var_c == 0x0C:
277
- $ascii .= '\f';
278
- break;
279
- case $ord_var_c == 0x0D:
280
- $ascii .= '\r';
281
- break;
282
-
283
- case $ord_var_c == 0x22:
284
- case $ord_var_c == 0x2F:
285
- case $ord_var_c == 0x5C:
286
- // double quote, slash, slosh
287
- $ascii .= '\\'.$var{$c};
288
- break;
289
-
290
- case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
291
- // characters U-00000000 - U-0000007F (same as ASCII)
292
- $ascii .= $var{$c};
293
- break;
294
-
295
- case (($ord_var_c & 0xE0) == 0xC0):
296
- // characters U-00000080 - U-000007FF, mask 110XXXXX
297
- // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
298
- $char = pack('C*', $ord_var_c, ord($var{$c + 1}));
299
- $c += 1;
300
- $utf16 = $this->utf82utf16($char);
301
- $ascii .= sprintf('\u%04s', bin2hex($utf16));
302
- break;
303
-
304
- case (($ord_var_c & 0xF0) == 0xE0):
305
- // characters U-00000800 - U-0000FFFF, mask 1110XXXX
306
- // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
307
- $char = pack('C*', $ord_var_c,
308
- ord($var{$c + 1}),
309
- ord($var{$c + 2}));
310
- $c += 2;
311
- $utf16 = $this->utf82utf16($char);
312
- $ascii .= sprintf('\u%04s', bin2hex($utf16));
313
- break;
314
-
315
- case (($ord_var_c & 0xF8) == 0xF0):
316
- // characters U-00010000 - U-001FFFFF, mask 11110XXX
317
- // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
318
- $char = pack('C*', $ord_var_c,
319
- ord($var{$c + 1}),
320
- ord($var{$c + 2}),
321
- ord($var{$c + 3}));
322
- $c += 3;
323
- $utf16 = $this->utf82utf16($char);
324
- $ascii .= sprintf('\u%04s', bin2hex($utf16));
325
- break;
326
-
327
- case (($ord_var_c & 0xFC) == 0xF8):
328
- // characters U-00200000 - U-03FFFFFF, mask 111110XX
329
- // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
330
- $char = pack('C*', $ord_var_c,
331
- ord($var{$c + 1}),
332
- ord($var{$c + 2}),
333
- ord($var{$c + 3}),
334
- ord($var{$c + 4}));
335
- $c += 4;
336
- $utf16 = $this->utf82utf16($char);
337
- $ascii .= sprintf('\u%04s', bin2hex($utf16));
338
- break;
339
-
340
- case (($ord_var_c & 0xFE) == 0xFC):
341
- // characters U-04000000 - U-7FFFFFFF, mask 1111110X
342
- // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
343
- $char = pack('C*', $ord_var_c,
344
- ord($var{$c + 1}),
345
- ord($var{$c + 2}),
346
- ord($var{$c + 3}),
347
- ord($var{$c + 4}),
348
- ord($var{$c + 5}));
349
- $c += 5;
350
- $utf16 = $this->utf82utf16($char);
351
- $ascii .= sprintf('\u%04s', bin2hex($utf16));
352
- break;
353
- }
354
- }
355
-
356
- return '"'.$ascii.'"';
357
-
358
- case 'array':
359
- /*
360
- * As per JSON spec if any array key is not an integer
361
- * we must treat the the whole array as an object. We
362
- * also try to catch a sparsely populated associative
363
- * array with numeric keys here because some JS engines
364
- * will create an array with empty indexes up to
365
- * max_index which can cause memory issues and because
366
- * the keys, which may be relevant, will be remapped
367
- * otherwise.
368
- *
369
- * As per the ECMA and JSON specification an object may
370
- * have any string as a property. Unfortunately due to
371
- * a hole in the ECMA specification if the key is a
372
- * ECMA reserved word or starts with a digit the
373
- * parameter is only accessible using ECMAScript's
374
- * bracket notation.
375
- */
376
-
377
- // treat as a JSON object
378
- if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
379
- $properties = array_map(array($this, 'name_value'),
380
- array_keys($var),
381
- array_values($var));
382
-
383
- foreach($properties as $property) {
384
- if(Services_JSON::isError($property)) {
385
- return $property;
386
- }
387
- }
388
-
389
- return '{' . join(',', $properties) . '}';
390
- }
391
-
392
- // treat it like a regular array
393
- $elements = array_map(array($this, 'encode'), $var);
394
-
395
- foreach($elements as $element) {
396
- if(Services_JSON::isError($element)) {
397
- return $element;
398
- }
399
- }
400
-
401
- return '[' . join(',', $elements) . ']';
402
-
403
- case 'object':
404
- $vars = get_object_vars($var);
405
-
406
- $properties = array_map(array($this, 'name_value'),
407
- array_keys($vars),
408
- array_values($vars));
409
-
410
- foreach($properties as $property) {
411
- if(Services_JSON::isError($property)) {
412
- return $property;
413
- }
414
- }
415
-
416
- return '{' . join(',', $properties) . '}';
417
-
418
- default:
419
- return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS)
420
- ? 'null'
421
- : new Services_JSON_Error(gettype($var)." can not be encoded as JSON string");
422
- }
423
- }
424
-
425
- /**
426
- * array-walking function for use in generating JSON-formatted name-value pairs
427
- *
428
- * @param string $name name of key to use
429
- * @param mixed $value reference to an array element to be encoded
430
- *
431
- * @return string JSON-formatted name-value pair, like '"name":value'
432
- * @access private
433
- */
434
- function name_value($name, $value)
435
- {
436
- $encoded_value = $this->encode($value);
437
-
438
- if(Services_JSON::isError($encoded_value)) {
439
- return $encoded_value;
440
- }
441
-
442
- return $this->encode(strval($name)) . ':' . $encoded_value;
443
- }
444
-
445
- /**
446
- * reduce a string by removing leading and trailing comments and whitespace
447
- *
448
- * @param $str string string value to strip of comments and whitespace
449
- *
450
- * @return string string value stripped of comments and whitespace
451
- * @access private
452
- */
453
- function reduce_string($str)
454
- {
455
- $str = preg_replace(array(
456
-
457
- // eliminate single line comments in '// ...' form
458
- '#^\s*//(.+)$#m',
459
-
460
- // eliminate multi-line comments in '/* ... */' form, at start of string
461
- '#^\s*/\*(.+)\*/#Us',
462
-
463
- // eliminate multi-line comments in '/* ... */' form, at end of string
464
- '#/\*(.+)\*/\s*$#Us'
465
-
466
- ), '', $str);
467
-
468
- // eliminate extraneous space
469
- return trim($str);
470
- }
471
-
472
- /**
473
- * decodes a JSON string into appropriate variable
474
- *
475
- * @param string $str JSON-formatted string
476
- *
477
- * @return mixed number, boolean, string, array, or object
478
- * corresponding to given JSON input string.
479
- * See argument 1 to Services_JSON() above for object-output behavior.
480
- * Note that decode() always returns strings
481
- * in ASCII or UTF-8 format!
482
- * @access public
483
- */
484
- function decode($str)
485
- {
486
- $str = $this->reduce_string($str);
487
-
488
- switch (strtolower($str)) {
489
- case 'true':
490
- return true;
491
-
492
- case 'false':
493
- return false;
494
-
495
- case 'null':
496
- return null;
497
-
498
- default:
499
- $m = array();
500
-
501
- if (is_numeric($str)) {
502
- // Lookie-loo, it's a number
503
-
504
- // This would work on its own, but I'm trying to be
505
- // good about returning integers where appropriate:
506
- // return (float)$str;
507
-
508
- // Return float or int, as appropriate
509
- return ((float)$str == (integer)$str)
510
- ? (integer)$str
511
- : (float)$str;
512
-
513
- } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) {
514
- // STRINGS RETURNED IN UTF-8 FORMAT
515
- $delim = substr($str, 0, 1);
516
- $chrs = substr($str, 1, -1);
517
- $utf8 = '';
518
- $strlen_chrs = strlen($chrs);
519
-
520
- for ($c = 0; $c < $strlen_chrs; ++$c) {
521
-
522
- $substr_chrs_c_2 = substr($chrs, $c, 2);
523
- $ord_chrs_c = ord($chrs{$c});
524
-
525
- switch (true) {
526
- case $substr_chrs_c_2 == '\b':
527
- $utf8 .= chr(0x08);
528
- ++$c;
529
- break;
530
- case $substr_chrs_c_2 == '\t':
531
- $utf8 .= chr(0x09);
532
- ++$c;
533
- break;
534
- case $substr_chrs_c_2 == '\n':
535
- $utf8 .= chr(0x0A);
536
- ++$c;
537
- break;
538
- case $substr_chrs_c_2 == '\f':
539
- $utf8 .= chr(0x0C);
540
- ++$c;
541
- break;
542
- case $substr_chrs_c_2 == '\r':
543
- $utf8 .= chr(0x0D);
544
- ++$c;
545
- break;
546
-
547
- case $substr_chrs_c_2 == '\\"':
548
- case $substr_chrs_c_2 == '\\\'':
549
- case $substr_chrs_c_2 == '\\\\':
550
- case $substr_chrs_c_2 == '\\/':
551
- if (($delim == '"' && $substr_chrs_c_2 != '\\\'') ||
552
- ($delim == "'" && $substr_chrs_c_2 != '\\"')) {
553
- $utf8 .= $chrs{++$c};
554
- }
555
- break;
556
-
557
- case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)):
558
- // single, escaped unicode character
559
- $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2)))
560
- . chr(hexdec(substr($chrs, ($c + 4), 2)));
561
- $utf8 .= $this->utf162utf8($utf16);
562
- $c += 5;
563
- break;
564
-
565
- case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F):
566
- $utf8 .= $chrs{$c};
567
- break;
568
-
569
- case ($ord_chrs_c & 0xE0) == 0xC0:
570
- // characters U-00000080 - U-000007FF, mask 110XXXXX
571
- //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
572
- $utf8 .= substr($chrs, $c, 2);
573
- ++$c;
574
- break;
575
-
576
- case ($ord_chrs_c & 0xF0) == 0xE0:
577
- // characters U-00000800 - U-0000FFFF, mask 1110XXXX
578
- // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
579
- $utf8 .= substr($chrs, $c, 3);
580
- $c += 2;
581
- break;
582
-
583
- case ($ord_chrs_c & 0xF8) == 0xF0:
584
- // characters U-00010000 - U-001FFFFF, mask 11110XXX
585
- // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
586
- $utf8 .= substr($chrs, $c, 4);
587
- $c += 3;
588
- break;
589
-
590
- case ($ord_chrs_c & 0xFC) == 0xF8:
591
- // characters U-00200000 - U-03FFFFFF, mask 111110XX
592
- // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
593
- $utf8 .= substr($chrs, $c, 5);
594
- $c += 4;
595
- break;
596
-
597
- case ($ord_chrs_c & 0xFE) == 0xFC:
598
- // characters U-04000000 - U-7FFFFFFF, mask 1111110X
599
- // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
600
- $utf8 .= substr($chrs, $c, 6);
601
- $c += 5;
602
- break;
603
-
604
- }
605
-
606
- }
607
-
608
- return $utf8;
609
-
610
- } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) {
611
- // array, or object notation
612
-
613
- if ($str{0} == '[') {
614
- $stk = array(SERVICES_JSON_IN_ARR);
615
- $arr = array();
616
- } else {
617
- if ($this->use & SERVICES_JSON_LOOSE_TYPE) {
618
- $stk = array(SERVICES_JSON_IN_OBJ);
619
- $obj = array();
620
- } else {
621
- $stk = array(SERVICES_JSON_IN_OBJ);
622
- $obj = new stdClass();
623
- }
624
- }
625
-
626
- array_push($stk, array('what' => SERVICES_JSON_SLICE,
627
- 'where' => 0,
628
- 'delim' => false));
629
-
630
- $chrs = substr($str, 1, -1);
631
- $chrs = $this->reduce_string($chrs);
632
-
633
- if ($chrs == '') {
634
- if (reset($stk) == SERVICES_JSON_IN_ARR) {
635
- return $arr;
636
-
637
- } else {
638
- return $obj;
639
-
640
- }
641
- }
642
-
643
- //print("\nparsing {$chrs}\n");
644
-
645
- $strlen_chrs = strlen($chrs);
646
-
647
- for ($c = 0; $c <= $strlen_chrs; ++$c) {
648
-
649
- $top = end($stk);
650
- $substr_chrs_c_2 = substr($chrs, $c, 2);
651
-
652
- if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) {
653
- // found a comma that is not inside a string, array, etc.,
654
- // OR we've reached the end of the character list
655
- $slice = substr($chrs, $top['where'], ($c - $top['where']));
656
- array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false));
657
- //print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
658
-
659
- if (reset($stk) == SERVICES_JSON_IN_ARR) {
660
- // we are in an array, so just push an element onto the stack
661
- array_push($arr, $this->decode($slice));
662
-
663
- } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) {
664
- // we are in an object, so figure
665
- // out the property name and set an
666
- // element in an associative array,
667
- // for now
668
- $parts = array();
669
-
670
- if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) {
671
- // "name":value pair
672
- $key = $this->decode($parts[1]);
673
- $val = $this->decode($parts[2]);
674
-
675
- if ($this->use & SERVICES_JSON_LOOSE_TYPE) {
676
- $obj[$key] = $val;
677
- } else {
678
- $obj->$key = $val;
679
- }
680
- } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) {
681
- // name:value pair, where name is unquoted
682
- $key = $parts[1];
683
- $val = $this->decode($parts[2]);
684
-
685
- if ($this->use & SERVICES_JSON_LOOSE_TYPE) {
686
- $obj[$key] = $val;
687
- } else {
688
- $obj->$key = $val;
689
- }
690
- }
691
-
692
- }
693
-
694
- } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) {
695
- // found a quote, and we are not inside a string
696
- array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c}));
697
- //print("Found start of string at {$c}\n");
698
-
699
- } elseif (($chrs{$c} == $top['delim']) &&
700
- ($top['what'] == SERVICES_JSON_IN_STR) &&
701
- ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) {
702
- // found a quote, we're in a string, and it's not escaped
703
- // we know that it's not escaped becase there is _not_ an
704
- // odd number of backslashes at the end of the string so far
705
- array_pop($stk);
706
- //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n");
707
-
708
- } elseif (($chrs{$c} == '[') &&
709
- in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
710
- // found a left-bracket, and we are in an array, object, or slice
711
- array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false));
712
- //print("Found start of array at {$c}\n");
713
-
714
- } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) {
715
- // found a right-bracket, and we're in an array
716
- array_pop($stk);
717
- //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
718
-
719
- } elseif (($chrs{$c} == '{') &&
720
- in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
721
- // found a left-brace, and we are in an array, object, or slice
722
- array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false));
723
- //print("Found start of object at {$c}\n");
724
-
725
- } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) {
726
- // found a right-brace, and we're in an object
727
- array_pop($stk);
728
- //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
729
-
730
- } elseif (($substr_chrs_c_2 == '/*') &&
731
- in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
732
- // found a comment start, and we are in an array, object, or slice
733
- array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false));
734
- $c++;
735
- //print("Found start of comment at {$c}\n");
736
-
737
- } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) {
738
- // found a comment end, and we're in one now
739
- array_pop($stk);
740
- $c++;
741
-
742
- for ($i = $top['where']; $i <= $c; ++$i)
743
- $chrs = substr_replace($chrs, ' ', $i, 1);
744
-
745
- //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
746
-
747
- }
748
-
749
- }
750
-
751
- if (reset($stk) == SERVICES_JSON_IN_ARR) {
752
- return $arr;
753
-
754
- } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) {
755
- return $obj;
756
-
757
- }
758
-
759
- }
760
- }
761
- }
762
-
763
- /**
764
- * @todo Ultimately, this should just call PEAR::isError()
765
- */
766
- function isError($data, $code = null)
767
- {
768
- if (class_exists('pear')) {
769
- return PEAR::isError($data, $code);
770
- } elseif (is_object($data) && (get_class($data) == 'services_json_error' ||
771
- is_subclass_of($data, 'services_json_error'))) {
772
- return true;
773
- }
774
-
775
- return false;
776
- }
777
- }
778
-
779
- if (class_exists('PEAR_Error')) {
780
-
781
- class Services_JSON_Error extends PEAR_Error
782
- {
783
- function Services_JSON_Error($message = 'unknown error', $code = null,
784
- $mode = null, $options = null, $userinfo = null)
785
- {
786
- parent::PEAR_Error($message, $code, $mode, $options, $userinfo);
787
- }
788
- }
789
-
790
- } else {
791
-
792
- /**
793
- * @todo Ultimately, this class shall be descended from PEAR_Error
794
- */
795
- class Services_JSON_Error
796
- {
797
- function Services_JSON_Error($message = 'unknown error', $code = null,
798
- $mode = null, $options = null, $userinfo = null)
799
- {
800
-
801
- }
802
- }
803
-
804
- }
805
-
806
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
getid3/getid3.lib.php CHANGED
@@ -14,33 +14,28 @@
14
  class getid3_lib
15
  {
16
 
17
- function PrintHexBytes($string, $hex=true, $spaces=true, $htmlsafe=true) {
18
  $returnstring = '';
19
  for ($i = 0; $i < strlen($string); $i++) {
20
  if ($hex) {
21
  $returnstring .= str_pad(dechex(ord($string{$i})), 2, '0', STR_PAD_LEFT);
22
  } else {
23
- $returnstring .= ' '.(ereg("[\x20-\x7E]", $string{$i}) ? $string{$i} : '�');
24
  }
25
  if ($spaces) {
26
  $returnstring .= ' ';
27
  }
28
  }
29
- if ($htmlsafe) {
30
- $returnstring = htmlentities($returnstring);
 
 
 
31
  }
32
  return $returnstring;
33
  }
34
 
35
- function SafeStripSlashes($text) {
36
- if (get_magic_quotes_gpc()) {
37
- return stripslashes($text);
38
- }
39
- return $text;
40
- }
41
-
42
-
43
- function trunc($floatnumber) {
44
  // truncates a floating-point number at the decimal point
45
  // returns int (if possible, otherwise float)
46
  if ($floatnumber >= 1) {
@@ -50,21 +45,30 @@ class getid3_lib
50
  } else {
51
  $truncatednumber = 0;
52
  }
53
- if ($truncatednumber <= 1073741824) { // 2^30
54
  $truncatednumber = (int) $truncatednumber;
55
  }
56
  return $truncatednumber;
57
  }
58
 
59
 
60
- function CastAsInt($floatnum) {
 
 
 
 
 
 
 
 
 
61
  // convert to float if not already
62
  $floatnum = (float) $floatnum;
63
 
64
  // convert a float to type int, only if possible
65
  if (getid3_lib::trunc($floatnum) == $floatnum) {
66
  // it's not floating point
67
- if ($floatnum <= 1073741824) { // 2^30
68
  // it's within int range
69
  $floatnum = (int) $floatnum;
70
  }
@@ -72,15 +76,36 @@ class getid3_lib
72
  return $floatnum;
73
  }
74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
- function DecimalBinary2Float($binarynumerator) {
77
  $numerator = getid3_lib::Bin2Dec($binarynumerator);
78
  $denominator = getid3_lib::Bin2Dec('1'.str_repeat('0', strlen($binarynumerator)));
79
  return ($numerator / $denominator);
80
  }
81
 
82
 
83
- function NormalizeBinaryPoint($binarypointnumber, $maxbits=52) {
84
  // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/binary.html
85
  if (strpos($binarypointnumber, '.') === false) {
86
  $binarypointnumber = '0.'.$binarypointnumber;
@@ -104,7 +129,7 @@ class getid3_lib
104
  }
105
 
106
 
107
- function Float2BinaryDecimal($floatvalue) {
108
  // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/binary.html
109
  $maxbits = 128; // to how many bits of precision should the calculations be taken?
110
  $intpart = getid3_lib::trunc($floatvalue);
@@ -120,7 +145,7 @@ class getid3_lib
120
  }
121
 
122
 
123
- function Float2String($floatvalue, $bits) {
124
  // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/ieee-expl.html
125
  switch ($bits) {
126
  case 32:
@@ -151,20 +176,20 @@ class getid3_lib
151
  }
152
 
153
 
154
- function LittleEndian2Float($byteword) {
155
  return getid3_lib::BigEndian2Float(strrev($byteword));
156
  }
157
 
158
 
159
- function BigEndian2Float($byteword) {
160
  // ANSI/IEEE Standard 754-1985, Standard for Binary Floating Point Arithmetic
161
  // http://www.psc.edu/general/software/packages/ieee/ieee.html
162
  // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/ieee.html
163
 
164
  $bitword = getid3_lib::BigEndian2Bin($byteword);
165
  if (!$bitword) {
166
- return 0;
167
- }
168
  $signbit = $bitword{0};
169
 
170
  switch (strlen($byteword) * 8) {
@@ -234,44 +259,42 @@ class getid3_lib
234
  }
235
 
236
 
237
- function BigEndian2Int($byteword, $synchsafe=false, $signed=false) {
238
  $intvalue = 0;
239
  $bytewordlen = strlen($byteword);
 
 
 
240
  for ($i = 0; $i < $bytewordlen; $i++) {
241
  if ($synchsafe) { // disregard MSB, effectively 7-bit bytes
242
- $intvalue = $intvalue | (ord($byteword{$i}) & 0x7F) << (($bytewordlen - 1 - $i) * 7);
 
243
  } else {
244
  $intvalue += ord($byteword{$i}) * pow(256, ($bytewordlen - 1 - $i));
245
  }
246
  }
247
  if ($signed && !$synchsafe) {
248
  // synchsafe ints are not allowed to be signed
249
- switch ($bytewordlen) {
250
- case 1:
251
- case 2:
252
- case 3:
253
- case 4:
254
- $signmaskbit = 0x80 << (8 * ($bytewordlen - 1));
255
- if ($intvalue & $signmaskbit) {
256
- $intvalue = 0 - ($intvalue & ($signmaskbit - 1));
257
- }
258
- break;
259
-
260
- default:
261
- die('ERROR: Cannot have signed integers larger than 32-bits in getid3_lib::BigEndian2Int()');
262
- break;
263
  }
264
  }
265
  return getid3_lib::CastAsInt($intvalue);
266
  }
267
 
268
 
269
- function LittleEndian2Int($byteword, $signed=false) {
270
  return getid3_lib::BigEndian2Int(strrev($byteword), false, $signed);
271
  }
272
 
273
 
274
- function BigEndian2Bin($byteword) {
275
  $binvalue = '';
276
  $bytewordlen = strlen($byteword);
277
  for ($i = 0; $i < $bytewordlen; $i++) {
@@ -281,15 +304,15 @@ class getid3_lib
281
  }
282
 
283
 
284
- function BigEndian2String($number, $minbytes=1, $synchsafe=false, $signed=false) {
285
  if ($number < 0) {
286
- return false;
287
  }
288
  $maskbyte = (($synchsafe || $signed) ? 0x7F : 0xFF);
289
  $intstring = '';
290
  if ($signed) {
291
- if ($minbytes > 4) {
292
- die('ERROR: Cannot have signed integers larger than 32-bits in getid3_lib::BigEndian2String()');
293
  }
294
  $number = $number & (0x80 << (8 * ($minbytes - 1)));
295
  }
@@ -302,7 +325,7 @@ class getid3_lib
302
  }
303
 
304
 
305
- function Dec2Bin($number) {
306
  while ($number >= 256) {
307
  $bytes[] = (($number / 256) - (floor($number / 256))) * 256;
308
  $number = floor($number / 256);
@@ -316,7 +339,7 @@ class getid3_lib
316
  }
317
 
318
 
319
- function Bin2Dec($binstring, $signed=false) {
320
  $signmult = 1;
321
  if ($signed) {
322
  if ($binstring{0} == '1') {
@@ -332,7 +355,7 @@ class getid3_lib
332
  }
333
 
334
 
335
- function Bin2String($binstring) {
336
  // return 'hi' for input of '0110100001101001'
337
  $string = '';
338
  $binstringreversed = strrev($binstring);
@@ -343,7 +366,7 @@ class getid3_lib
343
  }
344
 
345
 
346
- function LittleEndian2String($number, $minbytes=1, $synchsafe=false) {
347
  $intstring = '';
348
  while ($number > 0) {
349
  if ($synchsafe) {
@@ -358,7 +381,7 @@ class getid3_lib
358
  }
359
 
360
 
361
- function array_merge_clobber($array1, $array2) {
362
  // written by kc�hireability*com
363
  // taken from http://www.php.net/manual/en/function.array-merge-recursive.php
364
  if (!is_array($array1) || !is_array($array2)) {
@@ -376,7 +399,7 @@ class getid3_lib
376
  }
377
 
378
 
379
- function array_merge_noclobber($array1, $array2) {
380
  if (!is_array($array1) || !is_array($array2)) {
381
  return false;
382
  }
@@ -392,7 +415,17 @@ class getid3_lib
392
  }
393
 
394
 
395
- function fileextension($filename, $numextensions=1) {
 
 
 
 
 
 
 
 
 
 
396
  if (strstr($filename, '.')) {
397
  $reversedfilename = strrev($filename);
398
  $offset = 0;
@@ -408,66 +441,40 @@ class getid3_lib
408
  }
409
 
410
 
411
- function PlaytimeString($playtimeseconds) {
412
- $sign = (($playtimeseconds < 0) ? '-' : '');
413
- $playtimeseconds = abs($playtimeseconds);
414
- $contentseconds = round((($playtimeseconds / 60) - floor($playtimeseconds / 60)) * 60);
415
- $contentminutes = floor($playtimeseconds / 60);
416
- if ($contentseconds >= 60) {
417
- $contentseconds -= 60;
418
- $contentminutes++;
419
- }
420
- return $sign.intval($contentminutes).':'.str_pad($contentseconds, 2, 0, STR_PAD_LEFT);
421
  }
422
 
423
 
424
- function image_type_to_mime_type($imagetypeid) {
425
- // only available in PHP v4.3.0+
426
- static $image_type_to_mime_type = array();
427
- if (empty($image_type_to_mime_type)) {
428
- $image_type_to_mime_type[1] = 'image/gif'; // GIF
429
- $image_type_to_mime_type[2] = 'image/jpeg'; // JPEG
430
- $image_type_to_mime_type[3] = 'image/png'; // PNG
431
- $image_type_to_mime_type[4] = 'application/x-shockwave-flash'; // Flash
432
- $image_type_to_mime_type[5] = 'image/psd'; // PSD
433
- $image_type_to_mime_type[6] = 'image/bmp'; // BMP
434
- $image_type_to_mime_type[7] = 'image/tiff'; // TIFF: little-endian (Intel)
435
- $image_type_to_mime_type[8] = 'image/tiff'; // TIFF: big-endian (Motorola)
436
- //$image_type_to_mime_type[9] = 'image/jpc'; // JPC
437
- //$image_type_to_mime_type[10] = 'image/jp2'; // JPC
438
- //$image_type_to_mime_type[11] = 'image/jpx'; // JPC
439
- //$image_type_to_mime_type[12] = 'image/jb2'; // JPC
440
- $image_type_to_mime_type[13] = 'application/x-shockwave-flash'; // Shockwave
441
- $image_type_to_mime_type[14] = 'image/iff'; // IFF
442
- }
443
- return (isset($image_type_to_mime_type[$imagetypeid]) ? $image_type_to_mime_type[$imagetypeid] : 'application/octet-stream');
444
- }
445
-
446
-
447
- function DateMac2Unix($macdate) {
448
  // Macintosh timestamp: seconds since 00:00h January 1, 1904
449
  // UNIX timestamp: seconds since 00:00h January 1, 1970
450
  return getid3_lib::CastAsInt($macdate - 2082844800);
451
  }
452
 
453
 
454
- function FixedPoint8_8($rawdata) {
455
  return getid3_lib::BigEndian2Int(substr($rawdata, 0, 1)) + (float) (getid3_lib::BigEndian2Int(substr($rawdata, 1, 1)) / pow(2, 8));
456
  }
457
 
458
 
459
- function FixedPoint16_16($rawdata) {
460
  return getid3_lib::BigEndian2Int(substr($rawdata, 0, 2)) + (float) (getid3_lib::BigEndian2Int(substr($rawdata, 2, 2)) / pow(2, 16));
461
  }
462
 
463
 
464
- function FixedPoint2_30($rawdata) {
465
  $binarystring = getid3_lib::BigEndian2Bin($rawdata);
466
- return getid3_lib::Bin2Dec(substr($binarystring, 0, 2)) + (float) (getid3_lib::Bin2Dec(substr($binarystring, 2, 30)) / 1073741824);
467
  }
468
 
469
 
470
- function CreateDeepArray($ArrayPath, $Separator, $Value) {
471
  // assigns $Value to a nested array path:
472
  // $foo = getid3_lib::CreateDeepArray('/path/to/my', '/', 'file.txt')
473
  // is the same as:
@@ -485,7 +492,7 @@ class getid3_lib
485
  return $ReturnedArray;
486
  }
487
 
488
- function array_max($arraydata, $returnkey=false) {
489
  $maxvalue = false;
490
  $maxkey = false;
491
  foreach ($arraydata as $key => $value) {
@@ -499,7 +506,7 @@ class getid3_lib
499
  return ($returnkey ? $maxkey : $maxvalue);
500
  }
501
 
502
- function array_min($arraydata, $returnkey=false) {
503
  $minvalue = false;
504
  $minkey = false;
505
  foreach ($arraydata as $key => $value) {
@@ -513,79 +520,35 @@ class getid3_lib
513
  return ($returnkey ? $minkey : $minvalue);
514
  }
515
 
516
-
517
- function md5_file($file) {
518
-
519
- // md5_file() exists in PHP 4.2.0+.
520
- if (function_exists('md5_file')) {
521
- return md5_file($file);
522
- }
523
-
524
- if (GETID3_OS_ISWINDOWS) {
525
-
526
- $RequiredFiles = array('cygwin1.dll', 'md5sum.exe');
527
- foreach ($RequiredFiles as $required_file) {
528
- if (!is_readable(GETID3_HELPERAPPSDIR.$required_file)) {
529
- die(implode(' and ', $RequiredFiles).' are required in '.GETID3_HELPERAPPSDIR.' for getid3_lib::md5_file() to function under Windows in PHP < v4.2.0');
530
- }
531
  }
532
- $commandline = GETID3_HELPERAPPSDIR.'md5sum.exe "'.str_replace('/', DIRECTORY_SEPARATOR, $file).'"';
533
- if (ereg("^[\\]?([0-9a-f]{32})", strtolower(`$commandline`), $r)) {
534
- return $r[1];
535
- }
536
-
537
- } else {
538
-
539
- // The following works under UNIX only
540
- $file = str_replace('`', '\\`', $file);
541
- if (ereg("^([0-9a-f]{32})[ \t\n\r]", `md5sum "$file"`, $r)) {
542
- return $r[1];
543
- }
544
-
545
  }
546
  return false;
547
  }
548
 
549
-
550
- function sha1_file($file) {
551
-
552
- // sha1_file() exists in PHP 4.3.0+.
553
- if (function_exists('sha1_file')) {
554
- return sha1_file($file);
555
  }
556
-
557
- $file = str_replace('`', '\\`', $file);
558
-
559
- if (GETID3_OS_ISWINDOWS) {
560
-
561
- $RequiredFiles = array('cygwin1.dll', 'sha1sum.exe');
562
- foreach ($RequiredFiles as $required_file) {
563
- if (!is_readable(GETID3_HELPERAPPSDIR.$required_file)) {
564
- die(implode(' and ', $RequiredFiles).' are required in '.GETID3_HELPERAPPSDIR.' for getid3_lib::sha1_file() to function under Windows in PHP < v4.3.0');
565
- }
566
- }
567
- $commandline = GETID3_HELPERAPPSDIR.'sha1sum.exe "'.str_replace('/', DIRECTORY_SEPARATOR, $file).'"';
568
- if (ereg("^sha1=([0-9a-f]{40})", strtolower(`$commandline`), $r)) {
569
- return $r[1];
570
- }
571
-
572
- } else {
573
-
574
- $commandline = 'sha1sum '.escapeshellarg($file).'';
575
- if (ereg("^([0-9a-f]{40})[ \t\n\r]", strtolower(`$commandline`), $r)) {
576
- return $r[1];
577
- }
578
-
579
  }
580
-
581
- return false;
582
  }
583
 
584
 
585
  // Allan Hansen <ah�artemis*dk>
586
  // getid3_lib::md5_data() - returns md5sum for a file from startuing position to absolute end position
587
- function hash_data($file, $offset, $end, $algorithm) {
588
-
 
 
 
589
  switch ($algorithm) {
590
  case 'md5':
591
  $hash_function = 'md5_file';
@@ -602,7 +565,7 @@ class getid3_lib
602
  break;
603
 
604
  default:
605
- die('Invalid algorithm ('.$algorithm.') in getid3_lib::hash_data()');
606
  break;
607
  }
608
  $size = $end - $offset;
@@ -633,16 +596,23 @@ class getid3_lib
633
  $commandline .= $unix_call;
634
 
635
  }
636
- if ((bool) ini_get('safe_mode')) {
637
- $ThisFileInfo['warning'][] = 'PHP running in Safe Mode - backtick operator not available, using slower non-system-call '.$algorithm.' algorithm';
638
  break;
639
  }
640
  return substr(`$commandline`, 0, $hash_length);
641
  }
642
 
 
 
 
 
 
 
 
643
  // try to create a temporary file in the system temp directory - invalid dirname should force to system temp dir
644
- if (($data_filename = tempnam('*', 'getID3')) === false) {
645
- // can't find anywhere to create a temp file, just die
646
  return false;
647
  }
648
 
@@ -650,52 +620,68 @@ class getid3_lib
650
  $result = false;
651
 
652
  // copy parts of file
653
- if ($fp = @fopen($file, 'rb')) {
654
-
655
- if ($fp_data = @fopen($data_filename, 'wb')) {
656
-
657
- fseek($fp, $offset, SEEK_SET);
658
- $byteslefttowrite = $end - $offset;
659
- while (($byteslefttowrite > 0) && ($buffer = fread($fp, GETID3_FREAD_BUFFER_SIZE))) {
660
- $byteswritten = fwrite($fp_data, $buffer, $byteslefttowrite);
661
- $byteslefttowrite -= $byteswritten;
662
- }
663
- fclose($fp_data);
664
- $result = getid3_lib::$hash_function($data_filename);
665
-
666
- }
667
- fclose($fp);
668
  }
669
  unlink($data_filename);
670
  return $result;
671
  }
672
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
673
 
674
- function iconv_fallback_int_utf8($charval) {
675
  if ($charval < 128) {
676
  // 0bbbbbbb
677
  $newcharstring = chr($charval);
678
  } elseif ($charval < 2048) {
679
  // 110bbbbb 10bbbbbb
680
- $newcharstring = chr(($charval >> 6) | 0xC0);
681
  $newcharstring .= chr(($charval & 0x3F) | 0x80);
682
  } elseif ($charval < 65536) {
683
  // 1110bbbb 10bbbbbb 10bbbbbb
684
- $newcharstring = chr(($charval >> 12) | 0xE0);
685
- $newcharstring .= chr(($charval >> 6) | 0xC0);
686
  $newcharstring .= chr(($charval & 0x3F) | 0x80);
687
  } else {
688
  // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
689
- $newcharstring = chr(($charval >> 18) | 0xF0);
690
- $newcharstring .= chr(($charval >> 12) | 0xC0);
691
- $newcharstring .= chr(($charval >> 6) | 0xC0);
692
  $newcharstring .= chr(($charval & 0x3F) | 0x80);
693
  }
694
  return $newcharstring;
695
  }
696
 
697
  // ISO-8859-1 => UTF-8
698
- function iconv_fallback_iso88591_utf8($string, $bom=false) {
699
  if (function_exists('utf8_encode')) {
700
  return utf8_encode($string);
701
  }
@@ -712,7 +698,7 @@ class getid3_lib
712
  }
713
 
714
  // ISO-8859-1 => UTF-16BE
715
- function iconv_fallback_iso88591_utf16be($string, $bom=false) {
716
  $newcharstring = '';
717
  if ($bom) {
718
  $newcharstring .= "\xFE\xFF";
@@ -724,7 +710,7 @@ class getid3_lib
724
  }
725
 
726
  // ISO-8859-1 => UTF-16LE
727
- function iconv_fallback_iso88591_utf16le($string, $bom=false) {
728
  $newcharstring = '';
729
  if ($bom) {
730
  $newcharstring .= "\xFF\xFE";
@@ -736,12 +722,12 @@ class getid3_lib
736
  }
737
 
738
  // ISO-8859-1 => UTF-16LE (BOM)
739
- function iconv_fallback_iso88591_utf16($string) {
740
  return getid3_lib::iconv_fallback_iso88591_utf16le($string, true);
741
  }
742
 
743
  // UTF-8 => ISO-8859-1
744
- function iconv_fallback_utf8_iso88591($string) {
745
  if (function_exists('utf8_decode')) {
746
  return utf8_decode($string);
747
  }
@@ -753,20 +739,20 @@ class getid3_lib
753
  if ((ord($string{$offset}) | 0x07) == 0xF7) {
754
  // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
755
  $charval = ((ord($string{($offset + 0)}) & 0x07) << 18) &
756
- ((ord($string{($offset + 1)}) & 0x3F) << 12) &
757
- ((ord($string{($offset + 2)}) & 0x3F) << 6) &
758
- (ord($string{($offset + 3)}) & 0x3F);
759
  $offset += 4;
760
  } elseif ((ord($string{$offset}) | 0x0F) == 0xEF) {
761
  // 1110bbbb 10bbbbbb 10bbbbbb
762
  $charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) &
763
- ((ord($string{($offset + 1)}) & 0x3F) << 6) &
764
- (ord($string{($offset + 2)}) & 0x3F);
765
  $offset += 3;
766
  } elseif ((ord($string{$offset}) | 0x1F) == 0xDF) {
767
  // 110bbbbb 10bbbbbb
768
  $charval = ((ord($string{($offset + 0)}) & 0x1F) << 6) &
769
- (ord($string{($offset + 1)}) & 0x3F);
770
  $offset += 2;
771
  } elseif ((ord($string{$offset}) | 0x7F) == 0x7F) {
772
  // 0bbbbbbb
@@ -785,7 +771,7 @@ class getid3_lib
785
  }
786
 
787
  // UTF-8 => UTF-16BE
788
- function iconv_fallback_utf8_utf16be($string, $bom=false) {
789
  $newcharstring = '';
790
  if ($bom) {
791
  $newcharstring .= "\xFE\xFF";
@@ -796,20 +782,20 @@ class getid3_lib
796
  if ((ord($string{$offset}) | 0x07) == 0xF7) {
797
  // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
798
  $charval = ((ord($string{($offset + 0)}) & 0x07) << 18) &
799
- ((ord($string{($offset + 1)}) & 0x3F) << 12) &
800
- ((ord($string{($offset + 2)}) & 0x3F) << 6) &
801
- (ord($string{($offset + 3)}) & 0x3F);
802
  $offset += 4;
803
  } elseif ((ord($string{$offset}) | 0x0F) == 0xEF) {
804
  // 1110bbbb 10bbbbbb 10bbbbbb
805
  $charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) &
806
- ((ord($string{($offset + 1)}) & 0x3F) << 6) &
807
- (ord($string{($offset + 2)}) & 0x3F);
808
  $offset += 3;
809
  } elseif ((ord($string{$offset}) | 0x1F) == 0xDF) {
810
  // 110bbbbb 10bbbbbb
811
  $charval = ((ord($string{($offset + 0)}) & 0x1F) << 6) &
812
- (ord($string{($offset + 1)}) & 0x3F);
813
  $offset += 2;
814
  } elseif ((ord($string{$offset}) | 0x7F) == 0x7F) {
815
  // 0bbbbbbb
@@ -828,7 +814,7 @@ class getid3_lib
828
  }
829
 
830
  // UTF-8 => UTF-16LE
831
- function iconv_fallback_utf8_utf16le($string, $bom=false) {
832
  $newcharstring = '';
833
  if ($bom) {
834
  $newcharstring .= "\xFF\xFE";
@@ -839,20 +825,20 @@ class getid3_lib
839
  if ((ord($string{$offset}) | 0x07) == 0xF7) {
840
  // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
841
  $charval = ((ord($string{($offset + 0)}) & 0x07) << 18) &
842
- ((ord($string{($offset + 1)}) & 0x3F) << 12) &
843
- ((ord($string{($offset + 2)}) & 0x3F) << 6) &
844
- (ord($string{($offset + 3)}) & 0x3F);
845
  $offset += 4;
846
  } elseif ((ord($string{$offset}) | 0x0F) == 0xEF) {
847
  // 1110bbbb 10bbbbbb 10bbbbbb
848
  $charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) &
849
- ((ord($string{($offset + 1)}) & 0x3F) << 6) &
850
- (ord($string{($offset + 2)}) & 0x3F);
851
  $offset += 3;
852
  } elseif ((ord($string{$offset}) | 0x1F) == 0xDF) {
853
  // 110bbbbb 10bbbbbb
854
  $charval = ((ord($string{($offset + 0)}) & 0x1F) << 6) &
855
- (ord($string{($offset + 1)}) & 0x3F);
856
  $offset += 2;
857
  } elseif ((ord($string{$offset}) | 0x7F) == 0x7F) {
858
  // 0bbbbbbb
@@ -871,12 +857,12 @@ class getid3_lib
871
  }
872
 
873
  // UTF-8 => UTF-16LE (BOM)
874
- function iconv_fallback_utf8_utf16($string) {
875
  return getid3_lib::iconv_fallback_utf8_utf16le($string, true);
876
  }
877
 
878
  // UTF-16BE => UTF-8
879
- function iconv_fallback_utf16be_utf8($string) {
880
  if (substr($string, 0, 2) == "\xFE\xFF") {
881
  // strip BOM
882
  $string = substr($string, 2);
@@ -890,7 +876,7 @@ class getid3_lib
890
  }
891
 
892
  // UTF-16LE => UTF-8
893
- function iconv_fallback_utf16le_utf8($string) {
894
  if (substr($string, 0, 2) == "\xFF\xFE") {
895
  // strip BOM
896
  $string = substr($string, 2);
@@ -904,7 +890,7 @@ class getid3_lib
904
  }
905
 
906
  // UTF-16BE => ISO-8859-1
907
- function iconv_fallback_utf16be_iso88591($string) {
908
  if (substr($string, 0, 2) == "\xFE\xFF") {
909
  // strip BOM
910
  $string = substr($string, 2);
@@ -918,7 +904,7 @@ class getid3_lib
918
  }
919
 
920
  // UTF-16LE => ISO-8859-1
921
- function iconv_fallback_utf16le_iso88591($string) {
922
  if (substr($string, 0, 2) == "\xFF\xFE") {
923
  // strip BOM
924
  $string = substr($string, 2);
@@ -932,7 +918,7 @@ class getid3_lib
932
  }
933
 
934
  // UTF-16 (BOM) => ISO-8859-1
935
- function iconv_fallback_utf16_iso88591($string) {
936
  $bom = substr($string, 0, 2);
937
  if ($bom == "\xFE\xFF") {
938
  return getid3_lib::iconv_fallback_utf16be_iso88591(substr($string, 2));
@@ -943,7 +929,7 @@ class getid3_lib
943
  }
944
 
945
  // UTF-16 (BOM) => UTF-8
946
- function iconv_fallback_utf16_utf8($string) {
947
  $bom = substr($string, 0, 2);
948
  if ($bom == "\xFE\xFF") {
949
  return getid3_lib::iconv_fallback_utf16be_utf8(substr($string, 2));
@@ -953,7 +939,7 @@ class getid3_lib
953
  return $string;
954
  }
955
 
956
- function iconv_fallback($in_charset, $out_charset, $string) {
957
 
958
  if ($in_charset == $out_charset) {
959
  return $string;
@@ -961,23 +947,22 @@ class getid3_lib
961
 
962
  // iconv() availble
963
  if (function_exists('iconv')) {
 
 
 
 
 
 
 
 
964
 
965
- if ($converted_string = @iconv($in_charset, $out_charset.'//TRANSLIT', $string)) {
966
- switch ($out_charset) {
967
- case 'ISO-8859-1':
968
- $converted_string = rtrim($converted_string, "\x00");
969
- break;
970
- }
971
- return $converted_string;
972
- }
973
-
974
- // iconv() may sometimes fail with "illegal character in input string" error message
975
- // and return an empty string, but returning the unconverted string is more useful
976
- return $string;
977
- }
978
 
979
 
980
- // iconv() not available
981
  static $ConversionFunctionList = array();
982
  if (empty($ConversionFunctionList)) {
983
  $ConversionFunctionList['ISO-8859-1']['UTF-8'] = 'iconv_fallback_iso88591_utf8';
@@ -999,41 +984,42 @@ class getid3_lib
999
  $ConversionFunction = $ConversionFunctionList[strtoupper($in_charset)][strtoupper($out_charset)];
1000
  return getid3_lib::$ConversionFunction($string);
1001
  }
1002
- die('PHP does not have iconv() support - cannot convert from '.$in_charset.' to '.$out_charset);
1003
  }
1004
 
1005
 
1006
- function MultiByteCharString2HTML($string, $charset='ISO-8859-1') {
 
1007
  $HTMLstring = '';
1008
 
1009
  switch ($charset) {
1010
- case 'ISO-8859-1':
1011
- case 'ISO8859-1':
1012
- case 'ISO-8859-15':
1013
- case 'ISO8859-15':
1014
- case 'cp866':
1015
- case 'ibm866':
1016
  case '866':
 
 
 
 
 
1017
  case 'cp1251':
1018
- case 'Windows-1251':
1019
- case 'win-1251':
1020
- case '1251':
1021
  case 'cp1252':
1022
- case 'Windows-1252':
1023
- case '1252':
 
 
 
 
 
 
 
1024
  case 'KOI8-R':
1025
  case 'koi8-ru':
1026
  case 'koi8r':
1027
- case 'BIG5':
1028
- case '950':
1029
- case 'GB2312':
1030
- case '936':
1031
- case 'BIG5-HKSCS':
1032
  case 'Shift_JIS':
1033
  case 'SJIS':
1034
- case '932':
1035
- case 'EUC-JP':
1036
- case 'EUCJP':
1037
  $HTMLstring = htmlentities($string, ENT_COMPAT, $charset);
1038
  break;
1039
 
@@ -1058,7 +1044,7 @@ class getid3_lib
1058
  $charval += (ord($string{++$i}) & 0x3F);
1059
  }
1060
  if (($charval >= 32) && ($charval <= 127)) {
1061
- $HTMLstring .= chr($charval);
1062
  } else {
1063
  $HTMLstring .= '&#'.$charval.';';
1064
  }
@@ -1096,7 +1082,7 @@ class getid3_lib
1096
 
1097
 
1098
 
1099
- function RGADnameLookup($namecode) {
1100
  static $RGADname = array();
1101
  if (empty($RGADname)) {
1102
  $RGADname[0] = 'not set';
@@ -1108,7 +1094,7 @@ class getid3_lib
1108
  }
1109
 
1110
 
1111
- function RGADoriginatorLookup($originatorcode) {
1112
  static $RGADoriginator = array();
1113
  if (empty($RGADoriginator)) {
1114
  $RGADoriginator[0] = 'unspecified';
@@ -1121,7 +1107,7 @@ class getid3_lib
1121
  }
1122
 
1123
 
1124
- function RGADadjustmentLookup($rawadjustment, $signbit) {
1125
  $adjustment = $rawadjustment / 10;
1126
  if ($signbit == 1) {
1127
  $adjustment *= -1;
@@ -1130,7 +1116,7 @@ class getid3_lib
1130
  }
1131
 
1132
 
1133
- function RGADgainString($namecode, $originatorcode, $replaygain) {
1134
  if ($replaygain < 0) {
1135
  $signbit = '1';
1136
  } else {
@@ -1145,25 +1131,33 @@ class getid3_lib
1145
  return $gainstring;
1146
  }
1147
 
1148
- function RGADamplitude2dB($amplitude) {
1149
  return 20 * log10($amplitude);
1150
  }
1151
 
1152
 
1153
- function GetDataImageSize($imgData) {
 
 
 
 
 
 
 
 
1154
  $GetDataImageSize = false;
1155
- if ($tempfilename = tempnam('*', 'getID3')) {
1156
- if ($tmp = @fopen($tempfilename, 'wb')) {
1157
  fwrite($tmp, $imgData);
1158
  fclose($tmp);
1159
- $GetDataImageSize = @GetImageSize($tempfilename);
1160
  }
1161
  unlink($tempfilename);
1162
  }
1163
  return $GetDataImageSize;
1164
  }
1165
 
1166
- function ImageTypesLookup($imagetypeid) {
1167
  static $ImageTypesLookup = array();
1168
  if (empty($ImageTypesLookup)) {
1169
  $ImageTypesLookup[1] = 'gif';
@@ -1184,7 +1178,7 @@ class getid3_lib
1184
  return (isset($ImageTypesLookup[$imagetypeid]) ? $ImageTypesLookup[$imagetypeid] : '');
1185
  }
1186
 
1187
- function CopyTagsToComments(&$ThisFileInfo) {
1188
 
1189
  // Copy all entries from ['tags'] into common ['comments']
1190
  if (!empty($ThisFileInfo['tags'])) {
@@ -1207,7 +1201,7 @@ class getid3_lib
1207
  }
1208
  }
1209
 
1210
- } else {
1211
 
1212
  $newvaluelength = strlen(trim($value));
1213
  foreach ($ThisFileInfo['comments'][$tagname] as $existingkey => $existingvalue) {
@@ -1219,8 +1213,9 @@ class getid3_lib
1219
  }
1220
 
1221
  }
1222
- if (empty($ThisFileInfo['comments'][$tagname]) || !in_array(trim($value), $ThisFileInfo['comments'][$tagname])) {
1223
- $ThisFileInfo['comments'][$tagname][] = trim($value);
 
1224
  }
1225
  }
1226
  }
@@ -1228,21 +1223,31 @@ class getid3_lib
1228
  }
1229
 
1230
  // Copy to ['comments_html']
1231
- foreach ($ThisFileInfo['comments'] as $field => $values) {
1232
- foreach ($values as $index => $value) {
1233
- $ThisFileInfo['comments_html'][$field][$index] = str_replace('&#0;', '', getid3_lib::MultiByteCharString2HTML($value, $ThisFileInfo['encoding']));
1234
- }
1235
- }
 
 
 
 
 
 
 
 
 
1236
  }
 
1237
  }
1238
 
1239
 
1240
- function EmbeddedLookup($key, $begin, $end, $file, $name) {
1241
 
1242
  // Cached
1243
  static $cache;
1244
  if (isset($cache[$file][$name])) {
1245
- return @$cache[$file][$name][$key];
1246
  }
1247
 
1248
  // Init
@@ -1272,20 +1277,22 @@ class getid3_lib
1272
 
1273
  // METHOD B: cache all keys in this lookup - more memory but faster on next lookup of not-previously-looked-up key
1274
  //$cache[$file][$name][substr($line, 0, $keylength)] = trim(substr($line, $keylength + 1));
1275
- @list($ThisKey, $ThisValue) = explode("\t", $line, 2);
 
 
1276
  $cache[$file][$name][$ThisKey] = trim($ThisValue);
1277
  }
1278
 
1279
  // Close and return
1280
  fclose($fp);
1281
- return @$cache[$file][$name][$key];
1282
  }
1283
 
1284
- function IncludeDependency($filename, $sourcefile, $DieOnFailure=false) {
1285
  global $GETID3_ERRORARRAY;
1286
 
1287
  if (file_exists($filename)) {
1288
- if (@include_once($filename)) {
1289
  return true;
1290
  } else {
1291
  $diemessage = basename($sourcefile).' depends on '.$filename.', which has errors';
@@ -1294,13 +1301,17 @@ class getid3_lib
1294
  $diemessage = basename($sourcefile).' depends on '.$filename.', which is missing';
1295
  }
1296
  if ($DieOnFailure) {
1297
- die($diemessage);
1298
  } else {
1299
  $GETID3_ERRORARRAY[] = $diemessage;
1300
  }
1301
  return false;
1302
  }
1303
 
 
 
 
 
1304
  }
1305
 
1306
  ?>
14
  class getid3_lib
15
  {
16
 
17
+ static function PrintHexBytes($string, $hex=true, $spaces=true, $htmlencoding='UTF-8') {
18
  $returnstring = '';
19
  for ($i = 0; $i < strlen($string); $i++) {
20
  if ($hex) {
21
  $returnstring .= str_pad(dechex(ord($string{$i})), 2, '0', STR_PAD_LEFT);
22
  } else {
23
+ $returnstring .= ' '.(preg_match("#[\x20-\x7E]#", $string{$i}) ? $string{$i} : '�');
24
  }
25
  if ($spaces) {
26
  $returnstring .= ' ';
27
  }
28
  }
29
+ if (!empty($htmlencoding)) {
30
+ if ($htmlencoding === true) {
31
+ $htmlencoding = 'UTF-8'; // prior to getID3 v1.9.0 the function's 4th parameter was boolean
32
+ }
33
+ $returnstring = htmlentities($returnstring, ENT_QUOTES, $htmlencoding);
34
  }
35
  return $returnstring;
36
  }
37
 
38
+ static function trunc($floatnumber) {
 
 
 
 
 
 
 
 
39
  // truncates a floating-point number at the decimal point
40
  // returns int (if possible, otherwise float)
41
  if ($floatnumber >= 1) {
45
  } else {
46
  $truncatednumber = 0;
47
  }
48
+ if (getid3_lib::intValueSupported($truncatednumber)) {
49
  $truncatednumber = (int) $truncatednumber;
50
  }
51
  return $truncatednumber;
52
  }
53
 
54
 
55
+ static function safe_inc(&$variable, $increment=1) {
56
+ if (isset($variable)) {
57
+ $variable += $increment;
58
+ } else {
59
+ $variable = $increment;
60
+ }
61
+ return true;
62
+ }
63
+
64
+ static function CastAsInt($floatnum) {
65
  // convert to float if not already
66
  $floatnum = (float) $floatnum;
67
 
68
  // convert a float to type int, only if possible
69
  if (getid3_lib::trunc($floatnum) == $floatnum) {
70
  // it's not floating point
71
+ if (getid3_lib::intValueSupported($floatnum)) {
72
  // it's within int range
73
  $floatnum = (int) $floatnum;
74
  }
76
  return $floatnum;
77
  }
78
 
79
+ public static function intValueSupported($num) {
80
+ // check if integers are 64-bit
81
+ static $hasINT64 = null;
82
+ if ($hasINT64 === null) { // 10x faster than is_null()
83
+ $hasINT64 = is_int(pow(2, 31)); // 32-bit int are limited to (2^31)-1
84
+ if (!$hasINT64 && !defined('PHP_INT_MIN')) {
85
+ define('PHP_INT_MIN', ~PHP_INT_MAX);
86
+ }
87
+ }
88
+ // if integers are 64-bit - no other check required
89
+ if ($hasINT64 || (($num <= PHP_INT_MAX) && ($num >= PHP_INT_MIN))) {
90
+ return true;
91
+ }
92
+ return false;
93
+ }
94
+
95
+ static function DecimalizeFraction($fraction) {
96
+ list($numerator, $denominator) = explode('/', $fraction);
97
+ return $numerator / ($denominator ? $denominator : 1);
98
+ }
99
+
100
 
101
+ static function DecimalBinary2Float($binarynumerator) {
102
  $numerator = getid3_lib::Bin2Dec($binarynumerator);
103
  $denominator = getid3_lib::Bin2Dec('1'.str_repeat('0', strlen($binarynumerator)));
104
  return ($numerator / $denominator);
105
  }
106
 
107
 
108
+ static function NormalizeBinaryPoint($binarypointnumber, $maxbits=52) {
109
  // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/binary.html
110
  if (strpos($binarypointnumber, '.') === false) {
111
  $binarypointnumber = '0.'.$binarypointnumber;
129
  }
130
 
131
 
132
+ static function Float2BinaryDecimal($floatvalue) {
133
  // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/binary.html
134
  $maxbits = 128; // to how many bits of precision should the calculations be taken?
135
  $intpart = getid3_lib::trunc($floatvalue);
145
  }
146
 
147
 
148
+ static function Float2String($floatvalue, $bits) {
149
  // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/ieee-expl.html
150
  switch ($bits) {
151
  case 32:
176
  }
177
 
178
 
179
+ static function LittleEndian2Float($byteword) {
180
  return getid3_lib::BigEndian2Float(strrev($byteword));
181
  }
182
 
183
 
184
+ static function BigEndian2Float($byteword) {
185
  // ANSI/IEEE Standard 754-1985, Standard for Binary Floating Point Arithmetic
186
  // http://www.psc.edu/general/software/packages/ieee/ieee.html
187
  // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/ieee.html
188
 
189
  $bitword = getid3_lib::BigEndian2Bin($byteword);
190
  if (!$bitword) {
191
+ return 0;
192
+ }
193
  $signbit = $bitword{0};
194
 
195
  switch (strlen($byteword) * 8) {
259
  }
260
 
261
 
262
+ static function BigEndian2Int($byteword, $synchsafe=false, $signed=false) {
263
  $intvalue = 0;
264
  $bytewordlen = strlen($byteword);
265
+ if ($bytewordlen == 0) {
266
+ return false;
267
+ }
268
  for ($i = 0; $i < $bytewordlen; $i++) {
269
  if ($synchsafe) { // disregard MSB, effectively 7-bit bytes
270
+ //$intvalue = $intvalue | (ord($byteword{$i}) & 0x7F) << (($bytewordlen - 1 - $i) * 7); // faster, but runs into problems past 2^31 on 32-bit systems
271
+ $intvalue += (ord($byteword{$i}) & 0x7F) * pow(2, ($bytewordlen - 1 - $i) * 7);
272
  } else {
273
  $intvalue += ord($byteword{$i}) * pow(256, ($bytewordlen - 1 - $i));
274
  }
275
  }
276
  if ($signed && !$synchsafe) {
277
  // synchsafe ints are not allowed to be signed
278
+ if ($bytewordlen <= PHP_INT_SIZE) {
279
+ $signMaskBit = 0x80 << (8 * ($bytewordlen - 1));
280
+ if ($intvalue & $signMaskBit) {
281
+ $intvalue = 0 - ($intvalue & ($signMaskBit - 1));
282
+ }
283
+ } else {
284
+ throw new Exception('ERROR: Cannot have signed integers larger than '.(8 * PHP_INT_SIZE).'-bits ('.strlen($byteword).') in getid3_lib::BigEndian2Int()');
285
+ break;
 
 
 
 
 
 
286
  }
287
  }
288
  return getid3_lib::CastAsInt($intvalue);
289
  }
290
 
291
 
292
+ static function LittleEndian2Int($byteword, $signed=false) {
293
  return getid3_lib::BigEndian2Int(strrev($byteword), false, $signed);
294
  }
295
 
296
 
297
+ static function BigEndian2Bin($byteword) {
298
  $binvalue = '';
299
  $bytewordlen = strlen($byteword);
300
  for ($i = 0; $i < $bytewordlen; $i++) {
304
  }
305
 
306
 
307
+ static function BigEndian2String($number, $minbytes=1, $synchsafe=false, $signed=false) {
308
  if ($number < 0) {
309
+ throw new Exception('ERROR: getid3_lib::BigEndian2String() does not support negative numbers');
310
  }
311
  $maskbyte = (($synchsafe || $signed) ? 0x7F : 0xFF);
312
  $intstring = '';
313
  if ($signed) {
314
+ if ($minbytes > PHP_INT_SIZE) {
315
+ throw new Exception('ERROR: Cannot have signed integers larger than '.(8 * PHP_INT_SIZE).'-bits in getid3_lib::BigEndian2String()');
316
  }
317
  $number = $number & (0x80 << (8 * ($minbytes - 1)));
318
  }
325
  }
326
 
327
 
328
+ static function Dec2Bin($number) {
329
  while ($number >= 256) {
330
  $bytes[] = (($number / 256) - (floor($number / 256))) * 256;
331
  $number = floor($number / 256);
339
  }
340
 
341
 
342
+ static function Bin2Dec($binstring, $signed=false) {
343
  $signmult = 1;
344
  if ($signed) {
345
  if ($binstring{0} == '1') {
355
  }
356
 
357
 
358
+ static function Bin2String($binstring) {
359
  // return 'hi' for input of '0110100001101001'
360
  $string = '';
361
  $binstringreversed = strrev($binstring);
366
  }
367
 
368
 
369
+ static function LittleEndian2String($number, $minbytes=1, $synchsafe=false) {
370
  $intstring = '';
371
  while ($number > 0) {
372
  if ($synchsafe) {
381
  }
382
 
383
 
384
+ static function array_merge_clobber($array1, $array2) {
385
  // written by kc�hireability*com
386
  // taken from http://www.php.net/manual/en/function.array-merge-recursive.php
387
  if (!is_array($array1) || !is_array($array2)) {
399
  }
400
 
401
 
402
+ static function array_merge_noclobber($array1, $array2) {
403
  if (!is_array($array1) || !is_array($array2)) {
404
  return false;
405
  }
415
  }
416
 
417
 
418
+ static function ksort_recursive(&$theArray) {
419
+ ksort($theArray);
420
+ foreach ($theArray as $key => $value) {
421
+ if (is_array($value)) {
422
+ self::ksort_recursive($theArray[$key]);
423
+ }
424
+ }
425
+ return true;
426
+ }
427
+
428
+ static function fileextension($filename, $numextensions=1) {
429
  if (strstr($filename, '.')) {
430
  $reversedfilename = strrev($filename);
431
  $offset = 0;
441
  }
442
 
443
 
444
+ static function PlaytimeString($seconds) {
445
+ $sign = (($seconds < 0) ? '-' : '');
446
+ $seconds = abs($seconds);
447
+ $H = floor( $seconds / 3600);
448
+ $M = floor(($seconds - (3600 * $H) ) / 60);
449
+ $S = round( $seconds - (3600 * $H) - (60 * $M) );
450
+ return $sign.($H ? $H.':' : '').($H ? str_pad($M, 2, '0', STR_PAD_LEFT) : intval($M)).':'.str_pad($S, 2, 0, STR_PAD_LEFT);
 
 
 
451
  }
452
 
453
 
454
+ static function DateMac2Unix($macdate) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
455
  // Macintosh timestamp: seconds since 00:00h January 1, 1904
456
  // UNIX timestamp: seconds since 00:00h January 1, 1970
457
  return getid3_lib::CastAsInt($macdate - 2082844800);
458
  }
459
 
460
 
461
+ static function FixedPoint8_8($rawdata) {
462
  return getid3_lib::BigEndian2Int(substr($rawdata, 0, 1)) + (float) (getid3_lib::BigEndian2Int(substr($rawdata, 1, 1)) / pow(2, 8));
463
  }
464
 
465
 
466
+ static function FixedPoint16_16($rawdata) {
467
  return getid3_lib::BigEndian2Int(substr($rawdata, 0, 2)) + (float) (getid3_lib::BigEndian2Int(substr($rawdata, 2, 2)) / pow(2, 16));
468
  }
469
 
470
 
471
+ static function FixedPoint2_30($rawdata) {
472
  $binarystring = getid3_lib::BigEndian2Bin($rawdata);
473
+ return getid3_lib::Bin2Dec(substr($binarystring, 0, 2)) + (float) (getid3_lib::Bin2Dec(substr($binarystring, 2, 30)) / pow(2, 30));
474
  }
475
 
476
 
477
+ static function CreateDeepArray($ArrayPath, $Separator, $Value) {
478
  // assigns $Value to a nested array path:
479
  // $foo = getid3_lib::CreateDeepArray('/path/to/my', '/', 'file.txt')
480
  // is the same as:
492
  return $ReturnedArray;
493
  }
494
 
495
+ static function array_max($arraydata, $returnkey=false) {
496
  $maxvalue = false;
497
  $maxkey = false;
498
  foreach ($arraydata as $key => $value) {
506
  return ($returnkey ? $maxkey : $maxvalue);
507
  }
508
 
509
+ static function array_min($arraydata, $returnkey=false) {
510
  $minvalue = false;
511
  $minkey = false;
512
  foreach ($arraydata as $key => $value) {
520
  return ($returnkey ? $minkey : $minvalue);
521
  }
522
 
523
+ static function XML2array($XMLstring) {
524
+ if (function_exists('simplexml_load_string')) {
525
+ if (function_exists('get_object_vars')) {
526
+ $XMLobject = simplexml_load_string($XMLstring);
527
+ return self::SimpleXMLelement2array($XMLobject);
 
 
 
 
 
 
 
 
 
 
528
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
529
  }
530
  return false;
531
  }
532
 
533
+ static function SimpleXMLelement2array($XMLobject) {
534
+ if (!is_object($XMLobject) && !is_array($XMLobject)) {
535
+ return $XMLobject;
 
 
 
536
  }
537
+ $XMLarray = (is_object($XMLobject) ? get_object_vars($XMLobject) : $XMLobject);
538
+ foreach ($XMLarray as $key => $value) {
539
+ $XMLarray[$key] = self::SimpleXMLelement2array($value);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
540
  }
541
+ return $XMLarray;
 
542
  }
543
 
544
 
545
  // Allan Hansen <ah�artemis*dk>
546
  // getid3_lib::md5_data() - returns md5sum for a file from startuing position to absolute end position
547
+ static function hash_data($file, $offset, $end, $algorithm) {
548
+ static $tempdir = '';
549
+ if (!getid3_lib::intValueSupported($end)) {
550
+ return false;
551
+ }
552
  switch ($algorithm) {
553
  case 'md5':
554
  $hash_function = 'md5_file';
565
  break;
566
 
567
  default:
568
+ throw new Exception('Invalid algorithm ('.$algorithm.') in getid3_lib::hash_data()');
569
  break;
570
  }
571
  $size = $end - $offset;
596
  $commandline .= $unix_call;
597
 
598
  }
599
+ if (preg_match('#(1|ON)#i', ini_get('safe_mode'))) {
600
+ //throw new Exception('PHP running in Safe Mode - backtick operator not available, using slower non-system-call '.$algorithm.' algorithm');
601
  break;
602
  }
603
  return substr(`$commandline`, 0, $hash_length);
604
  }
605
 
606
+ if (empty($tempdir)) {
607
+ // yes this is ugly, feel free to suggest a better way
608
+ require_once(dirname(__FILE__).'/getid3.php');
609
+ $getid3_temp = new getID3();
610
+ $tempdir = $getid3_temp->tempdir;
611
+ unset($getid3_temp);
612
+ }
613
  // try to create a temporary file in the system temp directory - invalid dirname should force to system temp dir
614
+ if (($data_filename = tempnam($tempdir, 'gI3')) === false) {
615
+ // can't find anywhere to create a temp file, just fail
616
  return false;
617
  }
618
 
620
  $result = false;
621
 
622
  // copy parts of file
623
+ try {
624
+ getid3_lib::CopyFileParts($file, $data_filename, $offset, $end - $offset);
625
+ $result = $hash_function($data_filename);
626
+ } catch (Exception $e) {
627
+ throw new Exception('getid3_lib::CopyFileParts() failed in getid_lib::hash_data(): '.$e->getMessage());
 
 
 
 
 
 
 
 
 
 
628
  }
629
  unlink($data_filename);
630
  return $result;
631
  }
632
 
633
+ static function CopyFileParts($filename_source, $filename_dest, $offset, $length) {
634
+ if (!getid3_lib::intValueSupported($offset + $length)) {
635
+ throw new Exception('cannot copy file portion, it extends beyond the '.round(PHP_INT_MAX / 1073741824).'GB limit');
636
+ }
637
+ if (is_readable($filename_source) && is_file($filename_source) && ($fp_src = fopen($filename_source, 'rb'))) {
638
+ if (($fp_dest = fopen($filename_dest, 'wb'))) {
639
+ if (fseek($fp_src, $offset, SEEK_SET) == 0) {
640
+ $byteslefttowrite = $length;
641
+ while (($byteslefttowrite > 0) && ($buffer = fread($fp_src, min($byteslefttowrite, getID3::FREAD_BUFFER_SIZE)))) {
642
+ $byteswritten = fwrite($fp_dest, $buffer, $byteslefttowrite);
643
+ $byteslefttowrite -= $byteswritten;
644
+ }
645
+ return true;
646
+ } else {
647
+ throw new Exception('failed to seek to offset '.$offset.' in '.$filename_source);
648
+ }
649
+ fclose($fp_dest);
650
+ } else {
651
+ throw new Exception('failed to create file for writing '.$filename_dest);
652
+ }
653
+ fclose($fp_src);
654
+ } else {
655
+ throw new Exception('failed to open file for reading '.$filename_source);
656
+ }
657
+ return false;
658
+ }
659
 
660
+ static function iconv_fallback_int_utf8($charval) {
661
  if ($charval < 128) {
662
  // 0bbbbbbb
663
  $newcharstring = chr($charval);
664
  } elseif ($charval < 2048) {
665
  // 110bbbbb 10bbbbbb
666
+ $newcharstring = chr(($charval >> 6) | 0xC0);
667
  $newcharstring .= chr(($charval & 0x3F) | 0x80);
668
  } elseif ($charval < 65536) {
669
  // 1110bbbb 10bbbbbb 10bbbbbb
670
+ $newcharstring = chr(($charval >> 12) | 0xE0);
671
+ $newcharstring .= chr(($charval >> 6) | 0xC0);
672
  $newcharstring .= chr(($charval & 0x3F) | 0x80);
673
  } else {
674
  // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
675
+ $newcharstring = chr(($charval >> 18) | 0xF0);
676
+ $newcharstring .= chr(($charval >> 12) | 0xC0);
677
+ $newcharstring .= chr(($charval >> 6) | 0xC0);
678
  $newcharstring .= chr(($charval & 0x3F) | 0x80);
679
  }
680
  return $newcharstring;
681
  }
682
 
683
  // ISO-8859-1 => UTF-8
684
+ static function iconv_fallback_iso88591_utf8($string, $bom=false) {
685
  if (function_exists('utf8_encode')) {
686
  return utf8_encode($string);
687
  }
698
  }
699
 
700
  // ISO-8859-1 => UTF-16BE
701
+ static function iconv_fallback_iso88591_utf16be($string, $bom=false) {
702
  $newcharstring = '';
703
  if ($bom) {
704
  $newcharstring .= "\xFE\xFF";
710
  }
711
 
712
  // ISO-8859-1 => UTF-16LE
713
+ static function iconv_fallback_iso88591_utf16le($string, $bom=false) {
714
  $newcharstring = '';
715
  if ($bom) {
716
  $newcharstring .= "\xFF\xFE";
722
  }
723
 
724
  // ISO-8859-1 => UTF-16LE (BOM)
725
+ static function iconv_fallback_iso88591_utf16($string) {
726
  return getid3_lib::iconv_fallback_iso88591_utf16le($string, true);
727
  }
728
 
729
  // UTF-8 => ISO-8859-1
730
+ static function iconv_fallback_utf8_iso88591($string) {
731
  if (function_exists('utf8_decode')) {
732
  return utf8_decode($string);
733
  }
739
  if ((ord($string{$offset}) | 0x07) == 0xF7) {
740
  // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
741
  $charval = ((ord($string{($offset + 0)}) & 0x07) << 18) &
742
+ ((ord($string{($offset + 1)}) & 0x3F) << 12) &
743
+ ((ord($string{($offset + 2)}) & 0x3F) << 6) &
744
+ (ord($string{($offset + 3)}) & 0x3F);
745
  $offset += 4;
746
  } elseif ((ord($string{$offset}) | 0x0F) == 0xEF) {
747
  // 1110bbbb 10bbbbbb 10bbbbbb
748
  $charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) &
749
+ ((ord($string{($offset + 1)}) & 0x3F) << 6) &
750
+ (ord($string{($offset + 2)}) & 0x3F);
751
  $offset += 3;
752
  } elseif ((ord($string{$offset}) | 0x1F) == 0xDF) {
753
  // 110bbbbb 10bbbbbb
754
  $charval = ((ord($string{($offset + 0)}) & 0x1F) << 6) &
755
+ (ord($string{($offset + 1)}) & 0x3F);
756
  $offset += 2;
757
  } elseif ((ord($string{$offset}) | 0x7F) == 0x7F) {
758
  // 0bbbbbbb
771
  }
772
 
773
  // UTF-8 => UTF-16BE
774
+ static function iconv_fallback_utf8_utf16be($string, $bom=false) {
775
  $newcharstring = '';
776
  if ($bom) {
777
  $newcharstring .= "\xFE\xFF";
782
  if ((ord($string{$offset}) | 0x07) == 0xF7) {
783
  // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
784
  $charval = ((ord($string{($offset + 0)}) & 0x07) << 18) &
785
+ ((ord($string{($offset + 1)}) & 0x3F) << 12) &
786
+ ((ord($string{($offset + 2)}) & 0x3F) << 6) &
787
+ (ord($string{($offset + 3)}) & 0x3F);
788
  $offset += 4;
789
  } elseif ((ord($string{$offset}) | 0x0F) == 0xEF) {
790
  // 1110bbbb 10bbbbbb 10bbbbbb
791
  $charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) &
792
+ ((ord($string{($offset + 1)}) & 0x3F) << 6) &
793
+ (ord($string{($offset + 2)}) & 0x3F);
794
  $offset += 3;
795
  } elseif ((ord($string{$offset}) | 0x1F) == 0xDF) {
796
  // 110bbbbb 10bbbbbb
797
  $charval = ((ord($string{($offset + 0)}) & 0x1F) << 6) &
798
+ (ord($string{($offset + 1)}) & 0x3F);
799
  $offset += 2;
800
  } elseif ((ord($string{$offset}) | 0x7F) == 0x7F) {
801
  // 0bbbbbbb
814
  }
815
 
816
  // UTF-8 => UTF-16LE
817
+ static function iconv_fallback_utf8_utf16le($string, $bom=false) {
818
  $newcharstring = '';
819
  if ($bom) {
820
  $newcharstring .= "\xFF\xFE";
825
  if ((ord($string{$offset}) | 0x07) == 0xF7) {
826
  // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
827
  $charval = ((ord($string{($offset + 0)}) & 0x07) << 18) &
828
+ ((ord($string{($offset + 1)}) & 0x3F) << 12) &
829
+ ((ord($string{($offset + 2)}) & 0x3F) << 6) &
830
+ (ord($string{($offset + 3)}) & 0x3F);
831
  $offset += 4;
832
  } elseif ((ord($string{$offset}) | 0x0F) == 0xEF) {
833
  // 1110bbbb 10bbbbbb 10bbbbbb
834
  $charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) &
835
+ ((ord($string{($offset + 1)}) & 0x3F) << 6) &
836
+ (ord($string{($offset + 2)}) & 0x3F);
837
  $offset += 3;
838
  } elseif ((ord($string{$offset}) | 0x1F) == 0xDF) {
839
  // 110bbbbb 10bbbbbb
840
  $charval = ((ord($string{($offset + 0)}) & 0x1F) << 6) &
841
+ (ord($string{($offset + 1)}) & 0x3F);
842
  $offset += 2;
843
  } elseif ((ord($string{$offset}) | 0x7F) == 0x7F) {
844
  // 0bbbbbbb
857
  }
858
 
859
  // UTF-8 => UTF-16LE (BOM)
860
+ static function iconv_fallback_utf8_utf16($string) {
861
  return getid3_lib::iconv_fallback_utf8_utf16le($string, true);
862
  }
863
 
864
  // UTF-16BE => UTF-8
865
+ static function iconv_fallback_utf16be_utf8($string) {
866
  if (substr($string, 0, 2) == "\xFE\xFF") {
867
  // strip BOM
868
  $string = substr($string, 2);
876
  }
877
 
878
  // UTF-16LE => UTF-8
879
+ static function iconv_fallback_utf16le_utf8($string) {
880
  if (substr($string, 0, 2) == "\xFF\xFE") {
881
  // strip BOM
882
  $string = substr($string, 2);
890
  }
891
 
892
  // UTF-16BE => ISO-8859-1
893
+ static function iconv_fallback_utf16be_iso88591($string) {
894
  if (substr($string, 0, 2) == "\xFE\xFF") {
895
  // strip BOM
896
  $string = substr($string, 2);
904
  }
905
 
906
  // UTF-16LE => ISO-8859-1
907
+ static function iconv_fallback_utf16le_iso88591($string) {
908
  if (substr($string, 0, 2) == "\xFF\xFE") {
909
  // strip BOM
910
  $string = substr($string, 2);
918
  }
919
 
920
  // UTF-16 (BOM) => ISO-8859-1
921
+ static function iconv_fallback_utf16_iso88591($string) {
922
  $bom = substr($string, 0, 2);
923
  if ($bom == "\xFE\xFF") {
924
  return getid3_lib::iconv_fallback_utf16be_iso88591(substr($string, 2));
929
  }
930
 
931
  // UTF-16 (BOM) => UTF-8
932
+ static function iconv_fallback_utf16_utf8($string) {
933
  $bom = substr($string, 0, 2);
934
  if ($bom == "\xFE\xFF") {
935
  return getid3_lib::iconv_fallback_utf16be_utf8(substr($string, 2));
939
  return $string;
940
  }
941
 
942
+ static function iconv_fallback($in_charset, $out_charset, $string) {
943
 
944
  if ($in_charset == $out_charset) {
945
  return $string;
947
 
948
  // iconv() availble
949
  if (function_exists('iconv')) {
950
+ if ($converted_string = @iconv($in_charset, $out_charset.'//TRANSLIT', $string)) {
951
+ switch ($out_charset) {
952
+ case 'ISO-8859-1':
953
+ $converted_string = rtrim($converted_string, "\x00");
954
+ break;
955
+ }
956
+ return $converted_string;
957
+ }
958
 
959
+ // iconv() may sometimes fail with "illegal character in input string" error message
960
+ // and return an empty string, but returning the unconverted string is more useful
961
+ return $string;
962
+ }
 
 
 
 
 
 
 
 
 
963
 
964
 
965
+ // iconv() not available
966
  static $ConversionFunctionList = array();
967
  if (empty($ConversionFunctionList)) {
968
  $ConversionFunctionList['ISO-8859-1']['UTF-8'] = 'iconv_fallback_iso88591_utf8';
984
  $ConversionFunction = $ConversionFunctionList[strtoupper($in_charset)][strtoupper($out_charset)];
985
  return getid3_lib::$ConversionFunction($string);
986
  }
987
+ throw new Exception('PHP does not have iconv() support - cannot convert from '.$in_charset.' to '.$out_charset);
988
  }
989
 
990
 
991
+ static function MultiByteCharString2HTML($string, $charset='ISO-8859-1') {
992
+ $string = (string) $string; // in case trying to pass a numeric (float, int) string, would otherwise return an empty string
993
  $HTMLstring = '';
994
 
995
  switch ($charset) {
996
+ case '1251':
997
+ case '1252':
 
 
 
 
998
  case '866':
999
+ case '932':
1000
+ case '936':
1001
+ case '950':
1002
+ case 'BIG5':
1003
+ case 'BIG5-HKSCS':
1004
  case 'cp1251':
 
 
 
1005
  case 'cp1252':
1006
+ case 'cp866':
1007
+ case 'EUC-JP':
1008
+ case 'EUCJP':
1009
+ case 'GB2312':
1010
+ case 'ibm866':
1011
+ case 'ISO-8859-1':
1012
+ case 'ISO-8859-15':
1013
+ case 'ISO8859-1':
1014
+ case 'ISO8859-15':
1015
  case 'KOI8-R':
1016
  case 'koi8-ru':
1017
  case 'koi8r':
 
 
 
 
 
1018
  case 'Shift_JIS':
1019
  case 'SJIS':
1020
+ case 'win-1251':
1021
+ case 'Windows-1251':
1022
+ case 'Windows-1252':
1023
  $HTMLstring = htmlentities($string, ENT_COMPAT, $charset);
1024
  break;
1025
 
1044
  $charval += (ord($string{++$i}) & 0x3F);
1045
  }
1046
  if (($charval >= 32) && ($charval <= 127)) {
1047
+ $HTMLstring .= htmlentities(chr($charval));
1048
  } else {
1049
  $HTMLstring .= '&#'.$charval.';';
1050
  }
1082
 
1083
 
1084
 
1085
+ static function RGADnameLookup($namecode) {
1086
  static $RGADname = array();
1087
  if (empty($RGADname)) {
1088
  $RGADname[0] = 'not set';
1094
  }
1095
 
1096
 
1097
+ static function RGADoriginatorLookup($originatorcode) {
1098
  static $RGADoriginator = array();
1099
  if (empty($RGADoriginator)) {
1100
  $RGADoriginator[0] = 'unspecified';
1107
  }
1108
 
1109
 
1110
+ static function RGADadjustmentLookup($rawadjustment, $signbit) {
1111
  $adjustment = $rawadjustment / 10;
1112
  if ($signbit == 1) {
1113
  $adjustment *= -1;
1116
  }
1117
 
1118
 
1119
+ static function RGADgainString($namecode, $originatorcode, $replaygain) {
1120
  if ($replaygain < 0) {
1121
  $signbit = '1';
1122
  } else {
1131
  return $gainstring;
1132
  }
1133
 
1134
+ static function RGADamplitude2dB($amplitude) {
1135
  return 20 * log10($amplitude);
1136
  }
1137
 
1138
 
1139
+ static function GetDataImageSize($imgData, &$imageinfo) {
1140
+ static $tempdir = '';
1141
+ if (empty($tempdir)) {
1142
+ // yes this is ugly, feel free to suggest a better way
1143
+ require_once(dirname(__FILE__).'/getid3.php');
1144
+ $getid3_temp = new getID3();
1145
+ $tempdir = $getid3_temp->tempdir;
1146
+ unset($getid3_temp);
1147
+ }
1148
  $GetDataImageSize = false;
1149
+ if ($tempfilename = tempnam($tempdir, 'gI3')) {
1150
+ if (is_writable($tempfilename) && is_file($tempfilename) && ($tmp = fopen($tempfilename, 'wb'))) {
1151
  fwrite($tmp, $imgData);
1152
  fclose($tmp);
1153
+ $GetDataImageSize = @GetImageSize($tempfilename, $imageinfo);
1154
  }
1155
  unlink($tempfilename);
1156
  }
1157
  return $GetDataImageSize;
1158
  }
1159
 
1160
+ static function ImageTypesLookup($imagetypeid) {
1161
  static $ImageTypesLookup = array();
1162
  if (empty($ImageTypesLookup)) {
1163
  $ImageTypesLookup[1] = 'gif';
1178
  return (isset($ImageTypesLookup[$imagetypeid]) ? $ImageTypesLookup[$imagetypeid] : '');
1179
  }
1180
 
1181
+ static function CopyTagsToComments(&$ThisFileInfo) {
1182
 
1183
  // Copy all entries from ['tags'] into common ['comments']
1184
  if (!empty($ThisFileInfo['tags'])) {
1201
  }
1202
  }
1203
 
1204
+ } elseif (!is_array($value)) {
1205
 
1206
  $newvaluelength = strlen(trim($value));
1207
  foreach ($ThisFileInfo['comments'][$tagname] as $existingkey => $existingvalue) {
1213
  }
1214
 
1215
  }
1216
+ if (is_array($value) || empty($ThisFileInfo['comments'][$tagname]) || !in_array(trim($value), $ThisFileInfo['comments'][$tagname])) {
1217
+ $value = (is_string($value) ? trim($value) : $value);
1218
+ $ThisFileInfo['comments'][$tagname][] = $value;
1219
  }
1220
  }
1221
  }
1223
  }
1224
 
1225
  // Copy to ['comments_html']
1226
+ foreach ($ThisFileInfo['comments'] as $field => $values) {
1227
+ if ($field == 'picture') {
1228
+ // pictures can take up a lot of space, and we don't need multiple copies of them
1229
+ // let there be a single copy in [comments][picture], and not elsewhere
1230
+ continue;
1231
+ }
1232
+ foreach ($values as $index => $value) {
1233
+ if (is_array($value)) {
1234
+ $ThisFileInfo['comments_html'][$field][$index] = $value;
1235
+ } else {
1236
+ $ThisFileInfo['comments_html'][$field][$index] = str_replace('&#0;', '', getid3_lib::MultiByteCharString2HTML($value, $ThisFileInfo['encoding']));
1237
+ }
1238
+ }
1239
+ }
1240
  }
1241
+ return true;
1242
  }
1243
 
1244
 
1245
+ static function EmbeddedLookup($key, $begin, $end, $file, $name) {
1246
 
1247
  // Cached
1248
  static $cache;
1249
  if (isset($cache[$file][$name])) {
1250
+ return (isset($cache[$file][$name][$key]) ? $cache[$file][$name][$key] : '');
1251
  }
1252
 
1253
  // Init
1277
 
1278
  // METHOD B: cache all keys in this lookup - more memory but faster on next lookup of not-previously-looked-up key
1279
  //$cache[$file][$name][substr($line, 0, $keylength)] = trim(substr($line, $keylength + 1));
1280
+ $explodedLine = explode("\t", $line, 2);
1281
+ $ThisKey = (isset($explodedLine[0]) ? $explodedLine[0] : '');
1282
+ $ThisValue = (isset($explodedLine[1]) ? $explodedLine[1] : '');
1283
  $cache[$file][$name][$ThisKey] = trim($ThisValue);
1284
  }
1285
 
1286
  // Close and return
1287
  fclose($fp);
1288
+ return (isset($cache[$file][$name][$key]) ? $cache[$file][$name][$key] : '');
1289
  }
1290
 
1291
+ static function IncludeDependency($filename, $sourcefile, $DieOnFailure=false) {
1292
  global $GETID3_ERRORARRAY;
1293
 
1294
  if (file_exists($filename)) {
1295
+ if (include_once($filename)) {
1296
  return true;
1297
  } else {
1298
  $diemessage = basename($sourcefile).' depends on '.$filename.', which has errors';
1301
  $diemessage = basename($sourcefile).' depends on '.$filename.', which is missing';
1302
  }
1303
  if ($DieOnFailure) {
1304
+ throw new Exception($diemessage);
1305
  } else {
1306
  $GETID3_ERRORARRAY[] = $diemessage;
1307
  }
1308
  return false;
1309
  }
1310
 
1311
+ public static function trimNullByte($string) {
1312
+ return trim($string, "\x00");
1313
+ }
1314
+
1315
  }
1316
 
1317
  ?>
getid3/getid3.php CHANGED
@@ -9,91 +9,164 @@
9
  // ///
10
  /////////////////////////////////////////////////////////////////
11
 
12
- // Defines
13
- define('GETID3_VERSION', '1.7.8b2');
14
- define('GETID3_FREAD_BUFFER_SIZE', 16384); // read buffer size in bytes
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
 
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
  class getID3
19
  {
20
  // public: Settings
21
- var $encoding = 'ISO-8859-1'; // CASE SENSITIVE! - i.e. (must be supported by iconv())
22
- // Examples: ISO-8859-1 UTF-8 UTF-16 UTF-16BE
23
-
24
- var $encoding_id3v1 = 'ISO-8859-1'; // Should always be 'ISO-8859-1', but some tags may be written in other encodings such as 'EUC-CN'
25
-
26
- var $tempdir = '*'; // default '*' should use system temp dir
27
 
28
  // public: Optional tag checks - disable for speed.
29
- var $option_tag_id3v1 = false; // Read and process ID3v1 tags
30
- var $option_tag_id3v2 = false; // Read and process ID3v2 tags
31
- var $option_tag_lyrics3 = false; // Read and process Lyrics3 tags
32
- var $option_tag_apetag = false; // Read and process APE tags
33
- var $option_tags_process = false; // Copy tags to root key 'tags' and encode to $this->encoding
34
- var $option_tags_html = false; // Copy tags to root key 'tags_html' properly translated from various encodings to HTML entities
35
 
36
  // public: Optional tag/comment calucations
37
- var $option_extra_info = true; // Calculate additional info such as bitrate, channelmode etc
 
 
 
38
 
39
  // public: Optional calculations
40
- var $option_md5_data = false; // Get MD5 sum of data part - slow
41
- var $option_md5_data_source = false; // Use MD5 of source file if availble - only FLAC and OptimFROG
42
- var $option_sha1_data = false; // Get SHA1 sum of data part - slow
43
- var $option_max_2gb_check = true; // Check whether file is larger than 2 Gb and thus not supported by PHP
44
 
45
- // private
46
- var $filename;
47
 
 
 
 
 
48
 
49
- // public: constructor
50
- function getID3()
51
- {
 
52
 
53
- $this->startup_error = '';
54
- $this->startup_warning = '';
 
55
 
56
- // Check for PHP version >= 4.2.0
57
- if (phpversion() < '4.2.0') {
58
- $this->startup_error .= 'getID3() requires PHP v4.2.0 or higher - you are running v'.phpversion();
 
 
 
 
 
 
 
 
59
  }
60
 
61
  // Check memory
62
- $memory_limit = ini_get('memory_limit');
63
- if (eregi('([0-9]+)M', $memory_limit, $matches)) {
64
  // could be stored as "16M" rather than 16777216 for example
65
- $memory_limit = $matches[1] * 1048576;
 
 
 
66
  }
67
- if ($memory_limit <= 0) {
68
  // memory limits probably disabled
69
- } elseif ($memory_limit <= 3145728) {
70
- $this->startup_error .= 'PHP has less than 3MB available memory and will very likely run out. Increase memory_limit in php.ini';
71
- } elseif ($memory_limit <= 12582912) {
72
- $this->startup_warning .= 'PHP has less than 12MB available memory and might run out if all modules are loaded. Increase memory_limit in php.ini';
73
  }
74
 
75
  // Check safe_mode off
76
- if ((bool) ini_get('safe_mode')) {
77
- $this->warning('WARNING: Safe mode is on, shorten support disabled, md5data/sha1data for ogg vorbis disabled, ogg vorbos/flac tag writing disabled.');
78
  }
79
 
 
 
 
80
 
81
- // define a constant rather than looking up every time it is needed
82
- if (!defined('GETID3_OS_ISWINDOWS')) {
83
- if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
84
- define('GETID3_OS_ISWINDOWS', true);
85
- } else {
86
- define('GETID3_OS_ISWINDOWS', false);
87
  }
88
  }
89
 
90
- // Get base path of getID3() - ONCE
91
- if (!defined('GETID3_INCLUDEPATH')) {
92
- foreach (get_included_files() as $key => $val) {
93
- if (basename($val) == 'getid3.php') {
94
- define('GETID3_INCLUDEPATH', dirname($val).DIRECTORY_SEPARATOR);
95
- break;
96
- }
97
  }
98
  }
99
 
@@ -102,36 +175,61 @@ class getID3
102
  $this->startup_error .= 'getid3.lib.php is missing or corrupt';
103
  }
104
 
 
 
 
 
105
 
106
  // Needed for Windows only:
107
  // Define locations of helper applications for Shorten, VorbisComment, MetaFLAC
108
  // as well as other helper functions such as head, tail, md5sum, etc
109
- // IMPORTANT: This path cannot have spaces in it. If neccesary, use the 8dot3 equivalent
110
- // ie for "C:/Program Files/Apache/" put "C:/PROGRA~1/APACHE/"
111
  // IMPORTANT: This path must include the trailing slash
112
  if (GETID3_OS_ISWINDOWS && !defined('GETID3_HELPERAPPSDIR')) {
113
 
114
  $helperappsdir = GETID3_INCLUDEPATH.'..'.DIRECTORY_SEPARATOR.'helperapps'; // must not have any space in this path
115
 
116
  if (!is_dir($helperappsdir)) {
117
- $this->startup_error .= '"'.$helperappsdir.'" cannot be defined as GETID3_HELPERAPPSDIR because it does not exist';
118
  } elseif (strpos(realpath($helperappsdir), ' ') !== false) {
119
  $DirPieces = explode(DIRECTORY_SEPARATOR, realpath($helperappsdir));
 
120
  foreach ($DirPieces as $key => $value) {
121
- if ((strpos($value, '.') !== false) && (strpos($value, ' ') === false)) {
122
- if (strpos($value, '.') > 8) {
123
- $value = substr($value, 0, 6).'~1';
 
 
 
 
 
 
 
 
 
 
 
 
 
124
  }
125
- } elseif ((strpos($value, ' ') !== false) || strlen($value) > 8) {
126
- $value = substr($value, 0, 6).'~1';
127
  }
128
- $DirPieces[$key] = strtoupper($value);
129
  }
130
- $this->startup_error .= 'GETID3_HELPERAPPSDIR must not have any spaces in it - use 8dot3 naming convention if neccesary (on this server that would be something like "'.implode(DIRECTORY_SEPARATOR, $DirPieces).'" - NOTE: this may or may not be the actual 8.3 equivalent of "'.$helperappsdir.'", please double-check). You can run "dir /x" from the commandline to see the correct 8.3-style names.';
131
  }
132
- define('GETID3_HELPERAPPSDIR', realpath($helperappsdir).DIRECTORY_SEPARATOR);
133
  }
134
 
 
 
 
 
 
 
 
 
 
135
  }
136
 
137
 
@@ -141,7 +239,7 @@ class getID3
141
  return false;
142
  }
143
  foreach ($optArray as $opt => $val) {
144
- if (isset($this, $opt) === false) {
145
  continue;
146
  }
147
  $this->$opt = $val;
@@ -150,241 +248,265 @@ class getID3
150
  }
151
 
152
 
153
- // public: analyze file - replaces GetAllFileInfo() and GetTagOnly()
154
- function analyze($filename, $filesize=false, $orig_filename='file.mp3') {
 
 
 
 
 
 
155
 
156
- if (!empty($this->startup_error)) {
157
- return $this->error($this->startup_error);
158
- }
159
- if (!empty($this->startup_warning)) {
160
- $this->warning($this->startup_warning);
161
- }
162
 
163
- // init result array and set parameters
164
- $this->info = array();
165
- $this->info['GETID3_VERSION'] = GETID3_VERSION;
 
 
 
 
166
 
167
- // Check encoding/iconv support
168
- if (!function_exists('iconv') && !in_array($this->encoding, array('ISO-8859-1', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'UTF-16'))) {
169
- $errormessage = 'iconv() support is needed for encodings other than ISO-8859-1, UTF-8, UTF-16LE, UTF16-BE, UTF-16. ';
170
- if (GETID3_OS_ISWINDOWS) {
171
- $errormessage .= 'PHP does not have iconv() support. Please enable php_iconv.dll in php.ini, and copy iconv.dll from c:/php/dlls to c:/windows/system32';
172
  } else {
173
- $errormessage .= 'PHP is not compiled with iconv() support. Please recompile with the --with-iconv switch';
174
  }
175
- return $this->error($errormessage);
176
- }
177
 
178
- // Disable magic_quotes_runtime, if neccesary
179
- $old_magic_quotes_runtime = get_magic_quotes_runtime(); // store current setting of magic_quotes_runtime
180
- if ($old_magic_quotes_runtime) {
181
- set_magic_quotes_runtime(0); // turn off magic_quotes_runtime
182
- if (get_magic_quotes_runtime()) {
183
- return $this->error('Could not disable magic_quotes_runtime - getID3() cannot work properly with this setting enabled');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
  }
185
- }
186
 
187
- // remote files not supported
188
- if (preg_match('/^(ht|f)tp:\/\//', $filename)) {
189
- return $this->error('Remote files are not supported in this version of getID3() - please copy the file locally first');
190
- }
191
-
192
- // open local file
193
- if (!$fp = @fopen($filename, 'rb')) {
194
- return $this->error('Could not open file "'.$filename.'"');
 
 
 
 
 
 
 
 
195
  }
 
 
196
 
197
- // set parameters
198
- if( $filesize )
199
- $this->info['filesize'] = $filesize;
200
- else
201
- $this->info['filesize'] = filesize($filename);
202
-
203
- // option_max_2gb_check
204
- if ($this->option_max_2gb_check) {
205
- // PHP doesn't support integers larger than 31-bit (~2GB)
206
- // filesize() simply returns (filesize % (pow(2, 32)), no matter the actual filesize
207
- // ftell() returns 0 if seeking to the end is beyond the range of unsigned integer
208
- fseek($fp, 0, SEEK_END);
209
- if ((($this->info['filesize'] != 0) && (ftell($fp) == 0)) ||
210
- ($this->info['filesize'] < 0) ||
211
- (ftell($fp) < 0)) {
212
- unset($this->info['filesize']);
213
- fclose($fp);
214
- return $this->error('File is most likely larger than 2GB and is not supported by PHP');
215
  }
216
- }
217
-
218
- // set more parameters
219
- $this->info['avdataoffset'] = 0;
220
- $this->info['avdataend'] = $this->info['filesize'];
221
- $this->info['fileformat'] = ''; // filled in later
222
- $this->info['audio']['dataformat'] = ''; // filled in later, unset if not used
223
- $this->info['video']['dataformat'] = ''; // filled in later, unset if not used
224
- $this->info['tags'] = array(); // filled in later, unset if not used
225
- $this->info['error'] = array(); // filled in later, unset if not used
226
- $this->info['warning'] = array(); // filled in later, unset if not used
227
- $this->info['comments'] = array(); // filled in later, unset if not used
228
- $this->info['encoding'] = $this->encoding; // required by id3v2 and iso modules - can be unset at the end if desired
229
-
230
- // set redundant parameters - might be needed in some include file
231
- $this->info['filename'] = basename($filename);
232
- $this->info['filepath'] = str_replace('\\', '/', realpath(dirname($filename)));
233
- $this->info['filenamepath'] = $this->info['filepath'].'/'.$this->info['filename'];
234
-
235
-
236
- // handle ID3v2 tag - done first - already at beginning of file
237
- // ID3v2 detection (even if not parsing) is always done otherwise fileformat is much harder to detect
238
- if ($this->option_tag_id3v2) {
239
-
240
- $GETID3_ERRORARRAY = &$this->info['warning'];
241
- if (getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.tag.id3v2.php', __FILE__, false)) {
242
- $tag = new getid3_id3v2($fp, $this->info);
243
- unset($tag);
244
  }
245
 
246
- } else {
247
-
248
- fseek($fp, 0, SEEK_SET);
249
- $header = fread($fp, 10);
250
- if (substr($header, 0, 3) == 'ID3' && strlen($header) == 10) {
251
- $this->info['id3v2']['header'] = true;
252
- $this->info['id3v2']['majorversion'] = ord($header{3});
253
- $this->info['id3v2']['minorversion'] = ord($header{4});
254
- $this->info['id3v2']['headerlength'] = getid3_lib::BigEndian2Int(substr($header, 6, 4), 1) + 10; // length of ID3v2 tag in 10-byte header doesn't include 10-byte header length
255
-
256
- $this->info['id3v2']['tag_offset_start'] = 0;
257
- $this->info['id3v2']['tag_offset_end'] = $this->info['id3v2']['tag_offset_start'] + $this->info['id3v2']['headerlength'];
258
- $this->info['avdataoffset'] = $this->info['id3v2']['tag_offset_end'];
259
  }
260
 
261
- }
 
 
262
 
 
 
 
 
263
 
264
- // handle ID3v1 tag
265
- if ($this->option_tag_id3v1) {
266
- if (!@include_once(GETID3_INCLUDEPATH.'module.tag.id3v1.php')) {
267
- return $this->error('module.tag.id3v1.php is missing - you may disable option_tag_id3v1.');
268
  }
269
- $tag = new getid3_id3v1($fp, $this->info);
270
- unset($tag);
271
- }
272
 
273
- // handle APE tag
274
- if ($this->option_tag_apetag) {
275
- if (!@include_once(GETID3_INCLUDEPATH.'module.tag.apetag.php')) {
276
- return $this->error('module.tag.apetag.php is missing - you may disable option_tag_apetag.');
 
 
 
 
277
  }
278
- $tag = new getid3_apetag($fp, $this->info);
279
- unset($tag);
280
- }
281
 
282
- // handle lyrics3 tag
283
- if ($this->option_tag_lyrics3) {
284
- if (!@include_once(GETID3_INCLUDEPATH.'module.tag.lyrics3.php')) {
285
- return $this->error('module.tag.lyrics3.php is missing - you may disable option_tag_lyrics3.');
 
 
 
 
286
  }
287
- $tag = new getid3_lyrics3($fp, $this->info);
288
- unset($tag);
289
- }
290
 
291
- // read 32 kb file data
292
- fseek($fp, $this->info['avdataoffset'], SEEK_SET);
293
- $formattest = fread($fp, 32774);
294
-
295
- // determine format
296
- $determined_format = $this->GetFileFormat($formattest, $orig_filename);
297
-
298
- // unable to determine file format
299
- if (!$determined_format) {
300
- fclose($fp);
301
- return $this->error('unable to determine file format');
302
- }
303
 
304
- // check for illegal ID3 tags
305
- if (isset($determined_format['fail_id3']) && (in_array('id3v1', $this->info['tags']) || in_array('id3v2', $this->info['tags']))) {
306
- if ($determined_format['fail_id3'] === 'ERROR') {
307
- fclose($fp);
308
- return $this->error('ID3 tags not allowed on this file type.');
309
- } elseif ($determined_format['fail_id3'] === 'WARNING') {
310
- $this->info['warning'][] = 'ID3 tags not allowed on this file type.';
311
  }
312
- }
313
 
314
- // check for illegal APE tags
315
- if (isset($determined_format['fail_ape']) && in_array('ape', $this->info['tags'])) {
316
- if ($determined_format['fail_ape'] === 'ERROR') {
317
- fclose($fp);
318
- return $this->error('APE tags not allowed on this file type.');
319
- } elseif ($determined_format['fail_ape'] === 'WARNING') {
320
- $this->info['warning'][] = 'APE tags not allowed on this file type.';
 
 
 
321
  }
322
- }
323
-
324
- // set mime type
325
- $this->info['mime_type'] = $determined_format['mime_type'];
326
 
327
- // supported format signature pattern detected, but module deleted
328
- if (!file_exists(GETID3_INCLUDEPATH.$determined_format['include'])) {
329
- fclose($fp);
330
- return $this->error('Format not supported, module, '.$determined_format['include'].', was removed.');
331
- }
332
-
333
- // module requires iconv support
334
- if (!function_exists('iconv') && @$determined_format['iconv_req']) {
335
- return $this->error('iconv support is required for this module ('.$determined_format['include'].').');
336
- }
337
 
338
- // include module
339
- include_once(GETID3_INCLUDEPATH.$determined_format['include']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
340
 
341
- // instantiate module class
342
- $class_name = 'getid3_'.$determined_format['module'];
343
- if (!class_exists($class_name)) {
344
- return $this->error('Format not supported, module, '.$determined_format['include'].', is corrupt.');
345
- }
346
- if (isset($determined_format['option'])) {
347
- $class = new $class_name($fp, $this->info, $determined_format['option']);
348
- } else {
349
- $class = new $class_name($fp, $this->info);
350
- }
351
- unset($class);
352
 
353
- // close file
354
- fclose($fp);
355
 
356
- // process all tags - copy to 'tags' and convert charsets
357
- if ($this->option_tags_process) {
358
- $this->HandleAllTags();
359
- }
360
 
361
- // perform more calculations
362
- if ($this->option_extra_info) {
363
- $this->ChannelsBitratePlaytimeCalculations();
364
- $this->CalculateCompressionRatioVideo();
365
- $this->CalculateCompressionRatioAudio();
366
- $this->CalculateReplayGain();
367
- $this->ProcessAudioStreams();
368
- }
369
 
370
- // get the MD5 sum of the audio/video portion of the file - without ID3/APE/Lyrics3/etc header/footer tags
371
- if ($this->option_md5_data) {
372
- // do not cald md5_data if md5_data_source is present - set by flac only - future MPC/SV8 too
373
- if (!$this->option_md5_data_source || empty($this->info['md5_data_source'])) {
374
- $this->getHashdata('md5');
 
375
  }
376
- }
377
 
378
- // get the SHA1 sum of the audio/video portion of the file - without ID3/APE/Lyrics3/etc header/footer tags
379
- if ($this->option_sha1_data) {
380
- $this->getHashdata('sha1');
381
- }
382
 
383
- // remove undesired keys
384
- $this->CleanUp();
385
 
386
- // restore magic_quotes_runtime setting
387
- set_magic_quotes_runtime($old_magic_quotes_runtime);
 
388
 
389
  // return info array
390
  return $this->info;
@@ -393,9 +515,10 @@ class getID3
393
 
394
  // private: error handling
395
  function error($message) {
396
-
397
  $this->CleanUp();
398
-
 
 
399
  $this->info['error'][] = $message;
400
  return $this->info;
401
  }
@@ -440,6 +563,19 @@ class getID3
440
  unset($this->info['avdataend']);
441
  }
442
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
443
  }
444
 
445
 
@@ -464,18 +600,24 @@ class getID3
464
  'pattern' => '^ADIF',
465
  'group' => 'audio',
466
  'module' => 'aac',
467
- 'option' => 'adif',
468
  'mime_type' => 'application/octet-stream',
469
  'fail_ape' => 'WARNING',
470
  ),
471
 
472
 
 
 
 
 
 
 
 
 
473
  // AAC - audio - Advanced Audio Coding (AAC) - ADTS format (very similar to MP3)
474
  'adts' => array(
475
  'pattern' => '^\xFF[\xF0-\xF1\xF8-\xF9]',
476
  'group' => 'audio',
477
  'module' => 'aac',
478
- 'option' => 'adts',
479
  'mime_type' => 'application/octet-stream',
480
  'fail_ape' => 'WARNING',
481
  ),
@@ -505,6 +647,14 @@ class getID3
505
  'mime_type' => 'audio/xmms-bonk',
506
  ),
507
 
 
 
 
 
 
 
 
 
508
  // DTS - audio - Dolby Theatre System
509
  'dts' => array(
510
  'pattern' => '^\x7F\xFE\x80\x01',
@@ -519,6 +669,7 @@ class getID3
519
  'group' => 'audio',
520
  'module' => 'flac',
521
  'mime_type' => 'audio/x-flac',
 
522
  ),
523
 
524
  // LA - audio - Lossless Audio (LA)
@@ -553,21 +704,22 @@ class getID3
553
  'mime_type' => 'application/octet-stream',
554
  ),
555
 
556
- // MOD - audio - MODule (assorted sub-formats)
557
- 'mod' => array(
558
- 'pattern' => '^.{1080}(M.K.|[5-9]CHN|[1-3][0-9]CH)',
559
- 'group' => 'audio',
560
- 'module' => 'mod',
561
- 'option' => 'mod',
562
- 'mime_type' => 'audio/mod',
563
- ),
 
564
 
565
  // MOD - audio - MODule (Impulse Tracker)
566
  'it' => array(
567
  'pattern' => '^IMPM',
568
  'group' => 'audio',
569
  'module' => 'mod',
570
- 'option' => 'it',
571
  'mime_type' => 'audio/it',
572
  ),
573
 
@@ -576,7 +728,7 @@ class getID3
576
  'pattern' => '^Extended Module',
577
  'group' => 'audio',
578
  'module' => 'mod',
579
- 'option' => 'xm',
580
  'mime_type' => 'audio/xm',
581
  ),
582
 
@@ -585,13 +737,13 @@ class getID3
585
  'pattern' => '^.{44}SCRM',
586
  'group' => 'audio',
587
  'module' => 'mod',
588
- 'option' => 's3m',
589
  'mime_type' => 'audio/s3m',
590
  ),
591
 
592
  // MPC - audio - Musepack / MPEGplus
593
  'mpc' => array(
594
- 'pattern' => '^(MP\+|[\x00\x01\x10\x11\x40\x41\x50\x51\x80\x81\x90\x91\xC0\xC1\xD0\xD1][\x20-37][\x00\x20\x40\x60\x80\xA0\xC0\xE0])',
595
  'group' => 'audio',
596
  'module' => 'mpc',
597
  'mime_type' => 'audio/x-musepack',
@@ -599,7 +751,7 @@ class getID3
599
 
600
  // MP3 - audio - MPEG-audio Layer 3 (very similar to AAC-ADTS)
601
  'mp3' => array(
602
- 'pattern' => '^\xFF[\xE2-\xE7\xF2-\xF7\xFA-\xFF][\x00-\xEB]',
603
  'group' => 'audio',
604
  'module' => 'mp3',
605
  'mime_type' => 'audio/mpeg',
@@ -696,7 +848,8 @@ class getID3
696
  'pattern' => '^\x1A\x45\xDF\xA3',
697
  'group' => 'audio-video',
698
  'module' => 'matroska',
699
- 'mime_type' => 'application/octet-stream',
 
700
  ),
701
 
702
  // MPEG - audio/video - MPEG (Moving Pictures Experts Group)
@@ -723,6 +876,7 @@ class getID3
723
  'mime_type' => 'application/ogg',
724
  'fail_id3' => 'WARNING',
725
  'fail_ape' => 'WARNING',
 
726
  ),
727
 
728
  // QT - audio/video - Quicktime
@@ -744,7 +898,7 @@ class getID3
744
 
745
  // Real - audio/video - RealAudio, RealVideo
746
  'real' => array(
747
- 'pattern' => '^(\.RMF|.ra)',
748
  'group' => 'audio-video',
749
  'module' => 'real',
750
  'mime_type' => 'audio/x-realaudio',
@@ -813,9 +967,9 @@ class getID3
813
  ),
814
 
815
 
816
- // SVG - still image - Scalable Vector Graphics (SVG)
817
  'svg' => array(
818
- 'pattern' => '<!DOCTYPE svg PUBLIC ',
819
  'group' => 'graphic',
820
  'module' => 'svg',
821
  'mime_type' => 'image/svg+xml',
@@ -824,7 +978,7 @@ class getID3
824
  ),
825
 
826
 
827
- // TIFF - still image - Tagged Information File Format (TIFF)
828
  'tiff' => array(
829
  'pattern' => '^(II\x2A\x00|MM\x00\x2A)',
830
  'group' => 'graphic',
@@ -835,6 +989,17 @@ class getID3
835
  ),
836
 
837
 
 
 
 
 
 
 
 
 
 
 
 
838
  // Data formats
839
 
840
  // ISO - data - International Standards Organization (ISO) CD-ROM Image
@@ -901,10 +1066,10 @@ class getID3
901
 
902
  // Misc other formats
903
 
904
- // PAR2 - data - Parity Volume Set Specification 2.0
905
- 'par2' => array (
906
- 'pattern' => '^PAR2\x00PKT',
907
- 'group' => 'misc',
908
  'module' => 'par2',
909
  'mime_type' => 'application/octet-stream',
910
  'fail_id3' => 'ERROR',
@@ -923,13 +1088,22 @@ class getID3
923
 
924
  // MSOFFICE - data - ZIP compressed data
925
  'msoffice' => array(
926
- 'pattern' => '^\xD0\xCF\x11\xE0', // D0CF11E == DOCFILE == Microsoft Office Document
927
  'group' => 'misc',
928
  'module' => 'msoffice',
929
  'mime_type' => 'application/octet-stream',
930
  'fail_id3' => 'ERROR',
931
  'fail_ape' => 'ERROR',
932
  ),
 
 
 
 
 
 
 
 
 
933
  );
934
  }
935
 
@@ -946,23 +1120,30 @@ class getID3
946
 
947
  // Identify file format - loop through $format_info and detect with reg expr
948
  foreach ($this->GetFileFormatArray() as $format_name => $info) {
949
- // Using preg_match() instead of ereg() - much faster
950
  // The /s switch on preg_match() forces preg_match() NOT to treat
951
  // newline (0x0A) characters as special chars but do a binary match
952
- if (preg_match('/'.$info['pattern'].'/s', $filedata)) {
953
  $info['include'] = 'module.'.$info['group'].'.'.$info['module'].'.php';
954
  return $info;
955
  }
956
  }
957
 
958
 
959
- if (preg_match('/\.mp[123a]$/i', $filename)) {
960
  // Too many mp3 encoders on the market put gabage in front of mpeg files
961
  // use assume format on these if format detection failed
962
  $GetFileFormatArray = $this->GetFileFormatArray();
963
  $info = $GetFileFormatArray['mp3'];
964
  $info['include'] = 'module.'.$info['group'].'.'.$info['module'].'.php';
965
  return $info;
 
 
 
 
 
 
 
 
966
  }
967
 
968
  return false;
@@ -1005,7 +1186,7 @@ class getID3
1005
  'ogg' => array('vorbiscomment' , 'UTF-8'),
1006
  'png' => array('png' , 'UTF-8'),
1007
  'tiff' => array('tiff' , 'ISO-8859-1'),
1008
- 'quicktime' => array('quicktime' , 'ISO-8859-1'),
1009
  'real' => array('real' , 'ISO-8859-1'),
1010
  'vqf' => array('vqf' , 'ISO-8859-1'),
1011
  'zip' => array('zip' , 'ISO-8859-1'),
@@ -1013,11 +1194,13 @@ class getID3
1013
  'lyrics3' => array('lyrics3' , 'ISO-8859-1'),
1014
  'id3v1' => array('id3v1' , $this->encoding_id3v1),
1015
  'id3v2' => array('id3v2' , 'UTF-8'), // not according to the specs (every frame can have a different encoding), but getID3() force-converts all encodings to UTF-8
1016
- 'ape' => array('ape' , 'UTF-8')
 
 
1017
  );
1018
  }
1019
 
1020
- // loop thru comments array
1021
  foreach ($tags as $comment_name => $tagname_encoding_array) {
1022
  list($tag_name, $encoding) = $tagname_encoding_array;
1023
 
@@ -1031,8 +1214,11 @@ class getID3
1031
 
1032
  foreach ($this->info[$comment_name]['comments'] as $tag_key => $valuearray) {
1033
  foreach ($valuearray as $key => $value) {
1034
- if (strlen(trim($value)) > 0) {
1035
- $this->info['tags'][trim($tag_name)][trim($tag_key)][] = $value; // do not trim!! Unicode characters will get mangled if trailing nulls are removed!
 
 
 
1036
  }
1037
  }
1038
  }
@@ -1047,7 +1233,7 @@ class getID3
1047
  foreach ($valuearray as $key => $value) {
1048
  if (is_string($value)) {
1049
  //$this->info['tags_html'][$tag_name][$tag_key][$key] = getid3_lib::MultiByteCharString2HTML($value, $encoding);
1050
- $this->info['tags_html'][$tag_name][$tag_key][$key] = str_replace('&#0;', '', getid3_lib::MultiByteCharString2HTML($value, $encoding));
1051
  } else {
1052
  $this->info['tags_html'][$tag_name][$tag_key][$key] = $value;
1053
  }
@@ -1059,6 +1245,51 @@ class getID3
1059
  }
1060
 
1061
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1062
  return true;
1063
  }
1064
 
@@ -1074,7 +1305,7 @@ class getID3
1074
  break;
1075
  }
1076
 
1077
- if ((@$this->info['fileformat'] == 'ogg') && (@$this->info['audio']['dataformat'] == 'vorbis')) {
1078
 
1079
  // We cannot get an identical md5_data value for Ogg files where the comments
1080
  // span more than 1 Ogg page (compared to the same audio data with smaller
@@ -1094,10 +1325,10 @@ class getID3
1094
  // page sequence numbers likely happens for OggSpeex and OggFLAC as well, but
1095
  // currently vorbiscomment only works on OggVorbis files.
1096
 
1097
- if ((bool) ini_get('safe_mode')) {
1098
 
1099
- $this->info['warning'][] = 'Failed making system call to vorbiscomment.exe - '.$algorithm.'_data is incorrect - error returned: PHP running in Safe Mode (backtick operator not available)';
1100
- $this->info[$algorithm.'_data'] = false;
1101
 
1102
  } else {
1103
 
@@ -1105,12 +1336,11 @@ class getID3
1105
  $old_abort = ignore_user_abort(true);
1106
 
1107
  // Create empty file
1108
- $empty = tempnam('*', 'getID3');
1109
  touch($empty);
1110
 
1111
-
1112
  // Use vorbiscomment to make temp file without comments
1113
- $temp = tempnam('*', 'getID3');
1114
  $file = $this->info['filenamepath'];
1115
 
1116
  if (GETID3_OS_ISWINDOWS) {
@@ -1144,11 +1374,11 @@ class getID3
1144
  // Get hash of newly created file
1145
  switch ($algorithm) {
1146
  case 'md5':
1147
- $this->info[$algorithm.'_data'] = getid3_lib::md5_file($temp);
1148
  break;
1149
 
1150
  case 'sha1':
1151
- $this->info[$algorithm.'_data'] = getid3_lib::sha1_file($temp);
1152
  break;
1153
  }
1154
  }
@@ -1174,11 +1404,11 @@ class getID3
1174
  // get hash from whole file
1175
  switch ($algorithm) {
1176
  case 'md5':
1177
- $this->info[$algorithm.'_data'] = getid3_lib::md5_file($this->info['filenamepath']);
1178
  break;
1179
 
1180
  case 'sha1':
1181
- $this->info[$algorithm.'_data'] = getid3_lib::sha1_file($this->info['filenamepath']);
1182
  break;
1183
  }
1184
  }
@@ -1191,9 +1421,11 @@ class getID3
1191
  function ChannelsBitratePlaytimeCalculations() {
1192
 
1193
  // set channelmode on audio
1194
- if (@$this->info['audio']['channels'] == '1') {
 
 
1195
  $this->info['audio']['channelmode'] = 'mono';
1196
- } elseif (@$this->info['audio']['channels'] == '2') {
1197
  $this->info['audio']['channelmode'] = 'stereo';
1198
  }
1199
 
@@ -1227,10 +1459,23 @@ class getID3
1227
  }
1228
  }
1229
 
1230
- if (!isset($this->info['playtime_seconds']) && !empty($this->info['bitrate'])) {
1231
  $this->info['playtime_seconds'] = (($this->info['avdataend'] - $this->info['avdataoffset']) * 8) / $this->info['bitrate'];
1232
  }
1233
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1234
  // Set playtime string
1235
  if (!empty($this->info['playtime_seconds']) && empty($this->info['playtime_string'])) {
1236
  $this->info['playtime_string'] = getid3_lib::PlaytimeString($this->info['playtime_seconds']);
@@ -1305,7 +1550,9 @@ class getID3
1305
 
1306
  function CalculateReplayGain() {
1307
  if (isset($this->info['replay_gain'])) {
1308
- $this->info['replay_gain']['reference_volume'] = 89;
 
 
1309
  if (isset($this->info['replay_gain']['track']['adjustment'])) {
1310
  $this->info['replay_gain']['track']['volume'] = $this->info['replay_gain']['reference_volume'] - $this->info['replay_gain']['track']['adjustment'];
1311
  }
@@ -1340,6 +1587,168 @@ class getID3
1340
  return tempnam($this->tempdir, 'gI3');
1341
  }
1342
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1343
  }
1344
 
1345
  ?>
9
  // ///
10
  /////////////////////////////////////////////////////////////////
11
 
12
+ // attempt to define temp dir as something flexible but reliable
13
+ $temp_dir = ini_get('upload_tmp_dir');
14
+ if ($temp_dir && (!is_dir($temp_dir) || !is_readable($temp_dir))) {
15
+ $temp_dir = '';
16
+ }
17
+ if (!$temp_dir && function_exists('sys_get_temp_dir')) {
18
+ // PHP v5.2.1+
19
+ // sys_get_temp_dir() may give inaccessible temp dir, e.g. with open_basedir on virtual hosts
20
+ $temp_dir = sys_get_temp_dir();
21
+ }
22
+ $temp_dir = realpath($temp_dir);
23
+ $open_basedir = ini_get('open_basedir');
24
+ if ($open_basedir) {
25
+ // e.g. "/var/www/vhosts/getid3.org/httpdocs/:/tmp/"
26
+ $temp_dir = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $temp_dir);
27
+ $open_basedir = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $open_basedir);
28
+ if (substr($temp_dir, -1, 1) != DIRECTORY_SEPARATOR) {
29
+ $temp_dir .= DIRECTORY_SEPARATOR;
30
+ }
31
+ $found_valid_tempdir = false;
32
+ $open_basedirs = explode(':', $open_basedir);
33
+ foreach ($open_basedirs as $basedir) {
34
+ if (substr($basedir, -1, 1) != DIRECTORY_SEPARATOR) {
35
+ $basedir .= DIRECTORY_SEPARATOR;
36
+ }
37
+ if (preg_match('#^'.preg_quote($basedir).'#', $temp_dir)) {
38
+ $found_valid_tempdir = true;
39
+ break;
40
+ }
41
+ }
42
+ if (!$found_valid_tempdir) {
43
+ $temp_dir = '';
44
+ }
45
+ unset($open_basedirs, $found_valid_tempdir, $basedir);
46
+ }
47
+ if (!$temp_dir) {
48
+ $temp_dir = '*'; // invalid directory name should force tempnam() to use system default temp dir
49
+ }
50
+ // $temp_dir = '/something/else/'; // feel free to override temp dir here if it works better for your system
51
+ define('GETID3_TEMP_DIR', $temp_dir);
52
+ unset($open_basedir, $temp_dir);
53
 
54
 
55
+ // define a constant rather than looking up every time it is needed
56
+ if (!defined('GETID3_OS_ISWINDOWS')) {
57
+ if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
58
+ define('GETID3_OS_ISWINDOWS', true);
59
+ } else {
60
+ define('GETID3_OS_ISWINDOWS', false);
61
+ }
62
+ }
63
+
64
+ // Get base path of getID3() - ONCE
65
+ if (!defined('GETID3_INCLUDEPATH')) {
66
+ foreach (get_included_files() as $key => $val) {
67
+ if (basename($val) == 'getid3.php') {
68
+ define('GETID3_INCLUDEPATH', dirname($val).DIRECTORY_SEPARATOR);
69
+ break;
70
+ }
71
+ }
72
+ }
73
+
74
+ // End: Defines
75
+
76
 
77
  class getID3
78
  {
79
  // public: Settings
80
+ public $encoding = 'UTF-8'; // CASE SENSITIVE! - i.e. (must be supported by iconv()). Examples: ISO-8859-1 UTF-8 UTF-16 UTF-16BE
81
+ public $encoding_id3v1 = 'ISO-8859-1'; // Should always be 'ISO-8859-1', but some tags may be written in other encodings such as 'EUC-CN' or 'CP1252'
 
 
 
 
82
 
83
  // public: Optional tag checks - disable for speed.
84
+ public $option_tag_id3v1 = true; // Read and process ID3v1 tags
85
+ public $option_tag_id3v2 = true; // Read and process ID3v2 tags
86
+ public $option_tag_lyrics3 = true; // Read and process Lyrics3 tags
87
+ public $option_tag_apetag = true; // Read and process APE tags
88
+ public $option_tags_process = true; // Copy tags to root key 'tags' and encode to $this->encoding
89
+ public $option_tags_html = true; // Copy tags to root key 'tags_html' properly translated from various encodings to HTML entities
90
 
91
  // public: Optional tag/comment calucations
92
+ public $option_extra_info = true; // Calculate additional info such as bitrate, channelmode etc
93
+
94
+ // public: Optional handling of embedded attachments (e.g. images)
95
+ public $option_save_attachments = true; // defaults to true (ATTACHMENTS_INLINE) for backward compatibility
96
 
97
  // public: Optional calculations
98
+ public $option_md5_data = false; // Get MD5 sum of data part - slow
99
+ public $option_md5_data_source = false; // Use MD5 of source file if availble - only FLAC and OptimFROG
100
+ public $option_sha1_data = false; // Get SHA1 sum of data part - slow
101
+ public $option_max_2gb_check = null; // Check whether file is larger than 2GB and thus not supported by 32-bit PHP (null: auto-detect based on PHP_INT_MAX)
102
 
103
+ // public: Read buffer size in bytes
104
+ public $option_fread_buffer_size = 32768;
105
 
106
+ // Public variables
107
+ public $filename; // Filename of file being analysed.
108
+ public $fp; // Filepointer to file being analysed.
109
+ public $info; // Result array.
110
 
111
+ // Protected variables
112
+ protected $startup_error = '';
113
+ protected $startup_warning = '';
114
+ protected $memory_limit = 0;
115
 
116
+ const VERSION = '1.9.3-20111213';
117
+ const FREAD_BUFFER_SIZE = 32768;
118
+ var $tempdir = GETID3_TEMP_DIR;
119
 
120
+ const ATTACHMENTS_NONE = false;
121
+ const ATTACHMENTS_INLINE = true;
122
+
123
+ // public: constructor
124
+ public function __construct() {
125
+
126
+ // Check for PHP version
127
+ $required_php_version = '5.0.5';
128
+ if (version_compare(PHP_VERSION, $required_php_version, '<')) {
129
+ $this->startup_error .= 'getID3() requires PHP v'.$required_php_version.' or higher - you are running v'.PHP_VERSION;
130
+ return false;
131
  }
132
 
133
  // Check memory
134
+ $this->memory_limit = ini_get('memory_limit');
135
+ if (preg_match('#([0-9]+)M#i', $this->memory_limit, $matches)) {
136
  // could be stored as "16M" rather than 16777216 for example
137
+ $this->memory_limit = $matches[1] * 1048576;
138
+ } elseif (preg_match('#([0-9]+)G#i', $this->memory_limit, $matches)) { // The 'G' modifier is available since PHP 5.1.0
139
+ // could be stored as "2G" rather than 2147483648 for example
140
+ $this->memory_limit = $matches[1] * 1073741824;
141
  }
142
+ if ($this->memory_limit <= 0) {
143
  // memory limits probably disabled
144
+ } elseif ($this->memory_limit <= 4194304) {
145
+ $this->startup_error .= 'PHP has less than 4MB available memory and will very likely run out. Increase memory_limit in php.ini';
146
+ } elseif ($this->memory_limit <= 12582912) {
147
+ $this->startup_warning .= 'PHP has less than 12MB available memory and might run out if all modules are loaded. Increase memory_limit in php.ini';
148
  }
149
 
150
  // Check safe_mode off
151
+ if (preg_match('#(1|ON)#i', ini_get('safe_mode'))) {
152
+ $this->warning('WARNING: Safe mode is on, shorten support disabled, md5data/sha1data for ogg vorbis disabled, ogg vorbos/flac tag writing disabled.');
153
  }
154
 
155
+ if (intval(ini_get('mbstring.func_overload')) > 0) {
156
+ $this->warning('WARNING: php.ini contains "mbstring.func_overload = '.ini_get('mbstring.func_overload').'", this may break things.');
157
+ }
158
 
159
+ // Check for magic_quotes_runtime
160
+ if (function_exists('get_magic_quotes_runtime')) {
161
+ if (get_magic_quotes_runtime()) {
162
+ return $this->startup_error('magic_quotes_runtime must be disabled before running getID3(). Surround getid3 block by set_magic_quotes_runtime(0) and set_magic_quotes_runtime(1).');
 
 
163
  }
164
  }
165
 
166
+ // Check for magic_quotes_gpc
167
+ if (function_exists('magic_quotes_gpc')) {
168
+ if (get_magic_quotes_gpc()) {
169
+ return $this->startup_error('magic_quotes_gpc must be disabled before running getID3(). Surround getid3 block by set_magic_quotes_gpc(0) and set_magic_quotes_gpc(1).');
 
 
 
170
  }
171
  }
172
 
175
  $this->startup_error .= 'getid3.lib.php is missing or corrupt';
176
  }
177
 
178
+ if ($this->option_max_2gb_check === null) {
179
+ $this->option_max_2gb_check = (PHP_INT_MAX <= 2147483647);
180
+ }
181
+
182
 
183
  // Needed for Windows only:
184
  // Define locations of helper applications for Shorten, VorbisComment, MetaFLAC
185
  // as well as other helper functions such as head, tail, md5sum, etc
186
+ // This path cannot contain spaces, but the below code will attempt to get the
187
+ // 8.3-equivalent path automatically
188
  // IMPORTANT: This path must include the trailing slash
189
  if (GETID3_OS_ISWINDOWS && !defined('GETID3_HELPERAPPSDIR')) {
190
 
191
  $helperappsdir = GETID3_INCLUDEPATH.'..'.DIRECTORY_SEPARATOR.'helperapps'; // must not have any space in this path
192
 
193
  if (!is_dir($helperappsdir)) {
194
+ $this->startup_warning .= '"'.$helperappsdir.'" cannot be defined as GETID3_HELPERAPPSDIR because it does not exist';
195
  } elseif (strpos(realpath($helperappsdir), ' ') !== false) {
196
  $DirPieces = explode(DIRECTORY_SEPARATOR, realpath($helperappsdir));
197
+ $path_so_far = array();
198
  foreach ($DirPieces as $key => $value) {
199
+ if (strpos($value, ' ') !== false) {
200
+ if (!empty($path_so_far)) {
201
+ $commandline = 'dir /x '.escapeshellarg(implode(DIRECTORY_SEPARATOR, $path_so_far));
202
+ $dir_listing = `$commandline`;
203
+ $lines = explode("\n", $dir_listing);
204
+ foreach ($lines as $line) {
205
+ $line = trim($line);
206
+ if (preg_match('#^([0-9/]{10}) +([0-9:]{4,5}( [AP]M)?) +(<DIR>|[0-9,]+) +([^ ]{0,11}) +(.+)$#', $line, $matches)) {
207
+ list($dummy, $date, $time, $ampm, $filesize, $shortname, $filename) = $matches;
208
+ if ((strtoupper($filesize) == '<DIR>') && (strtolower($filename) == strtolower($value))) {
209
+ $value = $shortname;
210
+ }
211
+ }
212
+ }
213
+ } else {
214
+ $this->startup_warning .= 'GETID3_HELPERAPPSDIR must not have any spaces in it - use 8dot3 naming convention if neccesary. You can run "dir /x" from the commandline to see the correct 8.3-style names.';
215
  }
 
 
216
  }
217
+ $path_so_far[] = $value;
218
  }
219
+ $helperappsdir = implode(DIRECTORY_SEPARATOR, $path_so_far);
220
  }
221
+ define('GETID3_HELPERAPPSDIR', $helperappsdir.DIRECTORY_SEPARATOR);
222
  }
223
 
224
+ return true;
225
+ }
226
+
227
+ public function version() {
228
+ return self::VERSION;
229
+ }
230
+
231
+ public function fread_buffer_size() {
232
+ return $this->option_fread_buffer_size;
233
  }
234
 
235
 
239
  return false;
240
  }
241
  foreach ($optArray as $opt => $val) {
242
+ if (isset($this->$opt) === false) {
243
  continue;
244
  }
245
  $this->$opt = $val;
248
  }
249
 
250
 
251
+ public function openfile($filename, $filesize=false) {
252
+ try {
253
+ if (!empty($this->startup_error)) {
254
+ throw new getid3_exception($this->startup_error);
255
+ }
256
+ if (!empty($this->startup_warning)) {
257
+ $this->warning($this->startup_warning);
258
+ }
259
 
260
+ // init result array and set parameters
261
+ $this->filename = $filename;
262
+ $this->info = array();
263
+ $this->info['GETID3_VERSION'] = $this->version();
264
+ $this->info['php_memory_limit'] = $this->memory_limit;
 
265
 
266
+ // remote files not supported
267
+ if (preg_match('/^(ht|f)tp:\/\//', $filename)) {
268
+ throw new getid3_exception('Remote files are not supported - please copy the file locally first');
269
+ }
270
+
271
+ $filename = str_replace('/', DIRECTORY_SEPARATOR, $filename);
272
+ $filename = preg_replace('#(.+)'.preg_quote(DIRECTORY_SEPARATOR).'{2,}#U', '\1'.DIRECTORY_SEPARATOR, $filename);
273
 
274
+ // open local file
275
+ if (is_readable($filename) && is_file($filename) && ($this->fp = fopen($filename, 'rb'))) {
276
+ // great
 
 
277
  } else {
278
+ throw new getid3_exception('Could not open "'.$filename.'" (does not exist, or is not a file)');
279
  }
 
 
280
 
281
+ if( $filesize )
282
+ $this->info['filesize'] = $filesize;
283
+ else
284
+ $this->info['filesize'] = filesize($filename);
285
+ // set redundant parameters - might be needed in some include file
286
+ $this->info['filename'] = basename($filename);
287
+ $this->info['filepath'] = str_replace('\\', '/', realpath(dirname($filename)));
288
+ $this->info['filenamepath'] = $this->info['filepath'].'/'.$this->info['filename'];
289
+
290
+
291
+ // option_max_2gb_check
292
+ if ($this->option_max_2gb_check) {
293
+ // PHP (32-bit all, and 64-bit Windows) doesn't support integers larger than 2^31 (~2GB)
294
+ // filesize() simply returns (filesize % (pow(2, 32)), no matter the actual filesize
295
+ // ftell() returns 0 if seeking to the end is beyond the range of unsigned integer
296
+ $fseek = fseek($this->fp, 0, SEEK_END);
297
+ if (($fseek < 0) || (($this->info['filesize'] != 0) && (ftell($this->fp) == 0)) ||
298
+ ($this->info['filesize'] < 0) ||
299
+ (ftell($this->fp) < 0)) {
300
+ $real_filesize = false;
301
+ if (GETID3_OS_ISWINDOWS) {
302
+ $commandline = 'dir /-C "'.str_replace('/', DIRECTORY_SEPARATOR, $filename).'"';
303
+ $dir_output = `$commandline`;
304
+ if (preg_match('#1 File\(s\)[ ]+([0-9]+) bytes#i', $dir_output, $matches)) {
305
+ $real_filesize = (float) $matches[1];
306
+ }
307
+ } else {
308
+ $commandline = 'ls -o -g -G --time-style=long-iso '.escapeshellarg($filename);
309
+ $dir_output = `$commandline`;
310
+ if (preg_match('#([0-9]+) ([0-9]{4}-[0-9]{2}\-[0-9]{2} [0-9]{2}:[0-9]{2}) '.str_replace('#', '\\#', preg_quote($filename)).'$#', $dir_output, $matches)) {
311
+ $real_filesize = (float) $matches[1];
312
+ }
313
+ }
314
+ if ($real_filesize === false) {
315
+ unset($this->info['filesize']);
316
+ fclose($this->fp);
317
+ throw new getid3_exception('Unable to determine actual filesize. File is most likely larger than '.round(PHP_INT_MAX / 1073741824).'GB and is not supported by PHP.');
318
+ } elseif (getid3_lib::intValueSupported($real_filesize)) {
319
+ unset($this->info['filesize']);
320
+ fclose($this->fp);
321
+ throw new getid3_exception('PHP seems to think the file is larger than '.round(PHP_INT_MAX / 1073741824).'GB, but filesystem reports it as '.number_format($real_filesize, 3).'GB, please report to info@getid3.org');
322
+ }
323
+ $this->info['filesize'] = $real_filesize;
324
+ $this->error('File is larger than '.round(PHP_INT_MAX / 1073741824).'GB (filesystem reports it as '.number_format($real_filesize, 3).'GB) and is not properly supported by PHP.');
325
+ }
326
  }
 
327
 
328
+ // set more parameters
329
+ $this->info['avdataoffset'] = 0;
330
+ $this->info['avdataend'] = $this->info['filesize'];
331
+ $this->info['fileformat'] = ''; // filled in later
332
+ $this->info['audio']['dataformat'] = ''; // filled in later, unset if not used
333
+ $this->info['video']['dataformat'] = ''; // filled in later, unset if not used
334
+ $this->info['tags'] = array(); // filled in later, unset if not used
335
+ $this->info['error'] = array(); // filled in later, unset if not used
336
+ $this->info['warning'] = array(); // filled in later, unset if not used
337
+ $this->info['comments'] = array(); // filled in later, unset if not used
338
+ $this->info['encoding'] = $this->encoding; // required by id3v2 and iso modules - can be unset at the end if desired
339
+
340
+ return true;
341
+
342
+ } catch (Exception $e) {
343
+ $this->error($e->getMessage());
344
  }
345
+ return false;
346
+ }
347
 
348
+ // public: analyze file
349
+ function analyze($filename, $filesize=false, $orig_filename='file.mp3') { // 2nd AND 3rd PARAMTERS ADDED BY POWERPRESS
350
+ try {
351
+ if (!$this->openfile($filename, $filesize)) {
352
+ return $this->info;
 
 
 
 
 
 
 
 
 
 
 
 
 
353
  }
354
+
355
+ // ADDED BY POWERPRESS
356
+ //if( $filesize )
357
+ // $this->info['filesize'] = $filesize;
358
+ // END ADDED BY POWERPRESS
359
+
360
+ // Handle tags
361
+ foreach (array('id3v2'=>'id3v2', 'id3v1'=>'id3v1', 'apetag'=>'ape', 'lyrics3'=>'lyrics3') as $tag_name => $tag_key) {
362
+ $option_tag = 'option_tag_'.$tag_name;
363
+ if ($this->$option_tag) {
364
+ $this->include_module('tag.'.$tag_name);
365
+ try {
366
+ $tag_class = 'getid3_'.$tag_name;
367
+ $tag = new $tag_class($this);
368
+ $tag->Analyze();
369
+ }
370
+ catch (getid3_exception $e) {
371
+ throw $e;
372
+ }
373
+ }
374
+ }
375
+ if (isset($this->info['id3v2']['tag_offset_start'])) {
376
+ $this->info['avdataoffset'] = max($this->info['avdataoffset'], $this->info['id3v2']['tag_offset_end']);
377
+ }
378
+ foreach (array('id3v1'=>'id3v1', 'apetag'=>'ape', 'lyrics3'=>'lyrics3') as $tag_name => $tag_key) {
379
+ if (isset($this->info[$tag_key]['tag_offset_start'])) {
380
+ $this->info['avdataend'] = min($this->info['avdataend'], $this->info[$tag_key]['tag_offset_start']);
381
+ }
382
  }
383
 
384
+ // ID3v2 detection (NOT parsing), even if ($this->option_tag_id3v2 == false) done to make fileformat easier
385
+ if (!$this->option_tag_id3v2) {
386
+ fseek($this->fp, 0, SEEK_SET);
387
+ $header = fread($this->fp, 10);
388
+ if ((substr($header, 0, 3) == 'ID3') && (strlen($header) == 10)) {
389
+ $this->info['id3v2']['header'] = true;
390
+ $this->info['id3v2']['majorversion'] = ord($header{3});
391
+ $this->info['id3v2']['minorversion'] = ord($header{4});
392
+ $this->info['avdataoffset'] += getid3_lib::BigEndian2Int(substr($header, 6, 4), 1) + 10; // length of ID3v2 tag in 10-byte header doesn't include 10-byte header length
393
+ }
 
 
 
394
  }
395
 
396
+ // read 32 kb file data
397
+ fseek($this->fp, $this->info['avdataoffset'], SEEK_SET);
398
+ $formattest = fread($this->fp, 32774);
399
 
400
+ // determine format
401
+ // MODIFIED BY POWERPRESS
402
+ $determined_format = $this->GetFileFormat($formattest, $orig_filename);
403
+ // MODIFIED BY POWERPRESS
404
 
405
+ // unable to determine file format
406
+ if (!$determined_format) {
407
+ fclose($this->fp);
408
+ return $this->error('unable to determine file format');
409
  }
 
 
 
410
 
411
+ // check for illegal ID3 tags
412
+ if (isset($determined_format['fail_id3']) && (in_array('id3v1', $this->info['tags']) || in_array('id3v2', $this->info['tags']))) {
413
+ if ($determined_format['fail_id3'] === 'ERROR') {
414
+ fclose($this->fp);
415
+ return $this->error('ID3 tags not allowed on this file type.');
416
+ } elseif ($determined_format['fail_id3'] === 'WARNING') {
417
+ $this->warning('ID3 tags not allowed on this file type.');
418
+ }
419
  }
 
 
 
420
 
421
+ // check for illegal APE tags
422
+ if (isset($determined_format['fail_ape']) && in_array('ape', $this->info['tags'])) {
423
+ if ($determined_format['fail_ape'] === 'ERROR') {
424
+ fclose($this->fp);
425
+ return $this->error('APE tags not allowed on this file type.');
426
+ } elseif ($determined_format['fail_ape'] === 'WARNING') {
427
+ $this->warning('APE tags not allowed on this file type.');
428
+ }
429
  }
 
 
 
430
 
431
+ // set mime type
432
+ $this->info['mime_type'] = $determined_format['mime_type'];
 
 
 
 
 
 
 
 
 
 
433
 
434
+ // supported format signature pattern detected, but module deleted
435
+ if (!file_exists(GETID3_INCLUDEPATH.$determined_format['include'])) {
436
+ fclose($this->fp);
437
+ return $this->error('Format not supported, module "'.$determined_format['include'].'" was removed.');
 
 
 
438
  }
 
439
 
440
+ // module requires iconv support
441
+ // Check encoding/iconv support
442
+ if (!empty($determined_format['iconv_req']) && !function_exists('iconv') && !in_array($this->encoding, array('ISO-8859-1', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'UTF-16'))) {
443
+ $errormessage = 'iconv() support is required for this module ('.$determined_format['include'].') for encodings other than ISO-8859-1, UTF-8, UTF-16LE, UTF16-BE, UTF-16. ';
444
+ if (GETID3_OS_ISWINDOWS) {
445
+ $errormessage .= 'PHP does not have iconv() support. Please enable php_iconv.dll in php.ini, and copy iconv.dll from c:/php/dlls to c:/windows/system32';
446
+ } else {
447
+ $errormessage .= 'PHP is not compiled with iconv() support. Please recompile with the --with-iconv switch';
448
+ }
449
+ return $this->error($errormessage);
450
  }
 
 
 
 
451
 
452
+ // include module
453
+ include_once(GETID3_INCLUDEPATH.$determined_format['include']);
 
 
 
 
 
 
 
 
454
 
455
+ // instantiate module class
456
+ $class_name = 'getid3_'.$determined_format['module'];
457
+ if (!class_exists($class_name)) {
458
+ return $this->error('Format not supported, module "'.$determined_format['include'].'" is corrupt.');
459
+ }
460
+ //if (isset($determined_format['option'])) {
461
+ // //$class = new $class_name($this->fp, $this->info, $determined_format['option']);
462
+ //} else {
463
+ //$class = new $class_name($this->fp, $this->info);
464
+ $class = new $class_name($this);
465
+ //}
466
+
467
+ if (!empty($determined_format['set_inline_attachments'])) {
468
+ $class->inline_attachments = $this->option_save_attachments;
469
+ }
470
+ $class->Analyze();
471
 
472
+ unset($class);
 
 
 
 
 
 
 
 
 
 
473
 
474
+ // close file
475
+ fclose($this->fp);
476
 
477
+ // process all tags - copy to 'tags' and convert charsets
478
+ if ($this->option_tags_process) {
479
+ $this->HandleAllTags();
480
+ }
481
 
482
+ // perform more calculations
483
+ if ($this->option_extra_info) {
484
+ $this->ChannelsBitratePlaytimeCalculations();
485
+ $this->CalculateCompressionRatioVideo();
486
+ $this->CalculateCompressionRatioAudio();
487
+ $this->CalculateReplayGain();
488
+ $this->ProcessAudioStreams();
489
+ }
490
 
491
+ // get the MD5 sum of the audio/video portion of the file - without ID3/APE/Lyrics3/etc header/footer tags
492
+ if ($this->option_md5_data) {
493
+ // do not cald md5_data if md5_data_source is present - set by flac only - future MPC/SV8 too
494
+ if (!$this->option_md5_data_source || empty($this->info['md5_data_source'])) {
495
+ $this->getHashdata('md5');
496
+ }
497
  }
 
498
 
499
+ // get the SHA1 sum of the audio/video portion of the file - without ID3/APE/Lyrics3/etc header/footer tags
500
+ if ($this->option_sha1_data) {
501
+ $this->getHashdata('sha1');
502
+ }
503
 
504
+ // remove undesired keys
505
+ $this->CleanUp();
506
 
507
+ } catch (Exception $e) {
508
+ $this->error('Caught exception: '.$e->getMessage());
509
+ }
510
 
511
  // return info array
512
  return $this->info;
515
 
516
  // private: error handling
517
  function error($message) {
 
518
  $this->CleanUp();
519
+ if (!isset($this->info['error'])) {
520
+ $this->info['error'] = array();
521
+ }
522
  $this->info['error'][] = $message;
523
  return $this->info;
524
  }
563
  unset($this->info['avdataend']);
564
  }
565
  }
566
+
567
+ // remove possible duplicated identical entries
568
+ if (!empty($this->info['error'])) {
569
+ $this->info['error'] = array_values(array_unique($this->info['error']));
570
+ }
571
+ if (!empty($this->info['warning'])) {
572
+ $this->info['warning'] = array_values(array_unique($this->info['warning']));
573
+ }
574
+
575
+ // remove "global variable" type keys
576
+ unset($this->info['php_memory_limit']);
577
+
578
+ return true;
579
  }
580
 
581
 
600
  'pattern' => '^ADIF',
601
  'group' => 'audio',
602
  'module' => 'aac',
 
603
  'mime_type' => 'application/octet-stream',
604
  'fail_ape' => 'WARNING',
605
  ),
606
 
607
 
608
+ // AA - audio - Audible Audiobook
609
+ 'adts' => array(
610
+ 'pattern' => '^.{4}\x57\x90\x75\x36',
611
+ 'group' => 'audio',
612
+ 'module' => 'aa',
613
+ 'mime_type' => 'audio/audible ',
614
+ ),
615
+
616
  // AAC - audio - Advanced Audio Coding (AAC) - ADTS format (very similar to MP3)
617
  'adts' => array(
618
  'pattern' => '^\xFF[\xF0-\xF1\xF8-\xF9]',
619
  'group' => 'audio',
620
  'module' => 'aac',
 
621
  'mime_type' => 'application/octet-stream',
622
  'fail_ape' => 'WARNING',
623
  ),
647
  'mime_type' => 'audio/xmms-bonk',
648
  ),
649
 
650
+ // DSS - audio - Digital Speech Standard
651
+ 'dss' => array(
652
+ 'pattern' => '^[\x02-\x03]dss',
653
+ 'group' => 'audio',
654
+ 'module' => 'dss',
655
+ 'mime_type' => 'application/octet-stream',
656
+ ),
657
+
658
  // DTS - audio - Dolby Theatre System
659
  'dts' => array(
660
  'pattern' => '^\x7F\xFE\x80\x01',
669
  'group' => 'audio',
670
  'module' => 'flac',
671
  'mime_type' => 'audio/x-flac',
672
+ 'set_inline_attachments' => true,
673
  ),
674
 
675
  // LA - audio - Lossless Audio (LA)
704
  'mime_type' => 'application/octet-stream',
705
  ),
706
 
707
+ // has been known to produce false matches in random files (e.g. JPEGs), leave out until more precise matching available
708
+ // // MOD - audio - MODule (assorted sub-formats)
709
+ // 'mod' => array(
710
+ // 'pattern' => '^.{1080}(M\\.K\\.|M!K!|FLT4|FLT8|[5-9]CHN|[1-3][0-9]CH)',
711
+ // 'group' => 'audio',
712
+ // 'module' => 'mod',
713
+ // 'option' => 'mod',
714
+ // 'mime_type' => 'audio/mod',
715
+ // ),
716
 
717
  // MOD - audio - MODule (Impulse Tracker)
718
  'it' => array(
719
  'pattern' => '^IMPM',
720
  'group' => 'audio',
721
  'module' => 'mod',
722
+ //'option' => 'it',
723
  'mime_type' => 'audio/it',
724
  ),
725
 
728
  'pattern' => '^Extended Module',
729
  'group' => 'audio',
730
  'module' => 'mod',
731
+ //'option' => 'xm',
732
  'mime_type' => 'audio/xm',
733
  ),
734
 
737
  'pattern' => '^.{44}SCRM',
738
  'group' => 'audio',
739
  'module' => 'mod',
740
+ //'option' => 's3m',
741
  'mime_type' => 'audio/s3m',
742
  ),
743
 
744
  // MPC - audio - Musepack / MPEGplus
745
  'mpc' => array(
746
+ 'pattern' => '^(MPCK|MP\+|[\x00\x01\x10\x11\x40\x41\x50\x51\x80\x81\x90\x91\xC0\xC1\xD0\xD1][\x20-37][\x00\x20\x40\x60\x80\xA0\xC0\xE0])',
747
  'group' => 'audio',
748
  'module' => 'mpc',
749
  'mime_type' => 'audio/x-musepack',
751
 
752
  // MP3 - audio - MPEG-audio Layer 3 (very similar to AAC-ADTS)
753
  'mp3' => array(
754
+ 'pattern' => '^\xFF[\xE2-\xE7\xF2-\xF7\xFA-\xFF][\x00-\x0B\x10-\x1B\x20-\x2B\x30-\x3B\x40-\x4B\x50-\x5B\x60-\x6B\x70-\x7B\x80-\x8B\x90-\x9B\xA0-\xAB\xB0-\xBB\xC0-\xCB\xD0-\xDB\xE0-\xEB\xF0-\xFB]',
755
  'group' => 'audio',
756
  'module' => 'mp3',
757
  'mime_type' => 'audio/mpeg',
848
  'pattern' => '^\x1A\x45\xDF\xA3',
849
  'group' => 'audio-video',
850
  'module' => 'matroska',
851
+ 'mime_type' => 'video/x-matroska', // may also be audio/x-matroska
852
+ 'set_inline_attachments' => true,
853
  ),
854
 
855
  // MPEG - audio/video - MPEG (Moving Pictures Experts Group)
876
  'mime_type' => 'application/ogg',
877
  'fail_id3' => 'WARNING',
878
  'fail_ape' => 'WARNING',
879
+ 'set_inline_attachments' => true,
880
  ),
881
 
882
  // QT - audio/video - Quicktime
898
 
899
  // Real - audio/video - RealAudio, RealVideo
900
  'real' => array(
901
+ 'pattern' => '^(\\.RMF|\\.ra)',
902
  'group' => 'audio-video',
903
  'module' => 'real',
904
  'mime_type' => 'audio/x-realaudio',
967
  ),
968
 
969
 
970
+ // SVG - still image - Scalable Vector Graphics (SVG)
971
  'svg' => array(
972
+ 'pattern' => '(<!DOCTYPE svg PUBLIC |xmlns="http:\/\/www\.w3\.org\/2000\/svg")',
973
  'group' => 'graphic',
974
  'module' => 'svg',
975
  'mime_type' => 'image/svg+xml',
978
  ),
979
 
980
 
981
+ // TIFF - still image - Tagged Information File Format (TIFF)
982
  'tiff' => array(
983
  'pattern' => '^(II\x2A\x00|MM\x00\x2A)',
984
  'group' => 'graphic',
989
  ),
990
 
991
 
992
+ // EFAX - still image - eFax (TIFF derivative)
993
+ 'bmp' => array(
994
+ 'pattern' => '^\xDC\xFE',
995
+ 'group' => 'graphic',
996
+ 'module' => 'efax',
997
+ 'mime_type' => 'image/efax',
998
+ 'fail_id3' => 'ERROR',
999
+ 'fail_ape' => 'ERROR',
1000
+ ),
1001
+
1002
+
1003
  // Data formats
1004
 
1005
  // ISO - data - International Standards Organization (ISO) CD-ROM Image
1066
 
1067
  // Misc other formats
1068
 
1069
+ // PAR2 - data - Parity Volume Set Specification 2.0
1070
+ 'par2' => array (
1071
+ 'pattern' => '^PAR2\x00PKT',
1072
+ 'group' => 'misc',
1073
  'module' => 'par2',
1074
  'mime_type' => 'application/octet-stream',
1075
  'fail_id3' => 'ERROR',
1088
 
1089
  // MSOFFICE - data - ZIP compressed data
1090
  'msoffice' => array(
1091
+ 'pattern' => '^\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1', // D0CF11E == DOCFILE == Microsoft Office Document
1092
  'group' => 'misc',
1093
  'module' => 'msoffice',
1094
  'mime_type' => 'application/octet-stream',
1095
  'fail_id3' => 'ERROR',
1096
  'fail_ape' => 'ERROR',
1097
  ),
1098
+
1099
+ // CUE - data - CUEsheet (index to single-file disc images)
1100
+ 'cue' => array(
1101
+ 'pattern' => '', // empty pattern means cannot be automatically detected, will fall through all other formats and match based on filename and very basic file contents
1102
+ 'group' => 'misc',
1103
+ 'module' => 'cue',
1104
+ 'mime_type' => 'application/octet-stream',
1105
+ ),
1106
+
1107
  );
1108
  }
1109
 
1120
 
1121
  // Identify file format - loop through $format_info and detect with reg expr
1122
  foreach ($this->GetFileFormatArray() as $format_name => $info) {
 
1123
  // The /s switch on preg_match() forces preg_match() NOT to treat
1124
  // newline (0x0A) characters as special chars but do a binary match
1125
+ if (!empty($info['pattern']) && preg_match('#'.$info['pattern'].'#s', $filedata)) {
1126
  $info['include'] = 'module.'.$info['group'].'.'.$info['module'].'.php';
1127
  return $info;
1128
  }
1129
  }
1130
 
1131
 
1132
+ if (preg_match('#\.mp[123a]$#i', $filename)) {
1133
  // Too many mp3 encoders on the market put gabage in front of mpeg files
1134
  // use assume format on these if format detection failed
1135
  $GetFileFormatArray = $this->GetFileFormatArray();
1136
  $info = $GetFileFormatArray['mp3'];
1137
  $info['include'] = 'module.'.$info['group'].'.'.$info['module'].'.php';
1138
  return $info;
1139
+ } elseif (preg_match('/\.cue$/i', $filename) && preg_match('#FILE "[^"]+" (BINARY|MOTOROLA|AIFF|WAVE|MP3)#', $filedata)) {
1140
+ // there's not really a useful consistent "magic" at the beginning of .cue files to identify them
1141
+ // so until I think of something better, just go by filename if all other format checks fail
1142
+ // and verify there's at least one instance of "TRACK xx AUDIO" in the file
1143
+ $GetFileFormatArray = $this->GetFileFormatArray();
1144
+ $info = $GetFileFormatArray['cue'];
1145
+ $info['include'] = 'module.'.$info['group'].'.'.$info['module'].'.php';
1146
+ return $info;
1147
  }
1148
 
1149
  return false;
1186
  'ogg' => array('vorbiscomment' , 'UTF-8'),
1187
  'png' => array('png' , 'UTF-8'),
1188
  'tiff' => array('tiff' , 'ISO-8859-1'),
1189
+ 'quicktime' => array('quicktime' , 'UTF-8'),
1190
  'real' => array('real' , 'ISO-8859-1'),
1191
  'vqf' => array('vqf' , 'ISO-8859-1'),
1192
  'zip' => array('zip' , 'ISO-8859-1'),
1194
  'lyrics3' => array('lyrics3' , 'ISO-8859-1'),
1195
  'id3v1' => array('id3v1' , $this->encoding_id3v1),
1196
  'id3v2' => array('id3v2' , 'UTF-8'), // not according to the specs (every frame can have a different encoding), but getID3() force-converts all encodings to UTF-8
1197
+ 'ape' => array('ape' , 'UTF-8'),
1198
+ 'cue' => array('cue' , 'ISO-8859-1'),
1199
+ 'matroska' => array('matroska' , 'UTF-8'),
1200
  );
1201
  }
1202
 
1203
+ // loop through comments array
1204
  foreach ($tags as $comment_name => $tagname_encoding_array) {
1205
  list($tag_name, $encoding) = $tagname_encoding_array;
1206
 
1214
 
1215
  foreach ($this->info[$comment_name]['comments'] as $tag_key => $valuearray) {
1216
  foreach ($valuearray as $key => $value) {
1217
+ if (is_string($value)) {
1218
+ $value = trim($value, " \r\n\t"); // do not trim nulls from $value!! Unicode characters will get mangled if trailing nulls are removed!
1219
+ }
1220
+ if ($value) {
1221
+ $this->info['tags'][trim($tag_name)][trim($tag_key)][] = $value;
1222
  }
1223
  }
1224
  }
1233
  foreach ($valuearray as $key => $value) {
1234
  if (is_string($value)) {
1235
  //$this->info['tags_html'][$tag_name][$tag_key][$key] = getid3_lib::MultiByteCharString2HTML($value, $encoding);
1236
+ $this->info['tags_html'][$tag_name][$tag_key][$key] = str_replace('&#0;', '', trim(getid3_lib::MultiByteCharString2HTML($value, $encoding)));
1237
  } else {
1238
  $this->info['tags_html'][$tag_name][$tag_key][$key] = $value;
1239
  }
1245
  }
1246
 
1247
  }
1248
+
1249
+ // pictures can take up a lot of space, and we don't need multiple copies of them
1250
+ // let there be a single copy in [comments][picture], and not elsewhere
1251
+ if (!empty($this->info['tags'])) {
1252
+ $unset_keys = array('tags', 'tags_html');
1253
+ foreach ($this->info['tags'] as $tagtype => $tagarray) {
1254
+ foreach ($tagarray as $tagname => $tagdata) {
1255
+ if ($tagname == 'picture') {
1256
+ foreach ($tagdata as $key => $tagarray) {
1257
+ $this->info['comments']['picture'][] = $tagarray;
1258
+ if (isset($tagarray['data']) && isset($tagarray['image_mime'])) {
1259
+ if (isset($this->info['tags'][$tagtype][$tagname][$key])) {
1260
+ unset($this->info['tags'][$tagtype][$tagname][$key]);
1261
+ }
1262
+ if (isset($this->info['tags_html'][$tagtype][$tagname][$key])) {
1263
+ unset($this->info['tags_html'][$tagtype][$tagname][$key]);
1264
+ }
1265
+ }
1266
+ }
1267
+ }
1268
+ }
1269
+ foreach ($unset_keys as $unset_key) {
1270
+ // remove possible empty keys from (e.g. [tags][id3v2][picture])
1271
+ if (empty($this->info[$unset_key][$tagtype]['picture'])) {
1272
+ unset($this->info[$unset_key][$tagtype]['picture']);
1273
+ }
1274
+ if (empty($this->info[$unset_key][$tagtype])) {
1275
+ unset($this->info[$unset_key][$tagtype]);
1276
+ }
1277
+ if (empty($this->info[$unset_key])) {
1278
+ unset($this->info[$unset_key]);
1279
+ }
1280
+ }
1281
+ // remove duplicate copy of picture data from (e.g. [id3v2][comments][picture])
1282
+ if (isset($this->info[$tagtype]['comments']['picture'])) {
1283
+ unset($this->info[$tagtype]['comments']['picture']);
1284
+ }
1285
+ if (empty($this->info[$tagtype]['comments'])) {
1286
+ unset($this->info[$tagtype]['comments']);
1287
+ }
1288
+ if (empty($this->info[$tagtype])) {
1289
+ unset($this->info[$tagtype]);
1290
+ }
1291
+ }
1292
+ }
1293
  return true;
1294
  }
1295
 
1305
  break;
1306
  }
1307
 
1308
+ if (!empty($this->info['fileformat']) && !empty($this->info['dataformat']) && ($this->info['fileformat'] == 'ogg') && ($this->info['audio']['dataformat'] == 'vorbis')) {
1309
 
1310
  // We cannot get an identical md5_data value for Ogg files where the comments
1311
  // span more than 1 Ogg page (compared to the same audio data with smaller
1325
  // page sequence numbers likely happens for OggSpeex and OggFLAC as well, but
1326
  // currently vorbiscomment only works on OggVorbis files.
1327
 
1328
+ if (preg_match('#(1|ON)#i', ini_get('safe_mode'))) {
1329
 
1330
+ $this->warning('Failed making system call to vorbiscomment.exe - '.$algorithm.'_data is incorrect - error returned: PHP running in Safe Mode (backtick operator not available)');
1331
+ $this->info[$algorithm.'_data'] = false;
1332
 
1333
  } else {
1334
 
1336
  $old_abort = ignore_user_abort(true);
1337
 
1338
  // Create empty file
1339
+ $empty = tempnam(GETID3_TEMP_DIR, 'getID3');
1340
  touch($empty);
1341
 
 
1342
  // Use vorbiscomment to make temp file without comments
1343
+ $temp = tempnam(GETID3_TEMP_DIR, 'getID3');
1344
  $file = $this->info['filenamepath'];
1345
 
1346
  if (GETID3_OS_ISWINDOWS) {
1374
  // Get hash of newly created file
1375
  switch ($algorithm) {
1376
  case 'md5':
1377
+ $this->info[$algorithm.'_data'] = md5_file($temp);
1378
  break;
1379
 
1380
  case 'sha1':
1381
+ $this->info[$algorithm.'_data'] = sha1_file($temp);
1382
  break;
1383
  }
1384
  }
1404
  // get hash from whole file
1405
  switch ($algorithm) {
1406
  case 'md5':
1407
+ $this->info[$algorithm.'_data'] = md5_file($this->info['filenamepath']);
1408
  break;
1409
 
1410
  case 'sha1':
1411
+ $this->info[$algorithm.'_data'] = sha1_file($this->info['filenamepath']);
1412
  break;
1413
  }
1414
  }
1421
  function ChannelsBitratePlaytimeCalculations() {
1422
 
1423
  // set channelmode on audio
1424
+ if (!empty($this->info['audio']['channelmode']) || !isset($this->info['audio']['channels'])) {
1425
+ // ignore
1426
+ } elseif ($this->info['audio']['channels'] == 1) {
1427
  $this->info['audio']['channelmode'] = 'mono';
1428
+ } elseif ($this->info['audio']['channels'] == 2) {
1429
  $this->info['audio']['channelmode'] = 'stereo';
1430
  }
1431
 
1459
  }
1460
  }
1461
 
1462
+ if ((!isset($this->info['playtime_seconds']) || ($this->info['playtime_seconds'] <= 0)) && !empty($this->info['bitrate'])) {
1463
  $this->info['playtime_seconds'] = (($this->info['avdataend'] - $this->info['avdataoffset']) * 8) / $this->info['bitrate'];
1464
  }
1465
 
1466
+ if (!isset($this->info['bitrate']) && !empty($this->info['playtime_seconds'])) {
1467
+ $this->info['bitrate'] = (($this->info['avdataend'] - $this->info['avdataoffset']) * 8) / $this->info['playtime_seconds'];
1468
+ }
1469
+ if (isset($this->info['bitrate']) && empty($this->info['audio']['bitrate']) && empty($this->info['video']['bitrate'])) {
1470
+ if (isset($this->info['audio']['dataformat']) && empty($this->info['video']['resolution_x'])) {
1471
+ // audio only
1472
+ $this->info['audio']['bitrate'] = $this->info['bitrate'];
1473
+ } elseif (isset($this->info['video']['resolution_x']) && empty($this->info['audio']['dataformat'])) {
1474
+ // video only
1475
+ $this->info['video']['bitrate'] = $this->info['bitrate'];
1476
+ }
1477
+ }
1478
+
1479
  // Set playtime string
1480
  if (!empty($this->info['playtime_seconds']) && empty($this->info['playtime_string'])) {
1481
  $this->info['playtime_string'] = getid3_lib::PlaytimeString($this->info['playtime_seconds']);
1550
 
1551
  function CalculateReplayGain() {
1552
  if (isset($this->info['replay_gain'])) {
1553
+ if (!isset($this->info['replay_gain']['reference_volume'])) {
1554
+ $this->info['replay_gain']['reference_volume'] = (double) 89.0;
1555
+ }
1556
  if (isset($this->info['replay_gain']['track']['adjustment'])) {
1557
  $this->info['replay_gain']['track']['volume'] = $this->info['replay_gain']['reference_volume'] - $this->info['replay_gain']['track']['adjustment'];
1558
  }
1587
  return tempnam($this->tempdir, 'gI3');
1588
  }
1589
 
1590
+
1591
+ public function saveAttachment(&$ThisFileInfoIndex, $filename, $offset, $length) {
1592
+ try {
1593
+ if (!getid3_lib::intValueSupported($offset + $length)) {
1594
+ throw new Exception('cannot extract attachment, it extends beyond the '.round(PHP_INT_MAX / 1073741824).'GB limit');
1595
+ }
1596
+
1597
+ // do not extract at all
1598
+ if ($this->option_save_attachments === getID3::ATTACHMENTS_NONE) {
1599
+
1600
+ unset($ThisFileInfoIndex); // do not set any
1601
+
1602
+ // extract to return array
1603
+ } elseif ($this->option_save_attachments === getID3::ATTACHMENTS_INLINE) {
1604
+
1605
+ // get whole data in one pass, till it is anyway stored in memory
1606
+ $ThisFileInfoIndex = file_get_contents($this->info['filenamepath'], false, null, $offset, $length);
1607
+ if (($ThisFileInfoIndex === false) || (strlen($ThisFileInfoIndex) != $length)) { // verify
1608
+ throw new Exception('failed to read attachment data');
1609
+ }
1610
+
1611
+ // assume directory path is given
1612
+ } else {
1613
+
1614
+ $dir = rtrim(str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $this->option_save_attachments), DIRECTORY_SEPARATOR);
1615
+ // check supplied directory
1616
+ if (!is_dir($dir) || !is_writable($dir)) {
1617
+ throw new Exception('getID3::saveAttachment() -- supplied path ('.$dir.') does not exist, or is not writable');
1618
+ }
1619
+
1620
+ // set up destination path
1621
+ $dest = $dir.DIRECTORY_SEPARATOR.$filename;
1622
+
1623
+ // optimize speed if read buffer size is configured to be large enough
1624
+ // here stream_copy_to_stream() may also be used. need to do speed-compare tests
1625
+ if ($length <= $this->fread_buffer_size()) {
1626
+ $data = file_get_contents($this->info['filenamepath'], false, null, $offset, $length);
1627
+ if (($data === false) || (strlen($data) != $length)) { // verify
1628
+ throw new Exception('failed to read attachment data');
1629
+ }
1630
+ if (!file_put_contents($dest, $data)) {
1631
+ throw new Exception('failed to create file '.$dest);
1632
+ }
1633
+ } else {
1634
+ // optimization not available - copy data in loop
1635
+ // here stream_copy_to_stream() shouldn't be used because it's internal read buffer may be larger than ours!
1636
+ getid3_lib::CopyFileParts($this->info['filenamepath'], $dest, $offset, $length);
1637
+ }
1638
+ $ThisFileInfoIndex = $dest;
1639
+ }
1640
+
1641
+ } catch (Exception $e) {
1642
+
1643
+ unset($ThisFileInfoIndex); // do not set any is case of error
1644
+ $this->warning('Failed to extract attachment '.$filename.': '.$e->getMessage());
1645
+ return false;
1646
+
1647
+ }
1648
+ return true;
1649
+ }
1650
+
1651
+
1652
+ public function include_module($name) {
1653
+ //if (!file_exists($this->include_path.'module.'.$name.'.php')) {
1654
+ if (!file_exists(GETID3_INCLUDEPATH.'module.'.$name.'.php')) {
1655
+ throw new getid3_exception('Required module.'.$name.'.php is missing.');
1656
+ }
1657
+ include_once(GETID3_INCLUDEPATH.'module.'.$name.'.php');
1658
+ return true;
1659
+ }
1660
+
1661
+ }
1662
+
1663
+
1664
+ abstract class getid3_handler
1665
+ {
1666
+ protected $getid3; // pointer
1667
+
1668
+ protected $data_string_flag = false; // analyzing filepointer or string
1669
+ protected $data_string; // string to analyze
1670
+ protected $data_string_position = 0; // seek position in string
1671
+
1672
+
1673
+ public function __construct(getID3 $getid3) {
1674
+ $this->getid3 = $getid3;
1675
+ }
1676
+
1677
+
1678
+ // Analyze from file pointer
1679
+ abstract public function Analyze();
1680
+
1681
+
1682
+ // Analyze from string instead
1683
+ public function AnalyzeString(&$string) {
1684
+ // Enter string mode
1685
+ $this->data_string_flag = true;
1686
+ $this->data_string = $string;
1687
+
1688
+ // Save info
1689
+ $saved_avdataoffset = $this->getid3->info['avdataoffset'];
1690
+ $saved_avdataend = $this->getid3->info['avdataend'];
1691
+ $saved_filesize = $this->getid3->info['filesize'];
1692
+
1693
+ // Reset some info
1694
+ $this->getid3->info['avdataoffset'] = 0;
1695
+ $this->getid3->info['avdataend'] = $this->getid3->info['filesize'] = strlen($string);
1696
+
1697
+ // Analyze
1698
+ $this->Analyze();
1699
+
1700
+ // Restore some info
1701
+ $this->getid3->info['avdataoffset'] = $saved_avdataoffset;
1702
+ $this->getid3->info['avdataend'] = $saved_avdataend;
1703
+ $this->getid3->info['filesize'] = $saved_filesize;
1704
+
1705
+ // Exit string mode
1706
+ $this->data_string_flag = false;
1707
+ }
1708
+
1709
+
1710
+ protected function ftell() {
1711
+ if ($this->data_string_flag) {
1712
+ return $this->data_string_position;
1713
+ }
1714
+ return ftell($this->getid3->fp);
1715
+ }
1716
+
1717
+
1718
+ protected function fread($bytes) {
1719
+ if ($this->data_string_flag) {
1720
+ $this->data_string_position += $bytes;
1721
+ return substr($this->data_string, $this->data_string_position - $bytes, $bytes);
1722
+ }
1723
+ return fread($this->getid3->fp, $bytes);
1724
+ }
1725
+
1726
+
1727
+ protected function fseek($bytes, $whence = SEEK_SET) {
1728
+ if ($this->data_string_flag) {
1729
+ switch ($whence) {
1730
+ case SEEK_SET:
1731
+ $this->data_string_position = $bytes;
1732
+ return;
1733
+
1734
+ case SEEK_CUR:
1735
+ $this->data_string_position += $bytes;
1736
+ return;
1737
+
1738
+ case SEEK_END:
1739
+ $this->data_string_position = strlen($this->data_string) + $bytes;
1740
+ return;
1741
+ }
1742
+ }
1743
+ return fseek($this->getid3->fp, $bytes, $whence);
1744
+ }
1745
+
1746
+ }
1747
+
1748
+
1749
+ class getid3_exception extends Exception
1750
+ {
1751
+ public $message;
1752
  }
1753
 
1754
  ?>
getid3/module.audio-video.quicktime.php ADDED
@@ -0,0 +1,2134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /////////////////////////////////////////////////////////////////
3
+ /// getID3() by James Heinrich <info@getid3.org> //
4
+ // available at http://getid3.sourceforge.net //
5
+ // or http://www.getid3.org //
6
+ /////////////////////////////////////////////////////////////////
7
+ // See readme.txt for more details //
8
+ /////////////////////////////////////////////////////////////////
9
+ // //
10
+ // module.audio-video.quicktime.php //
11
+ // module for analyzing Quicktime and MP3-in-MP4 files //
12
+ // dependencies: module.audio.mp3.php //
13
+ // ///
14
+ /////////////////////////////////////////////////////////////////
15
+
16
+ getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio.mp3.php', __FILE__, true);
17
+
18
+ class getid3_quicktime extends getid3_handler
19
+ {
20
+
21
+ var $ReturnAtomData = true;
22
+ var $ParseAllPossibleAtoms = false;
23
+
24
+ function Analyze() {
25
+ $info = &$this->getid3->info;
26
+
27
+ $info['fileformat'] = 'quicktime';
28
+ $info['quicktime']['hinting'] = false;
29
+ $info['quicktime']['controller'] = 'standard'; // may be overridden if 'ctyp' atom is present
30
+
31
+ fseek($this->getid3->fp, $info['avdataoffset'], SEEK_SET);
32
+
33
+ $offset = 0;
34
+ $atomcounter = 0;
35
+
36
+ while ($offset < $info['avdataend']) {
37
+ if (!getid3_lib::intValueSupported($offset)) {
38
+ $info['error'][] = 'Unable to parse atom at offset '.$offset.' because beyond '.round(PHP_INT_MAX / 1073741824).'GB limit of PHP filesystem functions';
39
+ break;
40
+ }
41
+ fseek($this->getid3->fp, $offset, SEEK_SET);
42
+ $AtomHeader = fread($this->getid3->fp, 8);
43
+
44
+ $atomsize = getid3_lib::BigEndian2Int(substr($AtomHeader, 0, 4));
45
+ $atomname = substr($AtomHeader, 4, 4);
46
+
47
+ // 64-bit MOV patch by jlegate�ktnc*com
48
+ if ($atomsize == 1) {
49
+ $atomsize = getid3_lib::BigEndian2Int(fread($this->getid3->fp, 8));
50
+ }
51
+
52
+ $info['quicktime'][$atomname]['name'] = $atomname;
53
+ $info['quicktime'][$atomname]['size'] = $atomsize;
54
+ $info['quicktime'][$atomname]['offset'] = $offset;
55
+
56
+ if (($offset + $atomsize) > $info['avdataend']) {
57
+ $info['error'][] = 'Atom at offset '.$offset.' claims to go beyond end-of-file (length: '.$atomsize.' bytes)';
58
+ return false;
59
+ }
60
+
61
+ if ($atomsize == 0) {
62
+ // Furthermore, for historical reasons the list of atoms is optionally
63
+ // terminated by a 32-bit integer set to 0. If you are writing a program
64
+ // to read user data atoms, you should allow for the terminating 0.
65
+ break;
66
+ }
67
+ switch ($atomname) {
68
+ case 'mdat': // Media DATa atom
69
+ // 'mdat' contains the actual data for the audio/video
70
+ if (($atomsize > 8) && (!isset($info['avdataend_tmp']) || ($info['quicktime'][$atomname]['size'] > ($info['avdataend_tmp'] - $info['avdataoffset'])))) {
71
+
72
+ $info['avdataoffset'] = $info['quicktime'][$atomname]['offset'] + 8;
73
+ $OldAVDataEnd = $info['avdataend'];
74
+ $info['avdataend'] = $info['quicktime'][$atomname]['offset'] + $info['quicktime'][$atomname]['size'];
75
+
76
+ $getid3_temp = new getID3();
77
+ $getid3_temp->openfile($this->getid3->filename);
78
+ $getid3_temp->info['avdataoffset'] = $info['avdataoffset'];
79
+ $getid3_temp->info['avdataend'] = $info['avdataend'];
80
+ $getid3_mp3 = new getid3_mp3($getid3_temp);
81
+ if ($getid3_mp3->MPEGaudioHeaderValid($getid3_mp3->MPEGaudioHeaderDecode(fread($this->getid3->fp, 4)))) {
82
+ $getid3_mp3->getOnlyMPEGaudioInfo($getid3_temp->info['avdataoffset'], false);
83
+ if (!empty($getid3_temp->info['warning'])) {
84
+ foreach ($getid3_temp->info['warning'] as $value) {
85
+ $info['warning'][] = $value;
86
+ }
87
+ }
88
+ if (!empty($getid3_temp->info['mpeg'])) {
89
+ $info['mpeg'] = $getid3_temp->info['mpeg'];
90
+ if (isset($info['mpeg']['audio'])) {
91
+ $info['audio']['dataformat'] = 'mp3';
92
+ $info['audio']['codec'] = (!empty($info['mpeg']['audio']['encoder']) ? $info['mpeg']['audio']['encoder'] : (!empty($info['mpeg']['audio']['codec']) ? $info['mpeg']['audio']['codec'] : (!empty($info['mpeg']['audio']['LAME']) ? 'LAME' :'mp3')));
93
+ $info['audio']['sample_rate'] = $info['mpeg']['audio']['sample_rate'];
94
+ $info['audio']['channels'] = $info['mpeg']['audio']['channels'];
95
+ $info['audio']['bitrate'] = $info['mpeg']['audio']['bitrate'];
96
+ $info['audio']['bitrate_mode'] = strtolower($info['mpeg']['audio']['bitrate_mode']);
97
+ $info['bitrate'] = $info['audio']['bitrate'];
98
+ }
99
+ }
100
+ }
101
+ unset($getid3_mp3, $getid3_temp);
102
+ $info['avdataend'] = $OldAVDataEnd;
103
+ unset($OldAVDataEnd);
104
+
105
+ }
106
+ break;
107
+
108
+ case 'free': // FREE space atom
109
+ case 'skip': // SKIP atom
110
+ case 'wide': // 64-bit expansion placeholder atom
111
+ // 'free', 'skip' and 'wide' are just padding, contains no useful data at all
112
+ break;
113
+
114
+ default:
115
+ $atomHierarchy = array();
116
+ $info['quicktime'][$atomname] = $this->QuicktimeParseAtom($atomname, $atomsize, fread($this->getid3->fp, $atomsize), $offset, $atomHierarchy, $this->ParseAllPossibleAtoms);
117
+ break;
118
+ }
119
+
120
+ $offset += $atomsize;
121
+ $atomcounter++;
122
+ }
123
+
124
+ if (!empty($info['avdataend_tmp'])) {
125
+ // this value is assigned to a temp value and then erased because
126
+ // otherwise any atoms beyond the 'mdat' atom would not get parsed
127
+ $info['avdataend'] = $info['avdataend_tmp'];
128
+ unset($info['avdataend_tmp']);
129
+ }
130
+
131
+ if (!isset($info['bitrate']) && isset($info['playtime_seconds'])) {
132
+ $info['bitrate'] = (($info['avdataend'] - $info['avdataoffset']) * 8) / $info['playtime_seconds'];
133
+ }
134
+ if (isset($info['bitrate']) && !isset($info['audio']['bitrate']) && !isset($info['quicktime']['video'])) {
135
+ $info['audio']['bitrate'] = $info['bitrate'];
136
+ }
137
+ if (!empty($info['playtime_seconds']) && !isset($info['video']['frame_rate']) && !empty($info['quicktime']['stts_framecount'])) {
138
+ foreach ($info['quicktime']['stts_framecount'] as $key => $samples_count) {
139
+ $samples_per_second = $samples_count / $info['playtime_seconds'];
140
+ if ($samples_per_second > 240) {
141
+ // has to be audio samples
142
+ } else {
143
+ $info['video']['frame_rate'] = $samples_per_second;
144
+ break;
145
+ }
146
+ }
147
+ }
148
+ if (($info['audio']['dataformat'] == 'mp4') && empty($info['video']['resolution_x'])) {
149
+ $info['fileformat'] = 'mp4';
150
+ $info['mime_type'] = 'audio/mp4';
151
+ unset($info['video']['dataformat']);
152
+ }
153
+
154
+ if (!$this->ReturnAtomData) {
155
+ unset($info['quicktime']['moov']);
156
+ }
157
+
158
+ if (empty($info['audio']['dataformat']) && !empty($info['quicktime']['audio'])) {
159
+ $info['audio']['dataformat'] = 'quicktime';
160
+ }
161
+ if (empty($info['video']['dataformat']) && !empty($info['quicktime']['video'])) {
162
+ $info['video']['dataformat'] = 'quicktime';
163
+ }
164
+
165
+ return true;
166
+ }
167
+
168
+ function QuicktimeParseAtom($atomname, $atomsize, $atom_data, $baseoffset, &$atomHierarchy, $ParseAllPossibleAtoms) {
169
+ // http://developer.apple.com/techpubs/quicktime/qtdevdocs/APIREF/INDEX/atomalphaindex.htm
170
+
171
+ $info = &$this->getid3->info;
172
+
173
+ $atom_parent = array_pop($atomHierarchy);
174
+ array_push($atomHierarchy, $atomname);
175
+ $atom_structure['hierarchy'] = implode(' ', $atomHierarchy);
176
+ $atom_structure['name'] = $atomname;
177
+ $atom_structure['size'] = $atomsize;
178
+ $atom_structure['offset'] = $baseoffset;
179
+ //echo getid3_lib::PrintHexBytes(substr($atom_data, 0, 8)).'<br>';
180
+ //echo getid3_lib::PrintHexBytes(substr($atom_data, 0, 8), false).'<br><br>';
181
+ switch ($atomname) {
182
+ case 'moov': // MOVie container atom
183
+ case 'trak': // TRAcK container atom
184
+ case 'clip': // CLIPping container atom
185
+ case 'matt': // track MATTe container atom
186
+ case 'edts': // EDiTS container atom
187
+ case 'tref': // Track REFerence container atom
188
+ case 'mdia': // MeDIA container atom
189
+ case 'minf': // Media INFormation container atom
190
+ case 'dinf': // Data INFormation container atom
191
+ case 'udta': // User DaTA container atom
192
+ case 'cmov': // Compressed MOVie container atom
193
+ case 'rmra': // Reference Movie Record Atom
194
+ case 'rmda': // Reference Movie Descriptor Atom
195
+ case 'gmhd': // Generic Media info HeaDer atom (seen on QTVR)
196
+ $atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($atom_data, $baseoffset + 8, $atomHierarchy, $ParseAllPossibleAtoms);
197
+ break;
198
+
199
+ case 'ilst': // Item LiST container atom
200
+ $atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($atom_data, $baseoffset + 8, $atomHierarchy, $ParseAllPossibleAtoms);
201
+
202
+ // some "ilst" atoms contain data atoms that have a numeric name, and the data is far more accessible if the returned array is compacted
203
+ $allnumericnames = true;
204
+ foreach ($atom_structure['subatoms'] as $subatomarray) {
205
+ if (!is_integer($subatomarray['name']) || (count($subatomarray['subatoms']) != 1)) {
206
+ $allnumericnames = false;
207
+ break;
208
+ }
209
+ }
210
+ if ($allnumericnames) {
211
+ $newData = array();
212
+ foreach ($atom_structure['subatoms'] as $subatomarray) {
213
+ foreach ($subatomarray['subatoms'] as $newData_subatomarray) {
214
+ unset($newData_subatomarray['hierarchy'], $newData_subatomarray['name']);
215
+ $newData[$subatomarray['name']] = $newData_subatomarray;
216
+ break;
217
+ }
218
+ }
219
+ $atom_structure['data'] = $newData;
220
+ unset($atom_structure['subatoms']);
221
+ }
222
+ break;
223
+
224
+ case "\x00\x00\x00\x01":
225
+ case "\x00\x00\x00\x02":
226
+ case "\x00\x00\x00\x03":
227
+ case "\x00\x00\x00\x04":
228
+ case "\x00\x00\x00\x05":
229
+ $atomname = getid3_lib::BigEndian2Int($atomname);
230
+ $atom_structure['name'] = $atomname;
231
+ $atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($atom_data, $baseoffset + 8, $atomHierarchy, $ParseAllPossibleAtoms);
232
+ break;
233
+
234
+ case 'stbl': // Sample TaBLe container atom
235
+ $atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($atom_data, $baseoffset + 8, $atomHierarchy, $ParseAllPossibleAtoms);
236
+ $isVideo = false;
237
+ $framerate = 0;
238
+ $framecount = 0;
239
+ foreach ($atom_structure['subatoms'] as $key => $value_array) {
240
+ if (isset($value_array['sample_description_table'])) {
241
+ foreach ($value_array['sample_description_table'] as $key2 => $value_array2) {
242
+ if (isset($value_array2['data_format'])) {
243
+ switch ($value_array2['data_format']) {
244
+ case 'avc1':
245
+ case 'mp4v':
246
+ // video data
247
+ $isVideo = true;
248
+ break;
249
+ case 'mp4a':
250
+ // audio data
251
+ break;
252
+ }
253
+ }
254
+ }
255
+ } elseif (isset($value_array['time_to_sample_table'])) {
256
+ foreach ($value_array['time_to_sample_table'] as $key2 => $value_array2) {
257
+ if (isset($value_array2['sample_count']) && isset($value_array2['sample_duration']) && ($value_array2['sample_duration'] > 0)) {
258
+ $framerate = round($info['quicktime']['time_scale'] / $value_array2['sample_duration'], 3);
259
+ $framecount = $value_array2['sample_count'];
260
+ }
261
+ }
262
+ }
263
+ }
264
+ if ($isVideo && $framerate) {
265
+ $info['quicktime']['video']['frame_rate'] = $framerate;
266
+ $info['video']['frame_rate'] = $info['quicktime']['video']['frame_rate'];
267
+ }
268
+ if ($isVideo && $framecount) {
269
+ $info['quicktime']['video']['frame_count'] = $framecount;
270
+ }
271
+ break;
272
+
273
+
274
+ case 'aART': // Album ARTist
275
+ case 'catg': // CaTeGory
276
+ case 'covr': // COVeR artwork
277
+ case 'cpil': // ComPILation
278
+ case 'cprt': // CoPyRighT
279
+ case 'desc': // DESCription
280
+ case 'disk': // DISK number
281
+ case 'egid': // Episode Global ID
282
+ case 'gnre': // GeNRE
283
+ case 'keyw': // KEYWord
284
+ case 'ldes':
285
+ case 'pcst': // PodCaST
286
+ case 'pgap': // GAPless Playback
287
+ case 'purd': // PURchase Date
288
+ case 'purl': // Podcast URL
289
+ case 'rati':
290
+ case 'rndu':
291
+ case 'rpdu':
292
+ case 'rtng': // RaTiNG
293
+ case 'stik':
294
+ case 'tmpo': // TeMPO (BPM)
295
+ case 'trkn': // TRacK Number
296
+ case 'tves': // TV EpiSode
297
+ case 'tvnn': // TV Network Name
298
+ case 'tvsh': // TV SHow Name
299
+ case 'tvsn': // TV SeasoN
300
+ case 'akID': // iTunes store account type
301
+ case 'apID':
302
+ case 'atID':
303
+ case 'cmID':
304
+ case 'cnID':
305
+ case 'geID':
306
+ case 'plID':
307
+ case 'sfID': // iTunes store country
308
+ case '�alb': // ALBum
309
+ case '�art': // ARTist
310
+ case '�ART':
311
+ case '�aut':
312
+ case '�cmt': // CoMmenT
313
+ case '�com': // COMposer
314
+ case '�cpy':
315
+ case '�day': // content created year
316
+ case '�dir':
317
+ case '�ed1':
318
+ case '�ed2':
319
+ case '�ed3':
320
+ case '�ed4':
321
+ case '�ed5':
322
+ case '�ed6':
323
+ case '�ed7':
324
+ case '�ed8':
325
+ case '�ed9':
326
+ case '�enc':
327
+ case '�fmt':
328
+ case '�gen': // GENre
329
+ case '�grp': // GRouPing
330
+ case '�hst':
331
+ case '�inf':
332
+ case '�lyr': // LYRics
333
+ case '�mak':
334
+ case '�mod':
335
+ case '�nam': // full NAMe
336
+ case '�ope':
337
+ case '�PRD':
338
+ case '�prd':
339
+ case '�prf':
340
+ case '�req':
341
+ case '�src':
342
+ case '�swr':
343
+ case '�too': // encoder
344
+ case '�trk': // TRacK
345
+ case '�url':
346
+ case '�wrn':
347
+ case '�wrt': // WRiTer
348
+ case '----': // itunes specific
349
+ if ($atom_parent == 'udta') {
350
+ // User data atom handler
351
+ $atom_structure['data_length'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 2));
352
+ $atom_structure['language_id'] = getid3_lib::BigEndian2Int(substr($atom_data, 2, 2));
353
+ $atom_structure['data'] = substr($atom_data, 4);
354
+
355
+ $atom_structure['language'] = $this->QuicktimeLanguageLookup($atom_structure['language_id']);
356
+ if (empty($info['comments']['language']) || (!in_array($atom_structure['language'], $info['comments']['language']))) {
357
+ $info['comments']['language'][] = $atom_structure['language'];
358
+ }
359
+ } else {
360
+ // Apple item list box atom handler
361
+ $atomoffset = 0;
362
+ if (substr($atom_data, 2, 2) == "\x10\xB5") {
363
+ // not sure what it means, but observed on iPhone4 data.
364
+ // Each $atom_data has 2 bytes of datasize, plus 0x10B5, then data
365
+ while ($atomoffset < strlen($atom_data)) {
366
+ $boxsmallsize = getid3_lib::BigEndian2Int(substr($atom_data, $atomoffset, 2));
367
+ $boxsmalltype = substr($atom_data, $atomoffset + 2, 2);
368
+ $boxsmalldata = substr($atom_data, $atomoffset + 4, $boxsmallsize);
369
+ switch ($boxsmalltype) {
370
+ case "\x10\xB5":
371
+ $atom_structure['data'] = $boxsmalldata;
372
+ break;
373
+ default:
374
+ $info['warning'][] = 'Unknown QuickTime smallbox type: "'.getid3_lib::PrintHexBytes($boxsmalltype).'" at offset '.$baseoffset;
375
+ $atom_structure['data'] = $atom_data;
376
+ break;
377
+ }
378
+ $atomoffset += (4 + $boxsmallsize);
379
+ }
380
+ } else {
381
+ while ($atomoffset < strlen($atom_data)) {
382
+ $boxsize = getid3_lib::BigEndian2Int(substr($atom_data, $atomoffset, 4));
383
+ $boxtype = substr($atom_data, $atomoffset + 4, 4);
384
+ $boxdata = substr($atom_data, $atomoffset + 8, $boxsize - 8);
385
+
386
+ switch ($boxtype) {
387
+ case 'mean':
388
+ case 'name':
389
+ $atom_structure[$boxtype] = substr($boxdata, 4);
390
+ break;
391
+
392
+ case 'data':
393
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($boxdata, 0, 1));
394
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($boxdata, 1, 3));
395
+ switch ($atom_structure['flags_raw']) {
396
+ case 0: // data flag
397
+ case 21: // tmpo/cpil flag
398
+ switch ($atomname) {
399
+ case 'cpil':
400
+ case 'pcst':
401
+ case 'pgap':
402
+ $atom_structure['data'] = getid3_lib::BigEndian2Int(substr($boxdata, 8, 1));
403
+ break;
404
+
405
+ case 'tmpo':
406
+ $atom_structure['data'] = getid3_lib::BigEndian2Int(substr($boxdata, 8, 2));
407
+ break;
408
+
409
+ case 'disk':
410
+ case 'trkn':
411
+ $num = getid3_lib::BigEndian2Int(substr($boxdata, 10, 2));
412
+ $num_total = getid3_lib::BigEndian2Int(substr($boxdata, 12, 2));
413
+ $atom_structure['data'] = empty($num) ? '' : $num;
414
+ $atom_structure['data'] .= empty($num_total) ? '' : '/'.$num_total;
415
+ break;
416
+
417
+ case 'gnre':
418
+ $GenreID = getid3_lib::BigEndian2Int(substr($boxdata, 8, 4));
419
+ $atom_structure['data'] = getid3_id3v1::LookupGenreName($GenreID - 1);
420
+ break;
421
+
422
+ case 'rtng':
423
+ $atom_structure[$atomname] = getid3_lib::BigEndian2Int(substr($boxdata, 8, 1));
424
+ $atom_structure['data'] = $this->QuicktimeContentRatingLookup($atom_structure[$atomname]);
425
+ break;
426
+
427
+ case 'stik':
428
+ $atom_structure[$atomname] = getid3_lib::BigEndian2Int(substr($boxdata, 8, 1));
429
+ $atom_structure['data'] = $this->QuicktimeSTIKLookup($atom_structure[$atomname]);
430
+ break;
431
+
432
+ case 'sfID':
433
+ $atom_structure[$atomname] = getid3_lib::BigEndian2Int(substr($boxdata, 8, 4));
434
+ $atom_structure['data'] = $this->QuicktimeStoreFrontCodeLookup($atom_structure[$atomname]);
435
+ break;
436
+
437
+ case 'egid':
438
+ case 'purl':
439
+ $atom_structure['data'] = substr($boxdata, 8);
440
+ break;
441
+
442
+ default:
443
+ $atom_structure['data'] = getid3_lib::BigEndian2Int(substr($boxdata, 8, 4));
444
+ }
445
+ break;
446
+
447
+ case 1: // text flag
448
+ case 13: // image flag
449
+ default:
450
+ $atom_structure['data'] = substr($boxdata, 8);
451
+ break;
452
+
453
+ }
454
+ break;
455
+
456
+ default:
457
+ $info['warning'][] = 'Unknown QuickTime box type: "'.getid3_lib::PrintHexBytes($boxtype).'" at offset '.$baseoffset;
458
+ $atom_structure['data'] = $atom_data;
459
+
460
+ }
461
+ $atomoffset += $boxsize;
462
+ }
463
+ }
464
+ }
465
+ $this->CopyToAppropriateCommentsSection($atomname, $atom_structure['data'], $atom_structure['name']);
466
+ break;
467
+
468
+
469
+ case 'play': // auto-PLAY atom
470
+ $atom_structure['autoplay'] = (bool) getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
471
+
472
+ $info['quicktime']['autoplay'] = $atom_structure['autoplay'];
473
+ break;
474
+
475
+
476
+ case 'WLOC': // Window LOCation atom
477
+ $atom_structure['location_x'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 2));
478
+ $atom_structure['location_y'] = getid3_lib::BigEndian2Int(substr($atom_data, 2, 2));
479
+ break;
480
+
481
+
482
+ case 'LOOP': // LOOPing atom
483
+ case 'SelO': // play SELection Only atom
484
+ case 'AllF': // play ALL Frames atom
485
+ $atom_structure['data'] = getid3_lib::BigEndian2Int($atom_data);
486
+ break;
487
+
488
+
489
+ case 'name': //
490
+ case 'MCPS': // Media Cleaner PRo
491
+ case '@PRM': // adobe PReMiere version
492
+ case '@PRQ': // adobe PRemiere Quicktime version
493
+ $atom_structure['data'] = $atom_data;
494
+ break;
495
+
496
+
497
+ case 'cmvd': // Compressed MooV Data atom
498
+ // Code by ubergeek�ubergeek*tv based on information from
499
+ // http://developer.apple.com/quicktime/icefloe/dispatch012.html
500
+ $atom_structure['unCompressedSize'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 4));
501
+
502
+ $CompressedFileData = substr($atom_data, 4);
503
+ if ($UncompressedHeader = @gzuncompress($CompressedFileData)) {
504
+ $atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($UncompressedHeader, 0, $atomHierarchy, $ParseAllPossibleAtoms);
505
+ } else {
506
+ $info['warning'][] = 'Error decompressing compressed MOV atom at offset '.$atom_structure['offset'];
507
+ }
508
+ break;
509
+
510
+
511
+ case 'dcom': // Data COMpression atom
512
+ $atom_structure['compression_id'] = $atom_data;
513
+ $atom_structure['compression_text'] = $this->QuicktimeDCOMLookup($atom_data);
514
+ break;
515
+
516
+
517
+ case 'rdrf': // Reference movie Data ReFerence atom
518
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
519
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3));
520
+ $atom_structure['flags']['internal_data'] = (bool) ($atom_structure['flags_raw'] & 0x000001);
521
+
522
+ $atom_structure['reference_type_name'] = substr($atom_data, 4, 4);
523
+ $atom_structure['reference_length'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
524
+ switch ($atom_structure['reference_type_name']) {
525
+ case 'url ':
526
+ $atom_structure['url'] = $this->NoNullString(substr($atom_data, 12));
527
+ break;
528
+
529
+ case 'alis':
530
+ $atom_structure['file_alias'] = substr($atom_data, 12);
531
+ break;
532
+
533
+ case 'rsrc':
534
+ $atom_structure['resource_alias'] = substr($atom_data, 12);
535
+ break;
536
+
537
+ default:
538
+ $atom_structure['data'] = substr($atom_data, 12);
539
+ break;
540
+ }
541
+ break;
542
+
543
+
544
+ case 'rmqu': // Reference Movie QUality atom
545
+ $atom_structure['movie_quality'] = getid3_lib::BigEndian2Int($atom_data);
546
+ break;
547
+
548
+
549
+ case 'rmcs': // Reference Movie Cpu Speed atom
550
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
551
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
552
+ $atom_structure['cpu_speed_rating'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2));
553
+ break;
554
+
555
+
556
+ case 'rmvc': // Reference Movie Version Check atom
557
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
558
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
559
+ $atom_structure['gestalt_selector'] = substr($atom_data, 4, 4);
560
+ $atom_structure['gestalt_value_mask'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
561
+ $atom_structure['gestalt_value'] = getid3_lib::BigEndian2Int(substr($atom_data, 12, 4));
562
+ $atom_structure['gestalt_check_type'] = getid3_lib::BigEndian2Int(substr($atom_data, 14, 2));
563
+ break;
564
+
565
+
566
+ case 'rmcd': // Reference Movie Component check atom
567
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
568
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
569
+ $atom_structure['component_type'] = substr($atom_data, 4, 4);
570
+ $atom_structure['component_subtype'] = substr($atom_data, 8, 4);
571
+ $atom_structure['component_manufacturer'] = substr($atom_data, 12, 4);
572
+ $atom_structure['component_flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 16, 4));
573
+ $atom_structure['component_flags_mask'] = getid3_lib::BigEndian2Int(substr($atom_data, 20, 4));
574
+ $atom_structure['component_min_version'] = getid3_lib::BigEndian2Int(substr($atom_data, 24, 4));
575
+ break;
576
+
577
+
578
+ case 'rmdr': // Reference Movie Data Rate atom
579
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
580
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
581
+ $atom_structure['data_rate'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
582
+
583
+ $atom_structure['data_rate_bps'] = $atom_structure['data_rate'] * 10;
584
+ break;
585
+
586
+
587
+ case 'rmla': // Reference Movie Language Atom
588
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
589
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
590
+ $atom_structure['language_id'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2));
591
+
592
+ $atom_structure['language'] = $this->QuicktimeLanguageLookup($atom_structure['language_id']);
593
+ if (empty($info['comments']['language']) || (!in_array($atom_structure['language'], $info['comments']['language']))) {
594
+ $info['comments']['language'][] = $atom_structure['language'];
595
+ }
596
+ break;
597
+
598
+
599
+ case 'rmla': // Reference Movie Language Atom
600
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
601
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
602
+ $atom_structure['track_id'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2));
603
+ break;
604
+
605
+
606
+ case 'ptv ': // Print To Video - defines a movie's full screen mode
607
+ // http://developer.apple.com/documentation/QuickTime/APIREF/SOURCESIV/at_ptv-_pg.htm
608
+ $atom_structure['display_size_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 2));
609
+ $atom_structure['reserved_1'] = getid3_lib::BigEndian2Int(substr($atom_data, 2, 2)); // hardcoded: 0x0000
610
+ $atom_structure['reserved_2'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2)); // hardcoded: 0x0000
611
+ $atom_structure['slide_show_flag'] = getid3_lib::BigEndian2Int(substr($atom_data, 6, 1));
612
+ $atom_structure['play_on_open_flag'] = getid3_lib::BigEndian2Int(substr($atom_data, 7, 1));
613
+
614
+ $atom_structure['flags']['play_on_open'] = (bool) $atom_structure['play_on_open_flag'];
615
+ $atom_structure['flags']['slide_show'] = (bool) $atom_structure['slide_show_flag'];
616
+
617
+ $ptv_lookup[0] = 'normal';
618
+ $ptv_lookup[1] = 'double';
619
+ $ptv_lookup[2] = 'half';
620
+ $ptv_lookup[3] = 'full';
621
+ $ptv_lookup[4] = 'current';
622
+ if (isset($ptv_lookup[$atom_structure['display_size_raw']])) {
623
+ $atom_structure['display_size'] = $ptv_lookup[$atom_structure['display_size_raw']];
624
+ } else {
625
+ $info['warning'][] = 'unknown "ptv " display constant ('.$atom_structure['display_size_raw'].')';
626
+ }
627
+ break;
628
+
629
+
630
+ case 'stsd': // Sample Table Sample Description atom
631
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
632
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
633
+ $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
634
+ $stsdEntriesDataOffset = 8;
635
+ for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
636
+ $atom_structure['sample_description_table'][$i]['size'] = getid3_lib::BigEndian2Int(substr($atom_data, $stsdEntriesDataOffset, 4));
637
+ $stsdEntriesDataOffset += 4;
638
+ $atom_structure['sample_description_table'][$i]['data_format'] = substr($atom_data, $stsdEntriesDataOffset, 4);
639
+ $stsdEntriesDataOffset += 4;
640
+ $atom_structure['sample_description_table'][$i]['reserved'] = getid3_lib::BigEndian2Int(substr($atom_data, $stsdEntriesDataOffset, 6));
641
+ $stsdEntriesDataOffset += 6;
642
+ $atom_structure['sample_description_table'][$i]['reference_index'] = getid3_lib::BigEndian2Int(substr($atom_data, $stsdEntriesDataOffset, 2));
643
+ $stsdEntriesDataOffset += 2;
644
+ $atom_structure['sample_description_table'][$i]['data'] = substr($atom_data, $stsdEntriesDataOffset, ($atom_structure['sample_description_table'][$i]['size'] - 4 - 4 - 6 - 2));
645
+ $stsdEntriesDataOffset += ($atom_structure['sample_description_table'][$i]['size'] - 4 - 4 - 6 - 2);
646
+
647
+ $atom_structure['sample_description_table'][$i]['encoder_version'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 0, 2));
648
+ $atom_structure['sample_description_table'][$i]['encoder_revision'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 2, 2));
649
+ $atom_structure['sample_description_table'][$i]['encoder_vendor'] = substr($atom_structure['sample_description_table'][$i]['data'], 4, 4);
650
+
651
+ switch ($atom_structure['sample_description_table'][$i]['encoder_vendor']) {
652
+
653
+ case "\x00\x00\x00\x00":
654
+ // audio atom
655
+ $atom_structure['sample_description_table'][$i]['audio_channels'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 8, 2));
656
+ $atom_structure['sample_description_table'][$i]['audio_bit_depth'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 10, 2));
657
+ $atom_structure['sample_description_table'][$i]['audio_compression_id'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 12, 2));
658
+ $atom_structure['sample_description_table'][$i]['audio_packet_size'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 14, 2));
659
+ $atom_structure['sample_description_table'][$i]['audio_sample_rate'] = getid3_lib::FixedPoint16_16(substr($atom_structure['sample_description_table'][$i]['data'], 16, 4));
660
+
661
+ switch ($atom_structure['sample_description_table'][$i]['data_format']) {
662
+ case 'avc1':
663
+ case 'mp4v':
664
+ $info['fileformat'] = 'mp4';
665
+ $info['video']['fourcc'] = $atom_structure['sample_description_table'][$i]['data_format'];
666
+ //$info['warning'][] = 'This version of getID3() ['.$this->getid3->version().'] does not fully support MPEG-4 audio/video streams'; // 2011-02-18: why am I warning about this again? What's not supported?
667
+ break;
668
+
669
+ case 'qtvr':
670
+ $info['video']['dataformat'] = 'quicktimevr';
671
+ break;
672
+
673
+ case 'mp4a':
674
+ default:
675
+ $info['quicktime']['audio']['codec'] = $this->QuicktimeAudioCodecLookup($atom_structure['sample_description_table'][$i]['data_format']);
676
+ $info['quicktime']['audio']['sample_rate'] = $atom_structure['sample_description_table'][$i]['audio_sample_rate'];
677
+ $info['quicktime']['audio']['channels'] = $atom_structure['sample_description_table'][$i]['audio_channels'];
678
+ $info['quicktime']['audio']['bit_depth'] = $atom_structure['sample_description_table'][$i]['audio_bit_depth'];
679
+ $info['audio']['codec'] = $info['quicktime']['audio']['codec'];
680
+ $info['audio']['sample_rate'] = $info['quicktime']['audio']['sample_rate'];
681
+ $info['audio']['channels'] = $info['quicktime']['audio']['channels'];
682
+ $info['audio']['bits_per_sample'] = $info['quicktime']['audio']['bit_depth'];
683
+ switch ($atom_structure['sample_description_table'][$i]['data_format']) {
684
+ case 'raw ': // PCM
685
+ case 'alac': // Apple Lossless Audio Codec
686
+ $info['audio']['lossless'] = true;
687
+ break;
688
+ default:
689
+ $info['audio']['lossless'] = false;
690
+ break;
691
+ }
692
+ break;
693
+ }
694
+ break;
695
+
696
+ default:
697
+ switch ($atom_structure['sample_description_table'][$i]['data_format']) {
698
+ case 'mp4s':
699
+ $info['fileformat'] = 'mp4';
700
+ break;
701
+
702
+ default:
703
+ // video atom
704
+ $atom_structure['sample_description_table'][$i]['video_temporal_quality'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 8, 4));
705
+ $atom_structure['sample_description_table'][$i]['video_spatial_quality'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 12, 4));
706
+ $atom_structure['sample_description_table'][$i]['video_frame_width'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 16, 2));
707
+ $atom_structure['sample_description_table'][$i]['video_frame_height'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 18, 2));
708
+ $atom_structure['sample_description_table'][$i]['video_resolution_x'] = getid3_lib::FixedPoint16_16(substr($atom_structure['sample_description_table'][$i]['data'], 20, 4));
709
+ $atom_structure['sample_description_table'][$i]['video_resolution_y'] = getid3_lib::FixedPoint16_16(substr($atom_structure['sample_description_table'][$i]['data'], 24, 4));
710
+ $atom_structure['sample_description_table'][$i]['video_data_size'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 28, 4));
711
+ $atom_structure['sample_description_table'][$i]['video_frame_count'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 32, 2));
712
+ $atom_structure['sample_description_table'][$i]['video_encoder_name_len'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 34, 1));
713
+ $atom_structure['sample_description_table'][$i]['video_encoder_name'] = substr($atom_structure['sample_description_table'][$i]['data'], 35, $atom_structure['sample_description_table'][$i]['video_encoder_name_len']);
714
+ $atom_structure['sample_description_table'][$i]['video_pixel_color_depth'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 66, 2));
715
+ $atom_structure['sample_description_table'][$i]['video_color_table_id'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 68, 2));
716
+
717
+ $atom_structure['sample_description_table'][$i]['video_pixel_color_type'] = (($atom_structure['sample_description_table'][$i]['video_pixel_color_depth'] > 32) ? 'grayscale' : 'color');
718
+ $atom_structure['sample_description_table'][$i]['video_pixel_color_name'] = $this->QuicktimeColorNameLookup($atom_structure['sample_description_table'][$i]['video_pixel_color_depth']);
719
+
720
+ if ($atom_structure['sample_description_table'][$i]['video_pixel_color_name'] != 'invalid') {
721
+ $info['quicktime']['video']['codec_fourcc'] = $atom_structure['sample_description_table'][$i]['data_format'];
722
+ $info['quicktime']['video']['codec_fourcc_lookup'] = $this->QuicktimeVideoCodecLookup($atom_structure['sample_description_table'][$i]['data_format']);
723
+ $info['quicktime']['video']['codec'] = (($atom_structure['sample_description_table'][$i]['video_encoder_name_len'] > 0) ? $atom_structure['sample_description_table'][$i]['video_encoder_name'] : $atom_structure['sample_description_table'][$i]['data_format']);
724
+ $info['quicktime']['video']['color_depth'] = $atom_structure['sample_description_table'][$i]['video_pixel_color_depth'];
725
+ $info['quicktime']['video']['color_depth_name'] = $atom_structure['sample_description_table'][$i]['video_pixel_color_name'];
726
+
727
+ $info['video']['codec'] = $info['quicktime']['video']['codec'];
728
+ $info['video']['bits_per_sample'] = $info['quicktime']['video']['color_depth'];
729
+ }
730
+ $info['video']['lossless'] = false;
731
+ $info['video']['pixel_aspect_ratio'] = (float) 1;
732
+ break;
733
+ }
734
+ break;
735
+ }
736
+ switch (strtolower($atom_structure['sample_description_table'][$i]['data_format'])) {
737
+ case 'mp4a':
738
+ $info['audio']['dataformat'] = 'mp4';
739
+ $info['quicktime']['audio']['codec'] = 'mp4';
740
+ break;
741
+
742
+ case '3ivx':
743
+ case '3iv1':
744
+ case '3iv2':
745
+ $info['video']['dataformat'] = '3ivx';
746
+ break;
747
+
748
+ case 'xvid':
749
+ $info['video']['dataformat'] = 'xvid';
750
+ break;
751
+
752
+ case 'mp4v':
753
+ $info['video']['dataformat'] = 'mpeg4';
754
+ break;
755
+
756
+ case 'divx':
757
+ case 'div1':
758
+ case 'div2':
759
+ case 'div3':
760
+ case 'div4':
761
+ case 'div5':
762
+ case 'div6':
763
+ $info['video']['dataformat'] = 'divx';
764
+ break;
765
+
766
+ default:
767
+ // do nothing
768
+ break;
769
+ }
770
+ unset($atom_structure['sample_description_table'][$i]['data']);
771
+ }
772
+ break;
773
+
774
+
775
+ case 'stts': // Sample Table Time-to-Sample atom
776
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
777
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
778
+ $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
779
+ $sttsEntriesDataOffset = 8;
780
+ //$FrameRateCalculatorArray = array();
781
+ $frames_count = 0;
782
+ for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
783
+ $atom_structure['time_to_sample_table'][$i]['sample_count'] = getid3_lib::BigEndian2Int(substr($atom_data, $sttsEntriesDataOffset, 4));
784
+ $sttsEntriesDataOffset += 4;
785
+ $atom_structure['time_to_sample_table'][$i]['sample_duration'] = getid3_lib::BigEndian2Int(substr($atom_data, $sttsEntriesDataOffset, 4));
786
+ $sttsEntriesDataOffset += 4;
787
+
788
+ $frames_count += $atom_structure['time_to_sample_table'][$i]['sample_count'];
789
+
790
+ // THIS SECTION REPLACED WITH CODE IN "stbl" ATOM
791
+ //if (!empty($info['quicktime']['time_scale']) && ($atom_structure['time_to_sample_table'][$i]['sample_duration'] > 0)) {
792
+ // $stts_new_framerate = $info['quicktime']['time_scale'] / $atom_structure['time_to_sample_table'][$i]['sample_duration'];
793
+ // if ($stts_new_framerate <= 60) {
794
+ // // some atoms have durations of "1" giving a very large framerate, which probably is not right
795
+ // $info['video']['frame_rate'] = max($info['video']['frame_rate'], $stts_new_framerate);
796
+ // }
797
+ //}
798
+ //
799
+ //$FrameRateCalculatorArray[($info['quicktime']['time_scale'] / $atom_structure['time_to_sample_table'][$i]['sample_duration'])] += $atom_structure['time_to_sample_table'][$i]['sample_count'];
800
+ }
801
+ $info['quicktime']['stts_framecount'][] = $frames_count;
802
+ //$sttsFramesTotal = 0;
803
+ //$sttsSecondsTotal = 0;
804
+ //foreach ($FrameRateCalculatorArray as $frames_per_second => $frame_count) {
805
+ // if (($frames_per_second > 60) || ($frames_per_second < 1)) {
806
+ // // not video FPS information, probably audio information
807
+ // $sttsFramesTotal = 0;
808
+ // $sttsSecondsTotal = 0;
809
+ // break;
810
+ // }
811
+ // $sttsFramesTotal += $frame_count;
812
+ // $sttsSecondsTotal += $frame_count / $frames_per_second;
813
+ //}
814
+ //if (($sttsFramesTotal > 0) && ($sttsSecondsTotal > 0)) {
815
+ // if (($sttsFramesTotal / $sttsSecondsTotal) > $info['video']['frame_rate']) {
816
+ // $info['video']['frame_rate'] = $sttsFramesTotal / $sttsSecondsTotal;
817
+ // }
818
+ //}
819
+ break;
820
+
821
+
822
+ case 'stss': // Sample Table Sync Sample (key frames) atom
823
+ if ($ParseAllPossibleAtoms) {
824
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
825
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
826
+ $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
827
+ $stssEntriesDataOffset = 8;
828
+ for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
829
+ $atom_structure['time_to_sample_table'][$i] = getid3_lib::BigEndian2Int(substr($atom_data, $stssEntriesDataOffset, 4));
830
+ $stssEntriesDataOffset += 4;
831
+ }
832
+ }
833
+ break;
834
+
835
+
836
+ case 'stsc': // Sample Table Sample-to-Chunk atom
837
+ if ($ParseAllPossibleAtoms) {
838
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
839
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
840
+ $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
841
+ $stscEntriesDataOffset = 8;
842
+ for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
843
+ $atom_structure['sample_to_chunk_table'][$i]['first_chunk'] = getid3_lib::BigEndian2Int(substr($atom_data, $stscEntriesDataOffset, 4));
844
+ $stscEntriesDataOffset += 4;
845
+ $atom_structure['sample_to_chunk_table'][$i]['samples_per_chunk'] = getid3_lib::BigEndian2Int(substr($atom_data, $stscEntriesDataOffset, 4));
846
+ $stscEntriesDataOffset += 4;
847
+ $atom_structure['sample_to_chunk_table'][$i]['sample_description'] = getid3_lib::BigEndian2Int(substr($atom_data, $stscEntriesDataOffset, 4));
848
+ $stscEntriesDataOffset += 4;
849
+ }
850
+ }
851
+ break;
852
+
853
+
854
+ case 'stsz': // Sample Table SiZe atom
855
+ if ($ParseAllPossibleAtoms) {
856
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
857
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
858
+ $atom_structure['sample_size'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
859
+ $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
860
+ $stszEntriesDataOffset = 12;
861
+ if ($atom_structure['sample_size'] == 0) {
862
+ for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
863
+ $atom_structure['sample_size_table'][$i] = getid3_lib::BigEndian2Int(substr($atom_data, $stszEntriesDataOffset, 4));
864
+ $stszEntriesDataOffset += 4;
865
+ }
866
+ }
867
+ }
868
+ break;
869
+
870
+
871
+ case 'stco': // Sample Table Chunk Offset atom
872
+ if ($ParseAllPossibleAtoms) {
873
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
874
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
875
+ $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
876
+ $stcoEntriesDataOffset = 8;
877
+ for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
878
+ $atom_structure['chunk_offset_table'][$i] = getid3_lib::BigEndian2Int(substr($atom_data, $stcoEntriesDataOffset, 4));
879
+ $stcoEntriesDataOffset += 4;
880
+ }
881
+ }
882
+ break;
883
+
884
+
885
+ case 'co64': // Chunk Offset 64-bit (version of "stco" that supports > 2GB files)
886
+ if ($ParseAllPossibleAtoms) {
887
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
888
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
889
+ $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
890
+ $stcoEntriesDataOffset = 8;
891
+ for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
892
+ $atom_structure['chunk_offset_table'][$i] = getid3_lib::BigEndian2Int(substr($atom_data, $stcoEntriesDataOffset, 8));
893
+ $stcoEntriesDataOffset += 8;
894
+ }
895
+ }
896
+ break;
897
+
898
+
899
+ case 'dref': // Data REFerence atom
900
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
901
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
902
+ $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
903
+ $drefDataOffset = 8;
904
+ for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
905
+ $atom_structure['data_references'][$i]['size'] = getid3_lib::BigEndian2Int(substr($atom_data, $drefDataOffset, 4));
906
+ $drefDataOffset += 4;
907
+ $atom_structure['data_references'][$i]['type'] = substr($atom_data, $drefDataOffset, 4);
908
+ $drefDataOffset += 4;
909
+ $atom_structure['data_references'][$i]['version'] = getid3_lib::BigEndian2Int(substr($atom_data, $drefDataOffset, 1));
910
+ $drefDataOffset += 1;
911
+ $atom_structure['data_references'][$i]['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, $drefDataOffset, 3)); // hardcoded: 0x0000
912
+ $drefDataOffset += 3;
913
+ $atom_structure['data_references'][$i]['data'] = substr($atom_data, $drefDataOffset, ($atom_structure['data_references'][$i]['size'] - 4 - 4 - 1 - 3));
914
+ $drefDataOffset += ($atom_structure['data_references'][$i]['size'] - 4 - 4 - 1 - 3);
915
+
916
+ $atom_structure['data_references'][$i]['flags']['self_reference'] = (bool) ($atom_structure['data_references'][$i]['flags_raw'] & 0x001);
917
+ }
918
+ break;
919
+
920
+
921
+ case 'gmin': // base Media INformation atom
922
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
923
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
924
+ $atom_structure['graphics_mode'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2));
925
+ $atom_structure['opcolor_red'] = getid3_lib::BigEndian2Int(substr($atom_data, 6, 2));
926
+ $atom_structure['opcolor_green'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 2));
927
+ $atom_structure['opcolor_blue'] = getid3_lib::BigEndian2Int(substr($atom_data, 10, 2));
928
+ $atom_structure['balance'] = getid3_lib::BigEndian2Int(substr($atom_data, 12, 2));
929
+ $atom_structure['reserved'] = getid3_lib::BigEndian2Int(substr($atom_data, 14, 2));
930
+ break;
931
+
932
+
933
+ case 'smhd': // Sound Media information HeaDer atom
934
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
935
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
936
+ $atom_structure['balance'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2));
937
+ $atom_structure['reserved'] = getid3_lib::BigEndian2Int(substr($atom_data, 6, 2));
938
+ break;
939
+
940
+
941
+ case 'vmhd': // Video Media information HeaDer atom
942
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
943
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3));
944
+ $atom_structure['graphics_mode'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2));
945
+ $atom_structure['opcolor_red'] = getid3_lib::BigEndian2Int(substr($atom_data, 6, 2));
946
+ $atom_structure['opcolor_green'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 2));
947
+ $atom_structure['opcolor_blue'] = getid3_lib::BigEndian2Int(substr($atom_data, 10, 2));
948
+
949
+ $atom_structure['flags']['no_lean_ahead'] = (bool) ($atom_structure['flags_raw'] & 0x001);
950
+ break;
951
+
952
+
953
+ case 'hdlr': // HanDLeR reference atom
954
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
955
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
956
+ $atom_structure['component_type'] = substr($atom_data, 4, 4);
957
+ $atom_structure['component_subtype'] = substr($atom_data, 8, 4);
958
+ $atom_structure['component_manufacturer'] = substr($atom_data, 12, 4);
959
+ $atom_structure['component_flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 16, 4));
960
+ $atom_structure['component_flags_mask'] = getid3_lib::BigEndian2Int(substr($atom_data, 20, 4));
961
+ $atom_structure['component_name'] = $this->Pascal2String(substr($atom_data, 24));
962
+
963
+ if (($atom_structure['component_subtype'] == 'STpn') && ($atom_structure['component_manufacturer'] == 'zzzz')) {
964
+ $info['video']['dataformat'] = 'quicktimevr';
965
+ }
966
+ break;
967
+
968
+
969
+ case 'mdhd': // MeDia HeaDer atom
970
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
971
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
972
+ $atom_structure['creation_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
973
+ $atom_structure['modify_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
974
+ $atom_structure['time_scale'] = getid3_lib::BigEndian2Int(substr($atom_data, 12, 4));
975
+ $atom_structure['duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 16, 4));
976
+ $atom_structure['language_id'] = getid3_lib::BigEndian2Int(substr($atom_data, 20, 2));
977
+ $atom_structure['quality'] = getid3_lib::BigEndian2Int(substr($atom_data, 22, 2));
978
+
979
+ if ($atom_structure['time_scale'] == 0) {
980
+ $info['error'][] = 'Corrupt Quicktime file: mdhd.time_scale == zero';
981
+ return false;
982
+ }
983
+ $info['quicktime']['time_scale'] = (isset($info['quicktime']['time_scale']) ? max($info['quicktime']['time_scale'], $atom_structure['time_scale']) : $atom_structure['time_scale']);
984
+
985
+ $atom_structure['creation_time_unix'] = getid3_lib::DateMac2Unix($atom_structure['creation_time']);
986
+ $atom_structure['modify_time_unix'] = getid3_lib::DateMac2Unix($atom_structure['modify_time']);
987
+ $atom_structure['playtime_seconds'] = $atom_structure['duration'] / $atom_structure['time_scale'];
988
+ $atom_structure['language'] = $this->QuicktimeLanguageLookup($atom_structure['language_id']);
989
+ if (empty($info['comments']['language']) || (!in_array($atom_structure['language'], $info['comments']['language']))) {
990
+ $info['comments']['language'][] = $atom_structure['language'];
991
+ }
992
+ break;
993
+
994
+
995
+ case 'pnot': // Preview atom
996
+ $atom_structure['modification_date'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 4)); // "standard Macintosh format"
997
+ $atom_structure['version_number'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2)); // hardcoded: 0x00
998
+ $atom_structure['atom_type'] = substr($atom_data, 6, 4); // usually: 'PICT'
999
+ $atom_structure['atom_index'] = getid3_lib::BigEndian2Int(substr($atom_data, 10, 2)); // usually: 0x01
1000
+
1001
+ $atom_structure['modification_date_unix'] = getid3_lib::DateMac2Unix($atom_structure['modification_date']);
1002
+ break;
1003
+
1004
+
1005
+ case 'crgn': // Clipping ReGioN atom
1006
+ $atom_structure['region_size'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 2)); // The Region size, Region boundary box,
1007
+ $atom_structure['boundary_box'] = getid3_lib::BigEndian2Int(substr($atom_data, 2, 8)); // and Clipping region data fields
1008
+ $atom_structure['clipping_data'] = substr($atom_data, 10); // constitute a QuickDraw region.
1009
+ break;
1010
+
1011
+
1012
+ case 'load': // track LOAD settings atom
1013
+ $atom_structure['preload_start_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 4));
1014
+ $atom_structure['preload_duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
1015
+ $atom_structure['preload_flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
1016
+ $atom_structure['default_hints_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 12, 4));
1017
+
1018
+ $atom_structure['default_hints']['double_buffer'] = (bool) ($atom_structure['default_hints_raw'] & 0x0020);
1019
+ $atom_structure['default_hints']['high_quality'] = (bool) ($atom_structure['default_hints_raw'] & 0x0100);
1020
+ break;
1021
+
1022
+
1023
+ case 'tmcd': // TiMe CoDe atom
1024
+ case 'chap': // CHAPter list atom
1025
+ case 'sync': // SYNChronization atom
1026
+ case 'scpt': // tranSCriPT atom
1027
+ case 'ssrc': // non-primary SouRCe atom
1028
+ for ($i = 0; $i < (strlen($atom_data) % 4); $i++) {
1029
+ $atom_structure['track_id'][$i] = getid3_lib::BigEndian2Int(substr($atom_data, $i * 4, 4));
1030
+ }
1031
+ break;
1032
+
1033
+
1034
+ case 'elst': // Edit LiST atom
1035
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
1036
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
1037
+ $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
1038
+ for ($i = 0; $i < $atom_structure['number_entries']; $i++ ) {
1039
+ $atom_structure['edit_list'][$i]['track_duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 8 + ($i * 12) + 0, 4));
1040
+ $atom_structure['edit_list'][$i]['media_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 8 + ($i * 12) + 4, 4));
1041
+ $atom_structure['edit_list'][$i]['media_rate'] = getid3_lib::FixedPoint16_16(substr($atom_data, 8 + ($i * 12) + 8, 4));
1042
+ }
1043
+ break;
1044
+
1045
+
1046
+ case 'kmat': // compressed MATte atom
1047
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
1048
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
1049
+ $atom_structure['matte_data_raw'] = substr($atom_data, 4);
1050
+ break;
1051
+
1052
+
1053
+ case 'ctab': // Color TABle atom
1054
+ $atom_structure['color_table_seed'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 4)); // hardcoded: 0x00000000
1055
+ $atom_structure['color_table_flags'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2)); // hardcoded: 0x8000
1056
+ $atom_structure['color_table_size'] = getid3_lib::BigEndian2Int(substr($atom_data, 6, 2)) + 1;
1057
+ for ($colortableentry = 0; $colortableentry < $atom_structure['color_table_size']; $colortableentry++) {
1058
+ $atom_structure['color_table'][$colortableentry]['alpha'] = getid3_lib::BigEndian2Int(substr($atom_data, 8 + ($colortableentry * 8) + 0, 2));
1059
+ $atom_structure['color_table'][$colortableentry]['red'] = getid3_lib::BigEndian2Int(substr($atom_data, 8 + ($colortableentry * 8) + 2, 2));
1060
+ $atom_structure['color_table'][$colortableentry]['green'] = getid3_lib::BigEndian2Int(substr($atom_data, 8 + ($colortableentry * 8) + 4, 2));
1061
+ $atom_structure['color_table'][$colortableentry]['blue'] = getid3_lib::BigEndian2Int(substr($atom_data, 8 + ($colortableentry * 8) + 6, 2));
1062
+ }
1063
+ break;
1064
+
1065
+
1066
+ case 'mvhd': // MoVie HeaDer atom
1067
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
1068
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3));
1069
+ $atom_structure['creation_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
1070
+ $atom_structure['modify_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
1071
+ $atom_structure['time_scale'] = getid3_lib::BigEndian2Int(substr($atom_data, 12, 4));
1072
+ $atom_structure['duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 16, 4));
1073
+ $atom_structure['preferred_rate'] = getid3_lib::FixedPoint16_16(substr($atom_data, 20, 4));
1074
+ $atom_structure['preferred_volume'] = getid3_lib::FixedPoint8_8(substr($atom_data, 24, 2));
1075
+ $atom_structure['reserved'] = substr($atom_data, 26, 10);
1076
+ $atom_structure['matrix_a'] = getid3_lib::FixedPoint16_16(substr($atom_data, 36, 4));
1077
+ $atom_structure['matrix_b'] = getid3_lib::FixedPoint16_16(substr($atom_data, 40, 4));
1078
+ $atom_structure['matrix_u'] = getid3_lib::FixedPoint2_30(substr($atom_data, 44, 4));
1079
+ $atom_structure['matrix_c'] = getid3_lib::FixedPoint16_16(substr($atom_data, 48, 4));
1080
+ $atom_structure['matrix_d'] = getid3_lib::FixedPoint16_16(substr($atom_data, 52, 4));
1081
+ $atom_structure['matrix_v'] = getid3_lib::FixedPoint2_30(substr($atom_data, 56, 4));
1082
+ $atom_structure['matrix_x'] = getid3_lib::FixedPoint16_16(substr($atom_data, 60, 4));
1083
+ $atom_structure['matrix_y'] = getid3_lib::FixedPoint16_16(substr($atom_data, 64, 4));
1084
+ $atom_structure['matrix_w'] = getid3_lib::FixedPoint2_30(substr($atom_data, 68, 4));
1085
+ $atom_structure['preview_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 72, 4));
1086
+ $atom_structure['preview_duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 76, 4));
1087
+ $atom_structure['poster_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 80, 4));
1088
+ $atom_structure['selection_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 84, 4));
1089
+ $atom_structure['selection_duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 88, 4));
1090
+ $atom_structure['current_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 92, 4));
1091
+ $atom_structure['next_track_id'] = getid3_lib::BigEndian2Int(substr($atom_data, 96, 4));
1092
+
1093
+ if ($atom_structure['time_scale'] == 0) {
1094
+ $info['error'][] = 'Corrupt Quicktime file: mvhd.time_scale == zero';
1095
+ return false;
1096
+ }
1097
+ $atom_structure['creation_time_unix'] = getid3_lib::DateMac2Unix($atom_structure['creation_time']);
1098
+ $atom_structure['modify_time_unix'] = getid3_lib::DateMac2Unix($atom_structure['modify_time']);
1099
+ $info['quicktime']['time_scale'] = (isset($info['quicktime']['time_scale']) ? max($info['quicktime']['time_scale'], $atom_structure['time_scale']) : $atom_structure['time_scale']);
1100
+ $info['quicktime']['display_scale'] = $atom_structure['matrix_a'];
1101
+ $info['playtime_seconds'] = $atom_structure['duration'] / $atom_structure['time_scale'];
1102
+ break;
1103
+
1104
+
1105
+ case 'tkhd': // TracK HeaDer atom
1106
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
1107
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3));
1108
+ $atom_structure['creation_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
1109
+ $atom_structure['modify_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
1110
+ $atom_structure['trackid'] = getid3_lib::BigEndian2Int(substr($atom_data, 12, 4));
1111
+ $atom_structure['reserved1'] = getid3_lib::BigEndian2Int(substr($atom_data, 16, 4));
1112
+ $atom_structure['duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 20, 4));
1113
+ $atom_structure['reserved2'] = getid3_lib::BigEndian2Int(substr($atom_data, 24, 8));
1114
+ $atom_structure['layer'] = getid3_lib::BigEndian2Int(substr($atom_data, 32, 2));
1115
+ $atom_structure['alternate_group'] = getid3_lib::BigEndian2Int(substr($atom_data, 34, 2));
1116
+ $atom_structure['volume'] = getid3_lib::FixedPoint8_8(substr($atom_data, 36, 2));
1117
+ $atom_structure['reserved3'] = getid3_lib::BigEndian2Int(substr($atom_data, 38, 2));
1118
+ $atom_structure['matrix_a'] = getid3_lib::FixedPoint16_16(substr($atom_data, 40, 4));
1119
+ $atom_structure['matrix_b'] = getid3_lib::FixedPoint16_16(substr($atom_data, 44, 4));
1120
+ $atom_structure['matrix_u'] = getid3_lib::FixedPoint16_16(substr($atom_data, 48, 4));
1121
+ $atom_structure['matrix_c'] = getid3_lib::FixedPoint16_16(substr($atom_data, 52, 4));
1122
+ $atom_structure['matrix_d'] = getid3_lib::FixedPoint16_16(substr($atom_data, 56, 4));
1123
+ $atom_structure['matrix_v'] = getid3_lib::FixedPoint16_16(substr($atom_data, 60, 4));
1124
+ $atom_structure['matrix_x'] = getid3_lib::FixedPoint2_30(substr($atom_data, 64, 4));
1125
+ $atom_structure['matrix_y'] = getid3_lib::FixedPoint2_30(substr($atom_data, 68, 4));
1126
+ $atom_structure['matrix_w'] = getid3_lib::FixedPoint2_30(substr($atom_data, 72, 4));
1127
+ $atom_structure['width'] = getid3_lib::FixedPoint16_16(substr($atom_data, 76, 4));
1128
+ $atom_structure['height'] = getid3_lib::FixedPoint16_16(substr($atom_data, 80, 4));
1129
+
1130
+ $atom_structure['flags']['enabled'] = (bool) ($atom_structure['flags_raw'] & 0x0001);
1131
+ $atom_structure['flags']['in_movie'] = (bool) ($atom_structure['flags_raw'] & 0x0002);
1132
+ $atom_structure['flags']['in_preview'] = (bool) ($atom_structure['flags_raw'] & 0x0004);
1133
+ $atom_structure['flags']['in_poster'] = (bool) ($atom_structure['flags_raw'] & 0x0008);
1134
+ $atom_structure['creation_time_unix'] = getid3_lib::DateMac2Unix($atom_structure['creation_time']);
1135
+ $atom_structure['modify_time_unix'] = getid3_lib::DateMac2Unix($atom_structure['modify_time']);
1136
+
1137
+ if ($atom_structure['flags']['enabled'] == 1) {
1138
+ if (!isset($info['video']['resolution_x']) || !isset($info['video']['resolution_y'])) {
1139
+ $info['video']['resolution_x'] = $atom_structure['width'];
1140
+ $info['video']['resolution_y'] = $atom_structure['height'];
1141
+ }
1142
+ $info['video']['resolution_x'] = max($info['video']['resolution_x'], $atom_structure['width']);
1143
+ $info['video']['resolution_y'] = max($info['video']['resolution_y'], $atom_structure['height']);
1144
+ $info['quicktime']['video']['resolution_x'] = $info['video']['resolution_x'];
1145
+ $info['quicktime']['video']['resolution_y'] = $info['video']['resolution_y'];
1146
+ } else {
1147
+ if (isset($info['video']['resolution_x'])) { unset($info['video']['resolution_x']); }
1148
+ if (isset($info['video']['resolution_y'])) { unset($info['video']['resolution_y']); }
1149
+ if (isset($info['quicktime']['video'])) { unset($info['quicktime']['video']); }
1150
+ }
1151
+ break;
1152
+
1153
+
1154
+ case 'iods': // Initial Object DeScriptor atom
1155
+ // http://www.koders.com/c/fid1FAB3E762903DC482D8A246D4A4BF9F28E049594.aspx?s=windows.h
1156
+ // http://libquicktime.sourcearchive.com/documentation/1.0.2plus-pdebian/iods_8c-source.html
1157
+ $offset = 0;
1158
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1159
+ $offset += 1;
1160
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 3));
1161
+ $offset += 3;
1162
+ $atom_structure['mp4_iod_tag'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1163
+ $offset += 1;
1164
+ $atom_structure['length'] = $this->quicktime_read_mp4_descr_length($atom_data, $offset);
1165
+ //$offset already adjusted by quicktime_read_mp4_descr_length()
1166
+ $atom_structure['object_descriptor_id'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 2));
1167
+ $offset += 2;
1168
+ $atom_structure['od_profile_level'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1169
+ $offset += 1;
1170
+ $atom_structure['scene_profile_level'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1171
+ $offset += 1;
1172
+ $atom_structure['audio_profile_id'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1173
+ $offset += 1;
1174
+ $atom_structure['video_profile_id'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1175
+ $offset += 1;
1176
+ $atom_structure['graphics_profile_level'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1177
+ $offset += 1;
1178
+
1179
+ $atom_structure['num_iods_tracks'] = ($atom_structure['length'] - 7) / 6; // 6 bytes would only be right if all tracks use 1-byte length fields
1180
+ for ($i = 0; $i < $atom_structure['num_iods_tracks']; $i++) {
1181
+ $atom_structure['track'][$i]['ES_ID_IncTag'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1182
+ $offset += 1;
1183
+ $atom_structure['track'][$i]['length'] = $this->quicktime_read_mp4_descr_length($atom_data, $offset);
1184
+ //$offset already adjusted by quicktime_read_mp4_descr_length()
1185
+ $atom_structure['track'][$i]['track_id'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 4));
1186
+ $offset += 4;
1187
+ }
1188
+
1189
+ $atom_structure['audio_profile_name'] = $this->QuicktimeIODSaudioProfileName($atom_structure['audio_profile_id']);
1190
+ $atom_structure['video_profile_name'] = $this->QuicktimeIODSvideoProfileName($atom_structure['video_profile_id']);
1191
+ break;
1192
+
1193
+ case 'ftyp': // FileTYPe (?) atom (for MP4 it seems)
1194
+ $atom_structure['signature'] = substr($atom_data, 0, 4);
1195
+ $atom_structure['unknown_1'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
1196
+ $atom_structure['fourcc'] = substr($atom_data, 8, 4);
1197
+ break;
1198
+
1199
+ case 'mdat': // Media DATa atom
1200
+ case 'free': // FREE space atom
1201
+ case 'skip': // SKIP atom
1202
+ case 'wide': // 64-bit expansion placeholder atom
1203
+ // 'mdat' data is too big to deal with, contains no useful metadata
1204
+ // 'free', 'skip' and 'wide' are just padding, contains no useful data at all
1205
+
1206
+ // When writing QuickTime files, it is sometimes necessary to update an atom's size.
1207
+ // It is impossible to update a 32-bit atom to a 64-bit atom since the 32-bit atom
1208
+ // is only 8 bytes in size, and the 64-bit atom requires 16 bytes. Therefore, QuickTime
1209
+ // puts an 8-byte placeholder atom before any atoms it may have to update the size of.
1210
+ // In this way, if the atom needs to be converted from a 32-bit to a 64-bit atom, the
1211
+ // placeholder atom can be overwritten to obtain the necessary 8 extra bytes.
1212
+ // The placeholder atom has a type of kWideAtomPlaceholderType ( 'wide' ).
1213
+ break;
1214
+
1215
+
1216
+ case 'nsav': // NoSAVe atom
1217
+ // http://developer.apple.com/technotes/tn/tn2038.html
1218
+ $atom_structure['data'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 4));
1219
+ break;
1220
+
1221
+ case 'ctyp': // Controller TYPe atom (seen on QTVR)
1222
+ // http://homepages.slingshot.co.nz/~helmboy/quicktime/formats/qtm-layout.txt
1223
+ // some controller names are:
1224
+ // 0x00 + 'std' for linear movie
1225
+ // 'none' for no controls
1226
+ $atom_structure['ctyp'] = substr($atom_data, 0, 4);
1227
+ $info['quicktime']['controller'] = $atom_structure['ctyp'];
1228
+ switch ($atom_structure['ctyp']) {
1229
+ case 'qtvr':
1230
+ $info['video']['dataformat'] = 'quicktimevr';
1231
+ break;
1232
+ }
1233
+ break;
1234
+
1235
+ case 'pano': // PANOrama track (seen on QTVR)
1236
+ $atom_structure['pano'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 4));
1237
+ break;
1238
+
1239
+ case 'hint': // HINT track
1240
+ case 'hinf': //
1241
+ case 'hinv': //
1242
+ case 'hnti': //
1243
+ $info['quicktime']['hinting'] = true;
1244
+ break;
1245
+
1246
+ case 'imgt': // IMaGe Track reference (kQTVRImageTrackRefType) (seen on QTVR)
1247
+ for ($i = 0; $i < ($atom_structure['size'] - 8); $i += 4) {
1248
+ $atom_structure['imgt'][] = getid3_lib::BigEndian2Int(substr($atom_data, $i, 4));
1249
+ }
1250
+ break;
1251
+
1252
+
1253
+ // Observed-but-not-handled atom types are just listed here to prevent warnings being generated
1254
+ case 'FXTC': // Something to do with Adobe After Effects (?)
1255
+ case 'PrmA':
1256
+ case 'code':
1257
+ case 'FIEL': // this is NOT "fiel" (Field Ordering) as describe here: http://developer.apple.com/documentation/QuickTime/QTFF/QTFFChap3/chapter_4_section_2.html
1258
+ case 'tapt': // TrackApertureModeDimensionsAID - http://developer.apple.com/documentation/QuickTime/Reference/QT7-1_Update_Reference/Constants/Constants.html
1259
+ // tapt seems to be used to compute the video size [http://www.getid3.org/phpBB3/viewtopic.php?t=838]
1260
+ // * http://lists.apple.com/archives/quicktime-api/2006/Aug/msg00014.html
1261
+ // * http://handbrake.fr/irclogs/handbrake-dev/handbrake-dev20080128_pg2.html
1262
+ case 'ctts':// STCompositionOffsetAID - http://developer.apple.com/documentation/QuickTime/Reference/QTRef_Constants/Reference/reference.html
1263
+ case 'cslg':// STCompositionShiftLeastGreatestAID - http://developer.apple.com/documentation/QuickTime/Reference/QTRef_Constants/Reference/reference.html
1264
+ case 'sdtp':// STSampleDependencyAID - http://developer.apple.com/documentation/QuickTime/Reference/QTRef_Constants/Reference/reference.html
1265
+ case 'stps':// STPartialSyncSampleAID - http://developer.apple.com/documentation/QuickTime/Reference/QTRef_Constants/Reference/reference.html
1266
+ //$atom_structure['data'] = $atom_data;
1267
+ break;
1268
+
1269
+ case '�xyz': // GPS latitude+longitude+altitude
1270
+ $atom_structure['data'] = $atom_data;
1271
+ if (preg_match('#([\\+\\-][0-9\\.]+)([\\+\\-][0-9\\.]+)([\\+\\-][0-9\\.]+)?/$#i', $atom_data, $matches)) {
1272
+ @list($all, $latitude, $longitude, $altitude) = $matches;
1273
+ $info['quicktime']['comments']['gps_latitude'][] = floatval($latitude);
1274
+ $info['quicktime']['comments']['gps_longitude'][] = floatval($longitude);
1275
+ if (!empty($altitude)) {
1276
+ $info['quicktime']['comments']['gps_altitude'][] = floatval($altitude);
1277
+ }
1278
+ } else {
1279
+ $info['warning'][] = 'QuickTime atom "�xyz" data does not match expected data pattern at offset '.$baseoffset.'. Please report as getID3() bug.';
1280
+ }
1281
+ break;
1282
+
1283
+ case 'NCDT':
1284
+ // http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html
1285
+ // Nikon-specific QuickTime tags found in the NCDT atom of MOV videos from some Nikon cameras such as the Coolpix S8000 and D5100
1286
+ $atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($atom_data, $baseoffset + 4, $atomHierarchy, $ParseAllPossibleAtoms);
1287
+ break;
1288
+ case 'NCTH': // Nikon Camera THumbnail image
1289
+ case 'NCVW': // Nikon Camera preVieW image
1290
+ // http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html
1291
+ if (preg_match('/^\xFF\xD8\xFF/', $atom_data)) {
1292
+ $atom_structure['data'] = $atom_data;
1293
+ $atom_structure['image_mime'] = 'image/jpeg';
1294
+ $atom_structure['description'] = (($atomname == 'NCTH') ? 'Nikon Camera Thumbnail Image' : (($atomname == 'NCVW') ? 'Nikon Camera Preview Image' : 'Nikon preview image'));
1295
+ $info['quicktime']['comments']['picture'][] = array('image_mime'=>$atom_structure['image_mime'], 'data'=>$atom_data, 'description'=>$atom_structure['description']);
1296
+ }
1297
+ break;
1298
+ case 'NCHD': // MakerNoteVersion
1299
+ // http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html
1300
+ $atom_structure['data'] = $atom_data;
1301
+ break;
1302
+ case 'NCTG': // NikonTags
1303
+ // http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html#NCTG
1304
+ $atom_structure['data'] = $this->QuicktimeParseNikonNCTG($atom_data);
1305
+ break;
1306
+ case 'NCDB': // NikonTags
1307
+ // http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html
1308
+ $atom_structure['data'] = $atom_data;
1309
+ break;
1310
+
1311
+ case "\x00\x00\x00\x00":
1312
+ case 'meta': // METAdata atom
1313
+ // some kind of metacontainer, may contain a big data dump such as:
1314
+ // mdta keys mdtacom.apple.quicktime.make (mdtacom.apple.quicktime.creationdate ,mdtacom.apple.quicktime.location.ISO6709 $mdtacom.apple.quicktime.software !mdtacom.apple.quicktime.model ilst data DEApple 0 (data DE2011-05-11T17:54:04+0200 2 *data DE+52.4936+013.3897+040.247/ data DE4.3.1 data DEiPhone 4
1315
+ // http://www.geocities.com/xhelmboyx/quicktime/formats/qti-layout.txt
1316
+
1317
+ $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
1318
+ $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3));
1319
+ $atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom(substr($atom_data, 4), $baseoffset + 8, $atomHierarchy, $ParseAllPossibleAtoms);
1320
+ //$atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($atom_data, $baseoffset + 8, $atomHierarchy, $ParseAllPossibleAtoms);
1321
+ break;
1322
+
1323
+ case 'data': // metaDATA atom
1324
+ // seems to be 2 bytes language code (ASCII), 2 bytes unknown (set to 0x10B5 in sample I have), remainder is useful data
1325
+ $atom_structure['language'] = substr($atom_data, 4 + 0, 2);
1326
+ $atom_structure['unknown'] = getid3_lib::BigEndian2Int(substr($atom_data, 4 + 2, 2));
1327
+ $atom_structure['data'] = substr($atom_data, 4 + 4);
1328
+ break;
1329
+
1330
+ default:
1331
+ $info['warning'][] = 'Unknown QuickTime atom type: "'.getid3_lib::PrintHexBytes($atomname).'" at offset '.$baseoffset;
1332
+ $atom_structure['data'] = $atom_data;
1333
+ break;
1334
+ }
1335
+ array_pop($atomHierarchy);
1336
+ return $atom_structure;
1337
+ }
1338
+
1339
+ function QuicktimeParseContainerAtom($atom_data, $baseoffset, &$atomHierarchy, $ParseAllPossibleAtoms) {
1340
+ //echo 'QuicktimeParseContainerAtom('.substr($atom_data, 4, 4).') @ '.$baseoffset.'<br><br>';
1341
+ $atom_structure = false;
1342
+ $subatomoffset = 0;
1343
+ $subatomcounter = 0;
1344
+ if ((strlen($atom_data) == 4) && (getid3_lib::BigEndian2Int($atom_data) == 0x00000000)) {
1345
+ return false;
1346
+ }
1347
+ while ($subatomoffset < strlen($atom_data)) {
1348
+ $subatomsize = getid3_lib::BigEndian2Int(substr($atom_data, $subatomoffset + 0, 4));
1349
+ $subatomname = substr($atom_data, $subatomoffset + 4, 4);
1350
+ $subatomdata = substr($atom_data, $subatomoffset + 8, $subatomsize - 8);
1351
+ if ($subatomsize == 0) {
1352
+ // Furthermore, for historical reasons the list of atoms is optionally
1353
+ // terminated by a 32-bit integer set to 0. If you are writing a program
1354
+ // to read user data atoms, you should allow for the terminating 0.
1355
+ return $atom_structure;
1356
+ }
1357
+
1358
+ $atom_structure[$subatomcounter] = $this->QuicktimeParseAtom($subatomname, $subatomsize, $subatomdata, $baseoffset + $subatomoffset, $atomHierarchy, $ParseAllPossibleAtoms);
1359
+
1360
+ $subatomoffset += $subatomsize;
1361
+ $subatomcounter++;
1362
+ }
1363
+ return $atom_structure;
1364
+ }
1365
+
1366
+
1367
+ function quicktime_read_mp4_descr_length($data, &$offset) {
1368
+ // http://libquicktime.sourcearchive.com/documentation/2:1.0.2plus-pdebian-2build1/esds_8c-source.html
1369
+ $num_bytes = 0;
1370
+ $length = 0;
1371
+ do {
1372
+ $b = ord(substr($data, $offset++, 1));
1373
+ $length = ($length << 7) | ($b & 0x7F);
1374
+ } while (($b & 0x80) && ($num_bytes++ < 4));
1375
+ return $length;
1376
+ }
1377
+
1378
+
1379
+ function QuicktimeLanguageLookup($languageid) {
1380
+ static $QuicktimeLanguageLookup = array();
1381
+ if (empty($QuicktimeLanguageLookup)) {
1382
+ $QuicktimeLanguageLookup[0] = 'English';
1383
+ $QuicktimeLanguageLookup[1] = 'French';
1384
+ $QuicktimeLanguageLookup[2] = 'German';
1385
+ $QuicktimeLanguageLookup[3] = 'Italian';
1386
+ $QuicktimeLanguageLookup[4] = 'Dutch';
1387
+ $QuicktimeLanguageLookup[5] = 'Swedish';
1388
+ $QuicktimeLanguageLookup[6] = 'Spanish';
1389
+ $QuicktimeLanguageLookup[7] = 'Danish';
1390
+ $QuicktimeLanguageLookup[8] = 'Portuguese';
1391
+ $QuicktimeLanguageLookup[9] = 'Norwegian';
1392
+ $QuicktimeLanguageLookup[10] = 'Hebrew';
1393
+ $QuicktimeLanguageLookup[11] = 'Japanese';
1394
+ $QuicktimeLanguageLookup[12] = 'Arabic';
1395
+ $QuicktimeLanguageLookup[13] = 'Finnish';
1396
+ $QuicktimeLanguageLookup[14] = 'Greek';
1397
+ $QuicktimeLanguageLookup[15] = 'Icelandic';
1398
+ $QuicktimeLanguageLookup[16] = 'Maltese';
1399
+ $QuicktimeLanguageLookup[17] = 'Turkish';
1400
+ $QuicktimeLanguageLookup[18] = 'Croatian';
1401
+ $QuicktimeLanguageLookup[19] = 'Chinese (Traditional)';
1402
+ $QuicktimeLanguageLookup[20] = 'Urdu';
1403
+ $QuicktimeLanguageLookup[21] = 'Hindi';
1404
+ $QuicktimeLanguageLookup[22] = 'Thai';
1405
+ $QuicktimeLanguageLookup[23] = 'Korean';
1406
+ $QuicktimeLanguageLookup[24] = 'Lithuanian';
1407
+ $QuicktimeLanguageLookup[25] = 'Polish';
1408
+ $QuicktimeLanguageLookup[26] = 'Hungarian';
1409
+ $QuicktimeLanguageLookup[27] = 'Estonian';
1410
+ $QuicktimeLanguageLookup[28] = 'Lettish';
1411
+ $QuicktimeLanguageLookup[28] = 'Latvian';
1412
+ $QuicktimeLanguageLookup[29] = 'Saamisk';
1413
+ $QuicktimeLanguageLookup[29] = 'Lappish';
1414
+ $QuicktimeLanguageLookup[30] = 'Faeroese';
1415
+ $QuicktimeLanguageLookup[31] = 'Farsi';
1416
+ $QuicktimeLanguageLookup[31] = 'Persian';
1417
+ $QuicktimeLanguageLookup[32] = 'Russian';
1418
+ $QuicktimeLanguageLookup[33] = 'Chinese (Simplified)';
1419
+ $QuicktimeLanguageLookup[34] = 'Flemish';
1420
+ $QuicktimeLanguageLookup[35] = 'Irish';
1421
+ $QuicktimeLanguageLookup[36] = 'Albanian';
1422
+ $QuicktimeLanguageLookup[37] = 'Romanian';
1423
+ $QuicktimeLanguageLookup[38] = 'Czech';
1424
+ $QuicktimeLanguageLookup[39] = 'Slovak';
1425
+ $QuicktimeLanguageLookup[40] = 'Slovenian';
1426
+ $QuicktimeLanguageLookup[41] = 'Yiddish';
1427
+ $QuicktimeLanguageLookup[42] = 'Serbian';
1428
+ $QuicktimeLanguageLookup[43] = 'Macedonian';
1429
+ $QuicktimeLanguageLookup[44] = 'Bulgarian';
1430
+ $QuicktimeLanguageLookup[45] = 'Ukrainian';
1431
+ $QuicktimeLanguageLookup[46] = 'Byelorussian';
1432
+ $QuicktimeLanguageLookup[47] = 'Uzbek';
1433
+ $QuicktimeLanguageLookup[48] = 'Kazakh';
1434
+ $QuicktimeLanguageLookup[49] = 'Azerbaijani';
1435
+ $QuicktimeLanguageLookup[50] = 'AzerbaijanAr';
1436
+ $QuicktimeLanguageLookup[51] = 'Armenian';
1437
+ $QuicktimeLanguageLookup[52] = 'Georgian';
1438
+ $QuicktimeLanguageLookup[53] = 'Moldavian';
1439
+ $QuicktimeLanguageLookup[54] = 'Kirghiz';
1440
+ $QuicktimeLanguageLookup[55] = 'Tajiki';
1441
+ $QuicktimeLanguageLookup[56] = 'Turkmen';
1442
+ $QuicktimeLanguageLookup[57] = 'Mongolian';
1443
+ $QuicktimeLanguageLookup[58] = 'MongolianCyr';
1444
+ $QuicktimeLanguageLookup[59] = 'Pashto';
1445
+ $QuicktimeLanguageLookup[60] = 'Kurdish';
1446
+ $QuicktimeLanguageLookup[61] = 'Kashmiri';
1447
+ $QuicktimeLanguageLookup[62] = 'Sindhi';
1448
+ $QuicktimeLanguageLookup[63] = 'Tibetan';
1449
+ $QuicktimeLanguageLookup[64] = 'Nepali';
1450
+ $QuicktimeLanguageLookup[65] = 'Sanskrit';
1451
+ $QuicktimeLanguageLookup[66] = 'Marathi';
1452
+ $QuicktimeLanguageLookup[67] = 'Bengali';
1453
+ $QuicktimeLanguageLookup[68] = 'Assamese';
1454
+ $QuicktimeLanguageLookup[69] = 'Gujarati';
1455
+ $QuicktimeLanguageLookup[70] = 'Punjabi';
1456
+ $QuicktimeLanguageLookup[71] = 'Oriya';
1457
+ $QuicktimeLanguageLookup[72] = 'Malayalam';
1458
+ $QuicktimeLanguageLookup[73] = 'Kannada';
1459
+ $QuicktimeLanguageLookup[74] = 'Tamil';
1460
+ $QuicktimeLanguageLookup[75] = 'Telugu';
1461
+ $QuicktimeLanguageLookup[76] = 'Sinhalese';
1462
+ $QuicktimeLanguageLookup[77] = 'Burmese';
1463
+ $QuicktimeLanguageLookup[78] = 'Khmer';
1464
+ $QuicktimeLanguageLookup[79] = 'Lao';
1465
+ $QuicktimeLanguageLookup[80] = 'Vietnamese';
1466
+ $QuicktimeLanguageLookup[81] = 'Indonesian';
1467
+ $QuicktimeLanguageLookup[82] = 'Tagalog';
1468
+ $QuicktimeLanguageLookup[83] = 'MalayRoman';
1469
+ $QuicktimeLanguageLookup[84] = 'MalayArabic';
1470
+ $QuicktimeLanguageLookup[85] = 'Amharic';
1471
+ $QuicktimeLanguageLookup[86] = 'Tigrinya';
1472
+ $QuicktimeLanguageLookup[87] = 'Galla';
1473
+ $QuicktimeLanguageLookup[87] = 'Oromo';
1474
+ $QuicktimeLanguageLookup[88] = 'Somali';
1475
+ $QuicktimeLanguageLookup[89] = 'Swahili';
1476
+ $QuicktimeLanguageLookup[90] = 'Ruanda';
1477
+ $QuicktimeLanguageLookup[91] = 'Rundi';
1478
+ $QuicktimeLanguageLookup[92] = 'Chewa';
1479
+ $QuicktimeLanguageLookup[93] = 'Malagasy';
1480
+ $QuicktimeLanguageLookup[94] = 'Esperanto';
1481
+ $QuicktimeLanguageLookup[128] = 'Welsh';
1482
+ $QuicktimeLanguageLookup[129] = 'Basque';
1483
+ $QuicktimeLanguageLookup[130] = 'Catalan';
1484
+ $QuicktimeLanguageLookup[131] = 'Latin';
1485
+ $QuicktimeLanguageLookup[132] = 'Quechua';
1486
+ $QuicktimeLanguageLookup[133] = 'Guarani';
1487
+ $QuicktimeLanguageLookup[134] = 'Aymara';
1488
+ $QuicktimeLanguageLookup[135] = 'Tatar';
1489
+ $QuicktimeLanguageLookup[136] = 'Uighur';
1490
+ $QuicktimeLanguageLookup[137] = 'Dzongkha';
1491
+ $QuicktimeLanguageLookup[138] = 'JavaneseRom';
1492
+ }
1493
+ return (isset($QuicktimeLanguageLookup[$languageid]) ? $QuicktimeLanguageLookup[$languageid] : 'invalid');
1494
+ }
1495
+
1496
+ function QuicktimeVideoCodecLookup($codecid) {
1497
+ static $QuicktimeVideoCodecLookup = array();
1498
+ if (empty($QuicktimeVideoCodecLookup)) {
1499
+ $QuicktimeVideoCodecLookup['.SGI'] = 'SGI';
1500
+ $QuicktimeVideoCodecLookup['3IV1'] = '3ivx MPEG-4 v1';
1501
+ $QuicktimeVideoCodecLookup['3IV2'] = '3ivx MPEG-4 v2';
1502
+ $QuicktimeVideoCodecLookup['3IVX'] = '3ivx MPEG-4';
1503
+ $QuicktimeVideoCodecLookup['8BPS'] = 'Planar RGB';
1504
+ $QuicktimeVideoCodecLookup['avc1'] = 'H.264/MPEG-4 AVC';
1505
+ $QuicktimeVideoCodecLookup['avr '] = 'AVR-JPEG';
1506
+ $QuicktimeVideoCodecLookup['b16g'] = '16Gray';
1507
+ $QuicktimeVideoCodecLookup['b32a'] = '32AlphaGray';
1508
+ $QuicktimeVideoCodecLookup['b48r'] = '48RGB';
1509
+ $QuicktimeVideoCodecLookup['b64a'] = '64ARGB';
1510
+ $QuicktimeVideoCodecLookup['base'] = 'Base';
1511
+ $QuicktimeVideoCodecLookup['clou'] = 'Cloud';
1512
+ $QuicktimeVideoCodecLookup['cmyk'] = 'CMYK';
1513
+ $QuicktimeVideoCodecLookup['cvid'] = 'Cinepak';
1514
+ $QuicktimeVideoCodecLookup['dmb1'] = 'OpenDML JPEG';
1515
+ $QuicktimeVideoCodecLookup['dvc '] = 'DVC-NTSC';
1516
+ $QuicktimeVideoCodecLookup['dvcp'] = 'DVC-PAL';
1517
+ $QuicktimeVideoCodecLookup['dvpn'] = 'DVCPro-NTSC';
1518
+ $QuicktimeVideoCodecLookup['dvpp'] = 'DVCPro-PAL';
1519
+ $QuicktimeVideoCodecLookup['fire'] = 'Fire';
1520
+ $QuicktimeVideoCodecLookup['flic'] = 'FLC';
1521
+ $QuicktimeVideoCodecLookup['gif '] = 'GIF';
1522
+ $QuicktimeVideoCodecLookup['h261'] = 'H261';
1523
+ $QuicktimeVideoCodecLookup['h263'] = 'H263';
1524
+ $QuicktimeVideoCodecLookup['IV41'] = 'Indeo4';
1525
+ $QuicktimeVideoCodecLookup['jpeg'] = 'JPEG';
1526
+ $QuicktimeVideoCodecLookup['kpcd'] = 'PhotoCD';
1527
+ $QuicktimeVideoCodecLookup['mjpa'] = 'Motion JPEG-A';
1528
+ $QuicktimeVideoCodecLookup['mjpb'] = 'Motion JPEG-B';
1529
+ $QuicktimeVideoCodecLookup['msvc'] = 'Microsoft Video1';
1530
+ $QuicktimeVideoCodecLookup['myuv'] = 'MPEG YUV420';
1531
+ $QuicktimeVideoCodecLookup['path'] = 'Vector';
1532
+ $QuicktimeVideoCodecLookup['png '] = 'PNG';
1533
+ $QuicktimeVideoCodecLookup['PNTG'] = 'MacPaint';
1534
+ $QuicktimeVideoCodecLookup['qdgx'] = 'QuickDrawGX';
1535
+ $QuicktimeVideoCodecLookup['qdrw'] = 'QuickDraw';
1536
+ $QuicktimeVideoCodecLookup['raw '] = 'RAW';
1537
+ $QuicktimeVideoCodecLookup['ripl'] = 'WaterRipple';
1538
+ $QuicktimeVideoCodecLookup['rpza'] = 'Video';
1539
+ $QuicktimeVideoCodecLookup['smc '] = 'Graphics';
1540
+ $QuicktimeVideoCodecLookup['SVQ1'] = 'Sorenson Video 1';
1541
+ $QuicktimeVideoCodecLookup['SVQ1'] = 'Sorenson Video 3';
1542
+ $QuicktimeVideoCodecLookup['syv9'] = 'Sorenson YUV9';
1543
+ $QuicktimeVideoCodecLookup['tga '] = 'Targa';
1544
+ $QuicktimeVideoCodecLookup['tiff'] = 'TIFF';
1545
+ $QuicktimeVideoCodecLookup['WRAW'] = 'Windows RAW';
1546
+ $QuicktimeVideoCodecLookup['WRLE'] = 'BMP';
1547
+ $QuicktimeVideoCodecLookup['y420'] = 'YUV420';
1548
+ $QuicktimeVideoCodecLookup['yuv2'] = 'ComponentVideo';
1549
+ $QuicktimeVideoCodecLookup['yuvs'] = 'ComponentVideoUnsigned';
1550
+ $QuicktimeVideoCodecLookup['yuvu'] = 'ComponentVideoSigned';
1551
+ }
1552
+ return (isset($QuicktimeVideoCodecLookup[$codecid]) ? $QuicktimeVideoCodecLookup[$codecid] : '');
1553
+ }
1554
+
1555
+ function QuicktimeAudioCodecLookup($codecid) {
1556
+ static $QuicktimeAudioCodecLookup = array();
1557
+ if (empty($QuicktimeAudioCodecLookup)) {
1558
+ $QuicktimeAudioCodecLookup['.mp3'] = 'Fraunhofer MPEG Layer-III alias';
1559
+ $QuicktimeAudioCodecLookup['aac '] = 'ISO/IEC 14496-3 AAC';
1560
+ $QuicktimeAudioCodecLookup['agsm'] = 'Apple GSM 10:1';
1561
+ $QuicktimeAudioCodecLookup['alac'] = 'Apple Lossless Audio Codec';
1562
+ $QuicktimeAudioCodecLookup['alaw'] = 'A-law 2:1';
1563
+ $QuicktimeAudioCodecLookup['conv'] = 'Sample Format';
1564
+ $QuicktimeAudioCodecLookup['dvca'] = 'DV';
1565
+ $QuicktimeAudioCodecLookup['dvi '] = 'DV 4:1';
1566
+ $QuicktimeAudioCodecLookup['eqal'] = 'Frequency Equalizer';
1567
+ $QuicktimeAudioCodecLookup['fl32'] = '32-bit Floating Point';
1568
+ $QuicktimeAudioCodecLookup['fl64'] = '64-bit Floating Point';
1569
+ $QuicktimeAudioCodecLookup['ima4'] = 'Interactive Multimedia Association 4:1';
1570
+ $QuicktimeAudioCodecLookup['in24'] = '24-bit Integer';
1571
+ $QuicktimeAudioCodecLookup['in32'] = '32-bit Integer';
1572
+ $QuicktimeAudioCodecLookup['lpc '] = 'LPC 23:1';
1573
+ $QuicktimeAudioCodecLookup['MAC3'] = 'Macintosh Audio Compression/Expansion (MACE) 3:1';
1574
+ $QuicktimeAudioCodecLookup['MAC6'] = 'Macintosh Audio Compression/Expansion (MACE) 6:1';
1575
+ $QuicktimeAudioCodecLookup['mixb'] = '8-bit Mixer';
1576
+ $QuicktimeAudioCodecLookup['mixw'] = '16-bit Mixer';
1577
+ $QuicktimeAudioCodecLookup['mp4a'] = 'ISO/IEC 14496-3 AAC';
1578
+ $QuicktimeAudioCodecLookup['MS'."\x00\x02"] = 'Microsoft ADPCM';
1579
+ $QuicktimeAudioCodecLookup['MS'."\x00\x11"] = 'DV IMA';
1580
+ $QuicktimeAudioCodecLookup['MS'."\x00\x55"] = 'Fraunhofer MPEG Layer III';
1581
+ $QuicktimeAudioCodecLookup['NONE'] = 'No Encoding';
1582
+ $QuicktimeAudioCodecLookup['Qclp'] = 'Qualcomm PureVoice';
1583
+ $QuicktimeAudioCodecLookup['QDM2'] = 'QDesign Music 2';
1584
+ $QuicktimeAudioCodecLookup['QDMC'] = 'QDesign Music 1';
1585
+ $QuicktimeAudioCodecLookup['ratb'] = '8-bit Rate';
1586
+ $QuicktimeAudioCodecLookup['ratw'] = '16-bit Rate';
1587
+ $QuicktimeAudioCodecLookup['raw '] = 'raw PCM';
1588
+ $QuicktimeAudioCodecLookup['sour'] = 'Sound Source';
1589
+ $QuicktimeAudioCodecLookup['sowt'] = 'signed/two\'s complement (Little Endian)';
1590
+ $QuicktimeAudioCodecLookup['str1'] = 'Iomega MPEG layer II';
1591
+ $QuicktimeAudioCodecLookup['str2'] = 'Iomega MPEG *layer II';
1592
+ $QuicktimeAudioCodecLookup['str3'] = 'Iomega MPEG **layer II';
1593
+ $QuicktimeAudioCodecLookup['str4'] = 'Iomega MPEG ***layer II';
1594
+ $QuicktimeAudioCodecLookup['twos'] = 'signed/two\'s complement (Big Endian)';
1595
+ $QuicktimeAudioCodecLookup['ulaw'] = 'mu-law 2:1';
1596
+ }
1597
+ return (isset($QuicktimeAudioCodecLookup[$codecid]) ? $QuicktimeAudioCodecLookup[$codecid] : '');
1598
+ }
1599
+
1600
+ function QuicktimeDCOMLookup($compressionid) {
1601
+ static $QuicktimeDCOMLookup = array();
1602
+ if (empty($QuicktimeDCOMLookup)) {
1603
+ $QuicktimeDCOMLookup['zlib'] = 'ZLib Deflate';
1604
+ $QuicktimeDCOMLookup['adec'] = 'Apple Compression';
1605
+ }
1606
+ return (isset($QuicktimeDCOMLookup[$compressionid]) ? $QuicktimeDCOMLookup[$compressionid] : '');
1607
+ }
1608
+
1609
+ function QuicktimeColorNameLookup($colordepthid) {
1610
+ static $QuicktimeColorNameLookup = array();
1611
+ if (empty($QuicktimeColorNameLookup)) {
1612
+ $QuicktimeColorNameLookup[1] = '2-color (monochrome)';
1613
+ $QuicktimeColorNameLookup[2] = '4-color';
1614
+ $QuicktimeColorNameLookup[4] = '16-color';
1615
+ $QuicktimeColorNameLookup[8] = '256-color';
1616
+ $QuicktimeColorNameLookup[16] = 'thousands (16-bit color)';
1617
+ $QuicktimeColorNameLookup[24] = 'millions (24-bit color)';
1618
+ $QuicktimeColorNameLookup[32] = 'millions+ (32-bit color)';
1619
+ $QuicktimeColorNameLookup[33] = 'black & white';
1620
+ $QuicktimeColorNameLookup[34] = '4-gray';
1621
+ $QuicktimeColorNameLookup[36] = '16-gray';
1622
+ $QuicktimeColorNameLookup[40] = '256-gray';
1623
+ }
1624
+ return (isset($QuicktimeColorNameLookup[$colordepthid]) ? $QuicktimeColorNameLookup[$colordepthid] : 'invalid');
1625
+ }
1626
+
1627
+ function QuicktimeSTIKLookup($stik) {
1628
+ static $QuicktimeSTIKLookup = array();
1629
+ if (empty($QuicktimeSTIKLookup)) {
1630
+ $QuicktimeSTIKLookup[0] = 'Movie';
1631
+ $QuicktimeSTIKLookup[1] = 'Normal';
1632
+ $QuicktimeSTIKLookup[2] = 'Audiobook';
1633
+ $QuicktimeSTIKLookup[5] = 'Whacked Bookmark';
1634
+ $QuicktimeSTIKLookup[6] = 'Music Video';
1635
+ $QuicktimeSTIKLookup[9] = 'Short Film';
1636
+ $QuicktimeSTIKLookup[10] = 'TV Show';
1637
+ $QuicktimeSTIKLookup[11] = 'Booklet';
1638
+ $QuicktimeSTIKLookup[14] = 'Ringtone';
1639
+ $QuicktimeSTIKLookup[21] = 'Podcast';
1640
+ }
1641
+ return (isset($QuicktimeSTIKLookup[$stik]) ? $QuicktimeSTIKLookup[$stik] : 'invalid');
1642
+ }
1643
+
1644
+ function QuicktimeIODSaudioProfileName($audio_profile_id) {
1645
+ static $QuicktimeIODSaudioProfileNameLookup = array();
1646
+ if (empty($QuicktimeIODSaudioProfileNameLookup)) {
1647
+ $QuicktimeIODSaudioProfileNameLookup = array(
1648
+ 0x00 => 'ISO Reserved (0x00)',
1649
+ 0x01 => 'Main Audio Profile @ Level 1',
1650
+ 0x02 => 'Main Audio Profile @ Level 2',
1651
+ 0x03 => 'Main Audio Profile @ Level 3',
1652
+ 0x04 => 'Main Audio Profile @ Level 4',
1653
+ 0x05 => 'Scalable Audio Profile @ Level 1',
1654
+ 0x06 => 'Scalable Audio Profile @ Level 2',
1655
+ 0x07 => 'Scalable Audio Profile @ Level 3',
1656
+ 0x08 => 'Scalable Audio Profile @ Level 4',
1657
+ 0x09 => 'Speech Audio Profile @ Level 1',
1658
+ 0x0A => 'Speech Audio Profile @ Level 2',
1659
+ 0x0B => 'Synthetic Audio Profile @ Level 1',
1660
+ 0x0C => 'Synthetic Audio Profile @ Level 2',
1661
+ 0x0D => 'Synthetic Audio Profile @ Level 3',
1662
+ 0x0E => 'High Quality Audio Profile @ Level 1',
1663
+ 0x0F => 'High Quality Audio Profile @ Level 2',
1664
+ 0x10 => 'High Quality Audio Profile @ Level 3',
1665
+ 0x11 => 'High Quality Audio Profile @ Level 4',
1666
+ 0x12 => 'High Quality Audio Profile @ Level 5',
1667
+ 0x13 => 'High Quality Audio Profile @ Level 6',
1668
+ 0x14 => 'High Quality Audio Profile @ Level 7',
1669
+ 0x15 => 'High Quality Audio Profile @ Level 8',
1670
+ 0x16 => 'Low Delay Audio Profile @ Level 1',
1671
+ 0x17 => 'Low Delay Audio Profile @ Level 2',
1672
+ 0x18 => 'Low Delay Audio Profile @ Level 3',
1673
+ 0x19 => 'Low Delay Audio Profile @ Level 4',
1674
+ 0x1A => 'Low Delay Audio Profile @ Level 5',
1675
+ 0x1B => 'Low Delay Audio Profile @ Level 6',
1676
+ 0x1C => 'Low Delay Audio Profile @ Level 7',
1677
+ 0x1D => 'Low Delay Audio Profile @ Level 8',
1678
+ 0x1E => 'Natural Audio Profile @ Level 1',
1679
+ 0x1F => 'Natural Audio Profile @ Level 2',
1680
+ 0x20 => 'Natural Audio Profile @ Level 3',
1681
+ 0x21 => 'Natural Audio Profile @ Level 4',
1682
+ 0x22 => 'Mobile Audio Internetworking Profile @ Level 1',
1683
+ 0x23 => 'Mobile Audio Internetworking Profile @ Level 2',
1684
+ 0x24 => 'Mobile Audio Internetworking Profile @ Level 3',
1685
+ 0x25 => 'Mobile Audio Internetworking Profile @ Level 4',
1686
+ 0x26 => 'Mobile Audio Internetworking Profile @ Level 5',
1687
+ 0x27 => 'Mobile Audio Internetworking Profile @ Level 6',
1688
+ 0x28 => 'AAC Profile @ Level 1',
1689
+ 0x29 => 'AAC Profile @ Level 2',
1690
+ 0x2A => 'AAC Profile @ Level 4',
1691
+ 0x2B => 'AAC Profile @ Level 5',
1692
+ 0x2C => 'High Efficiency AAC Profile @ Level 2',
1693
+ 0x2D => 'High Efficiency AAC Profile @ Level 3',
1694
+ 0x2E => 'High Efficiency AAC Profile @ Level 4',
1695
+ 0x2F => 'High Efficiency AAC Profile @ Level 5',
1696
+ 0xFE => 'Not part of MPEG-4 audio profiles',
1697
+ 0xFF => 'No audio capability required',
1698
+ );
1699
+ }
1700
+ return (isset($QuicktimeIODSaudioProfileNameLookup[$audio_profile_id]) ? $QuicktimeIODSaudioProfileNameLookup[$audio_profile_id] : 'ISO Reserved / User Private');
1701
+ }
1702
+
1703
+
1704
+ function QuicktimeIODSvideoProfileName($video_profile_id) {
1705
+ static $QuicktimeIODSvideoProfileNameLookup = array();
1706
+ if (empty($QuicktimeIODSvideoProfileNameLookup)) {
1707
+ $QuicktimeIODSvideoProfileNameLookup = array(
1708
+ 0x00 => 'Reserved (0x00) Profile',
1709
+ 0x01 => 'Simple Profile @ Level 1',
1710
+ 0x02 => 'Simple Profile @ Level 2',
1711
+ 0x03 => 'Simple Profile @ Level 3',
1712
+ 0x08 => 'Simple Profile @ Level 0',
1713
+ 0x10 => 'Simple Scalable Profile @ Level 0',
1714
+ 0x11 => 'Simple Scalable Profile @ Level 1',
1715
+ 0x12 => 'Simple Scalable Profile @ Level 2',
1716
+ 0x15 => 'AVC/H264 Profile',
1717
+ 0x21 => 'Core Profile @ Level 1',
1718
+ 0x22 => 'Core Profile @ Level 2',
1719
+ 0x32 => 'Main Profile @ Level 2',
1720
+ 0x33 => 'Main Profile @ Level 3',
1721
+ 0x34 => 'Main Profile @ Level 4',
1722
+ 0x42 => 'N-bit Profile @ Level 2',
1723
+ 0x51 => 'Scalable Texture Profile @ Level 1',
1724
+ 0x61 => 'Simple Face Animation Profile @ Level 1',
1725
+ 0x62 => 'Simple Face Animation Profile @ Level 2',
1726
+ 0x63 => 'Simple FBA Profile @ Level 1',
1727
+ 0x64 => 'Simple FBA Profile @ Level 2',
1728
+ 0x71 => 'Basic Animated Texture Profile @ Level 1',
1729
+ 0x72 => 'Basic Animated Texture Profile @ Level 2',
1730
+ 0x81 => 'Hybrid Profile @ Level 1',
1731
+ 0x82 => 'Hybrid Profile @ Level 2',
1732
+ 0x91 => 'Advanced Real Time Simple Profile @ Level 1',
1733
+ 0x92 => 'Advanced Real Time Simple Profile @ Level 2',
1734
+ 0x93 => 'Advanced Real Time Simple Profile @ Level 3',
1735
+ 0x94 => 'Advanced Real Time Simple Profile @ Level 4',
1736
+ 0xA1 => 'Core Scalable Profile @ Level1',
1737
+ 0xA2 => 'Core Scalable Profile @ Level2',
1738
+ 0xA3 => 'Core Scalable Profile @ Level3',
1739
+ 0xB1 => 'Advanced Coding Efficiency Profile @ Level 1',
1740
+ 0xB2 => 'Advanced Coding Efficiency Profile @ Level 2',
1741
+ 0xB3 => 'Advanced Coding Efficiency Profile @ Level 3',
1742
+ 0xB4 => 'Advanced Coding Efficiency Profile @ Level 4',
1743
+ 0xC1 => 'Advanced Core Profile @ Level 1',
1744
+ 0xC2 => 'Advanced Core Profile @ Level 2',
1745
+ 0xD1 => 'Advanced Scalable Texture @ Level1',
1746
+ 0xD2 => 'Advanced Scalable Texture @ Level2',
1747
+ 0xE1 => 'Simple Studio Profile @ Level 1',
1748
+ 0xE2 => 'Simple Studio Profile @ Level 2',
1749
+ 0xE3 => 'Simple Studio Profile @ Level 3',
1750
+ 0xE4 => 'Simple Studio Profile @ Level 4',
1751
+ 0xE5 => 'Core Studio Profile @ Level 1',
1752
+ 0xE6 => 'Core Studio Profile @ Level 2',
1753
+ 0xE7 => 'Core Studio Profile @ Level 3',
1754
+ 0xE8 => 'Core Studio Profile @ Level 4',
1755
+ 0xF0 => 'Advanced Simple Profile @ Level 0',
1756
+ 0xF1 => 'Advanced Simple Profile @ Level 1',
1757
+ 0xF2 => 'Advanced Simple Profile @ Level 2',
1758
+ 0xF3 => 'Advanced Simple Profile @ Level 3',
1759
+ 0xF4 => 'Advanced Simple Profile @ Level 4',
1760
+ 0xF5 => 'Advanced Simple Profile @ Level 5',
1761
+ 0xF7 => 'Advanced Simple Profile @ Level 3b',
1762
+ 0xF8 => 'Fine Granularity Scalable Profile @ Level 0',
1763
+ 0xF9 => 'Fine Granularity Scalable Profile @ Level 1',
1764
+ 0xFA => 'Fine Granularity Scalable Profile @ Level 2',
1765
+ 0xFB => 'Fine Granularity Scalable Profile @ Level 3',
1766
+ 0xFC => 'Fine Granularity Scalable Profile @ Level 4',
1767
+ 0xFD => 'Fine Granularity Scalable Profile @ Level 5',
1768
+ 0xFE => 'Not part of MPEG-4 Visual profiles',
1769
+ 0xFF => 'No visual capability required',
1770
+ );
1771
+ }
1772
+ return (isset($QuicktimeIODSvideoProfileNameLookup[$video_profile_id]) ? $QuicktimeIODSvideoProfileNameLookup[$video_profile_id] : 'ISO Reserved Profile');
1773
+ }
1774
+
1775
+
1776
+ function QuicktimeContentRatingLookup($rtng) {
1777
+ static $QuicktimeContentRatingLookup = array();
1778
+ if (empty($QuicktimeContentRatingLookup)) {
1779
+ $QuicktimeContentRatingLookup[0] = 'None';
1780
+ $QuicktimeContentRatingLookup[2] = 'Clean';
1781
+ $QuicktimeContentRatingLookup[4] = 'Explicit';
1782
+ }
1783
+ return (isset($QuicktimeContentRatingLookup[$rtng]) ? $QuicktimeContentRatingLookup[$rtng] : 'invalid');
1784
+ }
1785
+
1786
+ function QuicktimeStoreAccountTypeLookup($akid) {
1787
+ static $QuicktimeStoreAccountTypeLookup = array();
1788
+ if (empty($QuicktimeStoreAccountTypeLookup)) {
1789
+ $QuicktimeStoreAccountTypeLookup[0] = 'iTunes';
1790
+ $QuicktimeStoreAccountTypeLookup[1] = 'AOL';
1791
+ }
1792
+ return (isset($QuicktimeStoreAccountTypeLookup[$akid]) ? $QuicktimeStoreAccountTypeLookup[$akid] : 'invalid');
1793
+ }
1794
+
1795
+ function QuicktimeStoreFrontCodeLookup($sfid) {
1796
+ static $QuicktimeStoreFrontCodeLookup = array();
1797
+ if (empty($QuicktimeStoreFrontCodeLookup)) {
1798
+ $QuicktimeStoreFrontCodeLookup[143460] = 'Australia';
1799
+ $QuicktimeStoreFrontCodeLookup[143445] = 'Austria';
1800
+ $QuicktimeStoreFrontCodeLookup[143446] = 'Belgium';
1801
+ $QuicktimeStoreFrontCodeLookup[143455] = 'Canada';
1802
+ $QuicktimeStoreFrontCodeLookup[143458] = 'Denmark';
1803
+ $QuicktimeStoreFrontCodeLookup[143447] = 'Finland';
1804
+ $QuicktimeStoreFrontCodeLookup[143442] = 'France';
1805
+ $QuicktimeStoreFrontCodeLookup[143443] = 'Germany';
1806
+ $QuicktimeStoreFrontCodeLookup[143448] = 'Greece';
1807
+ $QuicktimeStoreFrontCodeLookup[143449] = 'Ireland';
1808
+ $QuicktimeStoreFrontCodeLookup[143450] = 'Italy';
1809
+ $QuicktimeStoreFrontCodeLookup[143462] = 'Japan';
1810
+ $QuicktimeStoreFrontCodeLookup[143451] = 'Luxembourg';
1811
+ $QuicktimeStoreFrontCodeLookup[143452] = 'Netherlands';
1812
+ $QuicktimeStoreFrontCodeLookup[143461] = 'New Zealand';
1813
+ $QuicktimeStoreFrontCodeLookup[143457] = 'Norway';
1814
+ $QuicktimeStoreFrontCodeLookup[143453] = 'Portugal';
1815
+ $QuicktimeStoreFrontCodeLookup[143454] = 'Spain';
1816
+ $QuicktimeStoreFrontCodeLookup[143456] = 'Sweden';
1817
+ $QuicktimeStoreFrontCodeLookup[143459] = 'Switzerland';
1818
+ $QuicktimeStoreFrontCodeLookup[143444] = 'United Kingdom';
1819
+ $QuicktimeStoreFrontCodeLookup[143441] = 'United States';
1820
+ }
1821
+ return (isset($QuicktimeStoreFrontCodeLookup[$sfid]) ? $QuicktimeStoreFrontCodeLookup[$sfid] : 'invalid');
1822
+ }
1823
+
1824
+ function QuicktimeParseNikonNCTG($atom_data) {
1825
+ // http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html#NCTG
1826
+ // Nikon-specific QuickTime tags found in the NCDT atom of MOV videos from some Nikon cameras such as the Coolpix S8000 and D5100
1827
+ // Data is stored as records of:
1828
+ // * 4 bytes record type
1829
+ // * 2 bytes size of data field type:
1830
+ // 0x0001 = flag (size field *= 1-byte)
1831
+ // 0x0002 = char (size field *= 1-byte)
1832
+ // 0x0003 = DWORD+ (size field *= 2-byte), values are stored CDAB
1833
+ // 0x0004 = QWORD+ (size field *= 4-byte), values are stored EFGHABCD
1834
+ // 0x0005 = float (size field *= 8-byte), values are stored aaaabbbb where value is aaaa/bbbb; possibly multiple sets of values appended together
1835
+ // 0x0007 = bytes (size field *= 1-byte), values are stored as ??????
1836
+ // 0x0008 = ????? (size field *= 2-byte), values are stored as ??????
1837
+ // * 2 bytes data size field
1838
+ // * ? bytes data (string data may be null-padded; datestamp fields are in the format "2011:05:25 20:24:15")
1839
+ // all integers are stored BigEndian
1840
+
1841
+ $NCTGtagName = array(
1842
+ 0x00000001 => 'Make',
1843
+ 0x00000002 => 'Model',
1844
+ 0x00000003 => 'Software',
1845
+ 0x00000011 => 'CreateDate',
1846
+ 0x00000012 => 'DateTimeOriginal',
1847
+ 0x00000013 => 'FrameCount',
1848
+ 0x00000016 => 'FrameRate',
1849
+ 0x00000022 => 'FrameWidth',
1850
+ 0x00000023 => 'FrameHeight',
1851
+ 0x00000032 => 'AudioChannels',
1852
+ 0x00000033 => 'AudioBitsPerSample',
1853
+ 0x00000034 => 'AudioSampleRate',
1854
+ 0x02000001 => 'MakerNoteVersion',
1855
+ 0x02000005 => 'WhiteBalance',
1856
+ 0x0200000b => 'WhiteBalanceFineTune',
1857
+ 0x0200001e => 'ColorSpace',
1858
+ 0x02000023 => 'PictureControlData',
1859
+ 0x02000024 => 'WorldTime',
1860
+ 0x02000032 => 'UnknownInfo',
1861
+ 0x02000083 => 'LensType',
1862
+ 0x02000084 => 'Lens',
1863
+ );
1864
+
1865
+ $offset = 0;
1866
+ $datalength = strlen($atom_data);
1867
+ $parsed = array();
1868
+ while ($offset < $datalength) {
1869
+ //echo getid3_lib::PrintHexBytes(substr($atom_data, $offset, 4)).'<br>';
1870
+ $record_type = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 4)); $offset += 4;
1871
+ $data_size_type = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 2)); $offset += 2;
1872
+ $data_size = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 2)); $offset += 2;
1873
+ switch ($data_size_type) {
1874
+ case 0x0001: // 0x0001 = flag (size field *= 1-byte)
1875
+ $data = getid3_lib::BigEndian2Int(substr($atom_data, $offset, $data_size * 1));
1876
+ $offset += ($data_size * 1);
1877
+ break;
1878
+ case 0x0002: // 0x0002 = char (size field *= 1-byte)
1879
+ $data = substr($atom_data, $offset, $data_size * 1);
1880
+ $offset += ($data_size * 1);
1881
+ $data = rtrim($data, "\x00");
1882
+ break;
1883
+ case 0x0003: // 0x0003 = DWORD+ (size field *= 2-byte), values are stored CDAB
1884
+ $data = '';
1885
+ for ($i = $data_size - 1; $i >= 0; $i--) {
1886
+ $data .= substr($atom_data, $offset + ($i * 2), 2);
1887
+ }
1888
+ $data = getid3_lib::BigEndian2Int($data);
1889
+ $offset += ($data_size * 2);
1890
+ break;
1891
+ case 0x0004: // 0x0004 = QWORD+ (size field *= 4-byte), values are stored EFGHABCD
1892
+ $data = '';
1893
+ for ($i = $data_size - 1; $i >= 0; $i--) {
1894
+ $data .= substr($atom_data, $offset + ($i * 4), 4);
1895
+ }
1896
+ $data = getid3_lib::BigEndian2Int($data);
1897
+ $offset += ($data_size * 4);
1898
+ break;
1899
+ case 0x0005: // 0x0005 = float (size field *= 8-byte), values are stored aaaabbbb where value is aaaa/bbbb; possibly multiple sets of values appended together
1900
+ $data = array();
1901
+ for ($i = 0; $i < $data_size; $i++) {
1902
+ $numerator = getid3_lib::BigEndian2Int(substr($atom_data, $offset + ($i * 8) + 0, 4));
1903
+ $denomninator = getid3_lib::BigEndian2Int(substr($atom_data, $offset + ($i * 8) + 4, 4));
1904
+ if ($denomninator == 0) {
1905
+ $data[$i] = false;
1906
+ } else {
1907
+ $data[$i] = (double) $numerator / $denomninator;
1908
+ }
1909
+ }
1910
+ $offset += (8 * $data_size);
1911
+ if (count($data) == 1) {
1912
+ $data = $data[0];
1913
+ }
1914
+ break;
1915
+ case 0x0007: // 0x0007 = bytes (size field *= 1-byte), values are stored as ??????
1916
+ $data = substr($atom_data, $offset, $data_size * 1);
1917
+ $offset += ($data_size * 1);
1918
+ break;
1919
+ case 0x0008: // 0x0008 = ????? (size field *= 2-byte), values are stored as ??????
1920
+ $data = substr($atom_data, $offset, $data_size * 2);
1921
+ $offset += ($data_size * 2);
1922
+ break;
1923
+ default:
1924
+ echo 'QuicktimeParseNikonNCTG()::unknown $data_size_type: '.$data_size_type.'<br>';
1925
+ break 2;
1926
+ }
1927
+
1928
+ switch ($record_type) {
1929
+ case 0x00000011: // CreateDate
1930
+ case 0x00000012: // DateTimeOriginal
1931
+ $data = strtotime($data);
1932
+ break;
1933
+ case 0x0200001e: // ColorSpace
1934
+ switch ($data) {
1935
+ case 1:
1936
+ $data = 'sRGB';
1937
+ break;
1938
+ case 2:
1939
+ $data = 'Adobe RGB';
1940
+ break;
1941
+ }
1942
+ break;
1943
+ case 0x02000023: // PictureControlData
1944
+ $PictureControlAdjust = array(0=>'default', 1=>'quick', 2=>'full');
1945
+ $FilterEffect = array(0x80=>'off', 0x81=>'yellow', 0x82=>'orange', 0x83=>'red', 0x84=>'green', 0xff=>'n/a');
1946
+ $ToningEffect = array(0x80=>'b&w', 0x81=>'sepia', 0x82=>'cyanotype', 0x83=>'red', 0x84=>'yellow', 0x85=>'green', 0x86=>'blue-green', 0x87=>'blue', 0x88=>'purple-blue', 0x89=>'red-purple', 0xff=>'n/a');
1947
+ $data = array(
1948
+ 'PictureControlVersion' => substr($data, 0, 4),
1949
+ 'PictureControlName' => rtrim(substr($data, 4, 20), "\x00"),
1950
+ 'PictureControlBase' => rtrim(substr($data, 24, 20), "\x00"),
1951
+ //'?' => substr($data, 44, 4),
1952
+ 'PictureControlAdjust' => $PictureControlAdjust[ord(substr($data, 48, 1))],
1953
+ 'PictureControlQuickAdjust' => ord(substr($data, 49, 1)),
1954
+ 'Sharpness' => ord(substr($data, 50, 1)),
1955
+ 'Contrast' => ord(substr($data, 51, 1)),
1956
+ 'Brightness' => ord(substr($data, 52, 1)),
1957
+ 'Saturation' => ord(substr($data, 53, 1)),
1958
+ 'HueAdjustment' => ord(substr($data, 54, 1)),
1959
+ 'FilterEffect' => $FilterEffect[ord(substr($data, 55, 1))],
1960
+ 'ToningEffect' => $ToningEffect[ord(substr($data, 56, 1))],
1961
+ 'ToningSaturation' => ord(substr($data, 57, 1)),
1962
+ );
1963
+ break;
1964
+ case 0x02000024: // WorldTime
1965
+ // http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html#WorldTime
1966
+ // timezone is stored as offset from GMT in minutes
1967
+ $timezone = getid3_lib::BigEndian2Int(substr($data, 0, 2));
1968
+ if ($timezone & 0x8000) {
1969
+ $timezone = 0 - (0x10000 - $timezone);
1970
+ }
1971
+ $timezone /= 60;
1972
+
1973
+ $dst = (bool) getid3_lib::BigEndian2Int(substr($data, 2, 1));
1974
+ switch (getid3_lib::BigEndian2Int(substr($data, 3, 1))) {
1975
+ case 2:
1976
+ $datedisplayformat = 'D/M/Y'; break;
1977
+ case 1:
1978
+ $datedisplayformat = 'M/D/Y'; break;
1979
+ case 0:
1980
+ default:
1981
+ $datedisplayformat = 'Y/M/D'; break;
1982
+ }
1983
+
1984
+ $data = array('timezone'=>floatval($timezone), 'dst'=>$dst, 'display'=>$datedisplayformat);
1985
+ break;
1986
+ case 0x02000083: // LensType
1987
+ $data = array(
1988
+ //'_' => $data,
1989
+ 'mf' => (bool) ($data & 0x01),
1990
+ 'd' => (bool) ($data & 0x02),
1991
+ 'g' => (bool) ($data & 0x04),
1992
+ 'vr' => (bool) ($data & 0x08),
1993
+ );
1994
+ break;
1995
+ }
1996
+ $tag_name = (isset($NCTGtagName[$record_type]) ? $NCTGtagName[$record_type] : '0x'.str_pad(dechex($record_type), 8, '0', STR_PAD_LEFT));
1997
+ $parsed[$tag_name] = $data;
1998
+ }
1999
+ return $parsed;
2000
+ }
2001
+
2002
+
2003
+ function CopyToAppropriateCommentsSection($keyname, $data, $boxname='') {
2004
+ static $handyatomtranslatorarray = array();
2005
+ if (empty($handyatomtranslatorarray)) {
2006
+ $handyatomtranslatorarray['�cpy'] = 'copyright';
2007
+ $handyatomtranslatorarray['�day'] = 'creation_date'; // iTunes 4.0
2008
+ $handyatomtranslatorarray['�dir'] = 'director';
2009
+ $handyatomtranslatorarray['�ed1'] = 'edit1';
2010
+ $handyatomtranslatorarray['�ed2'] = 'edit2';
2011
+ $handyatomtranslatorarray['�ed3'] = 'edit3';
2012
+ $handyatomtranslatorarray['�ed4'] = 'edit4';
2013
+ $handyatomtranslatorarray['�ed5'] = 'edit5';
2014
+ $handyatomtranslatorarray['�ed6'] = 'edit6';
2015
+ $handyatomtranslatorarray['�ed7'] = 'edit7';
2016
+ $handyatomtranslatorarray['�ed8'] = 'edit8';
2017
+ $handyatomtranslatorarray['�ed9'] = 'edit9';
2018
+ $handyatomtranslatorarray['�fmt'] = 'format';
2019
+ $handyatomtranslatorarray['�inf'] = 'information';
2020
+ $handyatomtranslatorarray['�prd'] = 'producer';
2021
+ $handyatomtranslatorarray['�prf'] = 'performers';
2022
+ $handyatomtranslatorarray['�req'] = 'system_requirements';
2023
+ $handyatomtranslatorarray['�src'] = 'source_credit';
2024
+ $handyatomtranslatorarray['�wrt'] = 'writer';
2025
+
2026
+ // http://www.geocities.com/xhelmboyx/quicktime/formats/qtm-layout.txt
2027
+ $handyatomtranslatorarray['�nam'] = 'title'; // iTunes 4.0
2028
+ $handyatomtranslatorarray['�cmt'] = 'comment'; // iTunes 4.0
2029
+ $handyatomtranslatorarray['�wrn'] = 'warning';
2030
+ $handyatomtranslatorarray['�hst'] = 'host_computer';
2031
+ $handyatomtranslatorarray['�mak'] = 'make';
2032
+ $handyatomtranslatorarray['�mod'] = 'model';
2033
+ $handyatomtranslatorarray['�PRD'] = 'product';
2034
+ $handyatomtranslatorarray['�swr'] = 'software';
2035
+ $handyatomtranslatorarray['�aut'] = 'author';
2036
+ $handyatomtranslatorarray['�ART'] = 'artist';
2037
+ $handyatomtranslatorarray['�trk'] = 'track';
2038
+ $handyatomtranslatorarray['�alb'] = 'album'; // iTunes 4.0
2039
+ $handyatomtranslatorarray['�com'] = 'comment';
2040
+ $handyatomtranslatorarray['�gen'] = 'genre'; // iTunes 4.0
2041
+ $handyatomtranslatorarray['�ope'] = 'composer';
2042
+ $handyatomtranslatorarray['�url'] = 'url';
2043
+ $handyatomtranslatorarray['�enc'] = 'encoder';
2044
+
2045
+ // http://atomicparsley.sourceforge.net/mpeg-4files.html
2046
+ $handyatomtranslatorarray['�art'] = 'artist'; // iTunes 4.0
2047
+ $handyatomtranslatorarray['aART'] = 'album_artist';
2048
+ $handyatomtranslatorarray['trkn'] = 'track_number'; // iTunes 4.0
2049
+ $handyatomtranslatorarray['disk'] = 'disc_number'; // iTunes 4.0
2050
+ $handyatomtranslatorarray['gnre'] = 'genre'; // iTunes 4.0
2051
+ $handyatomtranslatorarray['�too'] = 'encoder'; // iTunes 4.0
2052
+ $handyatomtranslatorarray['tmpo'] = 'bpm'; // iTunes 4.0
2053
+ $handyatomtranslatorarray['cprt'] = 'copyright'; // iTunes 4.0?
2054
+ $handyatomtranslatorarray['cpil'] = 'compilation'; // iTunes 4.0
2055
+ $handyatomtranslatorarray['covr'] = 'picture'; // iTunes 4.0
2056
+ $handyatomtranslatorarray['rtng'] = 'rating'; // iTunes 4.0
2057
+ $handyatomtranslatorarray['�grp'] = 'grouping'; // iTunes 4.2
2058
+ $handyatomtranslatorarray['stik'] = 'stik'; // iTunes 4.9
2059
+ $handyatomtranslatorarray['pcst'] = 'podcast'; // iTunes 4.9
2060
+ $handyatomtranslatorarray['catg'] = 'category'; // iTunes 4.9
2061
+ $handyatomtranslatorarray['keyw'] = 'keyword'; // iTunes 4.9
2062
+ $handyatomtranslatorarray['purl'] = 'podcast_url'; // iTunes 4.9
2063
+ $handyatomtranslatorarray['egid'] = 'episode_guid'; // iTunes 4.9
2064
+ $handyatomtranslatorarray['desc'] = 'description'; // iTunes 5.0
2065
+ $handyatomtranslatorarray['�lyr'] = 'lyrics'; // iTunes 5.0
2066
+ $handyatomtranslatorarray['tvnn'] = 'tv_network_name'; // iTunes 6.0
2067
+ $handyatomtranslatorarray['tvsh'] = 'tv_show_name'; // iTunes 6.0
2068
+ $handyatomtranslatorarray['tvsn'] = 'tv_season'; // iTunes 6.0
2069
+ $handyatomtranslatorarray['tves'] = 'tv_episode'; // iTunes 6.0
2070
+ $handyatomtranslatorarray['purd'] = 'purchase_date'; // iTunes 6.0.2
2071
+ $handyatomtranslatorarray['pgap'] = 'gapless_playback'; // iTunes 7.0
2072
+
2073
+ // http://www.geocities.com/xhelmboyx/quicktime/formats/mp4-layout.txt
2074
+
2075
+
2076
+
2077
+ // boxnames:
2078
+ $handyatomtranslatorarray['iTunSMPB'] = 'iTunSMPB';
2079
+ $handyatomtranslatorarray['iTunNORM'] = 'iTunNORM';
2080
+ $handyatomtranslatorarray['Encoding Params'] = 'Encoding Params';
2081
+ $handyatomtranslatorarray['replaygain_track_gain'] = 'replaygain_track_gain';
2082
+ $handyatomtranslatorarray['replaygain_track_peak'] = 'replaygain_track_peak';
2083
+ $handyatomtranslatorarray['replaygain_track_minmax'] = 'replaygain_track_minmax';
2084
+ $handyatomtranslatorarray['MusicIP PUID'] = 'MusicIP PUID';
2085
+ $handyatomtranslatorarray['MusicBrainz Artist Id'] = 'MusicBrainz Artist Id';
2086
+ $handyatomtranslatorarray['MusicBrainz Album Id'] = 'MusicBrainz Album Id';
2087
+ $handyatomtranslatorarray['MusicBrainz Album Artist Id'] = 'MusicBrainz Album Artist Id';
2088
+ $handyatomtranslatorarray['MusicBrainz Track Id'] = 'MusicBrainz Track Id';
2089
+ $handyatomtranslatorarray['MusicBrainz Disc Id'] = 'MusicBrainz Disc Id';
2090
+ }
2091
+ $info = &$this->getid3->info;
2092
+ $comment_key = '';
2093
+ if ($boxname && ($boxname != $keyname) && isset($handyatomtranslatorarray[$boxname])) {
2094
+ $comment_key = $handyatomtranslatorarray[$boxname];
2095
+ } elseif (isset($handyatomtranslatorarray[$keyname])) {
2096
+ $comment_key = $handyatomtranslatorarray[$keyname];
2097
+ }
2098
+ if ($comment_key) {
2099
+ if ($comment_key == 'picture') {
2100
+ if (!is_array($data)) {
2101
+ $image_mime = '';
2102
+ if (preg_match('#^\x89\x50\x4E\x47\x0D\x0A\x1A\x0A#', $data)) {
2103
+ $image_mime = 'image/png';
2104
+ } elseif (preg_match('#^\xFF\xD8\xFF#', $data)) {
2105
+ $image_mime = 'image/jpeg';
2106
+ } elseif (preg_match('#^GIF#', $data)) {
2107
+ $image_mime = 'image/gif';
2108
+ } elseif (preg_match('#^BM#', $data)) {
2109
+ $image_mime = 'image/bmp';
2110
+ }
2111
+ $data = array('data'=>$data, 'image_mime'=>$image_mime);
2112
+ }
2113
+ }
2114
+ $info['quicktime']['comments'][$comment_key][] = $data;
2115
+ }
2116
+ return true;
2117
+ }
2118
+
2119
+ function NoNullString($nullterminatedstring) {
2120
+ // remove the single null terminator on null terminated strings
2121
+ if (substr($nullterminatedstring, strlen($nullterminatedstring) - 1, 1) === "\x00") {
2122
+ return substr($nullterminatedstring, 0, strlen($nullterminatedstring) - 1);
2123
+ }
2124
+ return $nullterminatedstring;
2125
+ }
2126
+
2127
+ function Pascal2String($pascalstring) {
2128
+ // Pascal strings have 1 unsigned byte at the beginning saying how many chars (1-255) are in the string
2129
+ return substr($pascalstring, 1);
2130
+ }
2131
+
2132
+ }
2133
+
2134
+ ?>
getid3/module.audio.aac.php ADDED
@@ -0,0 +1,515 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /////////////////////////////////////////////////////////////////
3
+ /// getID3() by James Heinrich <info@getid3.org> //
4
+ // available at http://getid3.sourceforge.net //
5
+ // or http://www.getid3.org //
6
+ /////////////////////////////////////////////////////////////////
7
+ // See readme.txt for more details //
8
+ /////////////////////////////////////////////////////////////////
9
+ // //
10
+ // module.audio.aac.php //
11
+ // module for analyzing AAC Audio files //
12
+ // dependencies: NONE //
13
+ // ///
14
+ /////////////////////////////////////////////////////////////////
15
+
16
+
17
+ class getid3_aac extends getid3_handler
18
+ {
19
+ function Analyze() {
20
+ $info = &$this->getid3->info;
21
+ fseek($this->getid3->fp, $info['avdataoffset'], SEEK_SET);
22
+ if (fread($this->getid3->fp, 4) == 'ADIF') {
23
+ $this->getAACADIFheaderFilepointer();
24
+ } else {
25
+ $this->getAACADTSheaderFilepointer();
26
+ }
27
+ return true;
28
+ }
29
+
30
+
31
+
32
+ function getAACADIFheaderFilepointer() {
33
+ $info = &$this->getid3->info;
34
+ $info['fileformat'] = 'aac';
35
+ $info['audio']['dataformat'] = 'aac';
36
+ $info['audio']['lossless'] = false;
37
+
38
+ fseek($this->getid3->fp, $info['avdataoffset'], SEEK_SET);
39
+ $AACheader = fread($this->getid3->fp, 1024);
40
+ $offset = 0;
41
+
42
+ if (substr($AACheader, 0, 4) == 'ADIF') {
43
+
44
+ // http://faac.sourceforge.net/wiki/index.php?page=ADIF
45
+
46
+ // http://libmpeg.org/mpeg4/doc/w2203tfs.pdf
47
+ // adif_header() {
48
+ // adif_id 32
49
+ // copyright_id_present 1
50
+ // if( copyright_id_present )
51
+ // copyright_id 72
52
+ // original_copy 1
53
+ // home 1
54
+ // bitstream_type 1
55
+ // bitrate 23
56
+ // num_program_config_elements 4
57
+ // for (i = 0; i < num_program_config_elements + 1; i++ ) {
58
+ // if( bitstream_type == '0' )
59
+ // adif_buffer_fullness 20
60
+ // program_config_element()
61
+ // }
62
+ // }
63
+
64
+ $AACheaderBitstream = getid3_lib::BigEndian2Bin($AACheader);
65
+ $bitoffset = 0;
66
+
67
+ $info['aac']['header_type'] = 'ADIF';
68
+ $bitoffset += 32;
69
+ $info['aac']['header']['mpeg_version'] = 4;
70
+
71
+ $info['aac']['header']['copyright'] = (bool) (substr($AACheaderBitstream, $bitoffset, 1) == '1');
72
+ $bitoffset += 1;
73
+ if ($info['aac']['header']['copyright']) {
74
+ $info['aac']['header']['copyright_id'] = getid3_lib::Bin2String(substr($AACheaderBitstream, $bitoffset, 72));
75
+ $bitoffset += 72;
76
+ }
77
+ $info['aac']['header']['original_copy'] = (bool) (substr($AACheaderBitstream, $bitoffset, 1) == '1');
78
+ $bitoffset += 1;
79
+ $info['aac']['header']['home'] = (bool) (substr($AACheaderBitstream, $bitoffset, 1) == '1');
80
+ $bitoffset += 1;
81
+ $info['aac']['header']['is_vbr'] = (bool) (substr($AACheaderBitstream, $bitoffset, 1) == '1');
82
+ $bitoffset += 1;
83
+ if ($info['aac']['header']['is_vbr']) {
84
+ $info['audio']['bitrate_mode'] = 'vbr';
85
+ $info['aac']['header']['bitrate_max'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 23));
86
+ $bitoffset += 23;
87
+ } else {
88
+ $info['audio']['bitrate_mode'] = 'cbr';
89
+ $info['aac']['header']['bitrate'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 23));
90
+ $bitoffset += 23;
91
+ $info['audio']['bitrate'] = $info['aac']['header']['bitrate'];
92
+ }
93
+ if ($info['audio']['bitrate'] == 0) {
94
+ $info['error'][] = 'Corrupt AAC file: bitrate_audio == zero';
95
+ return false;
96
+ }
97
+ $info['aac']['header']['num_program_configs'] = 1 + getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
98
+ $bitoffset += 4;
99
+
100
+ for ($i = 0; $i < $info['aac']['header']['num_program_configs']; $i++) {
101
+ // http://www.audiocoding.com/wiki/index.php?page=program_config_element
102
+
103
+ // buffer_fullness 20
104
+
105
+ // element_instance_tag 4
106
+ // object_type 2
107
+ // sampling_frequency_index 4
108
+ // num_front_channel_elements 4
109
+ // num_side_channel_elements 4
110
+ // num_back_channel_elements 4
111
+ // num_lfe_channel_elements 2
112
+ // num_assoc_data_elements 3
113
+ // num_valid_cc_elements 4
114
+ // mono_mixdown_present 1
115
+ // mono_mixdown_element_number 4 if mono_mixdown_present == 1
116
+ // stereo_mixdown_present 1
117
+ // stereo_mixdown_element_number 4 if stereo_mixdown_present == 1
118
+ // matrix_mixdown_idx_present 1
119
+ // matrix_mixdown_idx 2 if matrix_mixdown_idx_present == 1
120
+ // pseudo_surround_enable 1 if matrix_mixdown_idx_present == 1
121
+ // for (i = 0; i < num_front_channel_elements; i++) {
122
+ // front_element_is_cpe[i] 1
123
+ // front_element_tag_select[i] 4
124
+ // }
125
+ // for (i = 0; i < num_side_channel_elements; i++) {
126
+ // side_element_is_cpe[i] 1
127
+ // side_element_tag_select[i] 4
128
+ // }
129
+ // for (i = 0; i < num_back_channel_elements; i++) {
130
+ // back_element_is_cpe[i] 1
131
+ // back_element_tag_select[i] 4
132
+ // }
133
+ // for (i = 0; i < num_lfe_channel_elements; i++) {
134
+ // lfe_element_tag_select[i] 4
135
+ // }
136
+ // for (i = 0; i < num_assoc_data_elements; i++) {
137
+ // assoc_data_element_tag_select[i] 4
138
+ // }
139
+ // for (i = 0; i < num_valid_cc_elements; i++) {
140
+ // cc_element_is_ind_sw[i] 1
141
+ // valid_cc_element_tag_select[i] 4
142
+ // }
143
+ // byte_alignment() VAR
144
+ // comment_field_bytes 8
145
+ // for (i = 0; i < comment_field_bytes; i++) {
146
+ // comment_field_data[i] 8
147
+ // }
148
+
149
+ if (!$info['aac']['header']['is_vbr']) {
150
+ $info['aac']['program_configs'][$i]['buffer_fullness'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 20));
151
+ $bitoffset += 20;
152
+ }
153
+ $info['aac']['program_configs'][$i]['element_instance_tag'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
154
+ $bitoffset += 4;
155
+ $info['aac']['program_configs'][$i]['object_type'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 2));
156
+ $bitoffset += 2;
157
+ $info['aac']['program_configs'][$i]['sampling_frequency_index'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
158
+ $bitoffset += 4;
159
+ $info['aac']['program_configs'][$i]['num_front_channel_elements'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
160
+ $bitoffset += 4;
161
+ $info['aac']['program_configs'][$i]['num_side_channel_elements'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
162
+ $bitoffset += 4;
163
+ $info['aac']['program_configs'][$i]['num_back_channel_elements'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
164
+ $bitoffset += 4;
165
+ $info['aac']['program_configs'][$i]['num_lfe_channel_elements'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 2));
166
+ $bitoffset += 2;
167
+ $info['aac']['program_configs'][$i]['num_assoc_data_elements'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 3));
168
+ $bitoffset += 3;
169
+ $info['aac']['program_configs'][$i]['num_valid_cc_elements'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
170
+ $bitoffset += 4;
171
+ $info['aac']['program_configs'][$i]['mono_mixdown_present'] = (bool) getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 1));
172
+ $bitoffset += 1;
173
+ if ($info['aac']['program_configs'][$i]['mono_mixdown_present']) {
174
+ $info['aac']['program_configs'][$i]['mono_mixdown_element_number'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
175
+ $bitoffset += 4;
176
+ }
177
+ $info['aac']['program_configs'][$i]['stereo_mixdown_present'] = (bool) getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 1));
178
+ $bitoffset += 1;
179
+ if ($info['aac']['program_configs'][$i]['stereo_mixdown_present']) {
180
+ $info['aac']['program_configs'][$i]['stereo_mixdown_element_number'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
181
+ $bitoffset += 4;
182
+ }
183
+ $info['aac']['program_configs'][$i]['matrix_mixdown_idx_present'] = (bool) getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 1));
184
+ $bitoffset += 1;
185
+ if ($info['aac']['program_configs'][$i]['matrix_mixdown_idx_present']) {
186
+ $info['aac']['program_configs'][$i]['matrix_mixdown_idx'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 2));
187
+ $bitoffset += 2;
188
+ $info['aac']['program_configs'][$i]['pseudo_surround_enable'] = (bool) getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 1));
189
+ $bitoffset += 1;
190
+ }
191
+ for ($j = 0; $j < $info['aac']['program_configs'][$i]['num_front_channel_elements']; $j++) {
192
+ $info['aac']['program_configs'][$i]['front_element_is_cpe'][$j] = (bool) getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 1));
193
+ $bitoffset += 1;
194
+ $info['aac']['program_configs'][$i]['front_element_tag_select'][$j] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
195
+ $bitoffset += 4;
196
+ }
197
+ for ($j = 0; $j < $info['aac']['program_configs'][$i]['num_side_channel_elements']; $j++) {
198
+ $info['aac']['program_configs'][$i]['side_element_is_cpe'][$j] = (bool) getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 1));
199
+ $bitoffset += 1;
200
+ $info['aac']['program_configs'][$i]['side_element_tag_select'][$j] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
201
+ $bitoffset += 4;
202
+ }
203
+ for ($j = 0; $j < $info['aac']['program_configs'][$i]['num_back_channel_elements']; $j++) {
204
+ $info['aac']['program_configs'][$i]['back_element_is_cpe'][$j] = (bool) getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 1));
205
+ $bitoffset += 1;
206
+ $info['aac']['program_configs'][$i]['back_element_tag_select'][$j] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
207
+ $bitoffset += 4;
208
+ }
209
+ for ($j = 0; $j < $info['aac']['program_configs'][$i]['num_lfe_channel_elements']; $j++) {
210
+ $info['aac']['program_configs'][$i]['lfe_element_tag_select'][$j] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
211
+ $bitoffset += 4;
212
+ }
213
+ for ($j = 0; $j < $info['aac']['program_configs'][$i]['num_assoc_data_elements']; $j++) {
214
+ $info['aac']['program_configs'][$i]['assoc_data_element_tag_select'][$j] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
215
+ $bitoffset += 4;
216
+ }
217
+ for ($j = 0; $j < $info['aac']['program_configs'][$i]['num_valid_cc_elements']; $j++) {
218
+ $info['aac']['program_configs'][$i]['cc_element_is_ind_sw'][$j] = (bool) getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 1));
219
+ $bitoffset += 1;
220
+ $info['aac']['program_configs'][$i]['valid_cc_element_tag_select'][$j] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 4));
221
+ $bitoffset += 4;
222
+ }
223
+
224
+ $bitoffset = ceil($bitoffset / 8) * 8;
225
+
226
+ $info['aac']['program_configs'][$i]['comment_field_bytes'] = getid3_lib::Bin2Dec(substr($AACheaderBitstream, $bitoffset, 8));
227
+ $bitoffset += 8;
228
+ $info['aac']['program_configs'][$i]['comment_field'] = getid3_lib::Bin2String(substr($AACheaderBitstream, $bitoffset, 8 * $info['aac']['program_configs'][$i]['comment_field_bytes']));
229
+ $bitoffset += 8 * $info['aac']['program_configs'][$i]['comment_field_bytes'];
230
+
231
+
232
+ $info['aac']['header']['profile'] = self::AACprofileLookup($info['aac']['program_configs'][$i]['object_type'], $info['aac']['header']['mpeg_version']);
233
+ $info['aac']['program_configs'][$i]['sampling_frequency'] = self::AACsampleRateLookup($info['aac']['program_configs'][$i]['sampling_frequency_index']);
234
+ $info['audio']['sample_rate'] = $info['aac']['program_configs'][$i]['sampling_frequency'];
235
+ $info['audio']['channels'] = self::AACchannelCountCalculate($info['aac']['program_configs'][$i]);
236
+ if ($info['aac']['program_configs'][$i]['comment_field']) {
237
+ $info['aac']['comments'][] = $info['aac']['program_configs'][$i]['comment_field'];
238
+ }
239
+ }
240
+ $info['playtime_seconds'] = (($info['avdataend'] - $info['avdataoffset']) * 8) / $info['audio']['bitrate'];
241
+
242
+ $info['audio']['encoder_options'] = $info['aac']['header_type'].' '.$info['aac']['header']['profile'];
243
+
244
+
245
+
246
+ return true;
247
+
248
+ } else {
249
+
250
+ unset($info['fileformat']);
251
+ unset($info['aac']);
252
+ $info['error'][] = 'AAC-ADIF synch not found at offset '.$info['avdataoffset'].' (expected "ADIF", found "'.substr($AACheader, 0, 4).'" instead)';
253
+ return false;
254
+
255
+ }
256
+
257
+ }
258
+
259
+
260
+ function getAACADTSheaderFilepointer($MaxFramesToScan=1000000, $ReturnExtendedInfo=false) {
261
+ $info = &$this->getid3->info;
262
+
263
+ // based loosely on code from AACfile by Jurgen Faul <jfaul�gmx.de>
264
+ // http://jfaul.de/atl or http://j-faul.virtualave.net/atl/atl.html
265
+
266
+
267
+ // http://faac.sourceforge.net/wiki/index.php?page=ADTS // dead link
268
+ // http://wiki.multimedia.cx/index.php?title=ADTS
269
+
270
+ // * ADTS Fixed Header: these don't change from frame to frame
271
+ // syncword 12 always: '111111111111'
272
+ // ID 1 0: MPEG-4, 1: MPEG-2
273
+ // MPEG layer 2 If you send AAC in MPEG-TS, set to 0
274
+ // protection_absent 1 0: CRC present; 1: no CRC
275
+ // profile 2 0: AAC Main; 1: AAC LC (Low Complexity); 2: AAC SSR (Scalable Sample Rate); 3: AAC LTP (Long Term Prediction)
276
+ // sampling_frequency_index 4 15 not allowed
277
+ // private_bit 1 usually 0
278
+ // channel_configuration 3
279
+ // original/copy 1 0: original; 1: copy
280
+ // home 1 usually 0
281
+ // emphasis 2 only if ID == 0 (ie MPEG-4) // not present in some documentation?
282
+
283
+ // * ADTS Variable Header: these can change from frame to frame
284
+ // copyright_identification_bit 1
285
+ // copyright_identification_start 1
286
+ // aac_frame_length 13 length of the frame including header (in bytes)
287
+ // adts_buffer_fullness 11 0x7FF indicates VBR
288
+ // no_raw_data_blocks_in_frame 2
289
+
290
+ // * ADTS Error check
291
+ // crc_check 16 only if protection_absent == 0
292
+
293
+ $byteoffset = $info['avdataoffset'];
294
+ $framenumber = 0;
295
+
296
+ // Init bit pattern array
297
+ static $decbin = array();
298
+
299
+ // Populate $bindec
300
+ for ($i = 0; $i < 256; $i++) {
301
+ $decbin[chr($i)] = str_pad(decbin($i), 8, '0', STR_PAD_LEFT);
302
+ }
303
+
304
+ // used to calculate bitrate below
305
+ $BitrateCache = array();
306
+
307
+
308
+ while (true) {
309
+ // breaks out when end-of-file encountered, or invalid data found,
310
+ // or MaxFramesToScan frames have been scanned
311
+
312
+ if (!getid3_lib::intValueSupported($byteoffset)) {
313
+ $info['warning'][] = 'Unable to parse AAC file beyond '.ftell($this->getid3->fp).' (PHP does not support file operations beyond '.round(PHP_INT_MAX / 1073741824).'GB)';
314
+ return false;
315
+ }
316
+ fseek($this->getid3->fp, $byteoffset, SEEK_SET);
317
+
318
+ // First get substring
319
+ $substring = fread($this->getid3->fp, 9); // header is 7 bytes (or 9 if CRC is present)
320
+ $substringlength = strlen($substring);
321
+ if ($substringlength != 9) {
322
+ $info['error'][] = 'Failed to read 7 bytes at offset '.(ftell($this->getid3->fp) - $substringlength).' (only read '.$substringlength.' bytes)';
323
+ return false;
324
+ }
325
+ // this would be easier with 64-bit math, but split it up to allow for 32-bit:
326
+ $header1 = getid3_lib::BigEndian2Int(substr($substring, 0, 2));
327
+ $header2 = getid3_lib::BigEndian2Int(substr($substring, 2, 4));
328
+ $header3 = getid3_lib::BigEndian2Int(substr($substring, 6, 1));
329
+
330
+ $info['aac']['header']['raw']['syncword'] = ($header1 & 0xFFF0) >> 4;
331
+ if ($info['aac']['header']['raw']['syncword'] != 0x0FFF) {
332
+ $info['error'][] = 'Synch pattern (0x0FFF) not found at offset '.(ftell($this->getid3->fp) - $substringlength).' (found 0x0'.strtoupper(dechex($info['aac']['header']['raw']['syncword'])).' instead)';
333
+ //if ($info['fileformat'] == 'aac') {
334
+ // return true;
335
+ //}
336
+ unset($info['aac']);
337
+ return false;
338
+ }
339
+
340
+ // Gather info for first frame only - this takes time to do 1000 times!
341
+ if ($framenumber == 0) {
342
+ $info['aac']['header_type'] = 'ADTS';
343
+ $info['fileformat'] = 'aac';
344
+ $info['audio']['dataformat'] = 'aac';
345
+
346
+ $info['aac']['header']['raw']['mpeg_version'] = ($header1 & 0x0008) >> 3;
347
+ $info['aac']['header']['raw']['mpeg_layer'] = ($header1 & 0x0006) >> 1;
348
+ $info['aac']['header']['raw']['protection_absent'] = ($header1 & 0x0001) >> 0;
349
+
350
+ $info['aac']['header']['raw']['profile_code'] = ($header2 & 0xC0000000) >> 30;
351
+ $info['aac']['header']['raw']['sample_rate_code'] = ($header2 & 0x3C000000) >> 26;
352
+ $info['aac']['header']['raw']['private_stream'] = ($header2 & 0x02000000) >> 25;
353
+ $info['aac']['header']['raw']['channels_code'] = ($header2 & 0x01C00000) >> 22;
354
+ $info['aac']['header']['raw']['original'] = ($header2 & 0x00200000) >> 21;
355
+ $info['aac']['header']['raw']['home'] = ($header2 & 0x00100000) >> 20;
356
+ $info['aac']['header']['raw']['copyright_stream'] = ($header2 & 0x00080000) >> 19;
357
+ $info['aac']['header']['raw']['copyright_start'] = ($header2 & 0x00040000) >> 18;
358
+ $info['aac']['header']['raw']['frame_length'] = ($header2 & 0x0003FFE0) >> 5;
359
+
360
+ $info['aac']['header']['mpeg_version'] = ($info['aac']['header']['raw']['mpeg_version'] ? 2 : 4);
361
+ $info['aac']['header']['crc_present'] = ($info['aac']['header']['raw']['protection_absent'] ? false: true);
362
+ $info['aac']['header']['profile'] = self::AACprofileLookup($info['aac']['header']['raw']['profile_code'], $info['aac']['header']['mpeg_version']);
363
+ $info['aac']['header']['sample_frequency'] = self::AACsampleRateLookup($info['aac']['header']['raw']['sample_rate_code']);
364
+ $info['aac']['header']['private'] = (bool) $info['aac']['header']['raw']['private_stream'];
365
+ $info['aac']['header']['original'] = (bool) $info['aac']['header']['raw']['original'];
366
+ $info['aac']['header']['home'] = (bool) $info['aac']['header']['raw']['home'];
367
+ $info['aac']['header']['channels'] = (($info['aac']['header']['raw']['channels_code'] == 7) ? 8 : $info['aac']['header']['raw']['channels_code']);
368
+ if ($ReturnExtendedInfo) {
369
+ $info['aac'][$framenumber]['copyright_id_bit'] = (bool) $info['aac']['header']['raw']['copyright_stream'];
370
+ $info['aac'][$framenumber]['copyright_id_start'] = (bool) $info['aac']['header']['raw']['copyright_start'];
371
+ }
372
+
373
+ if ($info['aac']['header']['raw']['mpeg_layer'] != 0) {
374
+ $info['warning'][] = 'Layer error - expected "0", found "'.$info['aac']['header']['raw']['mpeg_layer'].'" instead';
375
+ }
376
+ if ($info['aac']['header']['sample_frequency'] == 0) {
377
+ $info['error'][] = 'Corrupt AAC file: sample_frequency == zero';
378
+ return false;
379
+ }
380
+
381
+ $info['audio']['sample_rate'] = $info['aac']['header']['sample_frequency'];
382
+ $info['audio']['channels'] = $info['aac']['header']['channels'];
383
+ }
384
+
385
+ $FrameLength = ($header2 & 0x0003FFE0) >> 5;
386
+
387
+ if (!isset($BitrateCache[$FrameLength])) {
388
+ $BitrateCache[$FrameLength] = ($info['aac']['header']['sample_frequency'] / 1024) * $FrameLength * 8;
389
+ }
390
+ getid3_lib::safe_inc($info['aac']['bitrate_distribution'][$BitrateCache[$FrameLength]], 1);
391
+
392
+ $info['aac'][$framenumber]['aac_frame_length'] = $FrameLength;
393
+
394
+ $info['aac'][$framenumber]['adts_buffer_fullness'] = (($header2 & 0x0000001F) << 6) & (($header3 & 0xFC) >> 2);
395
+ if ($info['aac'][$framenumber]['adts_buffer_fullness'] == 0x07FF) {
396
+ $info['audio']['bitrate_mode'] = 'vbr';
397
+ } else {
398
+ $info['audio']['bitrate_mode'] = 'cbr';
399
+ }
400
+ $info['aac'][$framenumber]['num_raw_data_blocks'] = (($header3 & 0x03) >> 0);
401
+
402
+ if ($info['aac']['header']['crc_present']) {
403
+ //$info['aac'][$framenumber]['crc'] = getid3_lib::BigEndian2Int(substr($substring, 7, 2);
404
+ }
405
+
406
+ if (!$ReturnExtendedInfo) {
407
+ unset($info['aac'][$framenumber]);
408
+ }
409
+
410
+ /*
411
+ $rounded_precision = 5000;
412
+ $info['aac']['bitrate_distribution_rounded'] = array();
413
+ foreach ($info['aac']['bitrate_distribution'] as $bitrate => $count) {
414
+ $rounded_bitrate = round($bitrate / $rounded_precision) * $rounded_precision;
415
+ getid3_lib::safe_inc($info['aac']['bitrate_distribution_rounded'][$rounded_bitrate], $count);
416
+ }
417
+ ksort($info['aac']['bitrate_distribution_rounded']);
418
+ */
419
+
420
+ $byteoffset += $FrameLength;
421
+ if ((++$framenumber < $MaxFramesToScan) && (($byteoffset + 10) < $info['avdataend'])) {
422
+
423
+ // keep scanning
424
+
425
+ } else {
426
+
427
+ $info['aac']['frames'] = $framenumber;
428
+ $info['playtime_seconds'] = ($info['avdataend'] / $byteoffset) * (($framenumber * 1024) / $info['aac']['header']['sample_frequency']); // (1 / % of file scanned) * (samples / (samples/sec)) = seconds
429
+ if ($info['playtime_seconds'] == 0) {
430
+ $info['error'][] = 'Corrupt AAC file: playtime_seconds == zero';
431
+ return false;
432
+ }
433
+ $info['audio']['bitrate'] = (($info['avdataend'] - $info['avdataoffset']) * 8) / $info['playtime_seconds'];
434
+ ksort($info['aac']['bitrate_distribution']);
435
+
436
+ $info['audio']['encoder_options'] = $info['aac']['header_type'].' '.$info['aac']['header']['profile'];
437
+
438
+ return true;
439
+
440
+ }
441
+ }
442
+ // should never get here.
443
+ }
444
+
445
+ public static function AACsampleRateLookup($samplerateid) {
446
+ static $AACsampleRateLookup = array();
447
+ if (empty($AACsampleRateLookup)) {
448
+ $AACsampleRateLookup[0] = 96000;
449
+ $AACsampleRateLookup[1] = 88200;
450
+ $AACsampleRateLookup[2] = 64000;
451
+ $AACsampleRateLookup[3] = 48000;
452
+ $AACsampleRateLookup[4] = 44100;
453
+ $AACsampleRateLookup[5] = 32000;
454
+ $AACsampleRateLookup[6] = 24000;
455
+ $AACsampleRateLookup[7] = 22050;
456
+ $AACsampleRateLookup[8] = 16000;
457
+ $AACsampleRateLookup[9] = 12000;
458
+ $AACsampleRateLookup[10] = 11025;
459
+ $AACsampleRateLookup[11] = 8000;
460
+ $AACsampleRateLookup[12] = 0;
461
+ $AACsampleRateLookup[13] = 0;
462
+ $AACsampleRateLookup[14] = 0;
463
+ $AACsampleRateLookup[15] = 0;
464
+ }
465
+ return (isset($AACsampleRateLookup[$samplerateid]) ? $AACsampleRateLookup[$samplerateid] : 'invalid');
466
+ }
467
+
468
+ public static function AACprofileLookup($profileid, $mpegversion) {
469
+ static $AACprofileLookup = array();
470
+ if (empty($AACprofileLookup)) {
471
+ $AACprofileLookup[2][0] = 'Main profile';
472
+ $AACprofileLookup[2][1] = 'Low Complexity profile (LC)';
473
+ $AACprofileLookup[2][2] = 'Scalable Sample Rate profile (SSR)';
474
+ $AACprofileLookup[2][3] = '(reserved)';
475
+ $AACprofileLookup[4][0] = 'AAC_MAIN';
476
+ $AACprofileLookup[4][1] = 'AAC_LC';
477
+ $AACprofileLookup[4][2] = 'AAC_SSR';
478
+ $AACprofileLookup[4][3] = 'AAC_LTP';
479
+ }
480
+ return (isset($AACprofileLookup[$mpegversion][$profileid]) ? $AACprofileLookup[$mpegversion][$profileid] : 'invalid');
481
+ }
482
+
483
+ public static function AACchannelCountCalculate($program_configs) {
484
+ $channels = 0;
485
+ for ($i = 0; $i < $program_configs['num_front_channel_elements']; $i++) {
486
+ $channels++;
487
+ if ($program_configs['front_element_is_cpe'][$i]) {
488
+ // each front element is channel pair (CPE = Channel Pair Element)
489
+ $channels++;
490
+ }
491
+ }
492
+ for ($i = 0; $i < $program_configs['num_side_channel_elements']; $i++) {
493
+ $channels++;
494
+ if ($program_configs['side_element_is_cpe'][$i]) {
495
+ // each side element is channel pair (CPE = Channel Pair Element)
496
+ $channels++;
497
+ }
498
+ }
499
+ for ($i = 0; $i < $program_configs['num_back_channel_elements']; $i++) {
500
+ $channels++;
501
+ if ($program_configs['back_element_is_cpe'][$i]) {
502
+ // each back element is channel pair (CPE = Channel Pair Element)
503
+ $channels++;
504
+ }
505
+ }
506
+ for ($i = 0; $i < $program_configs['num_lfe_channel_elements']; $i++) {
507
+ $channels++;
508
+ }
509
+ return $channels;
510
+ }
511
+
512
+ }
513
+
514
+
515
+ ?>
getid3/module.audio.mp3.php CHANGED
@@ -21,65 +21,70 @@
21
  define('GETID3_MP3_VALID_CHECK_FRAMES', 35);
22
 
23
 
24
- class getid3_mp3
25
  {
26
 
27
  var $allow_bruteforce = false; // forces getID3() to scan the file byte-by-byte and log all the valid audio frame headers - extremely slow, unrecommended, but may provide data from otherwise-unusuable files
28
 
29
- function getid3_mp3(&$fd, &$ThisFileInfo) {
 
30
 
31
- if (!$this->getOnlyMPEGaudioInfo($fd, $ThisFileInfo, $ThisFileInfo['avdataoffset'])) {
 
 
32
  if ($this->allow_bruteforce) {
33
- $ThisFileInfo['error'][] = 'Rescanning file in BruteForce mode';
34
- $this->getOnlyMPEGaudioInfoBruteForce($fd, $ThisFileInfo);
35
  }
36
  }
37
 
38
 
39
- if (isset($ThisFileInfo['mpeg']['audio']['bitrate_mode'])) {
40
- $ThisFileInfo['audio']['bitrate_mode'] = strtolower($ThisFileInfo['mpeg']['audio']['bitrate_mode']);
41
  }
42
 
43
- if (((isset($ThisFileInfo['id3v2']['headerlength']) && ($ThisFileInfo['avdataoffset'] > $ThisFileInfo['id3v2']['headerlength'])) || (!isset($ThisFileInfo['id3v2']) && ($ThisFileInfo['avdataoffset'] > 0)))) {
44
 
45
  $synchoffsetwarning = 'Unknown data before synch ';
46
- if (isset($ThisFileInfo['id3v2']['headerlength'])) {
47
- $synchoffsetwarning .= '(ID3v2 header ends at '.$ThisFileInfo['id3v2']['headerlength'].', then '.($ThisFileInfo['avdataoffset'] - $ThisFileInfo['id3v2']['headerlength']).' bytes garbage, ';
 
 
48
  } else {
49
  $synchoffsetwarning .= '(should be at beginning of file, ';
50
  }
51
- $synchoffsetwarning .= 'synch detected at '.$ThisFileInfo['avdataoffset'].')';
52
- if ($ThisFileInfo['audio']['bitrate_mode'] == 'cbr') {
53
 
54
- if (!empty($ThisFileInfo['id3v2']['headerlength']) && (($ThisFileInfo['avdataoffset'] - $ThisFileInfo['id3v2']['headerlength']) == $ThisFileInfo['mpeg']['audio']['framelength'])) {
55
 
56
  $synchoffsetwarning .= '. This is a known problem with some versions of LAME (3.90-3.92) DLL in CBR mode.';
57
- $ThisFileInfo['audio']['codec'] = 'LAME';
58
  $CurrentDataLAMEversionString = 'LAME3.';
59
 
60
- } elseif (empty($ThisFileInfo['id3v2']['headerlength']) && ($ThisFileInfo['avdataoffset'] == $ThisFileInfo['mpeg']['audio']['framelength'])) {
61
 
62
  $synchoffsetwarning .= '. This is a known problem with some versions of LAME (3.90 - 3.92) DLL in CBR mode.';
63
- $ThisFileInfo['audio']['codec'] = 'LAME';
64
  $CurrentDataLAMEversionString = 'LAME3.';
65
 
66
  }
67
 
68
  }
69
- $ThisFileInfo['warning'][] = $synchoffsetwarning;
70
 
71
  }
72
 
73
- if (isset($ThisFileInfo['mpeg']['audio']['LAME'])) {
74
- $ThisFileInfo['audio']['codec'] = 'LAME';
75
- if (!empty($ThisFileInfo['mpeg']['audio']['LAME']['long_version'])) {
76
- $ThisFileInfo['audio']['encoder'] = rtrim($ThisFileInfo['mpeg']['audio']['LAME']['long_version'], "\x00");
77
- } elseif (!empty($ThisFileInfo['mpeg']['audio']['LAME']['short_version'])) {
78
- $ThisFileInfo['audio']['encoder'] = rtrim($ThisFileInfo['mpeg']['audio']['LAME']['short_version'], "\x00");
79
  }
80
  }
81
 
82
- $CurrentDataLAMEversionString = (!empty($CurrentDataLAMEversionString) ? $CurrentDataLAMEversionString : @$ThisFileInfo['audio']['encoder']);
83
  if (!empty($CurrentDataLAMEversionString) && (substr($CurrentDataLAMEversionString, 0, 6) == 'LAME3.') && !preg_match('[0-9\)]', substr($CurrentDataLAMEversionString, -1))) {
84
  // a version number of LAME that does not end with a number like "LAME3.92"
85
  // or with a closing parenthesis like "LAME3.88 (alpha)"
@@ -89,9 +94,9 @@ class getid3_mp3
89
  $PossiblyLongerLAMEversion_FrameLength = 1441;
90
 
91
  // Not sure what version of LAME this is - look in padding of last frame for longer version string
92
- $PossibleLAMEversionStringOffset = $ThisFileInfo['avdataend'] - $PossiblyLongerLAMEversion_FrameLength;
93
- fseek($fd, $PossibleLAMEversionStringOffset);
94
- $PossiblyLongerLAMEversion_Data = fread($fd, $PossiblyLongerLAMEversion_FrameLength);
95
  switch (substr($CurrentDataLAMEversionString, -1)) {
96
  case 'a':
97
  case 'b':
@@ -103,62 +108,63 @@ class getid3_mp3
103
  if (($PossiblyLongerLAMEversion_String = strstr($PossiblyLongerLAMEversion_Data, $CurrentDataLAMEversionString)) !== false) {
104
  if (substr($PossiblyLongerLAMEversion_String, 0, strlen($CurrentDataLAMEversionString)) == $CurrentDataLAMEversionString) {
105
  $PossiblyLongerLAMEversion_NewString = substr($PossiblyLongerLAMEversion_String, 0, strspn($PossiblyLongerLAMEversion_String, 'LAME0123456789., (abcdefghijklmnopqrstuvwxyzJFSOND)')); //"LAME3.90.3" "LAME3.87 (beta 1, Sep 27 2000)" "LAME3.88 (beta)"
106
- if (strlen($PossiblyLongerLAMEversion_NewString) > strlen(@$ThisFileInfo['audio']['encoder'])) {
107
- $ThisFileInfo['audio']['encoder'] = $PossiblyLongerLAMEversion_NewString;
108
  }
109
  }
110
  }
111
  }
112
- if (!empty($ThisFileInfo['audio']['encoder'])) {
113
- $ThisFileInfo['audio']['encoder'] = rtrim($ThisFileInfo['audio']['encoder'], "\x00 ");
114
  }
115
 
116
- switch (@$ThisFileInfo['mpeg']['audio']['layer']) {
117
  case 1:
118
  case 2:
119
- $ThisFileInfo['audio']['dataformat'] = 'mp'.$ThisFileInfo['mpeg']['audio']['layer'];
120
  break;
121
  }
122
- if ($ThisFileInfo['fileformat'] == 'mp3') {
123
- switch ($ThisFileInfo['audio']['dataformat']) {
124
  case 'mp1':
125
  case 'mp2':
126
  case 'mp3':
127
- $ThisFileInfo['fileformat'] = $ThisFileInfo['audio']['dataformat'];
128
  break;
129
 
130
  default:
131
- $ThisFileInfo['warning'][] = 'Expecting [audio][dataformat] to be mp1/mp2/mp3 when fileformat == mp3, [audio][dataformat] actually "'.$ThisFileInfo['audio']['dataformat'].'"';
132
  break;
133
  }
134
  }
135
 
136
- if (empty($ThisFileInfo['fileformat'])) {
137
- unset($ThisFileInfo['fileformat']);
138
- unset($ThisFileInfo['audio']['bitrate_mode']);
139
- unset($ThisFileInfo['avdataoffset']);
140
- unset($ThisFileInfo['avdataend']);
141
  return false;
142
  }
143
 
144
- $ThisFileInfo['mime_type'] = 'audio/mpeg';
145
- $ThisFileInfo['audio']['lossless'] = false;
146
 
147
  // Calculate playtime
148
- if (!isset($ThisFileInfo['playtime_seconds']) && isset($ThisFileInfo['audio']['bitrate']) && ($ThisFileInfo['audio']['bitrate'] > 0)) {
149
- $ThisFileInfo['playtime_seconds'] = ($ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset']) * 8 / $ThisFileInfo['audio']['bitrate'];
150
  }
151
 
152
- $ThisFileInfo['audio']['encoder_options'] = $this->GuessEncoderOptions($ThisFileInfo);
153
 
154
  return true;
155
  }
156
 
157
 
158
- function GuessEncoderOptions(&$ThisFileInfo) {
159
  // shortcuts
160
- if (!empty($ThisFileInfo['mpeg']['audio'])) {
161
- $thisfile_mpeg_audio = &$ThisFileInfo['mpeg']['audio'];
 
162
  if (!empty($thisfile_mpeg_audio['LAME'])) {
163
  $thisfile_mpeg_audio_lame = &$thisfile_mpeg_audio['LAME'];
164
  }
@@ -167,7 +173,7 @@ class getid3_mp3
167
  $encoder_options = '';
168
  static $NamedPresetBitrates = array(16, 24, 40, 56, 112, 128, 160, 192, 256);
169
 
170
- if ((@$thisfile_mpeg_audio['VBR_method'] == 'Fraunhofer') && !empty($thisfile_mpeg_audio['VBR_quality'])) {
171
 
172
  $encoder_options = 'VBR q'.$thisfile_mpeg_audio['VBR_quality'];
173
 
@@ -242,7 +248,7 @@ class getid3_mp3
242
 
243
  $encoder_options = $KnownEncoderValues['**'][$thisfile_mpeg_audio_lame['vbr_quality']][$thisfile_mpeg_audio_lame['raw']['vbr_method']][$thisfile_mpeg_audio_lame['raw']['noise_shaping']][$thisfile_mpeg_audio_lame['raw']['stereo_mode']][$thisfile_mpeg_audio_lame['ath_type']][$thisfile_mpeg_audio_lame['lowpass_frequency']];
244
 
245
- } elseif ($ThisFileInfo['audio']['bitrate_mode'] == 'vbr') {
246
 
247
  // http://gabriel.mp3-tech.org/mp3infotag.html
248
  // int Quality = (100 - 10 * gfp->VBR_q - gfp->quality)h
@@ -252,13 +258,13 @@ class getid3_mp3
252
  $LAME_q_value = 100 - $thisfile_mpeg_audio_lame['vbr_quality'] - ($LAME_V_value * 10);
253
  $encoder_options = '-V'.$LAME_V_value.' -q'.$LAME_q_value;
254
 
255
- } elseif ($ThisFileInfo['audio']['bitrate_mode'] == 'cbr') {
256
 
257
- $encoder_options = strtoupper($ThisFileInfo['audio']['bitrate_mode']).ceil($ThisFileInfo['audio']['bitrate'] / 1000);
258
 
259
  } else {
260
 
261
- $encoder_options = strtoupper($ThisFileInfo['audio']['bitrate_mode']);
262
 
263
  }
264
 
@@ -266,12 +272,12 @@ class getid3_mp3
266
 
267
  $encoder_options = 'ABR'.$thisfile_mpeg_audio_lame['bitrate_abr'];
268
 
269
- } elseif (!empty($ThisFileInfo['audio']['bitrate'])) {
270
 
271
- if ($ThisFileInfo['audio']['bitrate_mode'] == 'cbr') {
272
- $encoder_options = strtoupper($ThisFileInfo['audio']['bitrate_mode']).ceil($ThisFileInfo['audio']['bitrate'] / 1000);
273
  } else {
274
- $encoder_options = strtoupper($ThisFileInfo['audio']['bitrate_mode']);
275
  }
276
 
277
  }
@@ -279,7 +285,7 @@ class getid3_mp3
279
  $encoder_options .= ' -b'.$thisfile_mpeg_audio_lame['bitrate_min'];
280
  }
281
 
282
- if (@$thisfile_mpeg_audio_lame['encoding_flags']['nogap_prev'] || @$thisfile_mpeg_audio_lame['encoding_flags']['nogap_next']) {
283
  $encoder_options .= ' --nogap';
284
  }
285
 
@@ -389,17 +395,16 @@ class getid3_mp3
389
  }
390
  }
391
  }
392
- if (empty($encoder_options) && !empty($ThisFileInfo['audio']['bitrate']) && !empty($ThisFileInfo['audio']['bitrate_mode'])) {
393
- //$encoder_options = strtoupper($ThisFileInfo['audio']['bitrate_mode']).ceil($ThisFileInfo['audio']['bitrate'] / 1000);
394
- $encoder_options = strtoupper($ThisFileInfo['audio']['bitrate_mode']);
395
  }
396
 
397
  return $encoder_options;
398
  }
399
 
400
 
401
- function decodeMPEGaudioHeader($fd, $offset, &$ThisFileInfo, $recursivesearch=true, $ScanAsCBR=false, $FastMPEGheaderScan=false) {
402
-
403
  static $MPEGaudioVersionLookup;
404
  static $MPEGaudioLayerLookup;
405
  static $MPEGaudioBitrateLookup;
@@ -417,13 +422,12 @@ class getid3_mp3
417
  $MPEGaudioEmphasisLookup = getid3_mp3::MPEGaudioEmphasisArray();
418
  }
419
 
420
- if ($offset >= $ThisFileInfo['avdataend']) {
421
- $ThisFileInfo['error'][] = 'end of file encounter looking for MPEG synch';
422
  return false;
423
  }
424
- fseek($fd, $offset, SEEK_SET);
425
- //$headerstring = fread($fd, 1441); // worst-case max length = 32kHz @ 320kbps layer 3 = 1441 bytes/frame
426
- $headerstring = fread($fd, 226); // LAME header at offset 36 + 190 bytes of Xing/LAME data
427
 
428
  // MP3 audio frame structure:
429
  // $aa $aa $aa $aa [$bb $bb] $cc...
@@ -442,29 +446,26 @@ class getid3_mp3
442
  }
443
 
444
  static $MPEGaudioHeaderValidCache = array();
445
-
446
- // Not in cache
447
- if (!isset($MPEGaudioHeaderValidCache[$head4])) {
448
  //$MPEGaudioHeaderValidCache[$head4] = getid3_mp3::MPEGaudioHeaderValid($MPEGheaderRawArray, false, true); // allow badly-formatted freeformat (from LAME 3.90 - 3.93.1)
449
  $MPEGaudioHeaderValidCache[$head4] = getid3_mp3::MPEGaudioHeaderValid($MPEGheaderRawArray, false, false);
450
  }
451
 
452
  // shortcut
453
- if (!isset($ThisFileInfo['mpeg']['audio'])) {
454
- $ThisFileInfo['mpeg']['audio'] = array();
455
  }
456
- $thisfile_mpeg_audio = &$ThisFileInfo['mpeg']['audio'];
457
 
458
 
459
  if ($MPEGaudioHeaderValidCache[$head4]) {
460
  $thisfile_mpeg_audio['raw'] = $MPEGheaderRawArray;
461
  } else {
462
- $ThisFileInfo['error'][] = 'Invalid MPEG audio header at offset '.$offset;
463
  return false;
464
  }
465
 
466
  if (!$FastMPEGheaderScan) {
467
-
468
  $thisfile_mpeg_audio['version'] = $MPEGaudioVersionLookup[$thisfile_mpeg_audio['raw']['version']];
469
  $thisfile_mpeg_audio['layer'] = $MPEGaudioLayerLookup[$thisfile_mpeg_audio['raw']['layer']];
470
 
@@ -478,24 +479,23 @@ class getid3_mp3
478
  $thisfile_mpeg_audio['original'] = (bool) $thisfile_mpeg_audio['raw']['original'];
479
  $thisfile_mpeg_audio['emphasis'] = $MPEGaudioEmphasisLookup[$thisfile_mpeg_audio['raw']['emphasis']];
480
 
481
- $ThisFileInfo['audio']['channels'] = $thisfile_mpeg_audio['channels'];
482
- $ThisFileInfo['audio']['sample_rate'] = $thisfile_mpeg_audio['sample_rate'];
483
 
484
  if ($thisfile_mpeg_audio['protection']) {
485
  $thisfile_mpeg_audio['crc'] = getid3_lib::BigEndian2Int(substr($headerstring, 4, 2));
486
  }
487
-
488
  }
489
 
490
  if ($thisfile_mpeg_audio['raw']['bitrate'] == 15) {
491
  // http://www.hydrogenaudio.org/?act=ST&f=16&t=9682&st=0
492
- $ThisFileInfo['warning'][] = 'Invalid bitrate index (15), this is a known bug in free-format MP3s encoded by LAME v3.90 - 3.93.1';
493
  $thisfile_mpeg_audio['raw']['bitrate'] = 0;
494
  }
495
  $thisfile_mpeg_audio['padding'] = (bool) $thisfile_mpeg_audio['raw']['padding'];
496
  $thisfile_mpeg_audio['bitrate'] = $MPEGaudioBitrateLookup[$thisfile_mpeg_audio['version']][$thisfile_mpeg_audio['layer']][$thisfile_mpeg_audio['raw']['bitrate']];
497
 
498
- if (($thisfile_mpeg_audio['bitrate'] == 'free') && ($offset == $ThisFileInfo['avdataoffset'])) {
499
  // only skip multiple frame check if free-format bitstream found at beginning of file
500
  // otherwise is quite possibly simply corrupted data
501
  $recursivesearch = false;
@@ -504,14 +504,14 @@ class getid3_mp3
504
  // For Layer 2 there are some combinations of bitrate and mode which are not allowed.
505
  if (!$FastMPEGheaderScan && ($thisfile_mpeg_audio['layer'] == '2')) {
506
 
507
- $ThisFileInfo['audio']['dataformat'] = 'mp2';
508
  switch ($thisfile_mpeg_audio['channelmode']) {
509
 
510
  case 'mono':
511
  if (($thisfile_mpeg_audio['bitrate'] == 'free') || ($thisfile_mpeg_audio['bitrate'] <= 192000)) {
512
  // these are ok
513
  } else {
514
- $ThisFileInfo['error'][] = $thisfile_mpeg_audio['bitrate'].'kbps not allowed in Layer 2, '.$thisfile_mpeg_audio['channelmode'].'.';
515
  return false;
516
  }
517
  break;
@@ -522,7 +522,7 @@ class getid3_mp3
522
  if (($thisfile_mpeg_audio['bitrate'] == 'free') || ($thisfile_mpeg_audio['bitrate'] == 64000) || ($thisfile_mpeg_audio['bitrate'] >= 96000)) {
523
  // these are ok
524
  } else {
525
- $ThisFileInfo['error'][] = intval(round($thisfile_mpeg_audio['bitrate'] / 1000)).'kbps not allowed in Layer 2, '.$thisfile_mpeg_audio['channelmode'].'.';
526
  return false;
527
  }
528
  break;
@@ -532,19 +532,19 @@ class getid3_mp3
532
  }
533
 
534
 
535
- if ($ThisFileInfo['audio']['sample_rate'] > 0) {
536
- $thisfile_mpeg_audio['framelength'] = getid3_mp3::MPEGaudioFrameLength($thisfile_mpeg_audio['bitrate'], $thisfile_mpeg_audio['version'], $thisfile_mpeg_audio['layer'], (int) $thisfile_mpeg_audio['padding'], $ThisFileInfo['audio']['sample_rate']);
537
  }
538
 
539
  $nextframetestoffset = $offset + 1;
540
  if ($thisfile_mpeg_audio['bitrate'] != 'free') {
541
 
542
- $ThisFileInfo['audio']['bitrate'] = $thisfile_mpeg_audio['bitrate'];
543
 
544
  if (isset($thisfile_mpeg_audio['framelength'])) {
545
  $nextframetestoffset = $offset + $thisfile_mpeg_audio['framelength'];
546
  } else {
547
- $ThisFileInfo['error'][] = 'Frame at offset('.$offset.') is has an invalid frame length.';
548
  return false;
549
  }
550
 
@@ -561,7 +561,7 @@ class getid3_mp3
561
 
562
  $thisfile_mpeg_audio['bitrate_mode'] = 'vbr';
563
  $thisfile_mpeg_audio['VBR_method'] = 'Fraunhofer';
564
- $ThisFileInfo['audio']['codec'] = 'Fraunhofer';
565
 
566
  $SideInfoData = substr($headerstring, 4 + 2, 32);
567
 
@@ -653,12 +653,12 @@ class getid3_mp3
653
 
654
  if ($thisfile_mpeg_audio['layer'] == '1') {
655
  // BitRate = (((FrameLengthInBytes / 4) - Padding) * SampleRate) / 12
656
- //$ThisFileInfo['audio']['bitrate'] = ((($framelengthfloat / 4) - intval($thisfile_mpeg_audio['padding'])) * $thisfile_mpeg_audio['sample_rate']) / 12;
657
- $ThisFileInfo['audio']['bitrate'] = ($framelengthfloat / 4) * $thisfile_mpeg_audio['sample_rate'] * (2 / $ThisFileInfo['audio']['channels']) / 12;
658
  } else {
659
  // Bitrate = ((FrameLengthInBytes - Padding) * SampleRate) / 144
660
- //$ThisFileInfo['audio']['bitrate'] = (($framelengthfloat - intval($thisfile_mpeg_audio['padding'])) * $thisfile_mpeg_audio['sample_rate']) / 144;
661
- $ThisFileInfo['audio']['bitrate'] = $framelengthfloat * $thisfile_mpeg_audio['sample_rate'] * (2 / $ThisFileInfo['audio']['channels']) / 144;
662
  }
663
  $thisfile_mpeg_audio['framelength'] = floor($framelengthfloat);
664
  }
@@ -759,10 +759,10 @@ class getid3_mp3
759
  $thisfile_mpeg_audio_lame_RGAD_track['gain_db'] = getid3_lib::RGADadjustmentLookup($thisfile_mpeg_audio_lame_RGAD_track['raw']['gain_adjust'], $thisfile_mpeg_audio_lame_RGAD_track['raw']['sign_bit']);
760
 
761
  if (!empty($thisfile_mpeg_audio_lame_RGAD['peak_amplitude'])) {
762
- $ThisFileInfo['replay_gain']['track']['peak'] = $thisfile_mpeg_audio_lame_RGAD['peak_amplitude'];
763
  }
764
- $ThisFileInfo['replay_gain']['track']['originator'] = $thisfile_mpeg_audio_lame_RGAD_track['originator'];
765
- $ThisFileInfo['replay_gain']['track']['adjustment'] = $thisfile_mpeg_audio_lame_RGAD_track['gain_db'];
766
  } else {
767
  unset($thisfile_mpeg_audio_lame_RGAD['track']);
768
  }
@@ -777,10 +777,10 @@ class getid3_mp3
777
  $thisfile_mpeg_audio_lame_RGAD_album['gain_db'] = getid3_lib::RGADadjustmentLookup($thisfile_mpeg_audio_lame_RGAD_album['raw']['gain_adjust'], $thisfile_mpeg_audio_lame_RGAD_album['raw']['sign_bit']);
778
 
779
  if (!empty($thisfile_mpeg_audio_lame_RGAD['peak_amplitude'])) {
780
- $ThisFileInfo['replay_gain']['album']['peak'] = $thisfile_mpeg_audio_lame_RGAD['peak_amplitude'];
781
  }
782
- $ThisFileInfo['replay_gain']['album']['originator'] = $thisfile_mpeg_audio_lame_RGAD_album['originator'];
783
- $ThisFileInfo['replay_gain']['album']['adjustment'] = $thisfile_mpeg_audio_lame_RGAD_album['gain_db'];
784
  } else {
785
  unset($thisfile_mpeg_audio_lame_RGAD['album']);
786
  }
@@ -836,7 +836,7 @@ class getid3_mp3
836
  $thisfile_mpeg_audio_lame['preset_used_id'] = ($PresetSurroundBytes & 0x07FF);
837
  $thisfile_mpeg_audio_lame['preset_used'] = getid3_mp3::LAMEpresetUsedLookup($thisfile_mpeg_audio_lame);
838
  if (!empty($thisfile_mpeg_audio_lame['preset_used_id']) && empty($thisfile_mpeg_audio_lame['preset_used'])) {
839
- $ThisFileInfo['warning'][] = 'Unknown LAME preset used ('.$thisfile_mpeg_audio_lame['preset_used_id'].') - please report to info@getid3.org';
840
  }
841
  if (($thisfile_mpeg_audio_lame['short_version'] == 'LAME3.90.') && !empty($thisfile_mpeg_audio_lame['preset_used_id'])) {
842
  // this may change if 3.90.4 ever comes out
@@ -859,7 +859,7 @@ class getid3_mp3
859
 
860
  $thisfile_mpeg_audio['bitrate_mode'] = 'cbr';
861
  $thisfile_mpeg_audio['bitrate'] = getid3_mp3::ClosestStandardMP3Bitrate($thisfile_mpeg_audio['bitrate']);
862
- $ThisFileInfo['audio']['bitrate'] = $thisfile_mpeg_audio['bitrate'];
863
  //if (empty($thisfile_mpeg_audio['bitrate']) || (!empty($thisfile_mpeg_audio_lame['bitrate_min']) && ($thisfile_mpeg_audio_lame['bitrate_min'] != 255))) {
864
  // $thisfile_mpeg_audio['bitrate'] = $thisfile_mpeg_audio_lame['bitrate_min'];
865
  //}
@@ -875,12 +875,12 @@ class getid3_mp3
875
  $thisfile_mpeg_audio['bitrate_mode'] = 'cbr';
876
  if ($recursivesearch) {
877
  $thisfile_mpeg_audio['bitrate_mode'] = 'vbr';
878
- if (getid3_mp3::RecursiveFrameScanning($fd, $ThisFileInfo, $offset, $nextframetestoffset, true)) {
879
  $recursivesearch = false;
880
  $thisfile_mpeg_audio['bitrate_mode'] = 'cbr';
881
  }
882
  if ($thisfile_mpeg_audio['bitrate_mode'] == 'vbr') {
883
- $ThisFileInfo['warning'][] = 'VBR file with no VBR header. Bitrate values calculated from actual frame bitrates.';
884
  }
885
  }
886
 
@@ -888,62 +888,64 @@ class getid3_mp3
888
 
889
  }
890
 
891
- if (($ExpectedNumberOfAudioBytes > 0) && ($ExpectedNumberOfAudioBytes != ($ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset']))) {
892
- if ($ExpectedNumberOfAudioBytes > ($ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset'])) {
893
- if (($ExpectedNumberOfAudioBytes - ($ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset'])) == 1) {
894
- $ThisFileInfo['warning'][] = 'Last byte of data truncated (this is a known bug in Meracl ID3 Tag Writer before v1.3.5)';
 
 
895
  } else {
896
- $ThisFileInfo['warning'][] = 'Probable truncated file: expecting '.$ExpectedNumberOfAudioBytes.' bytes of audio data, only found '.($ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset']).' (short by '.($ExpectedNumberOfAudioBytes - ($ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset'])).' bytes)';
897
  }
898
  } else {
899
- if ((($ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset']) - $ExpectedNumberOfAudioBytes) == 1) {
900
- // $prenullbytefileoffset = ftell($fd);
901
- // fseek($fd, $ThisFileInfo['avdataend'], SEEK_SET);
902
- // $PossibleNullByte = fread($fd, 1);
903
- // fseek($fd, $prenullbytefileoffset, SEEK_SET);
904
  // if ($PossibleNullByte === "\x00") {
905
- $ThisFileInfo['avdataend']--;
906
- // $ThisFileInfo['warning'][] = 'Extra null byte at end of MP3 data assumed to be RIFF padding and therefore ignored';
907
  // } else {
908
- // $ThisFileInfo['warning'][] = 'Too much data in file: expecting '.$ExpectedNumberOfAudioBytes.' bytes of audio data, found '.($ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset']).' ('.(($ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset']) - $ExpectedNumberOfAudioBytes).' bytes too many)';
909
  // }
910
  } else {
911
- $ThisFileInfo['warning'][] = 'Too much data in file: expecting '.$ExpectedNumberOfAudioBytes.' bytes of audio data, found '.($ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset']).' ('.(($ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset']) - $ExpectedNumberOfAudioBytes).' bytes too many)';
912
  }
913
  }
914
  }
915
 
916
- if (($thisfile_mpeg_audio['bitrate'] == 'free') && empty($ThisFileInfo['audio']['bitrate'])) {
917
- if (($offset == $ThisFileInfo['avdataoffset']) && empty($thisfile_mpeg_audio['VBR_frames'])) {
918
- $framebytelength = getid3_mp3::FreeFormatFrameLength($fd, $offset, $ThisFileInfo, true);
919
  if ($framebytelength > 0) {
920
  $thisfile_mpeg_audio['framelength'] = $framebytelength;
921
  if ($thisfile_mpeg_audio['layer'] == '1') {
922
  // BitRate = (((FrameLengthInBytes / 4) - Padding) * SampleRate) / 12
923
- $ThisFileInfo['audio']['bitrate'] = ((($framebytelength / 4) - intval($thisfile_mpeg_audio['padding'])) * $thisfile_mpeg_audio['sample_rate']) / 12;
924
  } else {
925
  // Bitrate = ((FrameLengthInBytes - Padding) * SampleRate) / 144
926
- $ThisFileInfo['audio']['bitrate'] = (($framebytelength - intval($thisfile_mpeg_audio['padding'])) * $thisfile_mpeg_audio['sample_rate']) / 144;
927
  }
928
  } else {
929
- $ThisFileInfo['error'][] = 'Error calculating frame length of free-format MP3 without Xing/LAME header';
930
  }
931
  }
932
  }
933
 
934
- if (@$thisfile_mpeg_audio['VBR_frames']) {
935
  switch ($thisfile_mpeg_audio['bitrate_mode']) {
936
  case 'vbr':
937
  case 'abr':
 
938
  if (($thisfile_mpeg_audio['version'] == '1') && ($thisfile_mpeg_audio['layer'] == 1)) {
939
- $thisfile_mpeg_audio['VBR_bitrate'] = ((@$thisfile_mpeg_audio['VBR_bytes'] / $thisfile_mpeg_audio['VBR_frames']) * 8) * ($ThisFileInfo['audio']['sample_rate'] / 384);
940
  } elseif ((($thisfile_mpeg_audio['version'] == '2') || ($thisfile_mpeg_audio['version'] == '2.5')) && ($thisfile_mpeg_audio['layer'] == 3)) {
941
- $thisfile_mpeg_audio['VBR_bitrate'] = ((@$thisfile_mpeg_audio['VBR_bytes'] / $thisfile_mpeg_audio['VBR_frames']) * 8) * ($ThisFileInfo['audio']['sample_rate'] / 576);
942
- } else {
943
- $thisfile_mpeg_audio['VBR_bitrate'] = ((@$thisfile_mpeg_audio['VBR_bytes'] / $thisfile_mpeg_audio['VBR_frames']) * 8) * ($ThisFileInfo['audio']['sample_rate'] / 1152);
944
  }
 
945
  if ($thisfile_mpeg_audio['VBR_bitrate'] > 0) {
946
- $ThisFileInfo['audio']['bitrate'] = $thisfile_mpeg_audio['VBR_bitrate'];
947
  $thisfile_mpeg_audio['bitrate'] = $thisfile_mpeg_audio['VBR_bitrate']; // to avoid confusion
948
  }
949
  break;
@@ -955,7 +957,7 @@ class getid3_mp3
955
 
956
  if ($recursivesearch) {
957
 
958
- if (!getid3_mp3::RecursiveFrameScanning($fd, $ThisFileInfo, $offset, $nextframetestoffset, $ScanAsCBR)) {
959
  return false;
960
  }
961
 
@@ -995,7 +997,7 @@ class getid3_mp3
995
  // }
996
  //
997
  // if ($thisfile_mpeg_audio['version'] == '1') {
998
- // for ($channel = 0; $channel < $ThisFileInfo['audio']['channels']; $channel++) {
999
  // for ($scfsi_band = 0; $scfsi_band < 4; $scfsi_band++) {
1000
  // $thisfile_mpeg_audio['scfsi'][$channel][$scfsi_band] = substr($SideInfoBitstream, $SideInfoOffset, 1);
1001
  // $SideInfoOffset += 2;
@@ -1003,7 +1005,7 @@ class getid3_mp3
1003
  // }
1004
  // }
1005
  // for ($granule = 0; $granule < (($thisfile_mpeg_audio['version'] == '1') ? 2 : 1); $granule++) {
1006
- // for ($channel = 0; $channel < $ThisFileInfo['audio']['channels']; $channel++) {
1007
  // $thisfile_mpeg_audio['part2_3_length'][$granule][$channel] = substr($SideInfoBitstream, $SideInfoOffset, 12);
1008
  // $SideInfoOffset += 12;
1009
  // $thisfile_mpeg_audio['big_values'][$granule][$channel] = substr($SideInfoBitstream, $SideInfoOffset, 9);
@@ -1067,20 +1069,23 @@ class getid3_mp3
1067
  return true;
1068
  }
1069
 
1070
- function RecursiveFrameScanning(&$fd, &$ThisFileInfo, &$offset, &$nextframetestoffset, $ScanAsCBR) {
 
 
 
 
1071
  for ($i = 0; $i < GETID3_MP3_VALID_CHECK_FRAMES; $i++) {
1072
  // check next GETID3_MP3_VALID_CHECK_FRAMES frames for validity, to make sure we haven't run across a false synch
1073
- if (($nextframetestoffset + 4) >= $ThisFileInfo['avdataend']) {
1074
  // end of file
1075
  return true;
1076
  }
1077
 
1078
- $nextframetestarray = array('error'=>'', 'warning'=>'', 'avdataend'=>$ThisFileInfo['avdataend'], 'avdataoffset'=>$ThisFileInfo['avdataoffset']);
1079
- if (getid3_mp3::decodeMPEGaudioHeader($fd, $nextframetestoffset, $nextframetestarray, false)) {
1080
  if ($ScanAsCBR) {
1081
- // force CBR mode, used for trying to pick out invalid audio streams with
1082
- // valid(?) VBR headers, or VBR streams with no VBR header
1083
- if (!isset($nextframetestarray['mpeg']['audio']['bitrate']) || !isset($ThisFileInfo['mpeg']['audio']['bitrate']) || ($nextframetestarray['mpeg']['audio']['bitrate'] != $ThisFileInfo['mpeg']['audio']['bitrate'])) {
1084
  return false;
1085
  }
1086
  }
@@ -1090,14 +1095,19 @@ class getid3_mp3
1090
  if (isset($nextframetestarray['mpeg']['audio']['framelength']) && ($nextframetestarray['mpeg']['audio']['framelength'] > 0)) {
1091
  $nextframetestoffset += $nextframetestarray['mpeg']['audio']['framelength'];
1092
  } else {
1093
- $ThisFileInfo['error'][] = 'Frame at offset ('.$offset.') is has an invalid frame length.';
1094
  return false;
1095
  }
1096
 
 
 
 
 
 
1097
  } else {
1098
 
1099
  // next frame is not valid, note the error and fail, so scanning can contiue for a valid frame sequence
1100
- $ThisFileInfo['error'][] = 'Frame at offset ('.$offset.') is valid, but the next one at ('.$nextframetestoffset.') is not.';
1101
 
1102
  return false;
1103
  }
@@ -1105,9 +1115,11 @@ class getid3_mp3
1105
  return true;
1106
  }
1107
 
1108
- function FreeFormatFrameLength($fd, $offset, &$ThisFileInfo, $deepscan=false) {
1109
- fseek($fd, $offset, SEEK_SET);
1110
- $MPEGaudioData = fread($fd, 32768);
 
 
1111
 
1112
  $SyncPattern1 = substr($MPEGaudioData, 0, 4);
1113
  // may be different pattern due to padding
@@ -1138,12 +1150,12 @@ class getid3_mp3
1138
  $framelength = $framelength2;
1139
  }
1140
  if (!$framelength) {
1141
- $ThisFileInfo['error'][] = 'Cannot find next free-format synch pattern ('.getid3_lib::PrintHexBytes($SyncPattern1).' or '.getid3_lib::PrintHexBytes($SyncPattern2).') after offset '.$offset;
1142
  return false;
1143
  } else {
1144
- $ThisFileInfo['warning'][] = 'ModeExtension varies between first frame and other frames (known free-format issue in LAME 3.88)';
1145
- $ThisFileInfo['audio']['codec'] = 'LAME';
1146
- $ThisFileInfo['audio']['encoder'] = 'LAME3.88';
1147
  $SyncPattern1 = substr($SyncPattern1, 0, 3);
1148
  $SyncPattern2 = substr($SyncPattern2, 0, 3);
1149
  }
@@ -1153,9 +1165,9 @@ class getid3_mp3
1153
 
1154
  $ActualFrameLengthValues = array();
1155
  $nextoffset = $offset + $framelength;
1156
- while ($nextoffset < ($ThisFileInfo['avdataend'] - 6)) {
1157
- fseek($fd, $nextoffset - 1, SEEK_SET);
1158
- $NextSyncPattern = fread($fd, 6);
1159
  if ((substr($NextSyncPattern, 1, strlen($SyncPattern1)) == $SyncPattern1) || (substr($NextSyncPattern, 1, strlen($SyncPattern2)) == $SyncPattern2)) {
1160
  // good - found where expected
1161
  $ActualFrameLengthValues[] = $framelength;
@@ -1168,7 +1180,7 @@ class getid3_mp3
1168
  $ActualFrameLengthValues[] = ($framelength + 1);
1169
  $nextoffset++;
1170
  } else {
1171
- $ThisFileInfo['error'][] = 'Did not find expected free-format sync pattern at offset '.$nextoffset;
1172
  return false;
1173
  }
1174
  $nextoffset += $framelength;
@@ -1180,11 +1192,10 @@ class getid3_mp3
1180
  return $framelength;
1181
  }
1182
 
1183
- function getOnlyMPEGaudioInfoBruteForce($fd, &$ThisFileInfo) {
1184
-
1185
- $MPEGaudioHeaderDecodeCache = array();
1186
- $MPEGaudioHeaderValidCache = array();
1187
- $MPEGaudioHeaderLengthCache = array();
1188
  $MPEGaudioVersionLookup = getid3_mp3::MPEGaudioVersionArray();
1189
  $MPEGaudioLayerLookup = getid3_mp3::MPEGaudioLayerArray();
1190
  $MPEGaudioBitrateLookup = getid3_mp3::MPEGaudioBitrateArray();
@@ -1192,31 +1203,34 @@ class getid3_mp3
1192
  $MPEGaudioChannelModeLookup = getid3_mp3::MPEGaudioChannelModeArray();
1193
  $MPEGaudioModeExtensionLookup = getid3_mp3::MPEGaudioModeExtensionArray();
1194
  $MPEGaudioEmphasisLookup = getid3_mp3::MPEGaudioEmphasisArray();
1195
- $LongMPEGversionLookup = array();
1196
- $LongMPEGlayerLookup = array();
1197
- $LongMPEGbitrateLookup = array();
1198
- $LongMPEGpaddingLookup = array();
1199
- $LongMPEGfrequencyLookup = array();
1200
-
1201
- $Distribution['bitrate'] = array();
1202
- $Distribution['frequency'] = array();
1203
- $Distribution['layer'] = array();
1204
- $Distribution['version'] = array();
1205
- $Distribution['padding'] = array();
1206
-
1207
- fseek($fd, $ThisFileInfo['avdataoffset'], SEEK_SET);
1208
-
1209
- $previousvalidframe = $ThisFileInfo['avdataoffset'];
1210
- while (ftell($fd) < $ThisFileInfo['avdataend']) {
 
 
 
1211
  set_time_limit(30);
1212
- $head4 = fread($fd, 4);
1213
  if (strlen($head4) < 4) {
1214
  break;
1215
  }
1216
  if ($head4{0} != "\xFF") {
1217
  for ($i = 1; $i < 4; $i++) {
1218
  if ($head4{$i} == "\xFF") {
1219
- fseek($fd, $i - 4, SEEK_CUR);
1220
  continue 2;
1221
  }
1222
  }
@@ -1244,9 +1258,9 @@ class getid3_mp3
1244
  $LongMPEGfrequencyLookup[$head4]);
1245
  }
1246
  if ($MPEGaudioHeaderLengthCache[$head4] > 4) {
1247
- $WhereWeWere = ftell($fd);
1248
- fseek($fd, $MPEGaudioHeaderLengthCache[$head4] - 4, SEEK_CUR);
1249
- $next4 = fread($fd, 4);
1250
  if ($next4{0} == "\xFF") {
1251
  if (!isset($MPEGaudioHeaderDecodeCache[$next4])) {
1252
  $MPEGaudioHeaderDecodeCache[$next4] = getid3_mp3::MPEGaudioHeaderDecode($next4);
@@ -1255,18 +1269,28 @@ class getid3_mp3
1255
  $MPEGaudioHeaderValidCache[$next4] = getid3_mp3::MPEGaudioHeaderValid($MPEGaudioHeaderDecodeCache[$next4], false, false);
1256
  }
1257
  if ($MPEGaudioHeaderValidCache[$next4]) {
1258
- fseek($fd, -4, SEEK_CUR);
1259
-
1260
- @$Distribution['bitrate'][$LongMPEGbitrateLookup[$head4]]++;
1261
- @$Distribution['layer'][$LongMPEGlayerLookup[$head4]]++;
1262
- @$Distribution['version'][$LongMPEGversionLookup[$head4]]++;
1263
- @$Distribution['padding'][intval($LongMPEGpaddingLookup[$head4])]++;
1264
- @$Distribution['frequency'][$LongMPEGfrequencyLookup[$head4]]++;
 
 
 
 
 
 
 
 
 
 
1265
  continue;
1266
  }
1267
  }
1268
  unset($next4);
1269
- fseek($fd, $WhereWeWere - 3, SEEK_SET);
1270
  }
1271
 
1272
  }
@@ -1275,19 +1299,19 @@ class getid3_mp3
1275
  ksort($Distribution[$key], SORT_NUMERIC);
1276
  }
1277
  ksort($Distribution['version'], SORT_STRING);
1278
- $ThisFileInfo['mpeg']['audio']['bitrate_distribution'] = $Distribution['bitrate'];
1279
- $ThisFileInfo['mpeg']['audio']['frequency_distribution'] = $Distribution['frequency'];
1280
- $ThisFileInfo['mpeg']['audio']['layer_distribution'] = $Distribution['layer'];
1281
- $ThisFileInfo['mpeg']['audio']['version_distribution'] = $Distribution['version'];
1282
- $ThisFileInfo['mpeg']['audio']['padding_distribution'] = $Distribution['padding'];
1283
  if (count($Distribution['version']) > 1) {
1284
- $ThisFileInfo['error'][] = 'Corrupt file - more than one MPEG version detected';
1285
  }
1286
  if (count($Distribution['layer']) > 1) {
1287
- $ThisFileInfo['error'][] = 'Corrupt file - more than one MPEG layer detected';
1288
  }
1289
  if (count($Distribution['frequency']) > 1) {
1290
- $ThisFileInfo['error'][] = 'Corrupt file - more than one MPEG sample rate detected';
1291
  }
1292
 
1293
 
@@ -1297,212 +1321,268 @@ class getid3_mp3
1297
  $bittotal += ($bitratevalue * $bitratecount);
1298
  }
1299
  }
1300
- $ThisFileInfo['mpeg']['audio']['frame_count'] = array_sum($Distribution['bitrate']);
1301
- if ($ThisFileInfo['mpeg']['audio']['frame_count'] == 0) {
1302
- $ThisFileInfo['error'][] = 'no MPEG audio frames found';
1303
  return false;
1304
  }
1305
- $ThisFileInfo['mpeg']['audio']['bitrate'] = ($bittotal / $ThisFileInfo['mpeg']['audio']['frame_count']);
1306
- $ThisFileInfo['mpeg']['audio']['bitrate_mode'] = ((count($Distribution['bitrate']) > 0) ? 'vbr' : 'cbr');
1307
- $ThisFileInfo['mpeg']['audio']['sample_rate'] = getid3_lib::array_max($Distribution['frequency'], true);
1308
 
1309
- $ThisFileInfo['audio']['bitrate'] = $ThisFileInfo['mpeg']['audio']['bitrate'];
1310
- $ThisFileInfo['audio']['bitrate_mode'] = $ThisFileInfo['mpeg']['audio']['bitrate_mode'];
1311
- $ThisFileInfo['audio']['sample_rate'] = $ThisFileInfo['mpeg']['audio']['sample_rate'];
1312
- $ThisFileInfo['audio']['dataformat'] = 'mp'.getid3_lib::array_max($Distribution['layer'], true);
1313
- $ThisFileInfo['fileformat'] = $ThisFileInfo['audio']['dataformat'];
1314
 
1315
  return true;
1316
  }
1317
 
1318
 
1319
- function getOnlyMPEGaudioInfo($fd, &$ThisFileInfo, $avdataoffset, $BitrateHistogram=false) {
1320
-
1321
- // looks for synch, decodes MPEG audio header
1322
-
1323
- static $MPEGaudioVersionLookup;
1324
- static $MPEGaudioLayerLookup;
1325
- static $MPEGaudioBitrateLookup;
1326
- if (empty($MPEGaudioVersionLookup)) {
1327
- $MPEGaudioVersionLookup = getid3_mp3::MPEGaudioVersionArray();
1328
- $MPEGaudioLayerLookup = getid3_mp3::MPEGaudioLayerArray();
1329
- $MPEGaudioBitrateLookup = getid3_mp3::MPEGaudioBitrateArray();
1330
-
1331
- }
1332
-
1333
- fseek($fd, $avdataoffset, SEEK_SET);
1334
- $sync_seek_buffer_size = min(128 * 1024, $ThisFileInfo['avdataend'] - $avdataoffset);
1335
- $header = fread($fd, $sync_seek_buffer_size);
1336
- $sync_seek_buffer_size = strlen($header);
1337
- $SynchSeekOffset = 0;
1338
- while ($SynchSeekOffset < $sync_seek_buffer_size) {
1339
-
1340
- if ((($avdataoffset + $SynchSeekOffset) < $ThisFileInfo['avdataend']) && !feof($fd)) {
1341
-
1342
- if ($SynchSeekOffset > $sync_seek_buffer_size) {
1343
- // if a synch's not found within the first 128k bytes, then give up
1344
- $ThisFileInfo['error'][] = 'Could not find valid MPEG audio synch within the first '.round($sync_seek_buffer_size / 1024).'kB';
1345
- if (isset($ThisFileInfo['audio']['bitrate'])) {
1346
- unset($ThisFileInfo['audio']['bitrate']);
1347
- }
1348
- if (isset($ThisFileInfo['mpeg']['audio'])) {
1349
- unset($ThisFileInfo['mpeg']['audio']);
1350
- }
1351
- if (empty($ThisFileInfo['mpeg'])) {
1352
- unset($ThisFileInfo['mpeg']);
1353
- }
1354
- return false;
1355
-
1356
- } elseif (feof($fd)) {
1357
-
1358
- $ThisFileInfo['error'][] = 'Could not find valid MPEG audio synch before end of file';
1359
- if (isset($ThisFileInfo['audio']['bitrate'])) {
1360
- unset($ThisFileInfo['audio']['bitrate']);
1361
- }
1362
- if (isset($ThisFileInfo['mpeg']['audio'])) {
1363
- unset($ThisFileInfo['mpeg']['audio']);
1364
- }
1365
- if (isset($ThisFileInfo['mpeg']) && (!is_array($ThisFileInfo['mpeg']) || (count($ThisFileInfo['mpeg']) == 0))) {
1366
- unset($ThisFileInfo['mpeg']);
1367
- }
1368
- return false;
1369
- }
1370
- }
1371
-
1372
- if (($SynchSeekOffset + 1) >= strlen($header)) {
1373
- $ThisFileInfo['error'][] = 'Could not find valid MPEG synch before end of file';
1374
- return false;
1375
- }
1376
-
1377
- if (($header{$SynchSeekOffset} == "\xFF") && ($header{($SynchSeekOffset + 1)} > "\xE0")) { // synch detected
1378
-
1379
- if (!isset($FirstFrameThisfileInfo) && !isset($ThisFileInfo['mpeg']['audio'])) {
1380
- $FirstFrameThisfileInfo = $ThisFileInfo;
 
 
 
1381
  $FirstFrameAVDataOffset = $avdataoffset + $SynchSeekOffset;
1382
- if (!getid3_mp3::decodeMPEGaudioHeader($fd, $avdataoffset + $SynchSeekOffset, $FirstFrameThisfileInfo, false)) {
1383
  // if this is the first valid MPEG-audio frame, save it in case it's a VBR header frame and there's
1384
  // garbage between this frame and a valid sequence of MPEG-audio frames, to be restored below
1385
  unset($FirstFrameThisfileInfo);
1386
  }
1387
  }
1388
 
1389
- $dummy = $ThisFileInfo; // only overwrite real data if valid header found
1390
- if (getid3_mp3::decodeMPEGaudioHeader($fd, $avdataoffset + $SynchSeekOffset, $dummy, true)) {
1391
- $ThisFileInfo = $dummy;
1392
- $ThisFileInfo['avdataoffset'] = $avdataoffset + $SynchSeekOffset;
1393
- switch ($ThisFileInfo['fileformat']) {
1394
  case '':
1395
  case 'id3':
1396
  case 'ape':
1397
  case 'mp3':
1398
- $ThisFileInfo['fileformat'] = 'mp3';
1399
- $ThisFileInfo['audio']['dataformat'] = 'mp3';
1400
  break;
1401
  }
1402
  if (isset($FirstFrameThisfileInfo['mpeg']['audio']['bitrate_mode']) && ($FirstFrameThisfileInfo['mpeg']['audio']['bitrate_mode'] == 'vbr')) {
1403
- if (!(abs($ThisFileInfo['audio']['bitrate'] - $FirstFrameThisfileInfo['audio']['bitrate']) <= 1)) {
1404
  // If there is garbage data between a valid VBR header frame and a sequence
1405
  // of valid MPEG-audio frames the VBR data is no longer discarded.
1406
- $ThisFileInfo = $FirstFrameThisfileInfo;
1407
- $ThisFileInfo['avdataoffset'] = $FirstFrameAVDataOffset;
1408
- $ThisFileInfo['fileformat'] = 'mp3';
1409
- $ThisFileInfo['audio']['dataformat'] = 'mp3';
1410
- $dummy = $ThisFileInfo;
1411
  unset($dummy['mpeg']['audio']);
1412
  $GarbageOffsetStart = $FirstFrameAVDataOffset + $FirstFrameThisfileInfo['mpeg']['audio']['framelength'];
1413
  $GarbageOffsetEnd = $avdataoffset + $SynchSeekOffset;
1414
- if (getid3_mp3::decodeMPEGaudioHeader($fd, $GarbageOffsetEnd, $dummy, true, true)) {
1415
-
1416
- $ThisFileInfo = $dummy;
1417
- $ThisFileInfo['avdataoffset'] = $GarbageOffsetEnd;
1418
- $ThisFileInfo['warning'][] = 'apparently-valid VBR header not used because could not find '.GETID3_MP3_VALID_CHECK_FRAMES.' consecutive MPEG-audio frames immediately after VBR header (garbage data for '.($GarbageOffsetEnd - $GarbageOffsetStart).' bytes between '.$GarbageOffsetStart.' and '.$GarbageOffsetEnd.'), but did find valid CBR stream starting at '.$GarbageOffsetEnd;
1419
-
1420
  } else {
1421
-
1422
- $ThisFileInfo['warning'][] = 'using data from VBR header even though could not find '.GETID3_MP3_VALID_CHECK_FRAMES.' consecutive MPEG-audio frames immediately after VBR header (garbage data for '.($GarbageOffsetEnd - $GarbageOffsetStart).' bytes between '.$GarbageOffsetStart.' and '.$GarbageOffsetEnd.')';
1423
-
1424
  }
1425
  }
1426
  }
1427
- if (isset($ThisFileInfo['mpeg']['audio']['bitrate_mode']) && ($ThisFileInfo['mpeg']['audio']['bitrate_mode'] == 'vbr') && !isset($ThisFileInfo['mpeg']['audio']['VBR_method'])) {
1428
  // VBR file with no VBR header
1429
  $BitrateHistogram = true;
1430
  }
1431
 
1432
  if ($BitrateHistogram) {
1433
 
1434
- $ThisFileInfo['mpeg']['audio']['stereo_distribution'] = array('stereo'=>0, 'joint stereo'=>0, 'dual channel'=>0, 'mono'=>0);
1435
- $ThisFileInfo['mpeg']['audio']['version_distribution'] = array('1'=>0, '2'=>0, '2.5'=>0);
1436
 
1437
- if ($ThisFileInfo['mpeg']['audio']['version'] == '1') {
1438
- if ($ThisFileInfo['mpeg']['audio']['layer'] == 3) {
1439
- $ThisFileInfo['mpeg']['audio']['bitrate_distribution'] = array('free'=>0, 32000=>0, 40000=>0, 48000=>0, 56000=>0, 64000=>0, 80000=>0, 96000=>0, 112000=>0, 128000=>0, 160000=>0, 192000=>0, 224000=>0, 256000=>0, 320000=>0);
1440
- } elseif ($ThisFileInfo['mpeg']['audio']['layer'] == 2) {
1441
- $ThisFileInfo['mpeg']['audio']['bitrate_distribution'] = array('free'=>0, 32000=>0, 48000=>0, 56000=>0, 64000=>0, 80000=>0, 96000=>0, 112000=>0, 128000=>0, 160000=>0, 192000=>0, 224000=>0, 256000=>0, 320000=>0, 384000=>0);
1442
- } elseif ($ThisFileInfo['mpeg']['audio']['layer'] == 1) {
1443
- $ThisFileInfo['mpeg']['audio']['bitrate_distribution'] = array('free'=>0, 32000=>0, 64000=>0, 96000=>0, 128000=>0, 160000=>0, 192000=>0, 224000=>0, 256000=>0, 288000=>0, 320000=>0, 352000=>0, 384000=>0, 416000=>0, 448000=>0);
1444
  }
1445
- } elseif ($ThisFileInfo['mpeg']['audio']['layer'] == 1) {
1446
- $ThisFileInfo['mpeg']['audio']['bitrate_distribution'] = array('free'=>0, 32000=>0, 48000=>0, 56000=>0, 64000=>0, 80000=>0, 96000=>0, 112000=>0, 128000=>0, 144000=>0, 160000=>0, 176000=>0, 192000=>0, 224000=>0, 256000=>0);
1447
  } else {
1448
- $ThisFileInfo['mpeg']['audio']['bitrate_distribution'] = array('free'=>0, 8000=>0, 16000=>0, 24000=>0, 32000=>0, 40000=>0, 48000=>0, 56000=>0, 64000=>0, 80000=>0, 96000=>0, 112000=>0, 128000=>0, 144000=>0, 160000=>0);
1449
  }
1450
 
1451
- $dummy = array('error'=>$ThisFileInfo['error'], 'warning'=>$ThisFileInfo['warning'], 'avdataend'=>$ThisFileInfo['avdataend'], 'avdataoffset'=>$ThisFileInfo['avdataoffset']);
1452
- $synchstartoffset = $ThisFileInfo['avdataoffset'];
 
 
 
 
 
1453
 
 
1454
  $FastMode = false;
1455
  $SynchErrorsFound = 0;
1456
- while (getid3_mp3::decodeMPEGaudioHeader($fd, $synchstartoffset, $dummy, false, false, $FastMode)) {
1457
- $FastMode = true;
1458
- $thisframebitrate = $MPEGaudioBitrateLookup[$MPEGaudioVersionLookup[$dummy['mpeg']['audio']['raw']['version']]][$MPEGaudioLayerLookup[$dummy['mpeg']['audio']['raw']['layer']]][$dummy['mpeg']['audio']['raw']['bitrate']];
1459
-
1460
- if (empty($dummy['mpeg']['audio']['framelength'])) {
1461
- $SynchErrorsFound++;
1462
- } else {
1463
- @$ThisFileInfo['mpeg']['audio']['bitrate_distribution'][$thisframebitrate]++;
1464
- @$ThisFileInfo['mpeg']['audio']['stereo_distribution'][$dummy['mpeg']['audio']['channelmode']]++;
1465
- @$ThisFileInfo['mpeg']['audio']['version_distribution'][$dummy['mpeg']['audio']['version']]++;
1466
-
1467
- $synchstartoffset += $dummy['mpeg']['audio']['framelength'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1468
  }
1469
  }
 
 
 
 
 
 
 
 
 
 
 
 
1470
  if ($SynchErrorsFound > 0) {
1471
- $ThisFileInfo['warning'][] = 'Found '.$SynchErrorsFound.' synch errors in histogram analysis';
1472
  //return false;
1473
  }
1474
 
1475
  $bittotal = 0;
1476
  $framecounter = 0;
1477
- foreach ($ThisFileInfo['mpeg']['audio']['bitrate_distribution'] as $bitratevalue => $bitratecount) {
1478
  $framecounter += $bitratecount;
1479
  if ($bitratevalue != 'free') {
1480
  $bittotal += ($bitratevalue * $bitratecount);
1481
  }
1482
  }
1483
  if ($framecounter == 0) {
1484
- $ThisFileInfo['error'][] = 'Corrupt MP3 file: framecounter == zero';
1485
  return false;
1486
  }
1487
- $ThisFileInfo['mpeg']['audio']['frame_count'] = $framecounter;
1488
- $ThisFileInfo['mpeg']['audio']['bitrate'] = ($bittotal / $framecounter);
1489
 
1490
- $ThisFileInfo['audio']['bitrate'] = $ThisFileInfo['mpeg']['audio']['bitrate'];
1491
 
1492
 
1493
  // Definitively set VBR vs CBR, even if the Xing/LAME/VBRI header says differently
1494
  $distinct_bitrates = 0;
1495
- foreach ($ThisFileInfo['mpeg']['audio']['bitrate_distribution'] as $bitrate_value => $bitrate_count) {
1496
  if ($bitrate_count > 0) {
1497
  $distinct_bitrates++;
1498
  }
1499
  }
1500
  if ($distinct_bitrates > 1) {
1501
- $ThisFileInfo['mpeg']['audio']['bitrate_mode'] = 'vbr';
1502
  } else {
1503
- $ThisFileInfo['mpeg']['audio']['bitrate_mode'] = 'cbr';
1504
  }
1505
- $ThisFileInfo['audio']['bitrate_mode'] = $ThisFileInfo['mpeg']['audio']['bitrate_mode'];
1506
 
1507
  }
1508
 
@@ -1511,20 +1591,20 @@ class getid3_mp3
1511
  }
1512
 
1513
  $SynchSeekOffset++;
1514
- if (($avdataoffset + $SynchSeekOffset) >= $ThisFileInfo['avdataend']) {
1515
  // end of file/data
1516
 
1517
- if (empty($ThisFileInfo['mpeg']['audio'])) {
1518
 
1519
- $ThisFileInfo['error'][] = 'could not find valid MPEG synch before end of file';
1520
- if (isset($ThisFileInfo['audio']['bitrate'])) {
1521
- unset($ThisFileInfo['audio']['bitrate']);
1522
  }
1523
- if (isset($ThisFileInfo['mpeg']['audio'])) {
1524
- unset($ThisFileInfo['mpeg']['audio']);
1525
  }
1526
- if (isset($ThisFileInfo['mpeg']) && (!is_array($ThisFileInfo['mpeg']) || empty($ThisFileInfo['mpeg']))) {
1527
- unset($ThisFileInfo['mpeg']);
1528
  }
1529
  return false;
1530
 
@@ -1533,35 +1613,35 @@ class getid3_mp3
1533
  }
1534
 
1535
  }
1536
- $ThisFileInfo['audio']['channels'] = $ThisFileInfo['mpeg']['audio']['channels'];
1537
- $ThisFileInfo['audio']['channelmode'] = $ThisFileInfo['mpeg']['audio']['channelmode'];
1538
- $ThisFileInfo['audio']['sample_rate'] = $ThisFileInfo['mpeg']['audio']['sample_rate'];
1539
  return true;
1540
  }
1541
 
1542
 
1543
- function MPEGaudioVersionArray() {
1544
  static $MPEGaudioVersion = array('2.5', false, '2', '1');
1545
  return $MPEGaudioVersion;
1546
  }
1547
 
1548
- function MPEGaudioLayerArray() {
1549
  static $MPEGaudioLayer = array(false, 3, 2, 1);
1550
  return $MPEGaudioLayer;
1551
  }
1552
 
1553
- function MPEGaudioBitrateArray() {
1554
  static $MPEGaudioBitrate;
1555
  if (empty($MPEGaudioBitrate)) {
1556
- $MPEGaudioBitrate = array (
1557
- '1' => array (1 => array('free', 32000, 64000, 96000, 128000, 160000, 192000, 224000, 256000, 288000, 320000, 352000, 384000, 416000, 448000),
1558
- 2 => array('free', 32000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 160000, 192000, 224000, 256000, 320000, 384000),
1559
- 3 => array('free', 32000, 40000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 160000, 192000, 224000, 256000, 320000)
1560
- ),
1561
-
1562
- '2' => array (1 => array('free', 32000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 144000, 160000, 176000, 192000, 224000, 256000),
1563
- 2 => array('free', 8000, 16000, 24000, 32000, 40000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 144000, 160000),
1564
- )
1565
  );
1566
  $MPEGaudioBitrate['2'][3] = $MPEGaudioBitrate['2'][2];
1567
  $MPEGaudioBitrate['2.5'] = $MPEGaudioBitrate['2'];
@@ -1569,45 +1649,45 @@ class getid3_mp3
1569
  return $MPEGaudioBitrate;
1570
  }
1571
 
1572
- function MPEGaudioFrequencyArray() {
1573
  static $MPEGaudioFrequency;
1574
  if (empty($MPEGaudioFrequency)) {
1575
- $MPEGaudioFrequency = array (
1576
- '1' => array(44100, 48000, 32000),
1577
- '2' => array(22050, 24000, 16000),
1578
- '2.5' => array(11025, 12000, 8000)
1579
  );
1580
  }
1581
  return $MPEGaudioFrequency;
1582
  }
1583
 
1584
- function MPEGaudioChannelModeArray() {
1585
  static $MPEGaudioChannelMode = array('stereo', 'joint stereo', 'dual channel', 'mono');
1586
  return $MPEGaudioChannelMode;
1587
  }
1588
 
1589
- function MPEGaudioModeExtensionArray() {
1590
  static $MPEGaudioModeExtension;
1591
  if (empty($MPEGaudioModeExtension)) {
1592
- $MPEGaudioModeExtension = array (
1593
- 1 => array('4-31', '8-31', '12-31', '16-31'),
1594
- 2 => array('4-31', '8-31', '12-31', '16-31'),
1595
- 3 => array('', 'IS', 'MS', 'IS+MS')
1596
  );
1597
  }
1598
  return $MPEGaudioModeExtension;
1599
  }
1600
 
1601
- function MPEGaudioEmphasisArray() {
1602
  static $MPEGaudioEmphasis = array('none', '50/15ms', false, 'CCIT J.17');
1603
  return $MPEGaudioEmphasis;
1604
  }
1605
 
1606
- function MPEGaudioHeaderBytesValid($head4, $allowBitrate15=false) {
1607
  return getid3_mp3::MPEGaudioHeaderValid(getid3_mp3::MPEGaudioHeaderDecode($head4), false, $allowBitrate15);
1608
  }
1609
 
1610
- function MPEGaudioHeaderValid($rawarray, $echoerrors=false, $allowBitrate15=false) {
1611
  if (($rawarray['synch'] & 0x0FFE) != 0x0FFE) {
1612
  return false;
1613
  }
@@ -1679,7 +1759,7 @@ class getid3_mp3
1679
  return true;
1680
  }
1681
 
1682
- function MPEGaudioHeaderDecode($Header4Bytes) {
1683
  // AAAA AAAA AAAB BCCD EEEE FFGH IIJJ KLMM
1684
  // A - Frame sync (all bits set)
1685
  // B - MPEG Audio version ID
@@ -1716,7 +1796,7 @@ class getid3_mp3
1716
  return $MPEGrawHeader;
1717
  }
1718
 
1719
- function MPEGaudioFrameLength(&$bitrate, &$version, &$layer, $padding, &$samplerate) {
1720
  static $AudioFrameLengthCache = array();
1721
 
1722
  if (!isset($AudioFrameLengthCache[$bitrate][$version][$layer][$padding][$samplerate])) {
@@ -1777,54 +1857,53 @@ class getid3_mp3
1777
  return $AudioFrameLengthCache[$bitrate][$version][$layer][$padding][$samplerate];
1778
  }
1779
 
1780
- function ClosestStandardMP3Bitrate($bitrate) {
1781
- static $StandardBitrates = array(320000, 256000, 224000, 192000, 160000, 128000, 112000, 96000, 80000, 64000, 56000, 48000, 40000, 32000, 24000, 16000, 8000);
1782
- static $BitrateTable = array(0=>'-');
1783
- $roundbitrate = intval(round($bitrate, -3));
1784
- if (!isset($BitrateTable[$roundbitrate])) {
1785
- if ($roundbitrate > 320000) {
1786
- $BitrateTable[$roundbitrate] = round($bitrate, -4);
1787
  } else {
1788
- $LastBitrate = 320000;
1789
- foreach ($StandardBitrates as $StandardBitrate) {
1790
- $BitrateTable[$roundbitrate] = $StandardBitrate;
1791
- if ($roundbitrate >= $StandardBitrate - (($LastBitrate - $StandardBitrate) / 2)) {
1792
  break;
1793
  }
1794
- $LastBitrate = $StandardBitrate;
1795
  }
1796
  }
1797
  }
1798
- return $BitrateTable[$roundbitrate];
1799
  }
1800
 
1801
- function XingVBRidOffset($version, $channelmode) {
1802
  static $XingVBRidOffsetCache = array();
1803
  if (empty($XingVBRidOffset)) {
1804
  $XingVBRidOffset = array (
1805
- '1' => array ('mono' => 0x15, // 4 + 17 = 21
1806
- 'stereo' => 0x24, // 4 + 32 = 36
1807
- 'joint stereo' => 0x24,
1808
- 'dual channel' => 0x24
1809
- ),
1810
-
1811
- '2' => array ('mono' => 0x0D, // 4 + 9 = 13
1812
- 'stereo' => 0x15, // 4 + 17 = 21
1813
- 'joint stereo' => 0x15,
1814
- 'dual channel' => 0x15
1815
- ),
1816
-
1817
- '2.5' => array ('mono' => 0x15,
1818
- 'stereo' => 0x15,
1819
- 'joint stereo' => 0x15,
1820
- 'dual channel' => 0x15
1821
- )
1822
- );
1823
  }
1824
  return $XingVBRidOffset[$version][$channelmode];
1825
  }
1826
 
1827
- function LAMEvbrMethodLookup($VBRmethodID) {
1828
  static $LAMEvbrMethodLookup = array(
1829
  0x00 => 'unknown',
1830
  0x01 => 'cbr',
@@ -1840,7 +1919,7 @@ class getid3_mp3
1840
  return (isset($LAMEvbrMethodLookup[$VBRmethodID]) ? $LAMEvbrMethodLookup[$VBRmethodID] : '');
1841
  }
1842
 
1843
- function LAMEmiscStereoModeLookup($StereoModeID) {
1844
  static $LAMEmiscStereoModeLookup = array(
1845
  0 => 'mono',
1846
  1 => 'stereo',
@@ -1854,7 +1933,7 @@ class getid3_mp3
1854
  return (isset($LAMEmiscStereoModeLookup[$StereoModeID]) ? $LAMEmiscStereoModeLookup[$StereoModeID] : '');
1855
  }
1856
 
1857
- function LAMEmiscSourceSampleFrequencyLookup($SourceSampleFrequencyID) {
1858
  static $LAMEmiscSourceSampleFrequencyLookup = array(
1859
  0 => '<= 32 kHz',
1860
  1 => '44.1 kHz',
@@ -1864,7 +1943,7 @@ class getid3_mp3
1864
  return (isset($LAMEmiscSourceSampleFrequencyLookup[$SourceSampleFrequencyID]) ? $LAMEmiscSourceSampleFrequencyLookup[$SourceSampleFrequencyID] : '');
1865
  }
1866
 
1867
- function LAMEsurroundInfoLookup($SurroundInfoID) {
1868
  static $LAMEsurroundInfoLookup = array(
1869
  0 => 'no surround info',
1870
  1 => 'DPL encoding',
@@ -1874,58 +1953,58 @@ class getid3_mp3
1874
  return (isset($LAMEsurroundInfoLookup[$SurroundInfoID]) ? $LAMEsurroundInfoLookup[$SurroundInfoID] : 'reserved');
1875
  }
1876
 
1877
- function LAMEpresetUsedLookup($LAMEtag) {
1878
-
1879
- if ($LAMEtag['preset_used_id'] == 0) {
1880
- // no preset used (LAME >=3.93)
1881
- // no preset recorded (LAME <3.93)
1882
- return '';
1883
- }
1884
- $LAMEpresetUsedLookup = array();
1885
-
1886
- ///// THIS PART CANNOT BE STATIC .
1887
- for ($i = 8; $i <= 320; $i++) {
1888
- switch ($LAMEtag['vbr_method']) {
1889
- case 'cbr':
1890
- $LAMEpresetUsedLookup[$i] = '--alt-preset '.$LAMEtag['vbr_method'].' '.$i;
1891
- break;
1892
- case 'abr':
1893
- default: // other VBR modes shouldn't be here(?)
1894
- $LAMEpresetUsedLookup[$i] = '--alt-preset '.$i;
1895
- break;
1896
- }
1897
- }
1898
-
1899
- // named old-style presets (studio, phone, voice, etc) are handled in GuessEncoderOptions()
1900
-
1901
- // named alt-presets
1902
- $LAMEpresetUsedLookup[1000] = '--r3mix';
1903
- $LAMEpresetUsedLookup[1001] = '--alt-preset standard';
1904
- $LAMEpresetUsedLookup[1002] = '--alt-preset extreme';
1905
- $LAMEpresetUsedLookup[1003] = '--alt-preset insane';
1906
- $LAMEpresetUsedLookup[1004] = '--alt-preset fast standard';
1907
- $LAMEpresetUsedLookup[1005] = '--alt-preset fast extreme';
1908
- $LAMEpresetUsedLookup[1006] = '--alt-preset medium';
1909
- $LAMEpresetUsedLookup[1007] = '--alt-preset fast medium';
1910
-
1911
- // LAME 3.94 additions/changes
1912
- $LAMEpresetUsedLookup[1010] = '--preset portable'; // 3.94a15 Oct 21 2003
1913
- $LAMEpresetUsedLookup[1015] = '--preset radio'; // 3.94a15 Oct 21 2003
1914
-
1915
- $LAMEpresetUsedLookup[320] = '--preset insane'; // 3.94a15 Nov 12 2003
1916
- $LAMEpresetUsedLookup[410] = '-V9';
1917
- $LAMEpresetUsedLookup[420] = '-V8';
1918
- $LAMEpresetUsedLookup[440] = '-V6';
1919
- $LAMEpresetUsedLookup[430] = '--preset radio'; // 3.94a15 Nov 12 2003
1920
- $LAMEpresetUsedLookup[450] = '--preset '.(($LAMEtag['raw']['vbr_method'] == 4) ? 'fast ' : '').'portable'; // 3.94a15 Nov 12 2003
1921
- $LAMEpresetUsedLookup[460] = '--preset '.(($LAMEtag['raw']['vbr_method'] == 4) ? 'fast ' : '').'medium'; // 3.94a15 Nov 12 2003
1922
- $LAMEpresetUsedLookup[470] = '--r3mix'; // 3.94b1 Dec 18 2003
1923
- $LAMEpresetUsedLookup[480] = '--preset '.(($LAMEtag['raw']['vbr_method'] == 4) ? 'fast ' : '').'standard'; // 3.94a15 Nov 12 2003
1924
- $LAMEpresetUsedLookup[490] = '-V1';
1925
- $LAMEpresetUsedLookup[500] = '--preset '.(($LAMEtag['raw']['vbr_method'] == 4) ? 'fast ' : '').'extreme'; // 3.94a15 Nov 12 2003
1926
-
1927
- return (isset($LAMEpresetUsedLookup[$LAMEtag['preset_used_id']]) ? $LAMEpresetUsedLookup[$LAMEtag['preset_used_id']] : 'new/unknown preset: '.$LAMEtag['preset_used_id'].' - report to info@getid3.org');
1928
- }
1929
 
1930
  }
1931
 
21
  define('GETID3_MP3_VALID_CHECK_FRAMES', 35);
22
 
23
 
24
+ class getid3_mp3 extends getid3_handler
25
  {
26
 
27
  var $allow_bruteforce = false; // forces getID3() to scan the file byte-by-byte and log all the valid audio frame headers - extremely slow, unrecommended, but may provide data from otherwise-unusuable files
28
 
29
+ function Analyze() {
30
+ $info = &$this->getid3->info;
31
 
32
+ $initialOffset = $info['avdataoffset'];
33
+
34
+ if (!$this->getOnlyMPEGaudioInfo($info['avdataoffset'])) {
35
  if ($this->allow_bruteforce) {
36
+ $info['error'][] = 'Rescanning file in BruteForce mode';
37
+ $this->getOnlyMPEGaudioInfoBruteForce($this->getid3->fp, $info);
38
  }
39
  }
40
 
41
 
42
+ if (isset($info['mpeg']['audio']['bitrate_mode'])) {
43
+ $info['audio']['bitrate_mode'] = strtolower($info['mpeg']['audio']['bitrate_mode']);
44
  }
45
 
46
+ if (((isset($info['id3v2']['headerlength']) && ($info['avdataoffset'] > $info['id3v2']['headerlength'])) || (!isset($info['id3v2']) && ($info['avdataoffset'] > 0) && ($info['avdataoffset'] != $initialOffset)))) {
47
 
48
  $synchoffsetwarning = 'Unknown data before synch ';
49
+ if (isset($info['id3v2']['headerlength'])) {
50
+ $synchoffsetwarning .= '(ID3v2 header ends at '.$info['id3v2']['headerlength'].', then '.($info['avdataoffset'] - $info['id3v2']['headerlength']).' bytes garbage, ';
51
+ } elseif ($initialOffset > 0) {
52
+ $synchoffsetwarning .= '(should be at '.$initialOffset.', ';
53
  } else {
54
  $synchoffsetwarning .= '(should be at beginning of file, ';
55
  }
56
+ $synchoffsetwarning .= 'synch detected at '.$info['avdataoffset'].')';
57
+ if (isset($info['audio']['bitrate_mode']) && ($info['audio']['bitrate_mode'] == 'cbr')) {
58
 
59
+ if (!empty($info['id3v2']['headerlength']) && (($info['avdataoffset'] - $info['id3v2']['headerlength']) == $info['mpeg']['audio']['framelength'])) {
60
 
61
  $synchoffsetwarning .= '. This is a known problem with some versions of LAME (3.90-3.92) DLL in CBR mode.';
62
+ $info['audio']['codec'] = 'LAME';
63
  $CurrentDataLAMEversionString = 'LAME3.';
64
 
65
+ } elseif (empty($info['id3v2']['headerlength']) && ($info['avdataoffset'] == $info['mpeg']['audio']['framelength'])) {
66
 
67
  $synchoffsetwarning .= '. This is a known problem with some versions of LAME (3.90 - 3.92) DLL in CBR mode.';
68
+ $info['audio']['codec'] = 'LAME';
69
  $CurrentDataLAMEversionString = 'LAME3.';
70
 
71
  }
72
 
73
  }
74
+ $info['warning'][] = $synchoffsetwarning;
75
 
76
  }
77
 
78
+ if (isset($info['mpeg']['audio']['LAME'])) {
79
+ $info['audio']['codec'] = 'LAME';
80
+ if (!empty($info['mpeg']['audio']['LAME']['long_version'])) {
81
+ $info['audio']['encoder'] = rtrim($info['mpeg']['audio']['LAME']['long_version'], "\x00");
82
+ } elseif (!empty($info['mpeg']['audio']['LAME']['short_version'])) {
83
+ $info['audio']['encoder'] = rtrim($info['mpeg']['audio']['LAME']['short_version'], "\x00");
84
  }
85
  }
86
 
87
+ $CurrentDataLAMEversionString = (!empty($CurrentDataLAMEversionString) ? $CurrentDataLAMEversionString : (isset($info['audio']['encoder']) ? $info['audio']['encoder'] : ''));
88
  if (!empty($CurrentDataLAMEversionString) && (substr($CurrentDataLAMEversionString, 0, 6) == 'LAME3.') && !preg_match('[0-9\)]', substr($CurrentDataLAMEversionString, -1))) {
89
  // a version number of LAME that does not end with a number like "LAME3.92"
90
  // or with a closing parenthesis like "LAME3.88 (alpha)"
94
  $PossiblyLongerLAMEversion_FrameLength = 1441;
95
 
96
  // Not sure what version of LAME this is - look in padding of last frame for longer version string
97
+ $PossibleLAMEversionStringOffset = $info['avdataend'] - $PossiblyLongerLAMEversion_FrameLength;
98
+ fseek($this->getid3->fp, $PossibleLAMEversionStringOffset);
99
+ $PossiblyLongerLAMEversion_Data = fread($this->getid3->fp, $PossiblyLongerLAMEversion_FrameLength);
100
  switch (substr($CurrentDataLAMEversionString, -1)) {
101
  case 'a':
102
  case 'b':
108
  if (($PossiblyLongerLAMEversion_String = strstr($PossiblyLongerLAMEversion_Data, $CurrentDataLAMEversionString)) !== false) {
109
  if (substr($PossiblyLongerLAMEversion_String, 0, strlen($CurrentDataLAMEversionString)) == $CurrentDataLAMEversionString) {
110
  $PossiblyLongerLAMEversion_NewString = substr($PossiblyLongerLAMEversion_String, 0, strspn($PossiblyLongerLAMEversion_String, 'LAME0123456789., (abcdefghijklmnopqrstuvwxyzJFSOND)')); //"LAME3.90.3" "LAME3.87 (beta 1, Sep 27 2000)" "LAME3.88 (beta)"
111
+ if (empty($info['audio']['encoder']) || (strlen($PossiblyLongerLAMEversion_NewString) > strlen($info['audio']['encoder']))) {
112
+ $info['audio']['encoder'] = $PossiblyLongerLAMEversion_NewString;
113
  }
114
  }
115
  }
116
  }
117
+ if (!empty($info['audio']['encoder'])) {
118
+ $info['audio']['encoder'] = rtrim($info['audio']['encoder'], "\x00 ");
119
  }
120
 
121
+ switch (isset($info['mpeg']['audio']['layer']) ? $info['mpeg']['audio']['layer'] : '') {
122
  case 1:
123
  case 2:
124
+ $info['audio']['dataformat'] = 'mp'.$info['mpeg']['audio']['layer'];
125
  break;
126
  }
127
+ if (isset($info['fileformat']) && ($info['fileformat'] == 'mp3')) {
128
+ switch ($info['audio']['dataformat']) {
129
  case 'mp1':
130
  case 'mp2':
131
  case 'mp3':
132
+ $info['fileformat'] = $info['audio']['dataformat'];
133
  break;
134
 
135
  default:
136
+ $info['warning'][] = 'Expecting [audio][dataformat] to be mp1/mp2/mp3 when fileformat == mp3, [audio][dataformat] actually "'.$info['audio']['dataformat'].'"';
137
  break;
138
  }
139
  }
140
 
141
+ if (empty($info['fileformat'])) {
142
+ unset($info['fileformat']);
143
+ unset($info['audio']['bitrate_mode']);
144
+ unset($info['avdataoffset']);
145
+ unset($info['avdataend']);
146
  return false;
147
  }
148
 
149
+ $info['mime_type'] = 'audio/mpeg';
150
+ $info['audio']['lossless'] = false;
151
 
152
  // Calculate playtime
153
+ if (!isset($info['playtime_seconds']) && isset($info['audio']['bitrate']) && ($info['audio']['bitrate'] > 0)) {
154
+ $info['playtime_seconds'] = ($info['avdataend'] - $info['avdataoffset']) * 8 / $info['audio']['bitrate'];
155
  }
156
 
157
+ $info['audio']['encoder_options'] = $this->GuessEncoderOptions();
158
 
159
  return true;
160
  }
161
 
162
 
163
+ function GuessEncoderOptions() {
164
  // shortcuts
165
+ $info = &$this->getid3->info;
166
+ if (!empty($info['mpeg']['audio'])) {
167
+ $thisfile_mpeg_audio = &$info['mpeg']['audio'];
168
  if (!empty($thisfile_mpeg_audio['LAME'])) {
169
  $thisfile_mpeg_audio_lame = &$thisfile_mpeg_audio['LAME'];
170
  }
173
  $encoder_options = '';
174
  static $NamedPresetBitrates = array(16, 24, 40, 56, 112, 128, 160, 192, 256);
175
 
176
+ if (isset($thisfile_mpeg_audio['VBR_method']) && ($thisfile_mpeg_audio['VBR_method'] == 'Fraunhofer') && !empty($thisfile_mpeg_audio['VBR_quality'])) {
177
 
178
  $encoder_options = 'VBR q'.$thisfile_mpeg_audio['VBR_quality'];
179
 
248
 
249
  $encoder_options = $KnownEncoderValues['**'][$thisfile_mpeg_audio_lame['vbr_quality']][$thisfile_mpeg_audio_lame['raw']['vbr_method']][$thisfile_mpeg_audio_lame['raw']['noise_shaping']][$thisfile_mpeg_audio_lame['raw']['stereo_mode']][$thisfile_mpeg_audio_lame['ath_type']][$thisfile_mpeg_audio_lame['lowpass_frequency']];
250
 
251
+ } elseif ($info['audio']['bitrate_mode'] == 'vbr') {
252
 
253
  // http://gabriel.mp3-tech.org/mp3infotag.html
254
  // int Quality = (100 - 10 * gfp->VBR_q - gfp->quality)h
258
  $LAME_q_value = 100 - $thisfile_mpeg_audio_lame['vbr_quality'] - ($LAME_V_value * 10);
259
  $encoder_options = '-V'.$LAME_V_value.' -q'.$LAME_q_value;
260
 
261
+ } elseif ($info['audio']['bitrate_mode'] == 'cbr') {
262
 
263
+ $encoder_options = strtoupper($info['audio']['bitrate_mode']).ceil($info['audio']['bitrate'] / 1000);
264
 
265
  } else {
266
 
267
+ $encoder_options = strtoupper($info['audio']['bitrate_mode']);
268
 
269
  }
270
 
272
 
273
  $encoder_options = 'ABR'.$thisfile_mpeg_audio_lame['bitrate_abr'];
274
 
275
+ } elseif (!empty($info['audio']['bitrate'])) {
276
 
277
+ if ($info['audio']['bitrate_mode'] == 'cbr') {
278
+ $encoder_options = strtoupper($info['audio']['bitrate_mode']).ceil($info['audio']['bitrate'] / 1000);
279
  } else {
280
+ $encoder_options = strtoupper($info['audio']['bitrate_mode']);
281
  }
282
 
283
  }
285
  $encoder_options .= ' -b'.$thisfile_mpeg_audio_lame['bitrate_min'];
286
  }
287
 
288
+ if (!empty($thisfile_mpeg_audio_lame['encoding_flags']['nogap_prev']) || !empty($thisfile_mpeg_audio_lame['encoding_flags']['nogap_next'])) {
289
  $encoder_options .= ' --nogap';
290
  }
291
 
395
  }
396
  }
397
  }
398
+ if (empty($encoder_options) && !empty($info['audio']['bitrate']) && !empty($info['audio']['bitrate_mode'])) {
399
+ //$encoder_options = strtoupper($info['audio']['bitrate_mode']).ceil($info['audio']['bitrate'] / 1000);
400
+ $encoder_options = strtoupper($info['audio']['bitrate_mode']);
401
  }
402
 
403
  return $encoder_options;
404
  }
405
 
406
 
407
+ function decodeMPEGaudioHeader($offset, &$info, $recursivesearch=true, $ScanAsCBR=false, $FastMPEGheaderScan=false) {
 
408
  static $MPEGaudioVersionLookup;
409
  static $MPEGaudioLayerLookup;
410
  static $MPEGaudioBitrateLookup;
422
  $MPEGaudioEmphasisLookup = getid3_mp3::MPEGaudioEmphasisArray();
423
  }
424
 
425
+ if (fseek($this->getid3->fp, $offset, SEEK_SET) != 0) {
426
+ $info['error'][] = 'decodeMPEGaudioHeader() failed to seek to next offset at '.$offset;
427
  return false;
428
  }
429
+ //$headerstring = fread($this->getid3->fp, 1441); // worst-case max length = 32kHz @ 320kbps layer 3 = 1441 bytes/frame
430
+ $headerstring = fread($this->getid3->fp, 226); // LAME header at offset 36 + 190 bytes of Xing/LAME data
 
431
 
432
  // MP3 audio frame structure:
433
  // $aa $aa $aa $aa [$bb $bb] $cc...
446
  }
447
 
448
  static $MPEGaudioHeaderValidCache = array();
449
+ if (!isset($MPEGaudioHeaderValidCache[$head4])) { // Not in cache
 
 
450
  //$MPEGaudioHeaderValidCache[$head4] = getid3_mp3::MPEGaudioHeaderValid($MPEGheaderRawArray, false, true); // allow badly-formatted freeformat (from LAME 3.90 - 3.93.1)
451
  $MPEGaudioHeaderValidCache[$head4] = getid3_mp3::MPEGaudioHeaderValid($MPEGheaderRawArray, false, false);
452
  }
453
 
454
  // shortcut
455
+ if (!isset($info['mpeg']['audio'])) {
456
+ $info['mpeg']['audio'] = array();
457
  }
458
+ $thisfile_mpeg_audio = &$info['mpeg']['audio'];
459
 
460
 
461
  if ($MPEGaudioHeaderValidCache[$head4]) {
462
  $thisfile_mpeg_audio['raw'] = $MPEGheaderRawArray;
463
  } else {
464
+ $info['error'][] = 'Invalid MPEG audio header ('.getid3_lib::PrintHexBytes($head4).') at offset '.$offset;
465
  return false;
466
  }
467
 
468
  if (!$FastMPEGheaderScan) {
 
469
  $thisfile_mpeg_audio['version'] = $MPEGaudioVersionLookup[$thisfile_mpeg_audio['raw']['version']];
470
  $thisfile_mpeg_audio['layer'] = $MPEGaudioLayerLookup[$thisfile_mpeg_audio['raw']['layer']];
471
 
479
  $thisfile_mpeg_audio['original'] = (bool) $thisfile_mpeg_audio['raw']['original'];
480
  $thisfile_mpeg_audio['emphasis'] = $MPEGaudioEmphasisLookup[$thisfile_mpeg_audio['raw']['emphasis']];
481
 
482
+ $info['audio']['channels'] = $thisfile_mpeg_audio['channels'];
483
+ $info['audio']['sample_rate'] = $thisfile_mpeg_audio['sample_rate'];
484
 
485
  if ($thisfile_mpeg_audio['protection']) {
486
  $thisfile_mpeg_audio['crc'] = getid3_lib::BigEndian2Int(substr($headerstring, 4, 2));
487
  }
 
488
  }
489
 
490
  if ($thisfile_mpeg_audio['raw']['bitrate'] == 15) {
491
  // http://www.hydrogenaudio.org/?act=ST&f=16&t=9682&st=0
492
+ $info['warning'][] = 'Invalid bitrate index (15), this is a known bug in free-format MP3s encoded by LAME v3.90 - 3.93.1';
493
  $thisfile_mpeg_audio['raw']['bitrate'] = 0;
494
  }
495
  $thisfile_mpeg_audio['padding'] = (bool) $thisfile_mpeg_audio['raw']['padding'];
496
  $thisfile_mpeg_audio['bitrate'] = $MPEGaudioBitrateLookup[$thisfile_mpeg_audio['version']][$thisfile_mpeg_audio['layer']][$thisfile_mpeg_audio['raw']['bitrate']];
497
 
498
+ if (($thisfile_mpeg_audio['bitrate'] == 'free') && ($offset == $info['avdataoffset'])) {
499
  // only skip multiple frame check if free-format bitstream found at beginning of file
500
  // otherwise is quite possibly simply corrupted data
501
  $recursivesearch = false;
504
  // For Layer 2 there are some combinations of bitrate and mode which are not allowed.
505
  if (!$FastMPEGheaderScan && ($thisfile_mpeg_audio['layer'] == '2')) {
506
 
507
+ $info['audio']['dataformat'] = 'mp2';
508
  switch ($thisfile_mpeg_audio['channelmode']) {
509
 
510
  case 'mono':
511
  if (($thisfile_mpeg_audio['bitrate'] == 'free') || ($thisfile_mpeg_audio['bitrate'] <= 192000)) {
512
  // these are ok
513
  } else {
514
+ $info['error'][] = $thisfile_mpeg_audio['bitrate'].'kbps not allowed in Layer 2, '.$thisfile_mpeg_audio['channelmode'].'.';
515
  return false;
516
  }
517
  break;
522
  if (($thisfile_mpeg_audio['bitrate'] == 'free') || ($thisfile_mpeg_audio['bitrate'] == 64000) || ($thisfile_mpeg_audio['bitrate'] >= 96000)) {
523
  // these are ok
524
  } else {
525
+ $info['error'][] = intval(round($thisfile_mpeg_audio['bitrate'] / 1000)).'kbps not allowed in Layer 2, '.$thisfile_mpeg_audio['channelmode'].'.';
526
  return false;
527
  }
528
  break;
532
  }
533
 
534
 
535
+ if ($info['audio']['sample_rate'] > 0) {
536
+ $thisfile_mpeg_audio['framelength'] = getid3_mp3::MPEGaudioFrameLength($thisfile_mpeg_audio['bitrate'], $thisfile_mpeg_audio['version'], $thisfile_mpeg_audio['layer'], (int) $thisfile_mpeg_audio['padding'], $info['audio']['sample_rate']);
537
  }
538
 
539
  $nextframetestoffset = $offset + 1;
540
  if ($thisfile_mpeg_audio['bitrate'] != 'free') {
541
 
542
+ $info['audio']['bitrate'] = $thisfile_mpeg_audio['bitrate'];
543
 
544
  if (isset($thisfile_mpeg_audio['framelength'])) {
545
  $nextframetestoffset = $offset + $thisfile_mpeg_audio['framelength'];
546
  } else {
547
+ $info['error'][] = 'Frame at offset('.$offset.') is has an invalid frame length.';
548
  return false;
549
  }
550
 
561
 
562
  $thisfile_mpeg_audio['bitrate_mode'] = 'vbr';
563
  $thisfile_mpeg_audio['VBR_method'] = 'Fraunhofer';
564
+ $info['audio']['codec'] = 'Fraunhofer';
565
 
566
  $SideInfoData = substr($headerstring, 4 + 2, 32);
567
 
653
 
654
  if ($thisfile_mpeg_audio['layer'] == '1') {
655
  // BitRate = (((FrameLengthInBytes / 4) - Padding) * SampleRate) / 12
656
+ //$info['audio']['bitrate'] = ((($framelengthfloat / 4) - intval($thisfile_mpeg_audio['padding'])) * $thisfile_mpeg_audio['sample_rate']) / 12;
657
+ $info['audio']['bitrate'] = ($framelengthfloat / 4) * $thisfile_mpeg_audio['sample_rate'] * (2 / $info['audio']['channels']) / 12;
658
  } else {
659
  // Bitrate = ((FrameLengthInBytes - Padding) * SampleRate) / 144
660
+ //$info['audio']['bitrate'] = (($framelengthfloat - intval($thisfile_mpeg_audio['padding'])) * $thisfile_mpeg_audio['sample_rate']) / 144;
661
+ $info['audio']['bitrate'] = $framelengthfloat * $thisfile_mpeg_audio['sample_rate'] * (2 / $info['audio']['channels']) / 144;
662
  }
663
  $thisfile_mpeg_audio['framelength'] = floor($framelengthfloat);
664
  }
759
  $thisfile_mpeg_audio_lame_RGAD_track['gain_db'] = getid3_lib::RGADadjustmentLookup($thisfile_mpeg_audio_lame_RGAD_track['raw']['gain_adjust'], $thisfile_mpeg_audio_lame_RGAD_track['raw']['sign_bit']);
760
 
761
  if (!empty($thisfile_mpeg_audio_lame_RGAD['peak_amplitude'])) {
762
+ $info['replay_gain']['track']['peak'] = $thisfile_mpeg_audio_lame_RGAD['peak_amplitude'];
763
  }
764
+ $info['replay_gain']['track']['originator'] = $thisfile_mpeg_audio_lame_RGAD_track['originator'];
765
+ $info['replay_gain']['track']['adjustment'] = $thisfile_mpeg_audio_lame_RGAD_track['gain_db'];
766
  } else {
767
  unset($thisfile_mpeg_audio_lame_RGAD['track']);
768
  }
777
  $thisfile_mpeg_audio_lame_RGAD_album['gain_db'] = getid3_lib::RGADadjustmentLookup($thisfile_mpeg_audio_lame_RGAD_album['raw']['gain_adjust'], $thisfile_mpeg_audio_lame_RGAD_album['raw']['sign_bit']);
778
 
779
  if (!empty($thisfile_mpeg_audio_lame_RGAD['peak_amplitude'])) {
780
+ $info['replay_gain']['album']['peak'] = $thisfile_mpeg_audio_lame_RGAD['peak_amplitude'];
781
  }
782
+ $info['replay_gain']['album']['originator'] = $thisfile_mpeg_audio_lame_RGAD_album['originator'];
783
+ $info['replay_gain']['album']['adjustment'] = $thisfile_mpeg_audio_lame_RGAD_album['gain_db'];
784
  } else {
785
  unset($thisfile_mpeg_audio_lame_RGAD['album']);
786
  }
836
  $thisfile_mpeg_audio_lame['preset_used_id'] = ($PresetSurroundBytes & 0x07FF);
837
  $thisfile_mpeg_audio_lame['preset_used'] = getid3_mp3::LAMEpresetUsedLookup($thisfile_mpeg_audio_lame);
838
  if (!empty($thisfile_mpeg_audio_lame['preset_used_id']) && empty($thisfile_mpeg_audio_lame['preset_used'])) {
839
+ $info['warning'][] = 'Unknown LAME preset used ('.$thisfile_mpeg_audio_lame['preset_used_id'].') - please report to info@getid3.org';
840
  }
841
  if (($thisfile_mpeg_audio_lame['short_version'] == 'LAME3.90.') && !empty($thisfile_mpeg_audio_lame['preset_used_id'])) {
842
  // this may change if 3.90.4 ever comes out
859
 
860
  $thisfile_mpeg_audio['bitrate_mode'] = 'cbr';
861
  $thisfile_mpeg_audio['bitrate'] = getid3_mp3::ClosestStandardMP3Bitrate($thisfile_mpeg_audio['bitrate']);
862
+ $info['audio']['bitrate'] = $thisfile_mpeg_audio['bitrate'];
863
  //if (empty($thisfile_mpeg_audio['bitrate']) || (!empty($thisfile_mpeg_audio_lame['bitrate_min']) && ($thisfile_mpeg_audio_lame['bitrate_min'] != 255))) {
864
  // $thisfile_mpeg_audio['bitrate'] = $thisfile_mpeg_audio_lame['bitrate_min'];
865
  //}
875
  $thisfile_mpeg_audio['bitrate_mode'] = 'cbr';
876
  if ($recursivesearch) {
877
  $thisfile_mpeg_audio['bitrate_mode'] = 'vbr';
878
+ if ($this->RecursiveFrameScanning($offset, $nextframetestoffset, true)) {
879
  $recursivesearch = false;
880
  $thisfile_mpeg_audio['bitrate_mode'] = 'cbr';
881
  }
882
  if ($thisfile_mpeg_audio['bitrate_mode'] == 'vbr') {
883
+ $info['warning'][] = 'VBR file with no VBR header. Bitrate values calculated from actual frame bitrates.';
884
  }
885
  }
886
 
888
 
889
  }
890
 
891
+ if (($ExpectedNumberOfAudioBytes > 0) && ($ExpectedNumberOfAudioBytes != ($info['avdataend'] - $info['avdataoffset']))) {
892
+ if ($ExpectedNumberOfAudioBytes > ($info['avdataend'] - $info['avdataoffset'])) {
893
+ if (isset($info['fileformat']) && ($info['fileformat'] == 'riff')) {
894
+ // ignore, audio data is broken into chunks so will always be data "missing"
895
+ } elseif (($ExpectedNumberOfAudioBytes - ($info['avdataend'] - $info['avdataoffset'])) == 1) {
896
+ $info['warning'][] = 'Last byte of data truncated (this is a known bug in Meracl ID3 Tag Writer before v1.3.5)';
897
  } else {
898
+ $info['warning'][] = 'Probable truncated file: expecting '.$ExpectedNumberOfAudioBytes.' bytes of audio data, only found '.($info['avdataend'] - $info['avdataoffset']).' (short by '.($ExpectedNumberOfAudioBytes - ($info['avdataend'] - $info['avdataoffset'])).' bytes)';
899
  }
900
  } else {
901
+ if ((($info['avdataend'] - $info['avdataoffset']) - $ExpectedNumberOfAudioBytes) == 1) {
902
+ // $prenullbytefileoffset = ftell($this->getid3->fp);
903
+ // fseek($this->getid3->fp, $info['avdataend'], SEEK_SET);
904
+ // $PossibleNullByte = fread($this->getid3->fp, 1);
905
+ // fseek($this->getid3->fp, $prenullbytefileoffset, SEEK_SET);
906
  // if ($PossibleNullByte === "\x00") {
907
+ $info['avdataend']--;
908
+ // $info['warning'][] = 'Extra null byte at end of MP3 data assumed to be RIFF padding and therefore ignored';
909
  // } else {
910
+ // $info['warning'][] = 'Too much data in file: expecting '.$ExpectedNumberOfAudioBytes.' bytes of audio data, found '.($info['avdataend'] - $info['avdataoffset']).' ('.(($info['avdataend'] - $info['avdataoffset']) - $ExpectedNumberOfAudioBytes).' bytes too many)';
911
  // }
912
  } else {
913
+ $info['warning'][] = 'Too much data in file: expecting '.$ExpectedNumberOfAudioBytes.' bytes of audio data, found '.($info['avdataend'] - $info['avdataoffset']).' ('.(($info['avdataend'] - $info['avdataoffset']) - $ExpectedNumberOfAudioBytes).' bytes too many)';
914
  }
915
  }
916
  }
917
 
918
+ if (($thisfile_mpeg_audio['bitrate'] == 'free') && empty($info['audio']['bitrate'])) {
919
+ if (($offset == $info['avdataoffset']) && empty($thisfile_mpeg_audio['VBR_frames'])) {
920
+ $framebytelength = $this->FreeFormatFrameLength($offset, true);
921
  if ($framebytelength > 0) {
922
  $thisfile_mpeg_audio['framelength'] = $framebytelength;
923
  if ($thisfile_mpeg_audio['layer'] == '1') {
924
  // BitRate = (((FrameLengthInBytes / 4) - Padding) * SampleRate) / 12
925
+ $info['audio']['bitrate'] = ((($framebytelength / 4) - intval($thisfile_mpeg_audio['padding'])) * $thisfile_mpeg_audio['sample_rate']) / 12;
926
  } else {
927
  // Bitrate = ((FrameLengthInBytes - Padding) * SampleRate) / 144
928
+ $info['audio']['bitrate'] = (($framebytelength - intval($thisfile_mpeg_audio['padding'])) * $thisfile_mpeg_audio['sample_rate']) / 144;
929
  }
930
  } else {
931
+ $info['error'][] = 'Error calculating frame length of free-format MP3 without Xing/LAME header';
932
  }
933
  }
934
  }
935
 
936
+ if (isset($thisfile_mpeg_audio['VBR_frames']) ? $thisfile_mpeg_audio['VBR_frames'] : '') {
937
  switch ($thisfile_mpeg_audio['bitrate_mode']) {
938
  case 'vbr':
939
  case 'abr':
940
+ $bytes_per_frame = 1152;
941
  if (($thisfile_mpeg_audio['version'] == '1') && ($thisfile_mpeg_audio['layer'] == 1)) {
942
+ $bytes_per_frame = 384;
943
  } elseif ((($thisfile_mpeg_audio['version'] == '2') || ($thisfile_mpeg_audio['version'] == '2.5')) && ($thisfile_mpeg_audio['layer'] == 3)) {
944
+ $bytes_per_frame = 576;
 
 
945
  }
946
+ $thisfile_mpeg_audio['VBR_bitrate'] = (isset($thisfile_mpeg_audio['VBR_bytes']) ? (($thisfile_mpeg_audio['VBR_bytes'] / $thisfile_mpeg_audio['VBR_frames']) * 8) * ($info['audio']['sample_rate'] / $bytes_per_frame) : 0);
947
  if ($thisfile_mpeg_audio['VBR_bitrate'] > 0) {
948
+ $info['audio']['bitrate'] = $thisfile_mpeg_audio['VBR_bitrate'];
949
  $thisfile_mpeg_audio['bitrate'] = $thisfile_mpeg_audio['VBR_bitrate']; // to avoid confusion
950
  }
951
  break;
957
 
958
  if ($recursivesearch) {
959
 
960
+ if (!$this->RecursiveFrameScanning($offset, $nextframetestoffset, $ScanAsCBR)) {
961
  return false;
962
  }
963
 
997
  // }
998
  //
999
  // if ($thisfile_mpeg_audio['version'] == '1') {
1000
+ // for ($channel = 0; $channel < $info['audio']['channels']; $channel++) {
1001
  // for ($scfsi_band = 0; $scfsi_band < 4; $scfsi_band++) {
1002
  // $thisfile_mpeg_audio['scfsi'][$channel][$scfsi_band] = substr($SideInfoBitstream, $SideInfoOffset, 1);
1003
  // $SideInfoOffset += 2;
1005
  // }
1006
  // }
1007
  // for ($granule = 0; $granule < (($thisfile_mpeg_audio['version'] == '1') ? 2 : 1); $granule++) {
1008
+ // for ($channel = 0; $channel < $info['audio']['channels']; $channel++) {
1009
  // $thisfile_mpeg_audio['part2_3_length'][$granule][$channel] = substr($SideInfoBitstream, $SideInfoOffset, 12);
1010
  // $SideInfoOffset += 12;
1011
  // $thisfile_mpeg_audio['big_values'][$granule][$channel] = substr($SideInfoBitstream, $SideInfoOffset, 9);
1069
  return true;
1070
  }
1071
 
1072
+ function RecursiveFrameScanning(&$offset, &$nextframetestoffset, $ScanAsCBR) {
1073
+ $info = &$this->getid3->info;
1074
+ $firstframetestarray = array('error'=>'', 'warning'=>'', 'avdataend'=>$info['avdataend'], 'avdataoffset'=>$info['avdataoffset']);
1075
+ $this->decodeMPEGaudioHeader($offset, $firstframetestarray, false);
1076
+
1077
  for ($i = 0; $i < GETID3_MP3_VALID_CHECK_FRAMES; $i++) {
1078
  // check next GETID3_MP3_VALID_CHECK_FRAMES frames for validity, to make sure we haven't run across a false synch
1079
+ if (($nextframetestoffset + 4) >= $info['avdataend']) {
1080
  // end of file
1081
  return true;
1082
  }
1083
 
1084
+ $nextframetestarray = array('error'=>'', 'warning'=>'', 'avdataend'=>$info['avdataend'], 'avdataoffset'=>$info['avdataoffset']);
1085
+ if ($this->decodeMPEGaudioHeader($nextframetestoffset, $nextframetestarray, false)) {
1086
  if ($ScanAsCBR) {
1087
+ // force CBR mode, used for trying to pick out invalid audio streams with valid(?) VBR headers, or VBR streams with no VBR header
1088
+ if (!isset($nextframetestarray['mpeg']['audio']['bitrate']) || !isset($firstframetestarray['mpeg']['audio']['bitrate']) || ($nextframetestarray['mpeg']['audio']['bitrate'] != $firstframetestarray['mpeg']['audio']['bitrate'])) {
 
1089
  return false;
1090
  }
1091
  }
1095
  if (isset($nextframetestarray['mpeg']['audio']['framelength']) && ($nextframetestarray['mpeg']['audio']['framelength'] > 0)) {
1096
  $nextframetestoffset += $nextframetestarray['mpeg']['audio']['framelength'];
1097
  } else {
1098
+ $info['error'][] = 'Frame at offset ('.$offset.') is has an invalid frame length.';
1099
  return false;
1100
  }
1101
 
1102
+ } elseif (!empty($firstframetestarray['mpeg']['audio']['framelength']) && (($nextframetestoffset + $firstframetestarray['mpeg']['audio']['framelength']) > $info['avdataend'])) {
1103
+
1104
+ // it's not the end of the file, but there's not enough data left for another frame, so assume it's garbage/padding and return OK
1105
+ return true;
1106
+
1107
  } else {
1108
 
1109
  // next frame is not valid, note the error and fail, so scanning can contiue for a valid frame sequence
1110
+ $info['warning'][] = 'Frame at offset ('.$offset.') is valid, but the next one at ('.$nextframetestoffset.') is not.';
1111
 
1112
  return false;
1113
  }
1115
  return true;
1116
  }
1117
 
1118
+ function FreeFormatFrameLength($offset, $deepscan=false) {
1119
+ $info = &$this->getid3->info;
1120
+
1121
+ fseek($this->getid3->fp, $offset, SEEK_SET);
1122
+ $MPEGaudioData = fread($this->getid3->fp, 32768);
1123
 
1124
  $SyncPattern1 = substr($MPEGaudioData, 0, 4);
1125
  // may be different pattern due to padding
1150
  $framelength = $framelength2;
1151
  }
1152
  if (!$framelength) {
1153
+ $info['error'][] = 'Cannot find next free-format synch pattern ('.getid3_lib::PrintHexBytes($SyncPattern1).' or '.getid3_lib::PrintHexBytes($SyncPattern2).') after offset '.$offset;
1154
  return false;
1155
  } else {
1156
+ $info['warning'][] = 'ModeExtension varies between first frame and other frames (known free-format issue in LAME 3.88)';
1157
+ $info['audio']['codec'] = 'LAME';
1158
+ $info['audio']['encoder'] = 'LAME3.88';
1159
  $SyncPattern1 = substr($SyncPattern1, 0, 3);
1160
  $SyncPattern2 = substr($SyncPattern2, 0, 3);
1161
  }
1165
 
1166
  $ActualFrameLengthValues = array();
1167
  $nextoffset = $offset + $framelength;
1168
+ while ($nextoffset < ($info['avdataend'] - 6)) {
1169
+ fseek($this->getid3->fp, $nextoffset - 1, SEEK_SET);
1170
+ $NextSyncPattern = fread($this->getid3->fp, 6);
1171
  if ((substr($NextSyncPattern, 1, strlen($SyncPattern1)) == $SyncPattern1) || (substr($NextSyncPattern, 1, strlen($SyncPattern2)) == $SyncPattern2)) {
1172
  // good - found where expected
1173
  $ActualFrameLengthValues[] = $framelength;
1180
  $ActualFrameLengthValues[] = ($framelength + 1);
1181
  $nextoffset++;
1182
  } else {
1183
+ $info['error'][] = 'Did not find expected free-format sync pattern at offset '.$nextoffset;
1184
  return false;
1185
  }
1186
  $nextoffset += $framelength;
1192
  return $framelength;
1193
  }
1194
 
1195
+ function getOnlyMPEGaudioInfoBruteForce() {
1196
+ $MPEGaudioHeaderDecodeCache = array();
1197
+ $MPEGaudioHeaderValidCache = array();
1198
+ $MPEGaudioHeaderLengthCache = array();
 
1199
  $MPEGaudioVersionLookup = getid3_mp3::MPEGaudioVersionArray();
1200
  $MPEGaudioLayerLookup = getid3_mp3::MPEGaudioLayerArray();
1201
  $MPEGaudioBitrateLookup = getid3_mp3::MPEGaudioBitrateArray();
1203
  $MPEGaudioChannelModeLookup = getid3_mp3::MPEGaudioChannelModeArray();
1204
  $MPEGaudioModeExtensionLookup = getid3_mp3::MPEGaudioModeExtensionArray();
1205
  $MPEGaudioEmphasisLookup = getid3_mp3::MPEGaudioEmphasisArray();
1206
+ $LongMPEGversionLookup = array();
1207
+ $LongMPEGlayerLookup = array();
1208
+ $LongMPEGbitrateLookup = array();
1209
+ $LongMPEGpaddingLookup = array();
1210
+ $LongMPEGfrequencyLookup = array();
1211
+ $Distribution['bitrate'] = array();
1212
+ $Distribution['frequency'] = array();
1213
+ $Distribution['layer'] = array();
1214
+ $Distribution['version'] = array();
1215
+ $Distribution['padding'] = array();
1216
+
1217
+ $info = &$this->getid3->info;
1218
+ fseek($this->getid3->fp, $info['avdataoffset'], SEEK_SET);
1219
+
1220
+ $max_frames_scan = 5000;
1221
+ $frames_scanned = 0;
1222
+
1223
+ $previousvalidframe = $info['avdataoffset'];
1224
+ while (ftell($this->getid3->fp) < $info['avdataend']) {
1225
  set_time_limit(30);
1226
+ $head4 = fread($this->getid3->fp, 4);
1227
  if (strlen($head4) < 4) {
1228
  break;
1229
  }
1230
  if ($head4{0} != "\xFF") {
1231
  for ($i = 1; $i < 4; $i++) {
1232
  if ($head4{$i} == "\xFF") {
1233
+ fseek($this->getid3->fp, $i - 4, SEEK_CUR);
1234
  continue 2;
1235
  }
1236
  }
1258
  $LongMPEGfrequencyLookup[$head4]);
1259
  }
1260
  if ($MPEGaudioHeaderLengthCache[$head4] > 4) {
1261
+ $WhereWeWere = ftell($this->getid3->fp);
1262
+ fseek($this->getid3->fp, $MPEGaudioHeaderLengthCache[$head4] - 4, SEEK_CUR);
1263
+ $next4 = fread($this->getid3->fp, 4);
1264
  if ($next4{0} == "\xFF") {
1265
  if (!isset($MPEGaudioHeaderDecodeCache[$next4])) {
1266
  $MPEGaudioHeaderDecodeCache[$next4] = getid3_mp3::MPEGaudioHeaderDecode($next4);
1269
  $MPEGaudioHeaderValidCache[$next4] = getid3_mp3::MPEGaudioHeaderValid($MPEGaudioHeaderDecodeCache[$next4], false, false);
1270
  }
1271
  if ($MPEGaudioHeaderValidCache[$next4]) {
1272
+ fseek($this->getid3->fp, -4, SEEK_CUR);
1273
+
1274
+ getid3_lib::safe_inc($Distribution['bitrate'][$LongMPEGbitrateLookup[$head4]]);
1275
+ getid3_lib::safe_inc($Distribution['layer'][$LongMPEGlayerLookup[$head4]]);
1276
+ getid3_lib::safe_inc($Distribution['version'][$LongMPEGversionLookup[$head4]]);
1277
+ getid3_lib::safe_inc($Distribution['padding'][intval($LongMPEGpaddingLookup[$head4])]);
1278
+ getid3_lib::safe_inc($Distribution['frequency'][$LongMPEGfrequencyLookup[$head4]]);
1279
+ if ($max_frames_scan && (++$frames_scanned >= $max_frames_scan)) {
1280
+ $pct_data_scanned = (ftell($this->getid3->fp) - $info['avdataoffset']) / ($info['avdataend'] - $info['avdataoffset']);
1281
+ $info['warning'][] = 'too many MPEG audio frames to scan, only scanned first '.$max_frames_scan.' frames ('.number_format($pct_data_scanned * 100, 1).'% of file) and extrapolated distribution, playtime and bitrate may be incorrect.';
1282
+ foreach ($Distribution as $key1 => $value1) {
1283
+ foreach ($value1 as $key2 => $value2) {
1284
+ $Distribution[$key1][$key2] = round($value2 / $pct_data_scanned);
1285
+ }
1286
+ }
1287
+ break;
1288
+ }
1289
  continue;
1290
  }
1291
  }
1292
  unset($next4);
1293
+ fseek($this->getid3->fp, $WhereWeWere - 3, SEEK_SET);
1294
  }
1295
 
1296
  }
1299
  ksort($Distribution[$key], SORT_NUMERIC);
1300
  }
1301
  ksort($Distribution['version'], SORT_STRING);
1302
+ $info['mpeg']['audio']['bitrate_distribution'] = $Distribution['bitrate'];
1303
+ $info['mpeg']['audio']['frequency_distribution'] = $Distribution['frequency'];
1304
+ $info['mpeg']['audio']['layer_distribution'] = $Distribution['layer'];
1305
+ $info['mpeg']['audio']['version_distribution'] = $Distribution['version'];
1306
+ $info['mpeg']['audio']['padding_distribution'] = $Distribution['padding'];
1307
  if (count($Distribution['version']) > 1) {
1308
+ $info['error'][] = 'Corrupt file - more than one MPEG version detected';
1309
  }
1310
  if (count($Distribution['layer']) > 1) {
1311
+ $info['error'][] = 'Corrupt file - more than one MPEG layer detected';
1312
  }
1313
  if (count($Distribution['frequency']) > 1) {
1314
+ $info['error'][] = 'Corrupt file - more than one MPEG sample rate detected';
1315
  }
1316
 
1317
 
1321
  $bittotal += ($bitratevalue * $bitratecount);
1322
  }
1323
  }
1324
+ $info['mpeg']['audio']['frame_count'] = array_sum($Distribution['bitrate']);
1325
+ if ($info['mpeg']['audio']['frame_count'] == 0) {
1326
+ $info['error'][] = 'no MPEG audio frames found';
1327
  return false;
1328
  }
1329
+ $info['mpeg']['audio']['bitrate'] = ($bittotal / $info['mpeg']['audio']['frame_count']);
1330
+ $info['mpeg']['audio']['bitrate_mode'] = ((count($Distribution['bitrate']) > 0) ? 'vbr' : 'cbr');
1331
+ $info['mpeg']['audio']['sample_rate'] = getid3_lib::array_max($Distribution['frequency'], true);
1332
 
1333
+ $info['audio']['bitrate'] = $info['mpeg']['audio']['bitrate'];
1334
+ $info['audio']['bitrate_mode'] = $info['mpeg']['audio']['bitrate_mode'];
1335
+ $info['audio']['sample_rate'] = $info['mpeg']['audio']['sample_rate'];
1336
+ $info['audio']['dataformat'] = 'mp'.getid3_lib::array_max($Distribution['layer'], true);
1337
+ $info['fileformat'] = $info['audio']['dataformat'];
1338
 
1339
  return true;
1340
  }
1341
 
1342
 
1343
+ function getOnlyMPEGaudioInfo($avdataoffset, $BitrateHistogram=false) {
1344
+ // looks for synch, decodes MPEG audio header
1345
+
1346
+ $info = &$this->getid3->info;
1347
+
1348
+ static $MPEGaudioVersionLookup;
1349
+ static $MPEGaudioLayerLookup;
1350
+ static $MPEGaudioBitrateLookup;
1351
+ if (empty($MPEGaudioVersionLookup)) {
1352
+ $MPEGaudioVersionLookup = getid3_mp3::MPEGaudioVersionArray();
1353
+ $MPEGaudioLayerLookup = getid3_mp3::MPEGaudioLayerArray();
1354
+ $MPEGaudioBitrateLookup = getid3_mp3::MPEGaudioBitrateArray();
1355
+
1356
+ }
1357
+
1358
+ fseek($this->getid3->fp, $avdataoffset, SEEK_SET);
1359
+ $sync_seek_buffer_size = min(128 * 1024, $info['avdataend'] - $avdataoffset);
1360
+ if ($sync_seek_buffer_size <= 0) {
1361
+ $info['error'][] = 'Invalid $sync_seek_buffer_size at offset '.$avdataoffset;
1362
+ return false;
1363
+ }
1364
+ $header = fread($this->getid3->fp, $sync_seek_buffer_size);
1365
+ $sync_seek_buffer_size = strlen($header);
1366
+ $SynchSeekOffset = 0;
1367
+ while ($SynchSeekOffset < $sync_seek_buffer_size) {
1368
+ if ((($avdataoffset + $SynchSeekOffset) < $info['avdataend']) && !feof($this->getid3->fp)) {
1369
+
1370
+ if ($SynchSeekOffset > $sync_seek_buffer_size) {
1371
+ // if a synch's not found within the first 128k bytes, then give up
1372
+ $info['error'][] = 'Could not find valid MPEG audio synch within the first '.round($sync_seek_buffer_size / 1024).'kB';
1373
+ if (isset($info['audio']['bitrate'])) {
1374
+ unset($info['audio']['bitrate']);
1375
+ }
1376
+ if (isset($info['mpeg']['audio'])) {
1377
+ unset($info['mpeg']['audio']);
1378
+ }
1379
+ if (empty($info['mpeg'])) {
1380
+ unset($info['mpeg']);
1381
+ }
1382
+ return false;
1383
+
1384
+ } elseif (feof($this->getid3->fp)) {
1385
+
1386
+ $info['error'][] = 'Could not find valid MPEG audio synch before end of file';
1387
+ if (isset($info['audio']['bitrate'])) {
1388
+ unset($info['audio']['bitrate']);
1389
+ }
1390
+ if (isset($info['mpeg']['audio'])) {
1391
+ unset($info['mpeg']['audio']);
1392
+ }
1393
+ if (isset($info['mpeg']) && (!is_array($info['mpeg']) || (count($info['mpeg']) == 0))) {
1394
+ unset($info['mpeg']);
1395
+ }
1396
+ return false;
1397
+ }
1398
+ }
1399
+
1400
+ if (($SynchSeekOffset + 1) >= strlen($header)) {
1401
+ $info['error'][] = 'Could not find valid MPEG synch before end of file';
1402
+ return false;
1403
+ }
1404
+
1405
+ if (($header{$SynchSeekOffset} == "\xFF") && ($header{($SynchSeekOffset + 1)} > "\xE0")) { // synch detected
1406
+ if (!isset($FirstFrameThisfileInfo) && !isset($info['mpeg']['audio'])) {
1407
+ $FirstFrameThisfileInfo = $info;
1408
  $FirstFrameAVDataOffset = $avdataoffset + $SynchSeekOffset;
1409
+ if (!$this->decodeMPEGaudioHeader($FirstFrameAVDataOffset, $FirstFrameThisfileInfo, false)) {
1410
  // if this is the first valid MPEG-audio frame, save it in case it's a VBR header frame and there's
1411
  // garbage between this frame and a valid sequence of MPEG-audio frames, to be restored below
1412
  unset($FirstFrameThisfileInfo);
1413
  }
1414
  }
1415
 
1416
+ $dummy = $info; // only overwrite real data if valid header found
1417
+ if ($this->decodeMPEGaudioHeader($avdataoffset + $SynchSeekOffset, $dummy, true)) {
1418
+ $info = $dummy;
1419
+ $info['avdataoffset'] = $avdataoffset + $SynchSeekOffset;
1420
+ switch (isset($info['fileformat']) ? $info['fileformat'] : '') {
1421
  case '':
1422
  case 'id3':
1423
  case 'ape':
1424
  case 'mp3':
1425
+ $info['fileformat'] = 'mp3';
1426
+ $info['audio']['dataformat'] = 'mp3';
1427
  break;
1428
  }
1429
  if (isset($FirstFrameThisfileInfo['mpeg']['audio']['bitrate_mode']) && ($FirstFrameThisfileInfo['mpeg']['audio']['bitrate_mode'] == 'vbr')) {
1430
+ if (!(abs($info['audio']['bitrate'] - $FirstFrameThisfileInfo['audio']['bitrate']) <= 1)) {
1431
  // If there is garbage data between a valid VBR header frame and a sequence
1432
  // of valid MPEG-audio frames the VBR data is no longer discarded.
1433
+ $info = $FirstFrameThisfileInfo;
1434
+ $info['avdataoffset'] = $FirstFrameAVDataOffset;
1435
+ $info['fileformat'] = 'mp3';
1436
+ $info['audio']['dataformat'] = 'mp3';
1437
+ $dummy = $info;
1438
  unset($dummy['mpeg']['audio']);
1439
  $GarbageOffsetStart = $FirstFrameAVDataOffset + $FirstFrameThisfileInfo['mpeg']['audio']['framelength'];
1440
  $GarbageOffsetEnd = $avdataoffset + $SynchSeekOffset;
1441
+ if ($this->decodeMPEGaudioHeader($GarbageOffsetEnd, $dummy, true, true)) {
1442
+ $info = $dummy;
1443
+ $info['avdataoffset'] = $GarbageOffsetEnd;
1444
+ $info['warning'][] = 'apparently-valid VBR header not used because could not find '.GETID3_MP3_VALID_CHECK_FRAMES.' consecutive MPEG-audio frames immediately after VBR header (garbage data for '.($GarbageOffsetEnd - $GarbageOffsetStart).' bytes between '.$GarbageOffsetStart.' and '.$GarbageOffsetEnd.'), but did find valid CBR stream starting at '.$GarbageOffsetEnd;
 
 
1445
  } else {
1446
+ $info['warning'][] = 'using data from VBR header even though could not find '.GETID3_MP3_VALID_CHECK_FRAMES.' consecutive MPEG-audio frames immediately after VBR header (garbage data for '.($GarbageOffsetEnd - $GarbageOffsetStart).' bytes between '.$GarbageOffsetStart.' and '.$GarbageOffsetEnd.')';
 
 
1447
  }
1448
  }
1449
  }
1450
+ if (isset($info['mpeg']['audio']['bitrate_mode']) && ($info['mpeg']['audio']['bitrate_mode'] == 'vbr') && !isset($info['mpeg']['audio']['VBR_method'])) {
1451
  // VBR file with no VBR header
1452
  $BitrateHistogram = true;
1453
  }
1454
 
1455
  if ($BitrateHistogram) {
1456
 
1457
+ $info['mpeg']['audio']['stereo_distribution'] = array('stereo'=>0, 'joint stereo'=>0, 'dual channel'=>0, 'mono'=>0);
1458
+ $info['mpeg']['audio']['version_distribution'] = array('1'=>0, '2'=>0, '2.5'=>0);
1459
 
1460
+ if ($info['mpeg']['audio']['version'] == '1') {
1461
+ if ($info['mpeg']['audio']['layer'] == 3) {
1462
+ $info['mpeg']['audio']['bitrate_distribution'] = array('free'=>0, 32000=>0, 40000=>0, 48000=>0, 56000=>0, 64000=>0, 80000=>0, 96000=>0, 112000=>0, 128000=>0, 160000=>0, 192000=>0, 224000=>0, 256000=>0, 320000=>0);
1463
+ } elseif ($info['mpeg']['audio']['layer'] == 2) {
1464
+ $info['mpeg']['audio']['bitrate_distribution'] = array('free'=>0, 32000=>0, 48000=>0, 56000=>0, 64000=>0, 80000=>0, 96000=>0, 112000=>0, 128000=>0, 160000=>0, 192000=>0, 224000=>0, 256000=>0, 320000=>0, 384000=>0);
1465
+ } elseif ($info['mpeg']['audio']['layer'] == 1) {
1466
+ $info['mpeg']['audio']['bitrate_distribution'] = array('free'=>0, 32000=>0, 64000=>0, 96000=>0, 128000=>0, 160000=>0, 192000=>0, 224000=>0, 256000=>0, 288000=>0, 320000=>0, 352000=>0, 384000=>0, 416000=>0, 448000=>0);
1467
  }
1468
+ } elseif ($info['mpeg']['audio']['layer'] == 1) {
1469
+ $info['mpeg']['audio']['bitrate_distribution'] = array('free'=>0, 32000=>0, 48000=>0, 56000=>0, 64000=>0, 80000=>0, 96000=>0, 112000=>0, 128000=>0, 144000=>0, 160000=>0, 176000=>0, 192000=>0, 224000=>0, 256000=>0);
1470
  } else {
1471
+ $info['mpeg']['audio']['bitrate_distribution'] = array('free'=>0, 8000=>0, 16000=>0, 24000=>0, 32000=>0, 40000=>0, 48000=>0, 56000=>0, 64000=>0, 80000=>0, 96000=>0, 112000=>0, 128000=>0, 144000=>0, 160000=>0);
1472
  }
1473
 
1474
+ $dummy = array('error'=>$info['error'], 'warning'=>$info['warning'], 'avdataend'=>$info['avdataend'], 'avdataoffset'=>$info['avdataoffset']);
1475
+ $synchstartoffset = $info['avdataoffset'];
1476
+ fseek($this->getid3->fp, $info['avdataoffset'], SEEK_SET);
1477
+
1478
+ // you can play with these numbers:
1479
+ $max_frames_scan = 50000;
1480
+ $max_scan_segments = 10;
1481
 
1482
+ // don't play with these numbers:
1483
  $FastMode = false;
1484
  $SynchErrorsFound = 0;
1485
+ $frames_scanned = 0;
1486
+ $this_scan_segment = 0;
1487
+ $frames_scan_per_segment = ceil($max_frames_scan / $max_scan_segments);
1488
+ $pct_data_scanned = 0;
1489
+ for ($current_segment = 0; $current_segment < $max_scan_segments; $current_segment++) {
1490
+ $frames_scanned_this_segment = 0;
1491
+ if (ftell($this->getid3->fp) >= $info['avdataend']) {
1492
+ break;
1493
+ }
1494
+ $scan_start_offset[$current_segment] = max(ftell($this->getid3->fp), $info['avdataoffset'] + round($current_segment * (($info['avdataend'] - $info['avdataoffset']) / $max_scan_segments)));
1495
+ if ($current_segment > 0) {
1496
+ fseek($this->getid3->fp, $scan_start_offset[$current_segment], SEEK_SET);
1497
+ $buffer_4k = fread($this->getid3->fp, 4096);
1498
+ for ($j = 0; $j < (strlen($buffer_4k) - 4); $j++) {
1499
+ if (($buffer_4k{$j} == "\xFF") && ($buffer_4k{($j + 1)} > "\xE0")) { // synch detected
1500
+ if ($this->decodeMPEGaudioHeader($scan_start_offset[$current_segment] + $j, $dummy, false, false, $FastMode)) {
1501
+ $calculated_next_offset = $scan_start_offset[$current_segment] + $j + $dummy['mpeg']['audio']['framelength'];
1502
+ if ($this->decodeMPEGaudioHeader($calculated_next_offset, $dummy, false, false, $FastMode)) {
1503
+ $scan_start_offset[$current_segment] += $j;
1504
+ break;
1505
+ }
1506
+ }
1507
+ }
1508
+ }
1509
+ }
1510
+ $synchstartoffset = $scan_start_offset[$current_segment];
1511
+ while ($this->decodeMPEGaudioHeader($synchstartoffset, $dummy, false, false, $FastMode)) {
1512
+ $FastMode = true;
1513
+ $thisframebitrate = $MPEGaudioBitrateLookup[$MPEGaudioVersionLookup[$dummy['mpeg']['audio']['raw']['version']]][$MPEGaudioLayerLookup[$dummy['mpeg']['audio']['raw']['layer']]][$dummy['mpeg']['audio']['raw']['bitrate']];
1514
+
1515
+ if (empty($dummy['mpeg']['audio']['framelength'])) {
1516
+ $SynchErrorsFound++;
1517
+ $synchstartoffset++;
1518
+ } else {
1519
+ getid3_lib::safe_inc($info['mpeg']['audio']['bitrate_distribution'][$thisframebitrate]);
1520
+ getid3_lib::safe_inc($info['mpeg']['audio']['stereo_distribution'][$dummy['mpeg']['audio']['channelmode']]);
1521
+ getid3_lib::safe_inc($info['mpeg']['audio']['version_distribution'][$dummy['mpeg']['audio']['version']]);
1522
+ $synchstartoffset += $dummy['mpeg']['audio']['framelength'];
1523
+ }
1524
+ $frames_scanned++;
1525
+ if ($frames_scan_per_segment && (++$frames_scanned_this_segment >= $frames_scan_per_segment)) {
1526
+ $this_pct_scanned = (ftell($this->getid3->fp) - $scan_start_offset[$current_segment]) / ($info['avdataend'] - $info['avdataoffset']);
1527
+ if (($current_segment == 0) && (($this_pct_scanned * $max_scan_segments) >= 1)) {
1528
+ // file likely contains < $max_frames_scan, just scan as one segment
1529
+ $max_scan_segments = 1;
1530
+ $frames_scan_per_segment = $max_frames_scan;
1531
+ } else {
1532
+ $pct_data_scanned += $this_pct_scanned;
1533
+ break;
1534
+ }
1535
+ }
1536
  }
1537
  }
1538
+ if ($pct_data_scanned > 0) {
1539
+ $info['warning'][] = 'too many MPEG audio frames to scan, only scanned '.$frames_scanned.' frames in '.$max_scan_segments.' segments ('.number_format($pct_data_scanned * 100, 1).'% of file) and extrapolated distribution, playtime and bitrate may be incorrect.';
1540
+ foreach ($info['mpeg']['audio'] as $key1 => $value1) {
1541
+ if (!preg_match('#_distribution$#i', $key1)) {
1542
+ continue;
1543
+ }
1544
+ foreach ($value1 as $key2 => $value2) {
1545
+ $info['mpeg']['audio'][$key1][$key2] = round($value2 / $pct_data_scanned);
1546
+ }
1547
+ }
1548
+ }
1549
+
1550
  if ($SynchErrorsFound > 0) {
1551
+ $info['warning'][] = 'Found '.$SynchErrorsFound.' synch errors in histogram analysis';
1552
  //return false;
1553
  }
1554
 
1555
  $bittotal = 0;
1556
  $framecounter = 0;
1557
+ foreach ($info['mpeg']['audio']['bitrate_distribution'] as $bitratevalue => $bitratecount) {
1558
  $framecounter += $bitratecount;
1559
  if ($bitratevalue != 'free') {
1560
  $bittotal += ($bitratevalue * $bitratecount);
1561
  }
1562
  }
1563
  if ($framecounter == 0) {
1564
+ $info['error'][] = 'Corrupt MP3 file: framecounter == zero';
1565
  return false;
1566
  }
1567
+ $info['mpeg']['audio']['frame_count'] = getid3_lib::CastAsInt($framecounter);
1568
+ $info['mpeg']['audio']['bitrate'] = ($bittotal / $framecounter);
1569
 
1570
+ $info['audio']['bitrate'] = $info['mpeg']['audio']['bitrate'];
1571
 
1572
 
1573
  // Definitively set VBR vs CBR, even if the Xing/LAME/VBRI header says differently
1574
  $distinct_bitrates = 0;
1575
+ foreach ($info['mpeg']['audio']['bitrate_distribution'] as $bitrate_value => $bitrate_count) {
1576
  if ($bitrate_count > 0) {
1577
  $distinct_bitrates++;
1578
  }
1579
  }
1580
  if ($distinct_bitrates > 1) {
1581
+ $info['mpeg']['audio']['bitrate_mode'] = 'vbr';
1582
  } else {
1583
+ $info['mpeg']['audio']['bitrate_mode'] = 'cbr';
1584
  }
1585
+ $info['audio']['bitrate_mode'] = $info['mpeg']['audio']['bitrate_mode'];
1586
 
1587
  }
1588
 
1591
  }
1592
 
1593
  $SynchSeekOffset++;
1594
+ if (($avdataoffset + $SynchSeekOffset) >= $info['avdataend']) {
1595
  // end of file/data
1596
 
1597
+ if (empty($info['mpeg']['audio'])) {
1598
 
1599
+ $info['error'][] = 'could not find valid MPEG synch before end of file';
1600
+ if (isset($info['audio']['bitrate'])) {
1601
+ unset($info['audio']['bitrate']);
1602
  }
1603
+ if (isset($info['mpeg']['audio'])) {
1604
+ unset($info['mpeg']['audio']);
1605
  }
1606
+ if (isset($info['mpeg']) && (!is_array($info['mpeg']) || empty($info['mpeg']))) {
1607
+ unset($info['mpeg']);
1608
  }
1609
  return false;
1610
 
1613
  }
1614
 
1615
  }
1616
+ $info['audio']['channels'] = $info['mpeg']['audio']['channels'];
1617
+ $info['audio']['channelmode'] = $info['mpeg']['audio']['channelmode'];
1618
+ $info['audio']['sample_rate'] = $info['mpeg']['audio']['sample_rate'];
1619
  return true;
1620
  }
1621
 
1622
 
1623
+ static function MPEGaudioVersionArray() {
1624
  static $MPEGaudioVersion = array('2.5', false, '2', '1');
1625
  return $MPEGaudioVersion;
1626
  }
1627
 
1628
+ static function MPEGaudioLayerArray() {
1629
  static $MPEGaudioLayer = array(false, 3, 2, 1);
1630
  return $MPEGaudioLayer;
1631
  }
1632
 
1633
+ static function MPEGaudioBitrateArray() {
1634
  static $MPEGaudioBitrate;
1635
  if (empty($MPEGaudioBitrate)) {
1636
+ $MPEGaudioBitrate = array (
1637
+ '1' => array (1 => array('free', 32000, 64000, 96000, 128000, 160000, 192000, 224000, 256000, 288000, 320000, 352000, 384000, 416000, 448000),
1638
+ 2 => array('free', 32000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 160000, 192000, 224000, 256000, 320000, 384000),
1639
+ 3 => array('free', 32000, 40000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 160000, 192000, 224000, 256000, 320000)
1640
+ ),
1641
+
1642
+ '2' => array (1 => array('free', 32000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 144000, 160000, 176000, 192000, 224000, 256000),
1643
+ 2 => array('free', 8000, 16000, 24000, 32000, 40000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 144000, 160000),
1644
+ )
1645
  );
1646
  $MPEGaudioBitrate['2'][3] = $MPEGaudioBitrate['2'][2];
1647
  $MPEGaudioBitrate['2.5'] = $MPEGaudioBitrate['2'];
1649
  return $MPEGaudioBitrate;
1650
  }
1651
 
1652
+ static function MPEGaudioFrequencyArray() {
1653
  static $MPEGaudioFrequency;
1654
  if (empty($MPEGaudioFrequency)) {
1655
+ $MPEGaudioFrequency = array (
1656
+ '1' => array(44100, 48000, 32000),
1657
+ '2' => array(22050, 24000, 16000),
1658
+ '2.5' => array(11025, 12000, 8000)
1659
  );
1660
  }
1661
  return $MPEGaudioFrequency;
1662
  }
1663
 
1664
+ static function MPEGaudioChannelModeArray() {
1665
  static $MPEGaudioChannelMode = array('stereo', 'joint stereo', 'dual channel', 'mono');
1666
  return $MPEGaudioChannelMode;
1667
  }
1668
 
1669
+ static function MPEGaudioModeExtensionArray() {
1670
  static $MPEGaudioModeExtension;
1671
  if (empty($MPEGaudioModeExtension)) {
1672
+ $MPEGaudioModeExtension = array (
1673
+ 1 => array('4-31', '8-31', '12-31', '16-31'),
1674
+ 2 => array('4-31', '8-31', '12-31', '16-31'),
1675
+ 3 => array('', 'IS', 'MS', 'IS+MS')
1676
  );
1677
  }
1678
  return $MPEGaudioModeExtension;
1679
  }
1680
 
1681
+ static function MPEGaudioEmphasisArray() {
1682
  static $MPEGaudioEmphasis = array('none', '50/15ms', false, 'CCIT J.17');
1683
  return $MPEGaudioEmphasis;
1684
  }
1685
 
1686
+ static function MPEGaudioHeaderBytesValid($head4, $allowBitrate15=false) {
1687
  return getid3_mp3::MPEGaudioHeaderValid(getid3_mp3::MPEGaudioHeaderDecode($head4), false, $allowBitrate15);
1688
  }
1689
 
1690
+ static function MPEGaudioHeaderValid($rawarray, $echoerrors=false, $allowBitrate15=false) {
1691
  if (($rawarray['synch'] & 0x0FFE) != 0x0FFE) {
1692
  return false;
1693
  }
1759
  return true;
1760
  }
1761
 
1762
+ static function MPEGaudioHeaderDecode($Header4Bytes) {
1763
  // AAAA AAAA AAAB BCCD EEEE FFGH IIJJ KLMM
1764
  // A - Frame sync (all bits set)
1765
  // B - MPEG Audio version ID
1796
  return $MPEGrawHeader;
1797
  }
1798
 
1799
+ static function MPEGaudioFrameLength(&$bitrate, &$version, &$layer, $padding, &$samplerate) {
1800
  static $AudioFrameLengthCache = array();
1801
 
1802
  if (!isset($AudioFrameLengthCache[$bitrate][$version][$layer][$padding][$samplerate])) {
1857
  return $AudioFrameLengthCache[$bitrate][$version][$layer][$padding][$samplerate];
1858
  }
1859
 
1860
+ static function ClosestStandardMP3Bitrate($bit_rate) {
1861
+ static $standard_bit_rates = array (320000, 256000, 224000, 192000, 160000, 128000, 112000, 96000, 80000, 64000, 56000, 48000, 40000, 32000, 24000, 16000, 8000);
1862
+ static $bit_rate_table = array (0=>'-');
1863
+ $round_bit_rate = intval(round($bit_rate, -3));
1864
+ if (!isset($bit_rate_table[$round_bit_rate])) {
1865
+ if ($round_bit_rate > max($standard_bit_rates)) {
1866
+ $bit_rate_table[$round_bit_rate] = round($bit_rate, 2 - strlen($bit_rate));
1867
  } else {
1868
+ $bit_rate_table[$round_bit_rate] = max($standard_bit_rates);
1869
+ foreach ($standard_bit_rates as $standard_bit_rate) {
1870
+ if ($round_bit_rate >= $standard_bit_rate + (($bit_rate_table[$round_bit_rate] - $standard_bit_rate) / 2)) {
 
1871
  break;
1872
  }
1873
+ $bit_rate_table[$round_bit_rate] = $standard_bit_rate;
1874
  }
1875
  }
1876
  }
1877
+ return $bit_rate_table[$round_bit_rate];
1878
  }
1879
 
1880
+ static function XingVBRidOffset($version, $channelmode) {
1881
  static $XingVBRidOffsetCache = array();
1882
  if (empty($XingVBRidOffset)) {
1883
  $XingVBRidOffset = array (
1884
+ '1' => array ('mono' => 0x15, // 4 + 17 = 21
1885
+ 'stereo' => 0x24, // 4 + 32 = 36
1886
+ 'joint stereo' => 0x24,
1887
+ 'dual channel' => 0x24
1888
+ ),
1889
+
1890
+ '2' => array ('mono' => 0x0D, // 4 + 9 = 13
1891
+ 'stereo' => 0x15, // 4 + 17 = 21
1892
+ 'joint stereo' => 0x15,
1893
+ 'dual channel' => 0x15
1894
+ ),
1895
+
1896
+ '2.5' => array ('mono' => 0x15,
1897
+ 'stereo' => 0x15,
1898
+ 'joint stereo' => 0x15,
1899
+ 'dual channel' => 0x15
1900
+ )
1901
+ );
1902
  }
1903
  return $XingVBRidOffset[$version][$channelmode];
1904
  }
1905
 
1906
+ static function LAMEvbrMethodLookup($VBRmethodID) {
1907
  static $LAMEvbrMethodLookup = array(
1908
  0x00 => 'unknown',
1909
  0x01 => 'cbr',
1919
  return (isset($LAMEvbrMethodLookup[$VBRmethodID]) ? $LAMEvbrMethodLookup[$VBRmethodID] : '');
1920
  }
1921
 
1922
+ static function LAMEmiscStereoModeLookup($StereoModeID) {
1923
  static $LAMEmiscStereoModeLookup = array(
1924
  0 => 'mono',
1925
  1 => 'stereo',
1933
  return (isset($LAMEmiscStereoModeLookup[$StereoModeID]) ? $LAMEmiscStereoModeLookup[$StereoModeID] : '');
1934
  }
1935
 
1936
+ static function LAMEmiscSourceSampleFrequencyLookup($SourceSampleFrequencyID) {
1937
  static $LAMEmiscSourceSampleFrequencyLookup = array(
1938
  0 => '<= 32 kHz',
1939
  1 => '44.1 kHz',
1943
  return (isset($LAMEmiscSourceSampleFrequencyLookup[$SourceSampleFrequencyID]) ? $LAMEmiscSourceSampleFrequencyLookup[$SourceSampleFrequencyID] : '');
1944
  }
1945
 
1946
+ static function LAMEsurroundInfoLookup($SurroundInfoID) {
1947
  static $LAMEsurroundInfoLookup = array(
1948
  0 => 'no surround info',
1949
  1 => 'DPL encoding',
1953
  return (isset($LAMEsurroundInfoLookup[$SurroundInfoID]) ? $LAMEsurroundInfoLookup[$SurroundInfoID] : 'reserved');
1954
  }
1955
 
1956
+ static function LAMEpresetUsedLookup($LAMEtag) {
1957
+
1958
+ if ($LAMEtag['preset_used_id'] == 0) {
1959
+ // no preset used (LAME >=3.93)
1960
+ // no preset recorded (LAME <3.93)
1961
+ return '';
1962
+ }
1963
+ $LAMEpresetUsedLookup = array();
1964
+
1965
+ ///// THIS PART CANNOT BE STATIC .
1966
+ for ($i = 8; $i <= 320; $i++) {
1967
+ switch ($LAMEtag['vbr_method']) {
1968
+ case 'cbr':
1969
+ $LAMEpresetUsedLookup[$i] = '--alt-preset '.$LAMEtag['vbr_method'].' '.$i;
1970
+ break;
1971
+ case 'abr':
1972
+ default: // other VBR modes shouldn't be here(?)
1973
+ $LAMEpresetUsedLookup[$i] = '--alt-preset '.$i;
1974
+ break;
1975
+ }
1976
+ }
1977
+
1978
+ // named old-style presets (studio, phone, voice, etc) are handled in GuessEncoderOptions()
1979
+
1980
+ // named alt-presets
1981
+ $LAMEpresetUsedLookup[1000] = '--r3mix';
1982
+ $LAMEpresetUsedLookup[1001] = '--alt-preset standard';
1983
+ $LAMEpresetUsedLookup[1002] = '--alt-preset extreme';
1984
+ $LAMEpresetUsedLookup[1003] = '--alt-preset insane';
1985
+ $LAMEpresetUsedLookup[1004] = '--alt-preset fast standard';
1986
+ $LAMEpresetUsedLookup[1005] = '--alt-preset fast extreme';
1987
+ $LAMEpresetUsedLookup[1006] = '--alt-preset medium';
1988
+ $LAMEpresetUsedLookup[1007] = '--alt-preset fast medium';
1989
+
1990
+ // LAME 3.94 additions/changes
1991
+ $LAMEpresetUsedLookup[1010] = '--preset portable'; // 3.94a15 Oct 21 2003
1992
+ $LAMEpresetUsedLookup[1015] = '--preset radio'; // 3.94a15 Oct 21 2003
1993
+
1994
+ $LAMEpresetUsedLookup[320] = '--preset insane'; // 3.94a15 Nov 12 2003
1995
+ $LAMEpresetUsedLookup[410] = '-V9';
1996
+ $LAMEpresetUsedLookup[420] = '-V8';
1997
+ $LAMEpresetUsedLookup[440] = '-V6';
1998
+ $LAMEpresetUsedLookup[430] = '--preset radio'; // 3.94a15 Nov 12 2003
1999
+ $LAMEpresetUsedLookup[450] = '--preset '.(($LAMEtag['raw']['vbr_method'] == 4) ? 'fast ' : '').'portable'; // 3.94a15 Nov 12 2003
2000
+ $LAMEpresetUsedLookup[460] = '--preset '.(($LAMEtag['raw']['vbr_method'] == 4) ? 'fast ' : '').'medium'; // 3.94a15 Nov 12 2003
2001
+ $LAMEpresetUsedLookup[470] = '--r3mix'; // 3.94b1 Dec 18 2003
2002
+ $LAMEpresetUsedLookup[480] = '--preset '.(($LAMEtag['raw']['vbr_method'] == 4) ? 'fast ' : '').'standard'; // 3.94a15 Nov 12 2003
2003
+ $LAMEpresetUsedLookup[490] = '-V1';
2004
+ $LAMEpresetUsedLookup[500] = '--preset '.(($LAMEtag['raw']['vbr_method'] == 4) ? 'fast ' : '').'extreme'; // 3.94a15 Nov 12 2003
2005
+
2006
+ return (isset($LAMEpresetUsedLookup[$LAMEtag['preset_used_id']]) ? $LAMEpresetUsedLookup[$LAMEtag['preset_used_id']] : 'new/unknown preset: '.$LAMEtag['preset_used_id'].' - report to info@getid3.org');
2007
+ }
2008
 
2009
  }
2010
 
getid3/module.tag.apetag.php ADDED
@@ -0,0 +1,372 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /////////////////////////////////////////////////////////////////
3
+ /// getID3() by James Heinrich <info@getid3.org> //
4
+ // available at http://getid3.sourceforge.net //
5
+ // or http://www.getid3.org //
6
+ /////////////////////////////////////////////////////////////////
7
+ // See readme.txt for more details //
8
+ /////////////////////////////////////////////////////////////////
9
+ // //
10
+ // module.tag.apetag.php //
11
+ // module for analyzing APE tags //
12
+ // dependencies: NONE //
13
+ // ///
14
+ /////////////////////////////////////////////////////////////////
15
+
16
+ class getid3_apetag extends getid3_handler
17
+ {
18
+ var $inline_attachments = true; // true: return full data for all attachments; false: return no data for all attachments; integer: return data for attachments <= than this; string: save as file to this directory
19
+ var $overrideendoffset = 0;
20
+
21
+ function Analyze() {
22
+ $info = &$this->getid3->info;
23
+
24
+ if (!getid3_lib::intValueSupported($info['filesize'])) {
25
+ $info['warning'][] = 'Unable to check for APEtags because file is larger than '.round(PHP_INT_MAX / 1073741824).'GB';
26
+ return false;
27
+ }
28
+
29
+ $id3v1tagsize = 128;
30
+ $apetagheadersize = 32;
31
+ $lyrics3tagsize = 10;
32
+
33
+ if ($this->overrideendoffset == 0) {
34
+
35
+ fseek($this->getid3->fp, 0 - $id3v1tagsize - $apetagheadersize - $lyrics3tagsize, SEEK_END);
36
+ $APEfooterID3v1 = fread($this->getid3->fp, $id3v1tagsize + $apetagheadersize + $lyrics3tagsize);
37
+
38
+ //if (preg_match('/APETAGEX.{24}TAG.{125}$/i', $APEfooterID3v1)) {
39
+ if (substr($APEfooterID3v1, strlen($APEfooterID3v1) - $id3v1tagsize - $apetagheadersize, 8) == 'APETAGEX') {
40
+
41
+ // APE tag found before ID3v1
42
+ $info['ape']['tag_offset_end'] = $info['filesize'] - $id3v1tagsize;
43
+
44
+ //} elseif (preg_match('/APETAGEX.{24}$/i', $APEfooterID3v1)) {
45
+ } elseif (substr($APEfooterID3v1, strlen($APEfooterID3v1) - $apetagheadersize, 8) == 'APETAGEX') {
46
+
47
+ // APE tag found, no ID3v1
48
+ $info['ape']['tag_offset_end'] = $info['filesize'];
49
+
50
+ }
51
+
52
+ } else {
53
+
54
+ fseek($this->getid3->fp, $this->overrideendoffset - $apetagheadersize, SEEK_SET);
55
+ if (fread($this->getid3->fp, 8) == 'APETAGEX') {
56
+ $info['ape']['tag_offset_end'] = $this->overrideendoffset;
57
+ }
58
+
59
+ }
60
+ if (!isset($info['ape']['tag_offset_end'])) {
61
+
62
+ // APE tag not found
63
+ unset($info['ape']);
64
+ return false;
65
+
66
+ }
67
+
68
+ // shortcut
69
+ $thisfile_ape = &$info['ape'];
70
+
71
+ fseek($this->getid3->fp, $thisfile_ape['tag_offset_end'] - $apetagheadersize, SEEK_SET);
72
+ $APEfooterData = fread($this->getid3->fp, 32);
73
+ if (!($thisfile_ape['footer'] = $this->parseAPEheaderFooter($APEfooterData))) {
74
+ $info['error'][] = 'Error parsing APE footer at offset '.$thisfile_ape['tag_offset_end'];
75
+ return false;
76
+ }
77
+
78
+ if (isset($thisfile_ape['footer']['flags']['header']) && $thisfile_ape['footer']['flags']['header']) {
79
+ fseek($this->getid3->fp, $thisfile_ape['tag_offset_end'] - $thisfile_ape['footer']['raw']['tagsize'] - $apetagheadersize, SEEK_SET);
80
+ $thisfile_ape['tag_offset_start'] = ftell($this->getid3->fp);
81
+ $APEtagData = fread($this->getid3->fp, $thisfile_ape['footer']['raw']['tagsize'] + $apetagheadersize);
82
+ } else {
83
+ $thisfile_ape['tag_offset_start'] = $thisfile_ape['tag_offset_end'] - $thisfile_ape['footer']['raw']['tagsize'];
84
+ fseek($this->getid3->fp, $thisfile_ape['tag_offset_start'], SEEK_SET);
85
+ $APEtagData = fread($this->getid3->fp, $thisfile_ape['footer']['raw']['tagsize']);
86
+ }
87
+ $info['avdataend'] = $thisfile_ape['tag_offset_start'];
88
+
89
+ if (isset($info['id3v1']['tag_offset_start']) && ($info['id3v1']['tag_offset_start'] < $thisfile_ape['tag_offset_end'])) {
90
+ $info['warning'][] = 'ID3v1 tag information ignored since it appears to be a false synch in APEtag data';
91
+ unset($info['id3v1']);
92
+ foreach ($info['warning'] as $key => $value) {
93
+ if ($value == 'Some ID3v1 fields do not use NULL characters for padding') {
94
+ unset($info['warning'][$key]);
95
+ sort($info['warning']);
96
+ break;
97
+ }
98
+ }
99
+ }
100
+
101
+ $offset = 0;
102
+ if (isset($thisfile_ape['footer']['flags']['header']) && $thisfile_ape['footer']['flags']['header']) {
103
+ if ($thisfile_ape['header'] = $this->parseAPEheaderFooter(substr($APEtagData, 0, $apetagheadersize))) {
104
+ $offset += $apetagheadersize;
105
+ } else {
106
+ $info['error'][] = 'Error parsing APE header at offset '.$thisfile_ape['tag_offset_start'];
107
+ return false;
108
+ }
109
+ }
110
+
111
+ // shortcut
112
+ $info['replay_gain'] = array();
113
+ $thisfile_replaygain = &$info['replay_gain'];
114
+
115
+ for ($i = 0; $i < $thisfile_ape['footer']['raw']['tag_items']; $i++) {
116
+ $value_size = getid3_lib::LittleEndian2Int(substr($APEtagData, $offset, 4));
117
+ $offset += 4;
118
+ $item_flags = getid3_lib::LittleEndian2Int(substr($APEtagData, $offset, 4));
119
+ $offset += 4;
120
+ if (strstr(substr($APEtagData, $offset), "\x00") === false) {
121
+ $info['error'][] = 'Cannot find null-byte (0x00) seperator between ItemKey #'.$i.' and value. ItemKey starts '.$offset.' bytes into the APE tag, at file offset '.($thisfile_ape['tag_offset_start'] + $offset);
122
+ return false;
123
+ }
124
+ $ItemKeyLength = strpos($APEtagData, "\x00", $offset) - $offset;
125
+ $item_key = strtolower(substr($APEtagData, $offset, $ItemKeyLength));
126
+
127
+ // shortcut
128
+ $thisfile_ape['items'][$item_key] = array();
129
+ $thisfile_ape_items_current = &$thisfile_ape['items'][$item_key];
130
+
131
+ $thisfile_ape_items_current['offset'] = $thisfile_ape['tag_offset_start'] + $offset;
132
+
133
+ $offset += ($ItemKeyLength + 1); // skip 0x00 terminator
134
+ $thisfile_ape_items_current['data'] = substr($APEtagData, $offset, $value_size);
135
+ $offset += $value_size;
136
+
137
+ $thisfile_ape_items_current['flags'] = $this->parseAPEtagFlags($item_flags);
138
+ switch ($thisfile_ape_items_current['flags']['item_contents_raw']) {
139
+ case 0: // UTF-8
140
+ case 3: // Locator (URL, filename, etc), UTF-8 encoded
141
+ $thisfile_ape_items_current['data'] = explode("\x00", trim($thisfile_ape_items_current['data']));
142
+ break;
143
+
144
+ default: // binary data
145
+ break;
146
+ }
147
+
148
+ switch (strtolower($item_key)) {
149
+ case 'replaygain_track_gain':
150
+ $thisfile_replaygain['track']['adjustment'] = (float) str_replace(',', '.', $thisfile_ape_items_current['data'][0]); // float casting will see "0,95" as zero!
151
+ $thisfile_replaygain['track']['originator'] = 'unspecified';
152
+ break;
153
+
154
+ case 'replaygain_track_peak':
155
+ $thisfile_replaygain['track']['peak'] = (float) str_replace(',', '.', $thisfile_ape_items_current['data'][0]); // float casting will see "0,95" as zero!
156
+ $thisfile_replaygain['track']['originator'] = 'unspecified';
157
+ if ($thisfile_replaygain['track']['peak'] <= 0) {
158
+ $info['warning'][] = 'ReplayGain Track peak from APEtag appears invalid: '.$thisfile_replaygain['track']['peak'].' (original value = "'.$thisfile_ape_items_current['data'][0].'")';
159
+ }
160
+ break;
161
+
162
+ case 'replaygain_album_gain':
163
+ $thisfile_replaygain['album']['adjustment'] = (float) str_replace(',', '.', $thisfile_ape_items_current['data'][0]); // float casting will see "0,95" as zero!
164
+ $thisfile_replaygain['album']['originator'] = 'unspecified';
165
+ break;
166
+
167
+ case 'replaygain_album_peak':
168
+ $thisfile_replaygain['album']['peak'] = (float) str_replace(',', '.', $thisfile_ape_items_current['data'][0]); // float casting will see "0,95" as zero!
169
+ $thisfile_replaygain['album']['originator'] = 'unspecified';
170
+ if ($thisfile_replaygain['album']['peak'] <= 0) {
171
+ $info['warning'][] = 'ReplayGain Album peak from APEtag appears invalid: '.$thisfile_replaygain['album']['peak'].' (original value = "'.$thisfile_ape_items_current['data'][0].'")';
172
+ }
173
+ break;
174
+
175
+ case 'mp3gain_undo':
176
+ list($mp3gain_undo_left, $mp3gain_undo_right, $mp3gain_undo_wrap) = explode(',', $thisfile_ape_items_current['data'][0]);
177
+ $thisfile_replaygain['mp3gain']['undo_left'] = intval($mp3gain_undo_left);
178
+ $thisfile_replaygain['mp3gain']['undo_right'] = intval($mp3gain_undo_right);
179
+ $thisfile_replaygain['mp3gain']['undo_wrap'] = (($mp3gain_undo_wrap == 'Y') ? true : false);
180
+ break;
181
+
182
+ case 'mp3gain_minmax':
183
+ list($mp3gain_globalgain_min, $mp3gain_globalgain_max) = explode(',', $thisfile_ape_items_current['data'][0]);
184
+ $thisfile_replaygain['mp3gain']['globalgain_track_min'] = intval($mp3gain_globalgain_min);
185
+ $thisfile_replaygain['mp3gain']['globalgain_track_max'] = intval($mp3gain_globalgain_max);
186
+ break;
187
+
188
+ case 'mp3gain_album_minmax':
189
+ list($mp3gain_globalgain_album_min, $mp3gain_globalgain_album_max) = explode(',', $thisfile_ape_items_current['data'][0]);
190
+ $thisfile_replaygain['mp3gain']['globalgain_album_min'] = intval($mp3gain_globalgain_album_min);
191
+ $thisfile_replaygain['mp3gain']['globalgain_album_max'] = intval($mp3gain_globalgain_album_max);
192
+ break;
193
+
194
+ case 'tracknumber':
195
+ if (is_array($thisfile_ape_items_current['data'])) {
196
+ foreach ($thisfile_ape_items_current['data'] as $comment) {
197
+ $thisfile_ape['comments']['track'][] = $comment;
198
+ }
199
+ }
200
+ break;
201
+
202
+ case 'cover art (artist)':
203
+ case 'cover art (back)':
204
+ case 'cover art (band logo)':
205
+ case 'cover art (band)':
206
+ case 'cover art (colored fish)':
207
+ case 'cover art (composer)':
208
+ case 'cover art (conductor)':
209
+ case 'cover art (front)':
210
+ case 'cover art (icon)':
211
+ case 'cover art (illustration)':
212
+ case 'cover art (lead)':
213
+ case 'cover art (leaflet)':
214
+ case 'cover art (lyricist)':
215
+ case 'cover art (media)':
216
+ case 'cover art (movie scene)':
217
+ case 'cover art (other icon)':
218
+ case 'cover art (other)':
219
+ case 'cover art (performance)':
220
+ case 'cover art (publisher logo)':
221
+ case 'cover art (recording)':
222
+ case 'cover art (studio)':
223
+ // list of possible cover arts from http://taglib-sharp.sourcearchive.com/documentation/2.0.3.0-2/Ape_2Tag_8cs-source.html
224
+ list($thisfile_ape_items_current['filename'], $thisfile_ape_items_current['data']) = explode("\x00", $thisfile_ape_items_current['data'], 2);
225
+ $thisfile_ape_items_current['data_offset'] = $thisfile_ape_items_current['offset'] + strlen($thisfile_ape_items_current['filename']."\x00");
226
+ $thisfile_ape_items_current['data_length'] = strlen($thisfile_ape_items_current['data']);
227
+
228
+ $thisfile_ape_items_current['image_mime'] = '';
229
+ $imageinfo = array();
230
+ $imagechunkcheck = getid3_lib::GetDataImageSize($thisfile_ape_items_current['data'], $imageinfo);
231
+ $thisfile_ape_items_current['image_mime'] = image_type_to_mime_type($imagechunkcheck[2]);
232
+
233
+ do {
234
+ if ($this->inline_attachments === false) {
235
+ // skip entirely
236
+ unset($thisfile_ape_items_current['data']);
237
+ break;
238
+ }
239
+ if ($this->inline_attachments === true) {
240
+ // great
241
+ } elseif (is_int($this->inline_attachments)) {
242
+ if ($this->inline_attachments < $thisfile_ape_items_current['data_length']) {
243
+ // too big, skip
244
+ $info['warning'][] = 'attachment at '.$thisfile_ape_items_current['offset'].' is too large to process inline ('.number_format($thisfile_ape_items_current['data_length']).' bytes)';
245
+ unset($thisfile_ape_items_current['data']);
246
+ break;
247
+ }
248
+ } elseif (is_string($this->inline_attachments)) {
249
+ $this->inline_attachments = rtrim(str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $this->inline_attachments), DIRECTORY_SEPARATOR);
250
+ if (!is_dir($this->inline_attachments) || !is_writable($this->inline_attachments)) {
251
+ // cannot write, skip
252
+ $info['warning'][] = 'attachment at '.$thisfile_ape_items_current['offset'].' cannot be saved to "'.$this->inline_attachments.'" (not writable)';
253
+ unset($thisfile_ape_items_current['data']);
254
+ break;
255
+ }
256
+ }
257
+ // if we get this far, must be OK
258
+ if (is_string($this->inline_attachments)) {
259
+ $destination_filename = $this->inline_attachments.DIRECTORY_SEPARATOR.md5($info['filenamepath']).'_'.$thisfile_ape_items_current['data_offset'];
260
+ if (!file_exists($destination_filename) || is_writable($destination_filename)) {
261
+ file_put_contents($destination_filename, $thisfile_ape_items_current['data']);
262
+ } else {
263
+ $info['warning'][] = 'attachment at '.$thisfile_ape_items_current['offset'].' cannot be saved to "'.$destination_filename.'" (not writable)';
264
+ }
265
+ $thisfile_ape_items_current['data_filename'] = $destination_filename;
266
+ unset($thisfile_ape_items_current['data']);
267
+ } else {
268
+ if (!isset($info['ape']['comments']['picture'])) {
269
+ $info['ape']['comments']['picture'] = array();
270
+ }
271
+ $info['ape']['comments']['picture'][] = array('data'=>$thisfile_ape_items_current['data'], 'image_mime'=>$thisfile_ape_items_current['image_mime']);
272
+ }
273
+ } while (false);
274
+ break;
275
+
276
+ default:
277
+ if (is_array($thisfile_ape_items_current['data'])) {
278
+ foreach ($thisfile_ape_items_current['data'] as $comment) {
279
+ $thisfile_ape['comments'][strtolower($item_key)][] = $comment;
280
+ }
281
+ }
282
+ break;
283
+ }
284
+
285
+ }
286
+ if (empty($thisfile_replaygain)) {
287
+ unset($info['replay_gain']);
288
+ }
289
+ return true;
290
+ }
291
+
292
+ function parseAPEheaderFooter($APEheaderFooterData) {
293
+ // http://www.uni-jena.de/~pfk/mpp/sv8/apeheader.html
294
+
295
+ // shortcut
296
+ $headerfooterinfo['raw'] = array();
297
+ $headerfooterinfo_raw = &$headerfooterinfo['raw'];
298
+
299
+ $headerfooterinfo_raw['footer_tag'] = substr($APEheaderFooterData, 0, 8);
300
+ if ($headerfooterinfo_raw['footer_tag'] != 'APETAGEX') {
301
+ return false;
302
+ }
303
+ $headerfooterinfo_raw['version'] = getid3_lib::LittleEndian2Int(substr($APEheaderFooterData, 8, 4));
304
+ $headerfooterinfo_raw['tagsize'] = getid3_lib::LittleEndian2Int(substr($APEheaderFooterData, 12, 4));
305
+ $headerfooterinfo_raw['tag_items'] = getid3_lib::LittleEndian2Int(substr($APEheaderFooterData, 16, 4));
306
+ $headerfooterinfo_raw['global_flags'] = getid3_lib::LittleEndian2Int(substr($APEheaderFooterData, 20, 4));
307
+ $headerfooterinfo_raw['reserved'] = substr($APEheaderFooterData, 24, 8);
308
+
309
+ $headerfooterinfo['tag_version'] = $headerfooterinfo_raw['version'] / 1000;
310
+ if ($headerfooterinfo['tag_version'] >= 2) {
311
+ $headerfooterinfo['flags'] = $this->parseAPEtagFlags($headerfooterinfo_raw['global_flags']);
312
+ }
313
+ return $headerfooterinfo;
314
+ }
315
+
316
+ function parseAPEtagFlags($rawflagint) {
317
+ // "Note: APE Tags 1.0 do not use any of the APE Tag flags.
318
+ // All are set to zero on creation and ignored on reading."
319
+ // http://www.uni-jena.de/~pfk/mpp/sv8/apetagflags.html
320
+ $flags['header'] = (bool) ($rawflagint & 0x80000000);
321
+ $flags['footer'] = (bool) ($rawflagint & 0x40000000);
322
+ $flags['this_is_header'] = (bool) ($rawflagint & 0x20000000);
323
+ $flags['item_contents_raw'] = ($rawflagint & 0x00000006) >> 1;
324
+ $flags['read_only'] = (bool) ($rawflagint & 0x00000001);
325
+
326
+ $flags['item_contents'] = $this->APEcontentTypeFlagLookup($flags['item_contents_raw']);
327
+
328
+ return $flags;
329
+ }
330
+
331
+ function APEcontentTypeFlagLookup($contenttypeid) {
332
+ static $APEcontentTypeFlagLookup = array(
333
+ 0 => 'utf-8',
334
+ 1 => 'binary',
335
+ 2 => 'external',
336
+ 3 => 'reserved'
337
+ );
338
+ return (isset($APEcontentTypeFlagLookup[$contenttypeid]) ? $APEcontentTypeFlagLookup[$contenttypeid] : 'invalid');
339
+ }
340
+
341
+ function APEtagItemIsUTF8Lookup($itemkey) {
342
+ static $APEtagItemIsUTF8Lookup = array(
343
+ 'title',
344
+ 'subtitle',
345
+ 'artist',
346
+ 'album',
347
+ 'debut album',
348
+ 'publisher',
349
+ 'conductor',
350
+ 'track',
351
+ 'composer',
352
+ 'comment',
353
+ 'copyright',
354
+ 'publicationright',
355
+ 'file',
356
+ 'year',
357
+ 'record date',
358
+ 'record location',
359
+ 'genre',
360
+ 'media',
361
+ 'related',
362
+ 'isrc',
363
+ 'abstract',
364
+ 'language',
365
+ 'bibliography'
366
+ );
367
+ return in_array(strtolower($itemkey), $APEtagItemIsUTF8Lookup);
368
+ }
369
+
370
+ }
371
+
372
+ ?>
getid3/module.tag.id3v1.php ADDED
@@ -0,0 +1,362 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /////////////////////////////////////////////////////////////////
3
+ /// getID3() by James Heinrich <info@getid3.org> //
4
+ // available at http://getid3.sourceforge.net //
5
+ // or http://www.getid3.org //
6
+ /////////////////////////////////////////////////////////////////
7
+ // See readme.txt for more details //
8
+ /////////////////////////////////////////////////////////////////
9
+ // //
10
+ // module.tag.id3v1.php //
11
+ // module for analyzing ID3v1 tags //
12
+ // dependencies: NONE //
13
+ // ///
14
+ /////////////////////////////////////////////////////////////////
15
+
16
+
17
+ class getid3_id3v1 extends getid3_handler
18
+ {
19
+
20
+ function Analyze() {
21
+ $info = &$this->getid3->info;
22
+
23
+ if (!getid3_lib::intValueSupported($info['filesize'])) {
24
+ $info['warning'][] = 'Unable to check for ID3v1 because file is larger than '.round(PHP_INT_MAX / 1073741824).'GB';
25
+ return false;
26
+ }
27
+
28
+ fseek($this->getid3->fp, -256, SEEK_END);
29
+ $preid3v1 = fread($this->getid3->fp, 128);
30
+ $id3v1tag = fread($this->getid3->fp, 128);
31
+
32
+ if (substr($id3v1tag, 0, 3) == 'TAG') {
33
+
34
+ $info['avdataend'] = $info['filesize'] - 128;
35
+
36
+ $ParsedID3v1['title'] = $this->cutfield(substr($id3v1tag, 3, 30));
37
+ $ParsedID3v1['artist'] = $this->cutfield(substr($id3v1tag, 33, 30));
38
+ $ParsedID3v1['album'] = $this->cutfield(substr($id3v1tag, 63, 30));
39
+ $ParsedID3v1['year'] = $this->cutfield(substr($id3v1tag, 93, 4));
40
+ $ParsedID3v1['comment'] = substr($id3v1tag, 97, 30); // can't remove nulls yet, track detection depends on them
41
+ $ParsedID3v1['genreid'] = ord(substr($id3v1tag, 127, 1));
42
+
43
+ // If second-last byte of comment field is null and last byte of comment field is non-null
44
+ // then this is ID3v1.1 and the comment field is 28 bytes long and the 30th byte is the track number
45
+ if (($id3v1tag{125} === "\x00") && ($id3v1tag{126} !== "\x00")) {
46
+ $ParsedID3v1['track'] = ord(substr($ParsedID3v1['comment'], 29, 1));
47
+ $ParsedID3v1['comment'] = substr($ParsedID3v1['comment'], 0, 28);
48
+ }
49
+ $ParsedID3v1['comment'] = $this->cutfield($ParsedID3v1['comment']);
50
+
51
+ $ParsedID3v1['genre'] = $this->LookupGenreName($ParsedID3v1['genreid']);
52
+ if (!empty($ParsedID3v1['genre'])) {
53
+ unset($ParsedID3v1['genreid']);
54
+ }
55
+ if (isset($ParsedID3v1['genre']) && (empty($ParsedID3v1['genre']) || ($ParsedID3v1['genre'] == 'Unknown'))) {
56
+ unset($ParsedID3v1['genre']);
57
+ }
58
+
59
+ foreach ($ParsedID3v1 as $key => $value) {
60
+ $ParsedID3v1['comments'][$key][0] = $value;
61
+ }
62
+
63
+ // ID3v1 data is supposed to be padded with NULL characters, but some taggers pad with spaces
64
+ $GoodFormatID3v1tag = $this->GenerateID3v1Tag(
65
+ $ParsedID3v1['title'],
66
+ $ParsedID3v1['artist'],
67
+ $ParsedID3v1['album'],
68
+ $ParsedID3v1['year'],
69
+ (isset($ParsedID3v1['genre']) ? $this->LookupGenreID($ParsedID3v1['genre']) : false),
70
+ $ParsedID3v1['comment'],
71
+ (!empty($ParsedID3v1['track']) ? $ParsedID3v1['track'] : ''));
72
+ $ParsedID3v1['padding_valid'] = true;
73
+ if ($id3v1tag !== $GoodFormatID3v1tag) {
74
+ $ParsedID3v1['padding_valid'] = false;
75
+ $info['warning'][] = 'Some ID3v1 fields do not use NULL characters for padding';
76
+ }
77
+
78
+ $ParsedID3v1['tag_offset_end'] = $info['filesize'];
79
+ $ParsedID3v1['tag_offset_start'] = $ParsedID3v1['tag_offset_end'] - 128;
80
+
81
+ $info['id3v1'] = $ParsedID3v1;
82
+ }
83
+
84
+ if (substr($preid3v1, 0, 3) == 'TAG') {
85
+ // The way iTunes handles tags is, well, brain-damaged.
86
+ // It completely ignores v1 if ID3v2 is present.
87
+ // This goes as far as adding a new v1 tag *even if there already is one*
88
+
89
+ // A suspected double-ID3v1 tag has been detected, but it could be that
90
+ // the "TAG" identifier is a legitimate part of an APE or Lyrics3 tag
91
+ if (substr($preid3v1, 96, 8) == 'APETAGEX') {
92
+ // an APE tag footer was found before the last ID3v1, assume false "TAG" synch
93
+ } elseif (substr($preid3v1, 119, 6) == 'LYRICS') {
94
+ // a Lyrics3 tag footer was found before the last ID3v1, assume false "TAG" synch
95
+ } else {
96
+ // APE and Lyrics3 footers not found - assume double ID3v1
97
+ $info['warning'][] = 'Duplicate ID3v1 tag detected - this has been known to happen with iTunes';
98
+ $info['avdataend'] -= 128;
99
+ }
100
+ }
101
+
102
+ return true;
103
+ }
104
+
105
+ static function cutfield($str) {
106
+ return trim(substr($str, 0, strcspn($str, "\x00")));
107
+ }
108
+
109
+ static function ArrayOfGenres($allowSCMPXextended=false) {
110
+ static $GenreLookup = array(
111
+ 0 => 'Blues',
112
+ 1 => 'Classic Rock',
113
+ 2 => 'Country',
114
+ 3 => 'Dance',
115
+ 4 => 'Disco',
116
+ 5 => 'Funk',
117
+ 6 => 'Grunge',
118
+ 7 => 'Hip-Hop',
119
+ 8 => 'Jazz',
120
+ 9 => 'Metal',
121
+ 10 => 'New Age',
122
+ 11 => 'Oldies',
123
+ 12 => 'Other',
124
+ 13 => 'Pop',
125
+ 14 => 'R&B',
126
+ 15 => 'Rap',
127
+ 16 => 'Reggae',
128
+ 17 => 'Rock',
129
+ 18 => 'Techno',
130
+ 19 => 'Industrial',
131
+ 20 => 'Alternative',
132
+ 21 => 'Ska',
133
+ 22 => 'Death Metal',
134
+ 23 => 'Pranks',
135
+ 24 => 'Soundtrack',
136
+ 25 => 'Euro-Techno',
137
+ 26 => 'Ambient',
138
+ 27 => 'Trip-Hop',
139
+ 28 => 'Vocal',
140
+ 29 => 'Jazz+Funk',
141
+ 30 => 'Fusion',
142
+ 31 => 'Trance',
143
+ 32 => 'Classical',
144
+ 33 => 'Instrumental',
145
+ 34 => 'Acid',
146
+ 35 => 'House',
147
+ 36 => 'Game',
148
+ 37 => 'Sound Clip',
149
+ 38 => 'Gospel',
150
+ 39 => 'Noise',
151
+ 40 => 'Alt. Rock',
152
+ 41 => 'Bass',
153
+ 42 => 'Soul',
154
+ 43 => 'Punk',
155
+ 44 => 'Space',
156
+ 45 => 'Meditative',
157
+ 46 => 'Instrumental Pop',
158
+ 47 => 'Instrumental Rock',
159
+ 48 => 'Ethnic',
160
+ 49 => 'Gothic',
161
+ 50 => 'Darkwave',
162
+ 51 => 'Techno-Industrial',
163
+ 52 => 'Electronic',
164
+ 53 => 'Pop-Folk',
165
+ 54 => 'Eurodance',
166
+ 55 => 'Dream',
167
+ 56 => 'Southern Rock',
168
+ 57 => 'Comedy',
169
+ 58 => 'Cult',
170
+ 59 => 'Gangsta Rap',
171
+ 60 => 'Top 40',
172
+ 61 => 'Christian Rap',
173
+ 62 => 'Pop/Funk',
174
+ 63 => 'Jungle',
175
+ 64 => 'Native American',
176
+ 65 => 'Cabaret',
177
+ 66 => 'New Wave',
178
+ 67 => 'Psychedelic',
179
+ 68 => 'Rave',
180
+ 69 => 'Showtunes',
181
+ 70 => 'Trailer',
182
+ 71 => 'Lo-Fi',
183
+ 72 => 'Tribal',
184
+ 73 => 'Acid Punk',
185
+ 74 => 'Acid Jazz',
186
+ 75 => 'Polka',
187
+ 76 => 'Retro',
188
+ 77 => 'Musical',
189
+ 78 => 'Rock & Roll',
190
+ 79 => 'Hard Rock',
191
+ 80 => 'Folk',
192
+ 81 => 'Folk/Rock',
193
+ 82 => 'National Folk',
194
+ 83 => 'Swing',
195
+ 84 => 'Fast-Fusion',
196
+ 85 => 'Bebob',
197
+ 86 => 'Latin',
198
+ 87 => 'Revival',
199
+ 88 => 'Celtic',
200
+ 89 => 'Bluegrass',
201
+ 90 => 'Avantgarde',
202
+ 91 => 'Gothic Rock',
203
+ 92 => 'Progressive Rock',
204
+ 93 => 'Psychedelic Rock',
205
+ 94 => 'Symphonic Rock',
206
+ 95 => 'Slow Rock',
207
+ 96 => 'Big Band',
208
+ 97 => 'Chorus',
209
+ 98 => 'Easy Listening',
210
+ 99 => 'Acoustic',
211
+ 100 => 'Humour',
212
+ 101 => 'Speech',
213
+ 102 => 'Chanson',
214
+ 103 => 'Opera',
215
+ 104 => 'Chamber Music',
216
+ 105 => 'Sonata',
217
+ 106 => 'Symphony',
218
+ 107 => 'Booty Bass',
219
+ 108 => 'Primus',
220
+ 109 => 'Porn Groove',
221
+ 110 => 'Satire',
222
+ 111 => 'Slow Jam',
223
+ 112 => 'Club',
224
+ 113 => 'Tango',
225
+ 114 => 'Samba',
226
+ 115 => 'Folklore',
227
+ 116 => 'Ballad',
228
+ 117 => 'Power Ballad',
229
+ 118 => 'Rhythmic Soul',
230
+ 119 => 'Freestyle',
231
+ 120 => 'Duet',
232
+ 121 => 'Punk Rock',
233
+ 122 => 'Drum Solo',
234
+ 123 => 'A Cappella',
235
+ 124 => 'Euro-House',
236
+ 125 => 'Dance Hall',
237
+ 126 => 'Goa',
238
+ 127 => 'Drum & Bass',
239
+ 128 => 'Club-House',
240
+ 129 => 'Hardcore',
241
+ 130 => 'Terror',
242
+ 131 => 'Indie',
243
+ 132 => 'BritPop',
244
+ 133 => 'Negerpunk',
245
+ 134 => 'Polsk Punk',
246
+ 135 => 'Beat',
247
+ 136 => 'Christian Gangsta Rap',
248
+ 137 => 'Heavy Metal',
249
+ 138 => 'Black Metal',
250
+ 139 => 'Crossover',
251
+ 140 => 'Contemporary Christian',
252
+ 141 => 'Christian Rock',
253
+ 142 => 'Merengue',
254
+ 143 => 'Salsa',
255
+ 144 => 'Thrash Metal',
256
+ 145 => 'Anime',
257
+ 146 => 'JPop',
258
+ 147 => 'Synthpop',
259
+
260
+ 255 => 'Unknown',
261
+
262
+ 'CR' => 'Cover',
263
+ 'RX' => 'Remix'
264
+ );
265
+
266
+ static $GenreLookupSCMPX = array();
267
+ if ($allowSCMPXextended && empty($GenreLookupSCMPX)) {
268
+ $GenreLookupSCMPX = $GenreLookup;
269
+ // http://www.geocities.co.jp/SiliconValley-Oakland/3664/alittle.html#GenreExtended
270
+ // Extended ID3v1 genres invented by SCMPX
271
+ // Note that 255 "Japanese Anime" conflicts with standard "Unknown"
272
+ $GenreLookupSCMPX[240] = 'Sacred';
273
+ $GenreLookupSCMPX[241] = 'Northern Europe';
274
+ $GenreLookupSCMPX[242] = 'Irish & Scottish';
275
+ $GenreLookupSCMPX[243] = 'Scotland';
276
+ $GenreLookupSCMPX[244] = 'Ethnic Europe';
277
+ $GenreLookupSCMPX[245] = 'Enka';
278
+ $GenreLookupSCMPX[246] = 'Children\'s Song';
279
+ $GenreLookupSCMPX[247] = 'Japanese Sky';
280
+ $GenreLookupSCMPX[248] = 'Japanese Heavy Rock';
281
+ $GenreLookupSCMPX[249] = 'Japanese Doom Rock';
282
+ $GenreLookupSCMPX[250] = 'Japanese J-POP';
283
+ $GenreLookupSCMPX[251] = 'Japanese Seiyu';
284
+ $GenreLookupSCMPX[252] = 'Japanese Ambient Techno';
285
+ $GenreLookupSCMPX[253] = 'Japanese Moemoe';
286
+ $GenreLookupSCMPX[254] = 'Japanese Tokusatsu';
287
+ //$GenreLookupSCMPX[255] = 'Japanese Anime';
288
+ }
289
+
290
+ return ($allowSCMPXextended ? $GenreLookupSCMPX : $GenreLookup);
291
+ }
292
+
293
+ static function LookupGenreName($genreid, $allowSCMPXextended=true) {
294
+ switch ($genreid) {
295
+ case 'RX':
296
+ case 'CR':
297
+ break;
298
+ default:
299
+ if (!is_numeric($genreid)) {
300
+ return false;
301
+ }
302
+ $genreid = intval($genreid); // to handle 3 or '3' or '03'
303
+ break;
304
+ }
305
+ $GenreLookup = getid3_id3v1::ArrayOfGenres($allowSCMPXextended);
306
+ return (isset($GenreLookup[$genreid]) ? $GenreLookup[$genreid] : false);
307
+ }
308
+
309
+ static function LookupGenreID($genre, $allowSCMPXextended=false) {
310
+ $GenreLookup = getid3_id3v1::ArrayOfGenres($allowSCMPXextended);
311
+ $LowerCaseNoSpaceSearchTerm = strtolower(str_replace(' ', '', $genre));
312
+ foreach ($GenreLookup as $key => $value) {
313
+ if (strtolower(str_replace(' ', '', $value)) == $LowerCaseNoSpaceSearchTerm) {
314
+ return $key;
315
+ }
316
+ }
317
+ return false;
318
+ }
319
+
320
+ static function StandardiseID3v1GenreName($OriginalGenre) {
321
+ if (($GenreID = getid3_id3v1::LookupGenreID($OriginalGenre)) !== false) {
322
+ return getid3_id3v1::LookupGenreName($GenreID);
323
+ }
324
+ return $OriginalGenre;
325
+ }
326
+
327
+ static function GenerateID3v1Tag($title, $artist, $album, $year, $genreid, $comment, $track='') {
328
+ $ID3v1Tag = 'TAG';
329
+ $ID3v1Tag .= str_pad(trim(substr($title, 0, 30)), 30, "\x00", STR_PAD_RIGHT);
330
+ $ID3v1Tag .= str_pad(trim(substr($artist, 0, 30)), 30, "\x00", STR_PAD_RIGHT);
331
+ $ID3v1Tag .= str_pad(trim(substr($album, 0, 30)), 30, "\x00", STR_PAD_RIGHT);
332
+ $ID3v1Tag .= str_pad(trim(substr($year, 0, 4)), 4, "\x00", STR_PAD_LEFT);
333
+ if (!empty($track) && ($track > 0) && ($track <= 255)) {
334
+ $ID3v1Tag .= str_pad(trim(substr($comment, 0, 28)), 28, "\x00", STR_PAD_RIGHT);
335
+ $ID3v1Tag .= "\x00";
336
+ if (gettype($track) == 'string') {
337
+ $track = (int) $track;
338
+ }
339
+ $ID3v1Tag .= chr($track);
340
+ } else {
341
+ $ID3v1Tag .= str_pad(trim(substr($comment, 0, 30)), 30, "\x00", STR_PAD_RIGHT);
342
+ }
343
+ if (($genreid < 0) || ($genreid > 147)) {
344
+ $genreid = 255; // 'unknown' genre
345
+ }
346
+ switch (gettype($genreid)) {
347
+ case 'string':
348
+ case 'integer':
349
+ $ID3v1Tag .= chr(intval($genreid));
350
+ break;
351
+ default:
352
+ $ID3v1Tag .= chr(255); // 'unknown' genre
353
+ break;
354
+ }
355
+
356
+ return $ID3v1Tag;
357
+ }
358
+
359
+ }
360
+
361
+
362
+ ?>
getid3/module.tag.id3v2.php ADDED
@@ -0,0 +1,3327 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /////////////////////////////////////////////////////////////////
3
+ /// getID3() by James Heinrich <info@getid3.org> //
4
+ // available at http://getid3.sourceforge.net //
5
+ // or http://www.getid3.org //
6
+ /////////////////////////////////////////////////////////////////
7
+ // See readme.txt for more details //
8
+ /////////////////////////////////////////////////////////////////
9
+ /// //
10
+ // module.tag.id3v2.php //
11
+ // module for analyzing ID3v2 tags //
12
+ // dependencies: module.tag.id3v1.php //
13
+ // ///
14
+ /////////////////////////////////////////////////////////////////
15
+
16
+ getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.tag.id3v1.php', __FILE__, true);
17
+
18
+ class getid3_id3v2 extends getid3_handler
19
+ {
20
+ var $inline_attachments = true; // true: return full data for all attachments; false: return no data for all attachments; integer: return data for attachments <= than this; string: save as file to this directory
21
+ var $StartingOffset = 0;
22
+
23
+ function Analyze() {
24
+ $info = &$this->getid3->info;
25
+
26
+ // Overall tag structure:
27
+ // +-----------------------------+
28
+ // | Header (10 bytes) |
29
+ // +-----------------------------+
30
+ // | Extended Header |
31
+ // | (variable length, OPTIONAL) |
32
+ // +-----------------------------+
33
+ // | Frames (variable length) |
34
+ // +-----------------------------+
35
+ // | Padding |
36
+ // | (variable length, OPTIONAL) |
37
+ // +-----------------------------+
38
+ // | Footer (10 bytes, OPTIONAL) |
39
+ // +-----------------------------+
40
+
41
+ // Header
42
+ // ID3v2/file identifier "ID3"
43
+ // ID3v2 version $04 00
44
+ // ID3v2 flags (%ab000000 in v2.2, %abc00000 in v2.3, %abcd0000 in v2.4.x)
45
+ // ID3v2 size 4 * %0xxxxxxx
46
+
47
+
48
+ // shortcuts
49
+ $info['id3v2']['header'] = true;
50
+ $thisfile_id3v2 = &$info['id3v2'];
51
+ $thisfile_id3v2['flags'] = array();
52
+ $thisfile_id3v2_flags = &$thisfile_id3v2['flags'];
53
+
54
+
55
+ fseek($this->getid3->fp, $this->StartingOffset, SEEK_SET);
56
+ $header = fread($this->getid3->fp, 10);
57
+ if (substr($header, 0, 3) == 'ID3' && strlen($header) == 10) {
58
+
59
+ $thisfile_id3v2['majorversion'] = ord($header{3});
60
+ $thisfile_id3v2['minorversion'] = ord($header{4});
61
+
62
+ // shortcut
63
+ $id3v2_majorversion = &$thisfile_id3v2['majorversion'];
64
+
65
+ } else {
66
+
67
+ unset($info['id3v2']);
68
+ return false;
69
+
70
+ }
71
+
72
+ if ($id3v2_majorversion > 4) { // this script probably won't correctly parse ID3v2.5.x and above (if it ever exists)
73
+
74
+ $info['error'][] = 'this script only parses up to ID3v2.4.x - this tag is ID3v2.'.$id3v2_majorversion.'.'.$thisfile_id3v2['minorversion'];
75
+ return false;
76
+
77
+ }
78
+
79
+ $id3_flags = ord($header{5});
80
+ switch ($id3v2_majorversion) {
81
+ case 2:
82
+ // %ab000000 in v2.2
83
+ $thisfile_id3v2_flags['unsynch'] = (bool) ($id3_flags & 0x80); // a - Unsynchronisation
84
+ $thisfile_id3v2_flags['compression'] = (bool) ($id3_flags & 0x40); // b - Compression
85
+ break;
86
+
87
+ case 3:
88
+ // %abc00000 in v2.3
89
+ $thisfile_id3v2_flags['unsynch'] = (bool) ($id3_flags & 0x80); // a - Unsynchronisation
90
+ $thisfile_id3v2_flags['exthead'] = (bool) ($id3_flags & 0x40); // b - Extended header
91
+ $thisfile_id3v2_flags['experim'] = (bool) ($id3_flags & 0x20); // c - Experimental indicator
92
+ break;
93
+
94
+ case 4:
95
+ // %abcd0000 in v2.4
96
+ $thisfile_id3v2_flags['unsynch'] = (bool) ($id3_flags & 0x80); // a - Unsynchronisation
97
+ $thisfile_id3v2_flags['exthead'] = (bool) ($id3_flags & 0x40); // b - Extended header
98
+ $thisfile_id3v2_flags['experim'] = (bool) ($id3_flags & 0x20); // c - Experimental indicator
99
+ $thisfile_id3v2_flags['isfooter'] = (bool) ($id3_flags & 0x10); // d - Footer present
100
+ break;
101
+ }
102
+
103
+ $thisfile_id3v2['headerlength'] = getid3_lib::BigEndian2Int(substr($header, 6, 4), 1) + 10; // length of ID3v2 tag in 10-byte header doesn't include 10-byte header length
104
+
105
+ $thisfile_id3v2['tag_offset_start'] = $this->StartingOffset;
106
+ $thisfile_id3v2['tag_offset_end'] = $thisfile_id3v2['tag_offset_start'] + $thisfile_id3v2['headerlength'];
107
+
108
+
109
+
110
+ // create 'encoding' key - used by getid3::HandleAllTags()
111
+ // in ID3v2 every field can have it's own encoding type
112
+ // so force everything to UTF-8 so it can be handled consistantly
113
+ $thisfile_id3v2['encoding'] = 'UTF-8';
114
+
115
+
116
+ // Frames
117
+
118
+ // All ID3v2 frames consists of one frame header followed by one or more
119
+ // fields containing the actual information. The header is always 10
120
+ // bytes and laid out as follows:
121
+ //
122
+ // Frame ID $xx xx xx xx (four characters)
123
+ // Size 4 * %0xxxxxxx
124
+ // Flags $xx xx
125
+
126
+ $sizeofframes = $thisfile_id3v2['headerlength'] - 10; // not including 10-byte initial header
127
+ if (!empty($thisfile_id3v2['exthead']['length'])) {
128
+ $sizeofframes -= ($thisfile_id3v2['exthead']['length'] + 4);
129
+ }
130
+ if (!empty($thisfile_id3v2_flags['isfooter'])) {
131
+ $sizeofframes -= 10; // footer takes last 10 bytes of ID3v2 header, after frame data, before audio
132
+ }
133
+ if ($sizeofframes > 0) {
134
+
135
+ $framedata = fread($this->getid3->fp, $sizeofframes); // read all frames from file into $framedata variable
136
+
137
+ // if entire frame data is unsynched, de-unsynch it now (ID3v2.3.x)
138
+ if (!empty($thisfile_id3v2_flags['unsynch']) && ($id3v2_majorversion <= 3)) {
139
+ $framedata = $this->DeUnsynchronise($framedata);
140
+ }
141
+ // [in ID3v2.4.0] Unsynchronisation [S:6.1] is done on frame level, instead
142
+ // of on tag level, making it easier to skip frames, increasing the streamability
143
+ // of the tag. The unsynchronisation flag in the header [S:3.1] indicates that
144
+ // there exists an unsynchronised frame, while the new unsynchronisation flag in
145
+ // the frame header [S:4.1.2] indicates unsynchronisation.
146
+
147
+
148
+ //$framedataoffset = 10 + ($thisfile_id3v2['exthead']['length'] ? $thisfile_id3v2['exthead']['length'] + 4 : 0); // how many bytes into the stream - start from after the 10-byte header (and extended header length+4, if present)
149
+ $framedataoffset = 10; // how many bytes into the stream - start from after the 10-byte header
150
+
151
+
152
+ // Extended Header
153
+ if (!empty($thisfile_id3v2_flags['exthead'])) {
154
+ $extended_header_offset = 0;
155
+
156
+ if ($id3v2_majorversion == 3) {
157
+
158
+ // v2.3 definition:
159
+ //Extended header size $xx xx xx xx // 32-bit integer
160
+ //Extended Flags $xx xx
161
+ // %x0000000 %00000000 // v2.3
162
+ // x - CRC data present
163
+ //Size of padding $xx xx xx xx
164
+
165
+ $thisfile_id3v2['exthead']['length'] = getid3_lib::BigEndian2Int(substr($framedata, $extended_header_offset, 4), 0);
166
+ $extended_header_offset += 4;
167
+
168
+ $thisfile_id3v2['exthead']['flag_bytes'] = 2;
169
+ $thisfile_id3v2['exthead']['flag_raw'] = getid3_lib::BigEndian2Int(substr($framedata, $extended_header_offset, $thisfile_id3v2['exthead']['flag_bytes']));
170
+ $extended_header_offset += $thisfile_id3v2['exthead']['flag_bytes'];
171
+
172
+ $thisfile_id3v2['exthead']['flags']['crc'] = (bool) ($thisfile_id3v2['exthead']['flag_raw'] & 0x8000);
173
+
174
+ $thisfile_id3v2['exthead']['padding_size'] = getid3_lib::BigEndian2Int(substr($framedata, $extended_header_offset, 4));
175
+ $extended_header_offset += 4;
176
+
177
+ if ($thisfile_id3v2['exthead']['flags']['crc']) {
178
+ $thisfile_id3v2['exthead']['flag_data']['crc'] = getid3_lib::BigEndian2Int(substr($framedata, $extended_header_offset, 4));
179
+ $extended_header_offset += 4;
180
+ }
181
+ $extended_header_offset += $thisfile_id3v2['exthead']['padding_size'];
182
+
183
+ } elseif ($id3v2_majorversion == 4) {
184
+
185
+ // v2.4 definition:
186
+ //Extended header size 4 * %0xxxxxxx // 28-bit synchsafe integer
187
+ //Number of flag bytes $01
188
+ //Extended Flags $xx
189
+ // %0bcd0000 // v2.4
190
+ // b - Tag is an update
191
+ // Flag data length $00
192
+ // c - CRC data present
193
+ // Flag data length $05
194
+ // Total frame CRC 5 * %0xxxxxxx
195
+ // d - Tag restrictions
196
+ // Flag data length $01
197
+
198
+ $thisfile_id3v2['exthead']['length'] = getid3_lib::BigEndian2Int(substr($framedata, $extended_header_offset, 4), true);
199
+ $extended_header_offset += 4;
200
+
201
+ $thisfile_id3v2['exthead']['flag_bytes'] = getid3_lib::BigEndian2Int(substr($framedata, $extended_header_offset, 1)); // should always be 1
202
+ $extended_header_offset += 1;
203
+
204
+ $thisfile_id3v2['exthead']['flag_raw'] = getid3_lib::BigEndian2Int(substr($framedata, $extended_header_offset, $thisfile_id3v2['exthead']['flag_bytes']));
205
+ $extended_header_offset += $thisfile_id3v2['exthead']['flag_bytes'];
206
+
207
+ $thisfile_id3v2['exthead']['flags']['update'] = (bool) ($thisfile_id3v2['exthead']['flag_raw'] & 0x40);
208
+ $thisfile_id3v2['exthead']['flags']['crc'] = (bool) ($thisfile_id3v2['exthead']['flag_raw'] & 0x20);
209
+ $thisfile_id3v2['exthead']['flags']['restrictions'] = (bool) ($thisfile_id3v2['exthead']['flag_raw'] & 0x10);
210
+
211
+ if ($thisfile_id3v2['exthead']['flags']['update']) {
212
+ $ext_header_chunk_length = getid3_lib::BigEndian2Int(substr($framedata, $extended_header_offset, 1)); // should be 0
213
+ $extended_header_offset += 1;
214
+ }
215
+
216
+ if ($thisfile_id3v2['exthead']['flags']['crc']) {
217
+ $ext_header_chunk_length = getid3_lib::BigEndian2Int(substr($framedata, $extended_header_offset, 1)); // should be 5
218
+ $extended_header_offset += 1;
219
+ $thisfile_id3v2['exthead']['flag_data']['crc'] = getid3_lib::BigEndian2Int(substr($framedata, $extended_header_offset, $ext_header_chunk_length), true, false);
220
+ $extended_header_offset += $ext_header_chunk_length;
221
+ }
222
+
223
+ if ($thisfile_id3v2['exthead']['flags']['restrictions']) {
224
+ $ext_header_chunk_length = getid3_lib::BigEndian2Int(substr($framedata, $extended_header_offset, 1)); // should be 1
225
+ $extended_header_offset += 1;
226
+
227
+ // %ppqrrstt
228
+ $restrictions_raw = getid3_lib::BigEndian2Int(substr($framedata, $extended_header_offset, 1));
229
+ $extended_header_offset += 1;
230
+ $thisfile_id3v2['exthead']['flags']['restrictions']['tagsize'] = ($restrictions_raw & 0xC0) >> 6; // p - Tag size restrictions
231
+ $thisfile_id3v2['exthead']['flags']['restrictions']['textenc'] = ($restrictions_raw & 0x20) >> 5; // q - Text encoding restrictions
232
+ $thisfile_id3v2['exthead']['flags']['restrictions']['textsize'] = ($restrictions_raw & 0x18) >> 3; // r - Text fields size restrictions
233
+ $thisfile_id3v2['exthead']['flags']['restrictions']['imgenc'] = ($restrictions_raw & 0x04) >> 2; // s - Image encoding restrictions
234
+ $thisfile_id3v2['exthead']['flags']['restrictions']['imgsize'] = ($restrictions_raw & 0x03) >> 0; // t - Image size restrictions
235
+
236
+ $thisfile_id3v2['exthead']['flags']['restrictions_text']['tagsize'] = $this->LookupExtendedHeaderRestrictionsTagSizeLimits($thisfile_id3v2['exthead']['flags']['restrictions']['tagsize']);
237
+ $thisfile_id3v2['exthead']['flags']['restrictions_text']['textenc'] = $this->LookupExtendedHeaderRestrictionsTextEncodings($thisfile_id3v2['exthead']['flags']['restrictions']['textenc']);
238
+ $thisfile_id3v2['exthead']['flags']['restrictions_text']['textsize'] = $this->LookupExtendedHeaderRestrictionsTextFieldSize($thisfile_id3v2['exthead']['flags']['restrictions']['textsize']);
239
+ $thisfile_id3v2['exthead']['flags']['restrictions_text']['imgenc'] = $this->LookupExtendedHeaderRestrictionsImageEncoding($thisfile_id3v2['exthead']['flags']['restrictions']['imgenc']);
240
+ $thisfile_id3v2['exthead']['flags']['restrictions_text']['imgsize'] = $this->LookupExtendedHeaderRestrictionsImageSizeSize($thisfile_id3v2['exthead']['flags']['restrictions']['imgsize']);
241
+ }
242
+
243
+ if ($thisfile_id3v2['exthead']['length'] != $extended_header_offset) {
244
+ $info['warning'][] = 'ID3v2.4 extended header length mismatch (expecting '.intval($thisfile_id3v2['exthead']['length']).', found '.intval($extended_header_offset).')';
245
+ }
246
+ }
247
+
248
+ $framedataoffset += $extended_header_offset;
249
+ $framedata = substr($framedata, $extended_header_offset);
250
+ } // end extended header
251
+
252
+
253
+ while (isset($framedata) && (strlen($framedata) > 0)) { // cycle through until no more frame data is left to parse
254
+ if (strlen($framedata) <= $this->ID3v2HeaderLength($id3v2_majorversion)) {
255
+ // insufficient room left in ID3v2 header for actual data - must be padding
256
+ $thisfile_id3v2['padding']['start'] = $framedataoffset;
257
+ $thisfile_id3v2['padding']['length'] = strlen($framedata);
258
+ $thisfile_id3v2['padding']['valid'] = true;
259
+ for ($i = 0; $i < $thisfile_id3v2['padding']['length']; $i++) {
260
+ if ($framedata{$i} != "\x00") {
261
+ $thisfile_id3v2['padding']['valid'] = false;
262
+ $thisfile_id3v2['padding']['errorpos'] = $thisfile_id3v2['padding']['start'] + $i;
263
+ $info['warning'][] = 'Invalid ID3v2 padding found at offset '.$thisfile_id3v2['padding']['errorpos'].' (the remaining '.($thisfile_id3v2['padding']['length'] - $i).' bytes are considered invalid)';
264
+ break;
265
+ }
266
+ }
267
+ break; // skip rest of ID3v2 header
268
+ }
269
+ if ($id3v2_majorversion == 2) {
270
+ // Frame ID $xx xx xx (three characters)
271
+ // Size $xx xx xx (24-bit integer)
272
+ // Flags $xx xx
273
+
274
+ $frame_header = substr($framedata, 0, 6); // take next 6 bytes for header
275
+ $framedata = substr($framedata, 6); // and leave the rest in $framedata
276
+ $frame_name = substr($frame_header, 0, 3);
277
+ $frame_size = getid3_lib::BigEndian2Int(substr($frame_header, 3, 3), 0);
278
+ $frame_flags = 0; // not used for anything in ID3v2.2, just set to avoid E_NOTICEs
279
+
280
+ } elseif ($id3v2_majorversion > 2) {
281
+
282
+ // Frame ID $xx xx xx xx (four characters)
283
+ // Size $xx xx xx xx (32-bit integer in v2.3, 28-bit synchsafe in v2.4+)
284
+ // Flags $xx xx
285
+
286
+ $frame_header = substr($framedata, 0, 10); // take next 10 bytes for header
287
+ $framedata = substr($framedata, 10); // and leave the rest in $framedata
288
+
289
+ $frame_name = substr($frame_header, 0, 4);
290
+ if ($id3v2_majorversion == 3) {
291
+ $frame_size = getid3_lib::BigEndian2Int(substr($frame_header, 4, 4), 0); // 32-bit integer
292
+ } else { // ID3v2.4+
293
+ $frame_size = getid3_lib::BigEndian2Int(substr($frame_header, 4, 4), 1); // 32-bit synchsafe integer (28-bit value)
294
+ }
295
+
296
+ if ($frame_size < (strlen($framedata) + 4)) {
297
+ $nextFrameID = substr($framedata, $frame_size, 4);
298
+ if ($this->IsValidID3v2FrameName($nextFrameID, $id3v2_majorversion)) {
299
+ // next frame is OK
300
+ } elseif (($frame_name == "\x00".'MP3') || ($frame_name == "\x00\x00".'MP') || ($frame_name == ' MP3') || ($frame_name == 'MP3e')) {
301
+ // MP3ext known broken frames - "ok" for the purposes of this test
302
+ } elseif (($id3v2_majorversion == 4) && ($this->IsValidID3v2FrameName(substr($framedata, getid3_lib::BigEndian2Int(substr($frame_header, 4, 4), 0), 4), 3))) {
303
+ $info['warning'][] = 'ID3v2 tag written as ID3v2.4, but with non-synchsafe integers (ID3v2.3 style). Older versions of (Helium2; iTunes) are known culprits of this. Tag has been parsed as ID3v2.3';
304
+ $id3v2_majorversion = 3;
305
+ $frame_size = getid3_lib::BigEndian2Int(substr($frame_header, 4, 4), 0); // 32-bit integer
306
+ }
307
+ }
308
+
309
+
310
+ $frame_flags = getid3_lib::BigEndian2Int(substr($frame_header, 8, 2));
311
+ }
312
+
313
+ if ((($id3v2_majorversion == 2) && ($frame_name == "\x00\x00\x00")) || ($frame_name == "\x00\x00\x00\x00")) {
314
+ // padding encountered
315
+
316
+ $thisfile_id3v2['padding']['start'] = $framedataoffset;
317
+ $thisfile_id3v2['padding']['length'] = strlen($frame_header) + strlen($framedata);
318
+ $thisfile_id3v2['padding']['valid'] = true;
319
+
320
+ $len = strlen($framedata);
321
+ for ($i = 0; $i < $len; $i++) {
322
+ if ($framedata{$i} != "\x00") {
323
+ $thisfile_id3v2['padding']['valid'] = false;
324
+ $thisfile_id3v2['padding']['errorpos'] = $thisfile_id3v2['padding']['start'] + $i;
325
+ $info['warning'][] = 'Invalid ID3v2 padding found at offset '.$thisfile_id3v2['padding']['errorpos'].' (the remaining '.($thisfile_id3v2['padding']['length'] - $i).' bytes are considered invalid)';
326
+ break;
327
+ }
328
+ }
329
+ break; // skip rest of ID3v2 header
330
+ }
331
+
332
+ if ($frame_name == 'COM ') {
333
+ $info['warning'][] = 'error parsing "'.$frame_name.'" ('.$framedataoffset.' bytes into the ID3v2.'.$id3v2_majorversion.' tag). (ERROR: IsValidID3v2FrameName("'.str_replace("\x00", ' ', $frame_name).'", '.$id3v2_majorversion.'))). [Note: this particular error has been known to happen with tags edited by iTunes (versions "X v2.0.3", "v3.0.1" are known-guilty, probably others too)]';
334
+ $frame_name = 'COMM';
335
+ }
336
+ if (($frame_size <= strlen($framedata)) && ($this->IsValidID3v2FrameName($frame_name, $id3v2_majorversion))) {
337
+
338
+ unset($parsedFrame);
339
+ $parsedFrame['frame_name'] = $frame_name;
340
+ $parsedFrame['frame_flags_raw'] = $frame_flags;
341
+ $parsedFrame['data'] = substr($framedata, 0, $frame_size);
342
+ $parsedFrame['datalength'] = getid3_lib::CastAsInt($frame_size);
343
+ $parsedFrame['dataoffset'] = $framedataoffset;
344
+
345
+ $this->ParseID3v2Frame($parsedFrame);
346
+ $thisfile_id3v2[$frame_name][] = $parsedFrame;
347
+
348
+ $framedata = substr($framedata, $frame_size);
349
+
350
+ } else { // invalid frame length or FrameID
351
+
352
+ if ($frame_size <= strlen($framedata)) {
353
+
354
+ if ($this->IsValidID3v2FrameName(substr($framedata, $frame_size, 4), $id3v2_majorversion)) {
355
+
356
+ // next frame is valid, just skip the current frame
357
+ $framedata = substr($framedata, $frame_size);
358
+ $info['warning'][] = 'Next ID3v2 frame is valid, skipping current frame.';
359
+
360
+ } else {
361
+
362
+ // next frame is invalid too, abort processing
363
+ //unset($framedata);
364
+ $framedata = null;
365
+ $info['error'][] = 'Next ID3v2 frame is also invalid, aborting processing.';
366
+
367
+ }
368
+
369
+ } elseif ($frame_size == strlen($framedata)) {
370
+
371
+ // this is the last frame, just skip
372
+ $info['warning'][] = 'This was the last ID3v2 frame.';
373
+
374
+ } else {
375
+
376
+ // next frame is invalid too, abort processing
377
+ //unset($framedata);
378
+ $framedata = null;
379
+ $info['warning'][] = 'Invalid ID3v2 frame size, aborting.';
380
+
381
+ }
382
+ if (!$this->IsValidID3v2FrameName($frame_name, $id3v2_majorversion)) {
383
+
384
+ switch ($frame_name) {
385
+ case "\x00\x00".'MP':
386
+ case "\x00".'MP3':
387
+ case ' MP3':
388
+ case 'MP3e':
389
+ case "\x00".'MP':
390
+ case ' MP':
391
+ case 'MP3':
392
+ $info['warning'][] = 'error parsing "'.$frame_name.'" ('.$framedataoffset.' bytes into the ID3v2.'.$id3v2_majorversion.' tag). (ERROR: !IsValidID3v2FrameName("'.str_replace("\x00", ' ', $frame_name).'", '.$id3v2_majorversion.'))). [Note: this particular error has been known to happen with tags edited by "MP3ext (www.mutschler.de/mp3ext/)"]';
393
+ break;
394
+
395
+ default:
396
+ $info['warning'][] = 'error parsing "'.$frame_name.'" ('.$framedataoffset.' bytes into the ID3v2.'.$id3v2_majorversion.' tag). (ERROR: !IsValidID3v2FrameName("'.str_replace("\x00", ' ', $frame_name).'", '.$id3v2_majorversion.'))).';
397
+ break;
398
+ }
399
+
400
+ } elseif (!isset($framedata) || ($frame_size > strlen($framedata))) {
401
+
402
+ $info['error'][] = 'error parsing "'.$frame_name.'" ('.$framedataoffset.' bytes into the ID3v2.'.$id3v2_majorversion.' tag). (ERROR: $frame_size ('.$frame_size.') > strlen($framedata) ('.(isset($framedata) ? strlen($framedata) : 'null').')).';
403
+
404
+ } else {
405
+
406
+ $info['error'][] = 'error parsing "'.$frame_name.'" ('.$framedataoffset.' bytes into the ID3v2.'.$id3v2_majorversion.' tag).';
407
+
408
+ }
409
+
410
+ }
411
+ $framedataoffset += ($frame_size + $this->ID3v2HeaderLength($id3v2_majorversion));
412
+
413
+ }
414
+
415
+ }
416
+
417
+
418
+ // Footer
419
+
420
+ // The footer is a copy of the header, but with a different identifier.
421
+ // ID3v2 identifier "3DI"
422
+ // ID3v2 version $04 00
423
+ // ID3v2 flags %abcd0000
424
+ // ID3v2 size 4 * %0xxxxxxx
425
+
426
+ if (isset($thisfile_id3v2_flags['isfooter']) && $thisfile_id3v2_flags['isfooter']) {
427
+ $footer = fread($this->getid3->fp, 10);
428
+ if (substr($footer, 0, 3) == '3DI') {
429
+ $thisfile_id3v2['footer'] = true;
430
+ $thisfile_id3v2['majorversion_footer'] = ord($footer{3});
431
+ $thisfile_id3v2['minorversion_footer'] = ord($footer{4});
432
+ }
433
+ if ($thisfile_id3v2['majorversion_footer'] <= 4) {
434
+ $id3_flags = ord(substr($footer{5}));
435
+ $thisfile_id3v2_flags['unsynch_footer'] = (bool) ($id3_flags & 0x80);
436
+ $thisfile_id3v2_flags['extfoot_footer'] = (bool) ($id3_flags & 0x40);
437
+ $thisfile_id3v2_flags['experim_footer'] = (bool) ($id3_flags & 0x20);
438
+ $thisfile_id3v2_flags['isfooter_footer'] = (bool) ($id3_flags & 0x10);
439
+
440
+ $thisfile_id3v2['footerlength'] = getid3_lib::BigEndian2Int(substr($footer, 6, 4), 1);
441
+ }
442
+ } // end footer
443
+
444
+ if (isset($thisfile_id3v2['comments']['genre'])) {
445
+ foreach ($thisfile_id3v2['comments']['genre'] as $key => $value) {
446
+ unset($thisfile_id3v2['comments']['genre'][$key]);
447
+ $thisfile_id3v2['comments'] = getid3_lib::array_merge_noclobber($thisfile_id3v2['comments'], array('genre'=>$this->ParseID3v2GenreString($value)));
448
+ }
449
+ }
450
+
451
+ if (isset($thisfile_id3v2['comments']['track'])) {
452
+ foreach ($thisfile_id3v2['comments']['track'] as $key => $value) {
453
+ if (strstr($value, '/')) {
454
+ list($thisfile_id3v2['comments']['tracknum'][$key], $thisfile_id3v2['comments']['totaltracks'][$key]) = explode('/', $thisfile_id3v2['comments']['track'][$key]);
455
+ }
456
+ }
457
+ }
458
+
459
+ if (!isset($thisfile_id3v2['comments']['year']) && !empty($thisfile_id3v2['comments']['recording_time'][0]) && preg_match('#^([0-9]{4})#', trim($thisfile_id3v2['comments']['recording_time'][0]), $matches)) {
460
+ $thisfile_id3v2['comments']['year'] = array($matches[1]);
461
+ }
462
+
463
+
464
+ if (!empty($thisfile_id3v2['TXXX'])) {
465
+ // MediaMonkey does this, maybe others: write a blank RGAD frame, but put replay-gain adjustment values in TXXX frames
466
+ foreach ($thisfile_id3v2['TXXX'] as $txxx_array) {
467
+ switch ($txxx_array['description']) {
468
+ case 'replaygain_track_gain':
469
+ if (empty($info['replay_gain']['track']['adjustment']) && !empty($txxx_array['data'])) {
470
+ $info['replay_gain']['track']['adjustment'] = floatval(trim(str_replace('dB', '', $txxx_array['data'])));
471
+ }
472
+ break;
473
+ case 'replaygain_track_peak':
474
+ if (empty($info['replay_gain']['track']['peak']) && !empty($txxx_array['data'])) {
475
+ $info['replay_gain']['track']['peak'] = floatval($txxx_array['data']);
476
+ }
477
+ break;
478
+ case 'replaygain_album_gain':
479
+ if (empty($info['replay_gain']['album']['adjustment']) && !empty($txxx_array['data'])) {
480
+ $info['replay_gain']['album']['adjustment'] = floatval(trim(str_replace('dB', '', $txxx_array['data'])));
481
+ }
482
+ break;
483
+ }
484
+ }
485
+ }
486
+
487
+
488
+ // Set avdataoffset
489
+ $info['avdataoffset'] = $thisfile_id3v2['headerlength'];
490
+ if (isset($thisfile_id3v2['footer'])) {
491
+ $info['avdataoffset'] += 10;
492
+ }
493
+
494
+ return true;
495
+ }
496
+
497
+
498
+ function ParseID3v2GenreString($genrestring) {
499
+ // Parse genres into arrays of genreName and genreID
500
+ // ID3v2.2.x, ID3v2.3.x: '(21)' or '(4)Eurodisco' or '(51)(39)' or '(55)((I think...)'
501
+ // ID3v2.4.x: '21' $00 'Eurodisco' $00
502
+ $clean_genres = array();
503
+ if (strpos($genrestring, "\x00") === false) {
504
+ $genrestring = preg_replace('#\(([0-9]{1,3})\)#', '$1'."\x00", $genrestring);
505
+ }
506
+ $genre_elements = explode("\x00", $genrestring);
507
+ foreach ($genre_elements as $element) {
508
+ $element = trim($element);
509
+ if ($element) {
510
+ if (preg_match('#^[0-9]{1,3}#', $element)) {
511
+ $clean_genres[] = getid3_id3v1::LookupGenreName($element);
512
+ } else {
513
+ $clean_genres[] = str_replace('((', '(', $element);
514
+ }
515
+ }
516
+ }
517
+ return $clean_genres;
518
+ }
519
+
520
+
521
+ function ParseID3v2Frame(&$parsedFrame) {
522
+
523
+ // shortcuts
524
+ $info = &$this->getid3->info;
525
+ $id3v2_majorversion = $info['id3v2']['majorversion'];
526
+
527
+ $parsedFrame['framenamelong'] = $this->FrameNameLongLookup($parsedFrame['frame_name']);
528
+ if (empty($parsedFrame['framenamelong'])) {
529
+ unset($parsedFrame['framenamelong']);
530
+ }
531
+ $parsedFrame['framenameshort'] = $this->FrameNameShortLookup($parsedFrame['frame_name']);
532
+ if (empty($parsedFrame['framenameshort'])) {
533
+ unset($parsedFrame['framenameshort']);
534
+ }
535
+
536
+ if ($id3v2_majorversion >= 3) { // frame flags are not part of the ID3v2.2 standard
537
+ if ($id3v2_majorversion == 3) {
538
+ // Frame Header Flags
539
+ // %abc00000 %ijk00000
540
+ $parsedFrame['flags']['TagAlterPreservation'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x8000); // a - Tag alter preservation
541
+ $parsedFrame['flags']['FileAlterPreservation'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x4000); // b - File alter preservation
542
+ $parsedFrame['flags']['ReadOnly'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x2000); // c - Read only
543
+ $parsedFrame['flags']['compression'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0080); // i - Compression
544
+ $parsedFrame['flags']['Encryption'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0040); // j - Encryption
545
+ $parsedFrame['flags']['GroupingIdentity'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0020); // k - Grouping identity
546
+
547
+ } elseif ($id3v2_majorversion == 4) {
548
+ // Frame Header Flags
549
+ // %0abc0000 %0h00kmnp
550
+ $parsedFrame['flags']['TagAlterPreservation'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x4000); // a - Tag alter preservation
551
+ $parsedFrame['flags']['FileAlterPreservation'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x2000); // b - File alter preservation
552
+ $parsedFrame['flags']['ReadOnly'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x1000); // c - Read only
553
+ $parsedFrame['flags']['GroupingIdentity'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0040); // h - Grouping identity
554
+ $parsedFrame['flags']['compression'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0008); // k - Compression
555
+ $parsedFrame['flags']['Encryption'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0004); // m - Encryption
556
+ $parsedFrame['flags']['Unsynchronisation'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0002); // n - Unsynchronisation
557
+ $parsedFrame['flags']['DataLengthIndicator'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0001); // p - Data length indicator
558
+
559
+ // Frame-level de-unsynchronisation - ID3v2.4
560
+ if ($parsedFrame['flags']['Unsynchronisation']) {
561
+ $parsedFrame['data'] = $this->DeUnsynchronise($parsedFrame['data']);
562
+ }
563
+
564
+ if ($parsedFrame['flags']['DataLengthIndicator']) {
565
+ $parsedFrame['data_length_indicator'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], 0, 4), 1);
566
+ $parsedFrame['data'] = substr($parsedFrame['data'], 4);
567
+ }
568
+ }
569
+
570
+ // Frame-level de-compression
571
+ if ($parsedFrame['flags']['compression']) {
572
+ $parsedFrame['decompressed_size'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], 0, 4));
573
+ if (!function_exists('gzuncompress')) {
574
+ $info['warning'][] = 'gzuncompress() support required to decompress ID3v2 frame "'.$parsedFrame['frame_name'].'"';
575
+ } else {
576
+ if ($decompresseddata = @gzuncompress(substr($parsedFrame['data'], 4))) {
577
+ //if ($decompresseddata = @gzuncompress($parsedFrame['data'])) {
578
+ $parsedFrame['data'] = $decompresseddata;
579
+ unset($decompresseddata);
580
+ } else {
581
+ $info['warning'][] = 'gzuncompress() failed on compressed contents of ID3v2 frame "'.$parsedFrame['frame_name'].'"';
582
+ }
583
+ }
584
+ }
585
+ }
586
+
587
+ if (!empty($parsedFrame['flags']['DataLengthIndicator'])) {
588
+ if ($parsedFrame['data_length_indicator'] != strlen($parsedFrame['data'])) {
589
+ $info['warning'][] = 'ID3v2 frame "'.$parsedFrame['frame_name'].'" should be '.$parsedFrame['data_length_indicator'].' bytes long according to DataLengthIndicator, but found '.strlen($parsedFrame['data']).' bytes of data';
590
+ }
591
+ }
592
+
593
+ if (isset($parsedFrame['datalength']) && ($parsedFrame['datalength'] == 0)) {
594
+
595
+ $warning = 'Frame "'.$parsedFrame['frame_name'].'" at offset '.$parsedFrame['dataoffset'].' has no data portion';
596
+ switch ($parsedFrame['frame_name']) {
597
+ case 'WCOM':
598
+ $warning .= ' (this is known to happen with files tagged by RioPort)';
599
+ break;
600
+
601
+ default:
602
+ break;
603
+ }
604
+ $info['warning'][] = $warning;
605
+
606
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'UFID')) || // 4.1 UFID Unique file identifier
607
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'UFI'))) { // 4.1 UFI Unique file identifier
608
+ // There may be more than one 'UFID' frame in a tag,
609
+ // but only one with the same 'Owner identifier'.
610
+ // <Header for 'Unique file identifier', ID: 'UFID'>
611
+ // Owner identifier <text string> $00
612
+ // Identifier <up to 64 bytes binary data>
613
+ $exploded = explode("\x00", $parsedFrame['data'], 2);
614
+ $parsedFrame['ownerid'] = (isset($exploded[0]) ? $exploded[0] : '');
615
+ $parsedFrame['data'] = (isset($exploded[1]) ? $exploded[1] : '');
616
+
617
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'TXXX')) || // 4.2.2 TXXX User defined text information frame
618
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'TXX'))) { // 4.2.2 TXX User defined text information frame
619
+ // There may be more than one 'TXXX' frame in each tag,
620
+ // but only one with the same description.
621
+ // <Header for 'User defined text information frame', ID: 'TXXX'>
622
+ // Text encoding $xx
623
+ // Description <text string according to encoding> $00 (00)
624
+ // Value <text string according to encoding>
625
+
626
+ $frame_offset = 0;
627
+ $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1));
628
+
629
+ if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) {
630
+ $info['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding';
631
+ }
632
+ $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset);
633
+ if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) {
634
+ $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00
635
+ }
636
+ $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
637
+ if (ord($frame_description) === 0) {
638
+ $frame_description = '';
639
+ }
640
+ $parsedFrame['encodingid'] = $frame_textencoding;
641
+ $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding);
642
+
643
+ $parsedFrame['description'] = $frame_description;
644
+ $parsedFrame['data'] = substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)));
645
+ if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) {
646
+ $info['id3v2']['comments'][$parsedFrame['framenameshort']][] = trim(getid3_lib::iconv_fallback($parsedFrame['encoding'], $info['id3v2']['encoding'], $parsedFrame['data']));
647
+ }
648
+ //unset($parsedFrame['data']); do not unset, may be needed elsewhere, e.g. for replaygain
649
+
650
+
651
+ } elseif ($parsedFrame['frame_name']{0} == 'T') { // 4.2. T??[?] Text information frame
652
+ // There may only be one text information frame of its kind in an tag.
653
+ // <Header for 'Text information frame', ID: 'T000' - 'TZZZ',
654
+ // excluding 'TXXX' described in 4.2.6.>
655
+ // Text encoding $xx
656
+ // Information <text string(s) according to encoding>
657
+
658
+ $frame_offset = 0;
659
+ $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1));
660
+ if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) {
661
+ $info['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding';
662
+ }
663
+
664
+ $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset);
665
+
666
+ $parsedFrame['encodingid'] = $frame_textencoding;
667
+ $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding);
668
+
669
+ if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) {
670
+ $string = getid3_lib::iconv_fallback($parsedFrame['encoding'], $info['id3v2']['encoding'], $parsedFrame['data']);
671
+ $string = rtrim($string, "\x00"); // remove possible terminating null (put by encoding id or software bug)
672
+ $info['id3v2']['comments'][$parsedFrame['framenameshort']][] = $string;
673
+ unset($string);
674
+ }
675
+
676
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'WXXX')) || // 4.3.2 WXXX User defined URL link frame
677
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'WXX'))) { // 4.3.2 WXX User defined URL link frame
678
+ // There may be more than one 'WXXX' frame in each tag,
679
+ // but only one with the same description
680
+ // <Header for 'User defined URL link frame', ID: 'WXXX'>
681
+ // Text encoding $xx
682
+ // Description <text string according to encoding> $00 (00)
683
+ // URL <text string>
684
+
685
+ $frame_offset = 0;
686
+ $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1));
687
+ if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) {
688
+ $info['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding';
689
+ }
690
+ $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset);
691
+ if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) {
692
+ $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00
693
+ }
694
+ $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
695
+
696
+ if (ord($frame_description) === 0) {
697
+ $frame_description = '';
698
+ }
699
+ $parsedFrame['data'] = substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)));
700
+
701
+ $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding));
702
+ if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) {
703
+ $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00
704
+ }
705
+ if ($frame_terminatorpos) {
706
+ // there are null bytes after the data - this is not according to spec
707
+ // only use data up to first null byte
708
+ $frame_urldata = (string) substr($parsedFrame['data'], 0, $frame_terminatorpos);
709
+ } else {
710
+ // no null bytes following data, just use all data
711
+ $frame_urldata = (string) $parsedFrame['data'];
712
+ }
713
+
714
+ $parsedFrame['encodingid'] = $frame_textencoding;
715
+ $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding);
716
+
717
+ $parsedFrame['url'] = $frame_urldata;
718
+ $parsedFrame['description'] = $frame_description;
719
+ if (!empty($parsedFrame['framenameshort']) && $parsedFrame['url']) {
720
+ $info['id3v2']['comments'][$parsedFrame['framenameshort']][] = getid3_lib::iconv_fallback($parsedFrame['encoding'], $info['id3v2']['encoding'], $parsedFrame['url']);
721
+ }
722
+ unset($parsedFrame['data']);
723
+
724
+
725
+ } elseif ($parsedFrame['frame_name']{0} == 'W') { // 4.3. W??? URL link frames
726
+ // There may only be one URL link frame of its kind in a tag,
727
+ // except when stated otherwise in the frame description
728
+ // <Header for 'URL link frame', ID: 'W000' - 'WZZZ', excluding 'WXXX'
729
+ // described in 4.3.2.>
730
+ // URL <text string>
731
+
732
+ $parsedFrame['url'] = trim($parsedFrame['data']);
733
+ if (!empty($parsedFrame['framenameshort']) && $parsedFrame['url']) {
734
+ $info['id3v2']['comments'][$parsedFrame['framenameshort']][] = $parsedFrame['url'];
735
+ }
736
+ unset($parsedFrame['data']);
737
+
738
+
739
+ } elseif ((($id3v2_majorversion == 3) && ($parsedFrame['frame_name'] == 'IPLS')) || // 4.4 IPLS Involved people list (ID3v2.3 only)
740
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'IPL'))) { // 4.4 IPL Involved people list (ID3v2.2 only)
741
+ // There may only be one 'IPL' frame in each tag
742
+ // <Header for 'User defined URL link frame', ID: 'IPL'>
743
+ // Text encoding $xx
744
+ // People list strings <textstrings>
745
+
746
+ $frame_offset = 0;
747
+ $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1));
748
+ if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) {
749
+ $info['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding';
750
+ }
751
+ $parsedFrame['encodingid'] = $frame_textencoding;
752
+ $parsedFrame['encoding'] = $this->TextEncodingNameLookup($parsedFrame['encodingid']);
753
+
754
+ $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset);
755
+ if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) {
756
+ $info['id3v2']['comments'][$parsedFrame['framenameshort']][] = getid3_lib::iconv_fallback($parsedFrame['encoding'], $info['id3v2']['encoding'], $parsedFrame['data']);
757
+ }
758
+
759
+
760
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'MCDI')) || // 4.4 MCDI Music CD identifier
761
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'MCI'))) { // 4.5 MCI Music CD identifier
762
+ // There may only be one 'MCDI' frame in each tag
763
+ // <Header for 'Music CD identifier', ID: 'MCDI'>
764
+ // CD TOC <binary data>
765
+
766
+ if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) {
767
+ $info['id3v2']['comments'][$parsedFrame['framenameshort']][] = $parsedFrame['data'];
768
+ }
769
+
770
+
771
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'ETCO')) || // 4.5 ETCO Event timing codes
772
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'ETC'))) { // 4.6 ETC Event timing codes
773
+ // There may only be one 'ETCO' frame in each tag
774
+ // <Header for 'Event timing codes', ID: 'ETCO'>
775
+ // Time stamp format $xx
776
+ // Where time stamp format is:
777
+ // $01 (32-bit value) MPEG frames from beginning of file
778
+ // $02 (32-bit value) milliseconds from beginning of file
779
+ // Followed by a list of key events in the following format:
780
+ // Type of event $xx
781
+ // Time stamp $xx (xx ...)
782
+ // The 'Time stamp' is set to zero if directly at the beginning of the sound
783
+ // or after the previous event. All events MUST be sorted in chronological order.
784
+
785
+ $frame_offset = 0;
786
+ $parsedFrame['timestampformat'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
787
+
788
+ while ($frame_offset < strlen($parsedFrame['data'])) {
789
+ $parsedFrame['typeid'] = substr($parsedFrame['data'], $frame_offset++, 1);
790
+ $parsedFrame['type'] = $this->ETCOEventLookup($parsedFrame['typeid']);
791
+ $parsedFrame['timestamp'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 4));
792
+ $frame_offset += 4;
793
+ }
794
+ unset($parsedFrame['data']);
795
+
796
+
797
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'MLLT')) || // 4.6 MLLT MPEG location lookup table
798
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'MLL'))) { // 4.7 MLL MPEG location lookup table
799
+ // There may only be one 'MLLT' frame in each tag
800
+ // <Header for 'Location lookup table', ID: 'MLLT'>
801
+ // MPEG frames between reference $xx xx
802
+ // Bytes between reference $xx xx xx
803
+ // Milliseconds between reference $xx xx xx
804
+ // Bits for bytes deviation $xx
805
+ // Bits for milliseconds dev. $xx
806
+ // Then for every reference the following data is included;
807
+ // Deviation in bytes %xxx....
808
+ // Deviation in milliseconds %xxx....
809
+
810
+ $frame_offset = 0;
811
+ $parsedFrame['framesbetweenreferences'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], 0, 2));
812
+ $parsedFrame['bytesbetweenreferences'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], 2, 3));
813
+ $parsedFrame['msbetweenreferences'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], 5, 3));
814
+ $parsedFrame['bitsforbytesdeviation'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], 8, 1));
815
+ $parsedFrame['bitsformsdeviation'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], 9, 1));
816
+ $parsedFrame['data'] = substr($parsedFrame['data'], 10);
817
+ while ($frame_offset < strlen($parsedFrame['data'])) {
818
+ $deviationbitstream .= getid3_lib::BigEndian2Bin(substr($parsedFrame['data'], $frame_offset++, 1));
819
+ }
820
+ $reference_counter = 0;
821
+ while (strlen($deviationbitstream) > 0) {
822
+ $parsedFrame[$reference_counter]['bytedeviation'] = bindec(substr($deviationbitstream, 0, $parsedFrame['bitsforbytesdeviation']));
823
+ $parsedFrame[$reference_counter]['msdeviation'] = bindec(substr($deviationbitstream, $parsedFrame['bitsforbytesdeviation'], $parsedFrame['bitsformsdeviation']));
824
+ $deviationbitstream = substr($deviationbitstream, $parsedFrame['bitsforbytesdeviation'] + $parsedFrame['bitsformsdeviation']);
825
+ $reference_counter++;
826
+ }
827
+ unset($parsedFrame['data']);
828
+
829
+
830
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'SYTC')) || // 4.7 SYTC Synchronised tempo codes
831
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'STC'))) { // 4.8 STC Synchronised tempo codes
832
+ // There may only be one 'SYTC' frame in each tag
833
+ // <Header for 'Synchronised tempo codes', ID: 'SYTC'>
834
+ // Time stamp format $xx
835
+ // Tempo data <binary data>
836
+ // Where time stamp format is:
837
+ // $01 (32-bit value) MPEG frames from beginning of file
838
+ // $02 (32-bit value) milliseconds from beginning of file
839
+
840
+ $frame_offset = 0;
841
+ $parsedFrame['timestampformat'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
842
+ $timestamp_counter = 0;
843
+ while ($frame_offset < strlen($parsedFrame['data'])) {
844
+ $parsedFrame[$timestamp_counter]['tempo'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
845
+ if ($parsedFrame[$timestamp_counter]['tempo'] == 255) {
846
+ $parsedFrame[$timestamp_counter]['tempo'] += ord(substr($parsedFrame['data'], $frame_offset++, 1));
847
+ }
848
+ $parsedFrame[$timestamp_counter]['timestamp'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 4));
849
+ $frame_offset += 4;
850
+ $timestamp_counter++;
851
+ }
852
+ unset($parsedFrame['data']);
853
+
854
+
855
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'USLT')) || // 4.8 USLT Unsynchronised lyric/text transcription
856
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'ULT'))) { // 4.9 ULT Unsynchronised lyric/text transcription
857
+ // There may be more than one 'Unsynchronised lyrics/text transcription' frame
858
+ // in each tag, but only one with the same language and content descriptor.
859
+ // <Header for 'Unsynchronised lyrics/text transcription', ID: 'USLT'>
860
+ // Text encoding $xx
861
+ // Language $xx xx xx
862
+ // Content descriptor <text string according to encoding> $00 (00)
863
+ // Lyrics/text <full text string according to encoding>
864
+
865
+ $frame_offset = 0;
866
+ $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1));
867
+ if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) {
868
+ $info['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding';
869
+ }
870
+ $frame_language = substr($parsedFrame['data'], $frame_offset, 3);
871
+ $frame_offset += 3;
872
+ $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset);
873
+ if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) {
874
+ $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00
875
+ }
876
+ $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
877
+ if (ord($frame_description) === 0) {
878
+ $frame_description = '';
879
+ }
880
+ $parsedFrame['data'] = substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)));
881
+
882
+ $parsedFrame['encodingid'] = $frame_textencoding;
883
+ $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding);
884
+
885
+ $parsedFrame['data'] = $parsedFrame['data'];
886
+ $parsedFrame['language'] = $frame_language;
887
+ $parsedFrame['languagename'] = $this->LanguageLookup($frame_language, false);
888
+ $parsedFrame['description'] = $frame_description;
889
+ if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) {
890
+ $info['id3v2']['comments'][$parsedFrame['framenameshort']][] = getid3_lib::iconv_fallback($parsedFrame['encoding'], $info['id3v2']['encoding'], $parsedFrame['data']);
891
+ }
892
+ unset($parsedFrame['data']);
893
+
894
+
895
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'SYLT')) || // 4.9 SYLT Synchronised lyric/text
896
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'SLT'))) { // 4.10 SLT Synchronised lyric/text
897
+ // There may be more than one 'SYLT' frame in each tag,
898
+ // but only one with the same language and content descriptor.
899
+ // <Header for 'Synchronised lyrics/text', ID: 'SYLT'>
900
+ // Text encoding $xx
901
+ // Language $xx xx xx
902
+ // Time stamp format $xx
903
+ // $01 (32-bit value) MPEG frames from beginning of file
904
+ // $02 (32-bit value) milliseconds from beginning of file
905
+ // Content type $xx
906
+ // Content descriptor <text string according to encoding> $00 (00)
907
+ // Terminated text to be synced (typically a syllable)
908
+ // Sync identifier (terminator to above string) $00 (00)
909
+ // Time stamp $xx (xx ...)
910
+
911
+ $frame_offset = 0;
912
+ $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1));
913
+ if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) {
914
+ $info['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding';
915
+ }
916
+ $frame_language = substr($parsedFrame['data'], $frame_offset, 3);
917
+ $frame_offset += 3;
918
+ $parsedFrame['timestampformat'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
919
+ $parsedFrame['contenttypeid'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
920
+ $parsedFrame['contenttype'] = $this->SYTLContentTypeLookup($parsedFrame['contenttypeid']);
921
+ $parsedFrame['encodingid'] = $frame_textencoding;
922
+ $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding);
923
+
924
+ $parsedFrame['language'] = $frame_language;
925
+ $parsedFrame['languagename'] = $this->LanguageLookup($frame_language, false);
926
+
927
+ $timestampindex = 0;
928
+ $frame_remainingdata = substr($parsedFrame['data'], $frame_offset);
929
+ while (strlen($frame_remainingdata)) {
930
+ $frame_offset = 0;
931
+ $frame_terminatorpos = strpos($frame_remainingdata, $this->TextEncodingTerminatorLookup($frame_textencoding));
932
+ if ($frame_terminatorpos === false) {
933
+ $frame_remainingdata = '';
934
+ } else {
935
+ if (ord(substr($frame_remainingdata, $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) {
936
+ $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00
937
+ }
938
+ $parsedFrame['lyrics'][$timestampindex]['data'] = substr($frame_remainingdata, $frame_offset, $frame_terminatorpos - $frame_offset);
939
+
940
+ $frame_remainingdata = substr($frame_remainingdata, $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)));
941
+ if (($timestampindex == 0) && (ord($frame_remainingdata{0}) != 0)) {
942
+ // timestamp probably omitted for first data item
943
+ } else {
944
+ $parsedFrame['lyrics'][$timestampindex]['timestamp'] = getid3_lib::BigEndian2Int(substr($frame_remainingdata, 0, 4));
945
+ $frame_remainingdata = substr($frame_remainingdata, 4);
946
+ }
947
+ $timestampindex++;
948
+ }
949
+ }
950
+ unset($parsedFrame['data']);
951
+
952
+
953
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'COMM')) || // 4.10 COMM Comments
954
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'COM'))) { // 4.11 COM Comments
955
+ // There may be more than one comment frame in each tag,
956
+ // but only one with the same language and content descriptor.
957
+ // <Header for 'Comment', ID: 'COMM'>
958
+ // Text encoding $xx
959
+ // Language $xx xx xx
960
+ // Short content descrip. <text string according to encoding> $00 (00)
961
+ // The actual text <full text string according to encoding>
962
+
963
+ if (strlen($parsedFrame['data']) < 5) {
964
+
965
+ $info['warning'][] = 'Invalid data (too short) for "'.$parsedFrame['frame_name'].'" frame at offset '.$parsedFrame['dataoffset'];
966
+
967
+ } else {
968
+
969
+ $frame_offset = 0;
970
+ $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1));
971
+ if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) {
972
+ $info['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding';
973
+ }
974
+ $frame_language = substr($parsedFrame['data'], $frame_offset, 3);
975
+ $frame_offset += 3;
976
+ $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset);
977
+ if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) {
978
+ $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00
979
+ }
980
+ $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
981
+ if (ord($frame_description) === 0) {
982
+ $frame_description = '';
983
+ }
984
+ $frame_text = (string) substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)));
985
+
986
+ $parsedFrame['encodingid'] = $frame_textencoding;
987
+ $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding);
988
+
989
+ $parsedFrame['language'] = $frame_language;
990
+ $parsedFrame['languagename'] = $this->LanguageLookup($frame_language, false);
991
+ $parsedFrame['description'] = $frame_description;
992
+ $parsedFrame['data'] = $frame_text;
993
+ if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) {
994
+ $info['id3v2']['comments'][$parsedFrame['framenameshort']][] = getid3_lib::iconv_fallback($parsedFrame['encoding'], $info['id3v2']['encoding'], $parsedFrame['data']);
995
+ }
996
+
997
+ }
998
+
999
+ } elseif (($id3v2_majorversion >= 4) && ($parsedFrame['frame_name'] == 'RVA2')) { // 4.11 RVA2 Relative volume adjustment (2) (ID3v2.4+ only)
1000
+ // There may be more than one 'RVA2' frame in each tag,
1001
+ // but only one with the same identification string
1002
+ // <Header for 'Relative volume adjustment (2)', ID: 'RVA2'>
1003
+ // Identification <text string> $00
1004
+ // The 'identification' string is used to identify the situation and/or
1005
+ // device where this adjustment should apply. The following is then
1006
+ // repeated for every channel:
1007
+ // Type of channel $xx
1008
+ // Volume adjustment $xx xx
1009
+ // Bits representing peak $xx
1010
+ // Peak volume $xx (xx ...)
1011
+
1012
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00");
1013
+ $frame_idstring = substr($parsedFrame['data'], 0, $frame_terminatorpos);
1014
+ if (ord($frame_idstring) === 0) {
1015
+ $frame_idstring = '';
1016
+ }
1017
+ $frame_remainingdata = substr($parsedFrame['data'], $frame_terminatorpos + strlen("\x00"));
1018
+ $parsedFrame['description'] = $frame_idstring;
1019
+ $RVA2channelcounter = 0;
1020
+ while (strlen($frame_remainingdata) >= 5) {
1021
+ $frame_offset = 0;
1022
+ $frame_channeltypeid = ord(substr($frame_remainingdata, $frame_offset++, 1));
1023
+ $parsedFrame[$RVA2channelcounter]['channeltypeid'] = $frame_channeltypeid;
1024
+ $parsedFrame[$RVA2channelcounter]['channeltype'] = $this->RVA2ChannelTypeLookup($frame_channeltypeid);
1025
+ $parsedFrame[$RVA2channelcounter]['volumeadjust'] = getid3_lib::BigEndian2Int(substr($frame_remainingdata, $frame_offset, 2), false, true); // 16-bit signed
1026
+ $frame_offset += 2;
1027
+ $parsedFrame[$RVA2channelcounter]['bitspeakvolume'] = ord(substr($frame_remainingdata, $frame_offset++, 1));
1028
+ if (($parsedFrame[$RVA2channelcounter]['bitspeakvolume'] < 1) || ($parsedFrame[$RVA2channelcounter]['bitspeakvolume'] > 4)) {
1029
+ $info['warning'][] = 'ID3v2::RVA2 frame['.$RVA2channelcounter.'] contains invalid '.$parsedFrame[$RVA2channelcounter]['bitspeakvolume'].'-byte bits-representing-peak value';
1030
+ break;
1031
+ }
1032
+ $frame_bytespeakvolume = ceil($parsedFrame[$RVA2channelcounter]['bitspeakvolume'] / 8);
1033
+ $parsedFrame[$RVA2channelcounter]['peakvolume'] = getid3_lib::BigEndian2Int(substr($frame_remainingdata, $frame_offset, $frame_bytespeakvolume));
1034
+ $frame_remainingdata = substr($frame_remainingdata, $frame_offset + $frame_bytespeakvolume);
1035
+ $RVA2channelcounter++;
1036
+ }
1037
+ unset($parsedFrame['data']);
1038
+
1039
+
1040
+ } elseif ((($id3v2_majorversion == 3) && ($parsedFrame['frame_name'] == 'RVAD')) || // 4.12 RVAD Relative volume adjustment (ID3v2.3 only)
1041
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'RVA'))) { // 4.12 RVA Relative volume adjustment (ID3v2.2 only)
1042
+ // There may only be one 'RVA' frame in each tag
1043
+ // <Header for 'Relative volume adjustment', ID: 'RVA'>
1044
+ // ID3v2.2 => Increment/decrement %000000ba
1045
+ // ID3v2.3 => Increment/decrement %00fedcba
1046
+ // Bits used for volume descr. $xx
1047
+ // Relative volume change, right $xx xx (xx ...) // a
1048
+ // Relative volume change, left $xx xx (xx ...) // b
1049
+ // Peak volume right $xx xx (xx ...)
1050
+ // Peak volume left $xx xx (xx ...)
1051
+ // ID3v2.3 only, optional (not present in ID3v2.2):
1052
+ // Relative volume change, right back $xx xx (xx ...) // c
1053
+ // Relative volume change, left back $xx xx (xx ...) // d
1054
+ // Peak volume right back $xx xx (xx ...)
1055
+ // Peak volume left back $xx xx (xx ...)
1056
+ // ID3v2.3 only, optional (not present in ID3v2.2):
1057
+ // Relative volume change, center $xx xx (xx ...) // e
1058
+ // Peak volume center $xx xx (xx ...)
1059
+ // ID3v2.3 only, optional (not present in ID3v2.2):
1060
+ // Relative volume change, bass $xx xx (xx ...) // f
1061
+ // Peak volume bass $xx xx (xx ...)
1062
+
1063
+ $frame_offset = 0;
1064
+ $frame_incrdecrflags = getid3_lib::BigEndian2Bin(substr($parsedFrame['data'], $frame_offset++, 1));
1065
+ $parsedFrame['incdec']['right'] = (bool) substr($frame_incrdecrflags, 6, 1);
1066
+ $parsedFrame['incdec']['left'] = (bool) substr($frame_incrdecrflags, 7, 1);
1067
+ $parsedFrame['bitsvolume'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1068
+ $frame_bytesvolume = ceil($parsedFrame['bitsvolume'] / 8);
1069
+ $parsedFrame['volumechange']['right'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume));
1070
+ if ($parsedFrame['incdec']['right'] === false) {
1071
+ $parsedFrame['volumechange']['right'] *= -1;
1072
+ }
1073
+ $frame_offset += $frame_bytesvolume;
1074
+ $parsedFrame['volumechange']['left'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume));
1075
+ if ($parsedFrame['incdec']['left'] === false) {
1076
+ $parsedFrame['volumechange']['left'] *= -1;
1077
+ }
1078
+ $frame_offset += $frame_bytesvolume;
1079
+ $parsedFrame['peakvolume']['right'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume));
1080
+ $frame_offset += $frame_bytesvolume;
1081
+ $parsedFrame['peakvolume']['left'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume));
1082
+ $frame_offset += $frame_bytesvolume;
1083
+ if ($id3v2_majorversion == 3) {
1084
+ $parsedFrame['data'] = substr($parsedFrame['data'], $frame_offset);
1085
+ if (strlen($parsedFrame['data']) > 0) {
1086
+ $parsedFrame['incdec']['rightrear'] = (bool) substr($frame_incrdecrflags, 4, 1);
1087
+ $parsedFrame['incdec']['leftrear'] = (bool) substr($frame_incrdecrflags, 5, 1);
1088
+ $parsedFrame['volumechange']['rightrear'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume));
1089
+ if ($parsedFrame['incdec']['rightrear'] === false) {
1090
+ $parsedFrame['volumechange']['rightrear'] *= -1;
1091
+ }
1092
+ $frame_offset += $frame_bytesvolume;
1093
+ $parsedFrame['volumechange']['leftrear'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume));
1094
+ if ($parsedFrame['incdec']['leftrear'] === false) {
1095
+ $parsedFrame['volumechange']['leftrear'] *= -1;
1096
+ }
1097
+ $frame_offset += $frame_bytesvolume;
1098
+ $parsedFrame['peakvolume']['rightrear'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume));
1099
+ $frame_offset += $frame_bytesvolume;
1100
+ $parsedFrame['peakvolume']['leftrear'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume));
1101
+ $frame_offset += $frame_bytesvolume;
1102
+ }
1103
+ $parsedFrame['data'] = substr($parsedFrame['data'], $frame_offset);
1104
+ if (strlen($parsedFrame['data']) > 0) {
1105
+ $parsedFrame['incdec']['center'] = (bool) substr($frame_incrdecrflags, 3, 1);
1106
+ $parsedFrame['volumechange']['center'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume));
1107
+ if ($parsedFrame['incdec']['center'] === false) {
1108
+ $parsedFrame['volumechange']['center'] *= -1;
1109
+ }
1110
+ $frame_offset += $frame_bytesvolume;
1111
+ $parsedFrame['peakvolume']['center'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume));
1112
+ $frame_offset += $frame_bytesvolume;
1113
+ }
1114
+ $parsedFrame['data'] = substr($parsedFrame['data'], $frame_offset);
1115
+ if (strlen($parsedFrame['data']) > 0) {
1116
+ $parsedFrame['incdec']['bass'] = (bool) substr($frame_incrdecrflags, 2, 1);
1117
+ $parsedFrame['volumechange']['bass'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume));
1118
+ if ($parsedFrame['incdec']['bass'] === false) {
1119
+ $parsedFrame['volumechange']['bass'] *= -1;
1120
+ }
1121
+ $frame_offset += $frame_bytesvolume;
1122
+ $parsedFrame['peakvolume']['bass'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume));
1123
+ $frame_offset += $frame_bytesvolume;
1124
+ }
1125
+ }
1126
+ unset($parsedFrame['data']);
1127
+
1128
+
1129
+ } elseif (($id3v2_majorversion >= 4) && ($parsedFrame['frame_name'] == 'EQU2')) { // 4.12 EQU2 Equalisation (2) (ID3v2.4+ only)
1130
+ // There may be more than one 'EQU2' frame in each tag,
1131
+ // but only one with the same identification string
1132
+ // <Header of 'Equalisation (2)', ID: 'EQU2'>
1133
+ // Interpolation method $xx
1134
+ // $00 Band
1135
+ // $01 Linear
1136
+ // Identification <text string> $00
1137
+ // The following is then repeated for every adjustment point
1138
+ // Frequency $xx xx
1139
+ // Volume adjustment $xx xx
1140
+
1141
+ $frame_offset = 0;
1142
+ $frame_interpolationmethod = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1143
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1144
+ $frame_idstring = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1145
+ if (ord($frame_idstring) === 0) {
1146
+ $frame_idstring = '';
1147
+ }
1148
+ $parsedFrame['description'] = $frame_idstring;
1149
+ $frame_remainingdata = substr($parsedFrame['data'], $frame_terminatorpos + strlen("\x00"));
1150
+ while (strlen($frame_remainingdata)) {
1151
+ $frame_frequency = getid3_lib::BigEndian2Int(substr($frame_remainingdata, 0, 2)) / 2;
1152
+ $parsedFrame['data'][$frame_frequency] = getid3_lib::BigEndian2Int(substr($frame_remainingdata, 2, 2), false, true);
1153
+ $frame_remainingdata = substr($frame_remainingdata, 4);
1154
+ }
1155
+ $parsedFrame['interpolationmethod'] = $frame_interpolationmethod;
1156
+ unset($parsedFrame['data']);
1157
+
1158
+
1159
+ } elseif ((($id3v2_majorversion == 3) && ($parsedFrame['frame_name'] == 'EQUA')) || // 4.12 EQUA Equalisation (ID3v2.3 only)
1160
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'EQU'))) { // 4.13 EQU Equalisation (ID3v2.2 only)
1161
+ // There may only be one 'EQUA' frame in each tag
1162
+ // <Header for 'Relative volume adjustment', ID: 'EQU'>
1163
+ // Adjustment bits $xx
1164
+ // This is followed by 2 bytes + ('adjustment bits' rounded up to the
1165
+ // nearest byte) for every equalisation band in the following format,
1166
+ // giving a frequency range of 0 - 32767Hz:
1167
+ // Increment/decrement %x (MSB of the Frequency)
1168
+ // Frequency (lower 15 bits)
1169
+ // Adjustment $xx (xx ...)
1170
+
1171
+ $frame_offset = 0;
1172
+ $parsedFrame['adjustmentbits'] = substr($parsedFrame['data'], $frame_offset++, 1);
1173
+ $frame_adjustmentbytes = ceil($parsedFrame['adjustmentbits'] / 8);
1174
+
1175
+ $frame_remainingdata = (string) substr($parsedFrame['data'], $frame_offset);
1176
+ while (strlen($frame_remainingdata) > 0) {
1177
+ $frame_frequencystr = getid3_lib::BigEndian2Bin(substr($frame_remainingdata, 0, 2));
1178
+ $frame_incdec = (bool) substr($frame_frequencystr, 0, 1);
1179
+ $frame_frequency = bindec(substr($frame_frequencystr, 1, 15));
1180
+ $parsedFrame[$frame_frequency]['incdec'] = $frame_incdec;
1181
+ $parsedFrame[$frame_frequency]['adjustment'] = getid3_lib::BigEndian2Int(substr($frame_remainingdata, 2, $frame_adjustmentbytes));
1182
+ if ($parsedFrame[$frame_frequency]['incdec'] === false) {
1183
+ $parsedFrame[$frame_frequency]['adjustment'] *= -1;
1184
+ }
1185
+ $frame_remainingdata = substr($frame_remainingdata, 2 + $frame_adjustmentbytes);
1186
+ }
1187
+ unset($parsedFrame['data']);
1188
+
1189
+
1190
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'RVRB')) || // 4.13 RVRB Reverb
1191
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'REV'))) { // 4.14 REV Reverb
1192
+ // There may only be one 'RVRB' frame in each tag.
1193
+ // <Header for 'Reverb', ID: 'RVRB'>
1194
+ // Reverb left (ms) $xx xx
1195
+ // Reverb right (ms) $xx xx
1196
+ // Reverb bounces, left $xx
1197
+ // Reverb bounces, right $xx
1198
+ // Reverb feedback, left to left $xx
1199
+ // Reverb feedback, left to right $xx
1200
+ // Reverb feedback, right to right $xx
1201
+ // Reverb feedback, right to left $xx
1202
+ // Premix left to right $xx
1203
+ // Premix right to left $xx
1204
+
1205
+ $frame_offset = 0;
1206
+ $parsedFrame['left'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 2));
1207
+ $frame_offset += 2;
1208
+ $parsedFrame['right'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 2));
1209
+ $frame_offset += 2;
1210
+ $parsedFrame['bouncesL'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1211
+ $parsedFrame['bouncesR'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1212
+ $parsedFrame['feedbackLL'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1213
+ $parsedFrame['feedbackLR'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1214
+ $parsedFrame['feedbackRR'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1215
+ $parsedFrame['feedbackRL'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1216
+ $parsedFrame['premixLR'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1217
+ $parsedFrame['premixRL'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1218
+ unset($parsedFrame['data']);
1219
+
1220
+
1221
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'APIC')) || // 4.14 APIC Attached picture
1222
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'PIC'))) { // 4.15 PIC Attached picture
1223
+ // There may be several pictures attached to one file,
1224
+ // each in their individual 'APIC' frame, but only one
1225
+ // with the same content descriptor
1226
+ // <Header for 'Attached picture', ID: 'APIC'>
1227
+ // Text encoding $xx
1228
+ // ID3v2.3+ => MIME type <text string> $00
1229
+ // ID3v2.2 => Image format $xx xx xx
1230
+ // Picture type $xx
1231
+ // Description <text string according to encoding> $00 (00)
1232
+ // Picture data <binary data>
1233
+
1234
+ $frame_offset = 0;
1235
+ $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1236
+ if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) {
1237
+ $info['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding';
1238
+ }
1239
+
1240
+ if ($id3v2_majorversion == 2 && strlen($parsedFrame['data']) > $frame_offset) {
1241
+ $frame_imagetype = substr($parsedFrame['data'], $frame_offset, 3);
1242
+ if (strtolower($frame_imagetype) == 'ima') {
1243
+ // complete hack for mp3Rage (www.chaoticsoftware.com) that puts ID3v2.3-formatted
1244
+ // MIME type instead of 3-char ID3v2.2-format image type (thanks xbhoff�pacbell*net)
1245
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1246
+ $frame_mimetype = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1247
+ if (ord($frame_mimetype) === 0) {
1248
+ $frame_mimetype = '';
1249
+ }
1250
+ $frame_imagetype = strtoupper(str_replace('image/', '', strtolower($frame_mimetype)));
1251
+ if ($frame_imagetype == 'JPEG') {
1252
+ $frame_imagetype = 'JPG';
1253
+ }
1254
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1255
+ } else {
1256
+ $frame_offset += 3;
1257
+ }
1258
+ }
1259
+ if ($id3v2_majorversion > 2 && strlen($parsedFrame['data']) > $frame_offset) {
1260
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1261
+ $frame_mimetype = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1262
+ if (ord($frame_mimetype) === 0) {
1263
+ $frame_mimetype = '';
1264
+ }
1265
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1266
+ }
1267
+
1268
+ $frame_picturetype = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1269
+
1270
+ if ($frame_offset >= $parsedFrame['datalength']) {
1271
+ $info['warning'][] = 'data portion of APIC frame is missing at offset '.($parsedFrame['dataoffset'] + 8 + $frame_offset);
1272
+ } else {
1273
+ $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset);
1274
+ if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) {
1275
+ $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00
1276
+ }
1277
+ $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1278
+ if (ord($frame_description) === 0) {
1279
+ $frame_description = '';
1280
+ }
1281
+ $parsedFrame['encodingid'] = $frame_textencoding;
1282
+ $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding);
1283
+
1284
+ if ($id3v2_majorversion == 2) {
1285
+ $parsedFrame['imagetype'] = $frame_imagetype;
1286
+ } else {
1287
+ $parsedFrame['mime'] = $frame_mimetype;
1288
+ }
1289
+ $parsedFrame['picturetypeid'] = $frame_picturetype;
1290
+ $parsedFrame['picturetype'] = $this->APICPictureTypeLookup($frame_picturetype);
1291
+ $parsedFrame['description'] = $frame_description;
1292
+ $parsedFrame['data'] = substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)));
1293
+ $parsedFrame['datalength'] = strlen($parsedFrame['data']);
1294
+
1295
+ $parsedFrame['image_mime'] = '';
1296
+ $imageinfo = array();
1297
+ $imagechunkcheck = getid3_lib::GetDataImageSize($parsedFrame['data'], $imageinfo);
1298
+ if (($imagechunkcheck[2] >= 1) && ($imagechunkcheck[2] <= 3)) {
1299
+ $parsedFrame['image_mime'] = 'image/'.getid3_lib::ImageTypesLookup($imagechunkcheck[2]);
1300
+ if ($imagechunkcheck[0]) {
1301
+ $parsedFrame['image_width'] = $imagechunkcheck[0];
1302
+ }
1303
+ if ($imagechunkcheck[1]) {
1304
+ $parsedFrame['image_height'] = $imagechunkcheck[1];
1305
+ }
1306
+ }
1307
+
1308
+ do {
1309
+ if ($this->inline_attachments === false) {
1310
+ // skip entirely
1311
+ unset($parsedFrame['data']);
1312
+ break;
1313
+ }
1314
+ if ($this->inline_attachments === true) {
1315
+ // great
1316
+ } elseif (is_int($this->inline_attachments)) {
1317
+ if ($this->inline_attachments < $parsedFrame['data_length']) {
1318
+ // too big, skip
1319
+ $info['warning'][] = 'attachment at '.$frame_offset.' is too large to process inline ('.number_format($parsedFrame['data_length']).' bytes)';
1320
+ unset($parsedFrame['data']);
1321
+ break;
1322
+ }
1323
+ } elseif (is_string($this->inline_attachments)) {
1324
+ $this->inline_attachments = rtrim(str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $this->inline_attachments), DIRECTORY_SEPARATOR);
1325
+ if (!is_dir($this->inline_attachments) || !is_writable($this->inline_attachments)) {
1326
+ // cannot write, skip
1327
+ $info['warning'][] = 'attachment at '.$frame_offset.' cannot be saved to "'.$this->inline_attachments.'" (not writable)';
1328
+ unset($parsedFrame['data']);
1329
+ break;
1330
+ }
1331
+ }
1332
+ // if we get this far, must be OK
1333
+ if (is_string($this->inline_attachments)) {
1334
+ $destination_filename = $this->inline_attachments.DIRECTORY_SEPARATOR.md5($info['filenamepath']).'_'.$frame_offset;
1335
+ if (!file_exists($destination_filename) || is_writable($destination_filename)) {
1336
+ file_put_contents($destination_filename, $parsedFrame['data']);
1337
+ } else {
1338
+ $info['warning'][] = 'attachment at '.$frame_offset.' cannot be saved to "'.$destination_filename.'" (not writable)';
1339
+ }
1340
+ $parsedFrame['data_filename'] = $destination_filename;
1341
+ unset($parsedFrame['data']);
1342
+ } else {
1343
+ if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) {
1344
+ if (!isset($info['id3v2']['comments']['picture'])) {
1345
+ $info['id3v2']['comments']['picture'] = array();
1346
+ }
1347
+ $info['id3v2']['comments']['picture'][] = array('data'=>$parsedFrame['data'], 'image_mime'=>$parsedFrame['image_mime']);
1348
+ }
1349
+ }
1350
+ } while (false);
1351
+ }
1352
+
1353
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'GEOB')) || // 4.15 GEOB General encapsulated object
1354
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'GEO'))) { // 4.16 GEO General encapsulated object
1355
+ // There may be more than one 'GEOB' frame in each tag,
1356
+ // but only one with the same content descriptor
1357
+ // <Header for 'General encapsulated object', ID: 'GEOB'>
1358
+ // Text encoding $xx
1359
+ // MIME type <text string> $00
1360
+ // Filename <text string according to encoding> $00 (00)
1361
+ // Content description <text string according to encoding> $00 (00)
1362
+ // Encapsulated object <binary data>
1363
+
1364
+ $frame_offset = 0;
1365
+ $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1366
+ if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) {
1367
+ $info['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding';
1368
+ }
1369
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1370
+ $frame_mimetype = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1371
+ if (ord($frame_mimetype) === 0) {
1372
+ $frame_mimetype = '';
1373
+ }
1374
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1375
+
1376
+ $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset);
1377
+ if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) {
1378
+ $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00
1379
+ }
1380
+ $frame_filename = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1381
+ if (ord($frame_filename) === 0) {
1382
+ $frame_filename = '';
1383
+ }
1384
+ $frame_offset = $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding));
1385
+
1386
+ $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset);
1387
+ if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) {
1388
+ $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00
1389
+ }
1390
+ $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1391
+ if (ord($frame_description) === 0) {
1392
+ $frame_description = '';
1393
+ }
1394
+ $frame_offset = $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding));
1395
+
1396
+ $parsedFrame['objectdata'] = (string) substr($parsedFrame['data'], $frame_offset);
1397
+ $parsedFrame['encodingid'] = $frame_textencoding;
1398
+ $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding);
1399
+
1400
+ $parsedFrame['mime'] = $frame_mimetype;
1401
+ $parsedFrame['filename'] = $frame_filename;
1402
+ $parsedFrame['description'] = $frame_description;
1403
+ unset($parsedFrame['data']);
1404
+
1405
+
1406
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'PCNT')) || // 4.16 PCNT Play counter
1407
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'CNT'))) { // 4.17 CNT Play counter
1408
+ // There may only be one 'PCNT' frame in each tag.
1409
+ // When the counter reaches all one's, one byte is inserted in
1410
+ // front of the counter thus making the counter eight bits bigger
1411
+ // <Header for 'Play counter', ID: 'PCNT'>
1412
+ // Counter $xx xx xx xx (xx ...)
1413
+
1414
+ $parsedFrame['data'] = getid3_lib::BigEndian2Int($parsedFrame['data']);
1415
+
1416
+
1417
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'POPM')) || // 4.17 POPM Popularimeter
1418
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'POP'))) { // 4.18 POP Popularimeter
1419
+ // There may be more than one 'POPM' frame in each tag,
1420
+ // but only one with the same email address
1421
+ // <Header for 'Popularimeter', ID: 'POPM'>
1422
+ // Email to user <text string> $00
1423
+ // Rating $xx
1424
+ // Counter $xx xx xx xx (xx ...)
1425
+
1426
+ $frame_offset = 0;
1427
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1428
+ $frame_emailaddress = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1429
+ if (ord($frame_emailaddress) === 0) {
1430
+ $frame_emailaddress = '';
1431
+ }
1432
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1433
+ $frame_rating = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1434
+ $parsedFrame['counter'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset));
1435
+ $parsedFrame['email'] = $frame_emailaddress;
1436
+ $parsedFrame['rating'] = $frame_rating;
1437
+ unset($parsedFrame['data']);
1438
+
1439
+
1440
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'RBUF')) || // 4.18 RBUF Recommended buffer size
1441
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'BUF'))) { // 4.19 BUF Recommended buffer size
1442
+ // There may only be one 'RBUF' frame in each tag
1443
+ // <Header for 'Recommended buffer size', ID: 'RBUF'>
1444
+ // Buffer size $xx xx xx
1445
+ // Embedded info flag %0000000x
1446
+ // Offset to next tag $xx xx xx xx
1447
+
1448
+ $frame_offset = 0;
1449
+ $parsedFrame['buffersize'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 3));
1450
+ $frame_offset += 3;
1451
+
1452
+ $frame_embeddedinfoflags = getid3_lib::BigEndian2Bin(substr($parsedFrame['data'], $frame_offset++, 1));
1453
+ $parsedFrame['flags']['embededinfo'] = (bool) substr($frame_embeddedinfoflags, 7, 1);
1454
+ $parsedFrame['nexttagoffset'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 4));
1455
+ unset($parsedFrame['data']);
1456
+
1457
+
1458
+ } elseif (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'CRM')) { // 4.20 Encrypted meta frame (ID3v2.2 only)
1459
+ // There may be more than one 'CRM' frame in a tag,
1460
+ // but only one with the same 'owner identifier'
1461
+ // <Header for 'Encrypted meta frame', ID: 'CRM'>
1462
+ // Owner identifier <textstring> $00 (00)
1463
+ // Content/explanation <textstring> $00 (00)
1464
+ // Encrypted datablock <binary data>
1465
+
1466
+ $frame_offset = 0;
1467
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1468
+ $frame_ownerid = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1469
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1470
+
1471
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1472
+ $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1473
+ if (ord($frame_description) === 0) {
1474
+ $frame_description = '';
1475
+ }
1476
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1477
+
1478
+ $parsedFrame['ownerid'] = $frame_ownerid;
1479
+ $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset);
1480
+ $parsedFrame['description'] = $frame_description;
1481
+ unset($parsedFrame['data']);
1482
+
1483
+
1484
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'AENC')) || // 4.19 AENC Audio encryption
1485
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'CRA'))) { // 4.21 CRA Audio encryption
1486
+ // There may be more than one 'AENC' frames in a tag,
1487
+ // but only one with the same 'Owner identifier'
1488
+ // <Header for 'Audio encryption', ID: 'AENC'>
1489
+ // Owner identifier <text string> $00
1490
+ // Preview start $xx xx
1491
+ // Preview length $xx xx
1492
+ // Encryption info <binary data>
1493
+
1494
+ $frame_offset = 0;
1495
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1496
+ $frame_ownerid = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1497
+ if (ord($frame_ownerid) === 0) {
1498
+ $frame_ownerid == '';
1499
+ }
1500
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1501
+ $parsedFrame['ownerid'] = $frame_ownerid;
1502
+ $parsedFrame['previewstart'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 2));
1503
+ $frame_offset += 2;
1504
+ $parsedFrame['previewlength'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 2));
1505
+ $frame_offset += 2;
1506
+ $parsedFrame['encryptioninfo'] = (string) substr($parsedFrame['data'], $frame_offset);
1507
+ unset($parsedFrame['data']);
1508
+
1509
+
1510
+ } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'LINK')) || // 4.20 LINK Linked information
1511
+ (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'LNK'))) { // 4.22 LNK Linked information
1512
+ // There may be more than one 'LINK' frame in a tag,
1513
+ // but only one with the same contents
1514
+ // <Header for 'Linked information', ID: 'LINK'>
1515
+ // ID3v2.3+ => Frame identifier $xx xx xx xx
1516
+ // ID3v2.2 => Frame identifier $xx xx xx
1517
+ // URL <text string> $00
1518
+ // ID and additional data <text string(s)>
1519
+
1520
+ $frame_offset = 0;
1521
+ if ($id3v2_majorversion == 2) {
1522
+ $parsedFrame['frameid'] = substr($parsedFrame['data'], $frame_offset, 3);
1523
+ $frame_offset += 3;
1524
+ } else {
1525
+ $parsedFrame['frameid'] = substr($parsedFrame['data'], $frame_offset, 4);
1526
+ $frame_offset += 4;
1527
+ }
1528
+
1529
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1530
+ $frame_url = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1531
+ if (ord($frame_url) === 0) {
1532
+ $frame_url = '';
1533
+ }
1534
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1535
+ $parsedFrame['url'] = $frame_url;
1536
+
1537
+ $parsedFrame['additionaldata'] = (string) substr($parsedFrame['data'], $frame_offset);
1538
+ if (!empty($parsedFrame['framenameshort']) && $parsedFrame['url']) {
1539
+ $info['id3v2']['comments'][$parsedFrame['framenameshort']][] = utf8_encode($parsedFrame['url']);
1540
+ }
1541
+ unset($parsedFrame['data']);
1542
+
1543
+
1544
+ } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'POSS')) { // 4.21 POSS Position synchronisation frame (ID3v2.3+ only)
1545
+ // There may only be one 'POSS' frame in each tag
1546
+ // <Head for 'Position synchronisation', ID: 'POSS'>
1547
+ // Time stamp format $xx
1548
+ // Position $xx (xx ...)
1549
+
1550
+ $frame_offset = 0;
1551
+ $parsedFrame['timestampformat'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1552
+ $parsedFrame['position'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset));
1553
+ unset($parsedFrame['data']);
1554
+
1555
+
1556
+ } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'USER')) { // 4.22 USER Terms of use (ID3v2.3+ only)
1557
+ // There may be more than one 'Terms of use' frame in a tag,
1558
+ // but only one with the same 'Language'
1559
+ // <Header for 'Terms of use frame', ID: 'USER'>
1560
+ // Text encoding $xx
1561
+ // Language $xx xx xx
1562
+ // The actual text <text string according to encoding>
1563
+
1564
+ $frame_offset = 0;
1565
+ $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1566
+ if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) {
1567
+ $info['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding';
1568
+ }
1569
+ $frame_language = substr($parsedFrame['data'], $frame_offset, 3);
1570
+ $frame_offset += 3;
1571
+ $parsedFrame['language'] = $frame_language;
1572
+ $parsedFrame['languagename'] = $this->LanguageLookup($frame_language, false);
1573
+ $parsedFrame['encodingid'] = $frame_textencoding;
1574
+ $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding);
1575
+
1576
+ $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset);
1577
+ if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) {
1578
+ $info['id3v2']['comments'][$parsedFrame['framenameshort']][] = getid3_lib::iconv_fallback($parsedFrame['encoding'], $info['id3v2']['encoding'], $parsedFrame['data']);
1579
+ }
1580
+ unset($parsedFrame['data']);
1581
+
1582
+
1583
+ } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'OWNE')) { // 4.23 OWNE Ownership frame (ID3v2.3+ only)
1584
+ // There may only be one 'OWNE' frame in a tag
1585
+ // <Header for 'Ownership frame', ID: 'OWNE'>
1586
+ // Text encoding $xx
1587
+ // Price paid <text string> $00
1588
+ // Date of purch. <text string>
1589
+ // Seller <text string according to encoding>
1590
+
1591
+ $frame_offset = 0;
1592
+ $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1593
+ if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) {
1594
+ $info['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding';
1595
+ }
1596
+ $parsedFrame['encodingid'] = $frame_textencoding;
1597
+ $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding);
1598
+
1599
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1600
+ $frame_pricepaid = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1601
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1602
+
1603
+ $parsedFrame['pricepaid']['currencyid'] = substr($frame_pricepaid, 0, 3);
1604
+ $parsedFrame['pricepaid']['currency'] = $this->LookupCurrencyUnits($parsedFrame['pricepaid']['currencyid']);
1605
+ $parsedFrame['pricepaid']['value'] = substr($frame_pricepaid, 3);
1606
+
1607
+ $parsedFrame['purchasedate'] = substr($parsedFrame['data'], $frame_offset, 8);
1608
+ if (!$this->IsValidDateStampString($parsedFrame['purchasedate'])) {
1609
+ $parsedFrame['purchasedateunix'] = mktime (0, 0, 0, substr($parsedFrame['purchasedate'], 4, 2), substr($parsedFrame['purchasedate'], 6, 2), substr($parsedFrame['purchasedate'], 0, 4));
1610
+ }
1611
+ $frame_offset += 8;
1612
+
1613
+ $parsedFrame['seller'] = (string) substr($parsedFrame['data'], $frame_offset);
1614
+ unset($parsedFrame['data']);
1615
+
1616
+
1617
+ } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'COMR')) { // 4.24 COMR Commercial frame (ID3v2.3+ only)
1618
+ // There may be more than one 'commercial frame' in a tag,
1619
+ // but no two may be identical
1620
+ // <Header for 'Commercial frame', ID: 'COMR'>
1621
+ // Text encoding $xx
1622
+ // Price string <text string> $00
1623
+ // Valid until <text string>
1624
+ // Contact URL <text string> $00
1625
+ // Received as $xx
1626
+ // Name of seller <text string according to encoding> $00 (00)
1627
+ // Description <text string according to encoding> $00 (00)
1628
+ // Picture MIME type <string> $00
1629
+ // Seller logo <binary data>
1630
+
1631
+ $frame_offset = 0;
1632
+ $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1633
+ if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) {
1634
+ $info['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding';
1635
+ }
1636
+
1637
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1638
+ $frame_pricestring = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1639
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1640
+ $frame_rawpricearray = explode('/', $frame_pricestring);
1641
+ foreach ($frame_rawpricearray as $key => $val) {
1642
+ $frame_currencyid = substr($val, 0, 3);
1643
+ $parsedFrame['price'][$frame_currencyid]['currency'] = $this->LookupCurrencyUnits($frame_currencyid);
1644
+ $parsedFrame['price'][$frame_currencyid]['value'] = substr($val, 3);
1645
+ }
1646
+
1647
+ $frame_datestring = substr($parsedFrame['data'], $frame_offset, 8);
1648
+ $frame_offset += 8;
1649
+
1650
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1651
+ $frame_contacturl = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1652
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1653
+
1654
+ $frame_receivedasid = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1655
+
1656
+ $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset);
1657
+ if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) {
1658
+ $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00
1659
+ }
1660
+ $frame_sellername = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1661
+ if (ord($frame_sellername) === 0) {
1662
+ $frame_sellername = '';
1663
+ }
1664
+ $frame_offset = $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding));
1665
+
1666
+ $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset);
1667
+ if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) {
1668
+ $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00
1669
+ }
1670
+ $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1671
+ if (ord($frame_description) === 0) {
1672
+ $frame_description = '';
1673
+ }
1674
+ $frame_offset = $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding));
1675
+
1676
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1677
+ $frame_mimetype = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1678
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1679
+
1680
+ $frame_sellerlogo = substr($parsedFrame['data'], $frame_offset);
1681
+
1682
+ $parsedFrame['encodingid'] = $frame_textencoding;
1683
+ $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding);
1684
+
1685
+ $parsedFrame['pricevaliduntil'] = $frame_datestring;
1686
+ $parsedFrame['contacturl'] = $frame_contacturl;
1687
+ $parsedFrame['receivedasid'] = $frame_receivedasid;
1688
+ $parsedFrame['receivedas'] = $this->COMRReceivedAsLookup($frame_receivedasid);
1689
+ $parsedFrame['sellername'] = $frame_sellername;
1690
+ $parsedFrame['description'] = $frame_description;
1691
+ $parsedFrame['mime'] = $frame_mimetype;
1692
+ $parsedFrame['logo'] = $frame_sellerlogo;
1693
+ unset($parsedFrame['data']);
1694
+
1695
+
1696
+ } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'ENCR')) { // 4.25 ENCR Encryption method registration (ID3v2.3+ only)
1697
+ // There may be several 'ENCR' frames in a tag,
1698
+ // but only one containing the same symbol
1699
+ // and only one containing the same owner identifier
1700
+ // <Header for 'Encryption method registration', ID: 'ENCR'>
1701
+ // Owner identifier <text string> $00
1702
+ // Method symbol $xx
1703
+ // Encryption data <binary data>
1704
+
1705
+ $frame_offset = 0;
1706
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1707
+ $frame_ownerid = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1708
+ if (ord($frame_ownerid) === 0) {
1709
+ $frame_ownerid = '';
1710
+ }
1711
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1712
+
1713
+ $parsedFrame['ownerid'] = $frame_ownerid;
1714
+ $parsedFrame['methodsymbol'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1715
+ $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset);
1716
+
1717
+
1718
+ } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'GRID')) { // 4.26 GRID Group identification registration (ID3v2.3+ only)
1719
+
1720
+ // There may be several 'GRID' frames in a tag,
1721
+ // but only one containing the same symbol
1722
+ // and only one containing the same owner identifier
1723
+ // <Header for 'Group ID registration', ID: 'GRID'>
1724
+ // Owner identifier <text string> $00
1725
+ // Group symbol $xx
1726
+ // Group dependent data <binary data>
1727
+
1728
+ $frame_offset = 0;
1729
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1730
+ $frame_ownerid = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1731
+ if (ord($frame_ownerid) === 0) {
1732
+ $frame_ownerid = '';
1733
+ }
1734
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1735
+
1736
+ $parsedFrame['ownerid'] = $frame_ownerid;
1737
+ $parsedFrame['groupsymbol'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1738
+ $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset);
1739
+
1740
+
1741
+ } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'PRIV')) { // 4.27 PRIV Private frame (ID3v2.3+ only)
1742
+ // The tag may contain more than one 'PRIV' frame
1743
+ // but only with different contents
1744
+ // <Header for 'Private frame', ID: 'PRIV'>
1745
+ // Owner identifier <text string> $00
1746
+ // The private data <binary data>
1747
+
1748
+ $frame_offset = 0;
1749
+ $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset);
1750
+ $frame_ownerid = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset);
1751
+ if (ord($frame_ownerid) === 0) {
1752
+ $frame_ownerid = '';
1753
+ }
1754
+ $frame_offset = $frame_terminatorpos + strlen("\x00");
1755
+
1756
+ $parsedFrame['ownerid'] = $frame_ownerid;
1757
+ $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset);
1758
+
1759
+
1760
+ } elseif (($id3v2_majorversion >= 4) && ($parsedFrame['frame_name'] == 'SIGN')) { // 4.28 SIGN Signature frame (ID3v2.4+ only)
1761
+ // There may be more than one 'signature frame' in a tag,
1762
+ // but no two may be identical
1763
+ // <Header for 'Signature frame', ID: 'SIGN'>
1764
+ // Group symbol $xx
1765
+ // Signature <binary data>
1766
+
1767
+ $frame_offset = 0;
1768
+ $parsedFrame['groupsymbol'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1769
+ $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset);
1770
+
1771
+
1772
+ } elseif (($id3v2_majorversion >= 4) && ($parsedFrame['frame_name'] == 'SEEK')) { // 4.29 SEEK Seek frame (ID3v2.4+ only)
1773
+ // There may only be one 'seek frame' in a tag
1774
+ // <Header for 'Seek frame', ID: 'SEEK'>
1775
+ // Minimum offset to next tag $xx xx xx xx
1776
+
1777
+ $frame_offset = 0;
1778
+ $parsedFrame['data'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 4));
1779
+
1780
+
1781
+ } elseif (($id3v2_majorversion >= 4) && ($parsedFrame['frame_name'] == 'ASPI')) { // 4.30 ASPI Audio seek point index (ID3v2.4+ only)
1782
+ // There may only be one 'audio seek point index' frame in a tag
1783
+ // <Header for 'Seek Point Index', ID: 'ASPI'>
1784
+ // Indexed data start (S) $xx xx xx xx
1785
+ // Indexed data length (L) $xx xx xx xx
1786
+ // Number of index points (N) $xx xx
1787
+ // Bits per index point (b) $xx
1788
+ // Then for every index point the following data is included:
1789
+ // Fraction at index (Fi) $xx (xx)
1790
+
1791
+ $frame_offset = 0;
1792
+ $parsedFrame['datastart'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 4));
1793
+ $frame_offset += 4;
1794
+ $parsedFrame['indexeddatalength'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 4));
1795
+ $frame_offset += 4;
1796
+ $parsedFrame['indexpoints'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 2));
1797
+ $frame_offset += 2;
1798
+ $parsedFrame['bitsperpoint'] = ord(substr($parsedFrame['data'], $frame_offset++, 1));
1799
+ $frame_bytesperpoint = ceil($parsedFrame['bitsperpoint'] / 8);
1800
+ for ($i = 0; $i < $frame_indexpoints; $i++) {
1801
+ $parsedFrame['indexes'][$i] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesperpoint));
1802
+ $frame_offset += $frame_bytesperpoint;
1803
+ }
1804
+ unset($parsedFrame['data']);
1805
+
1806
+ } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'RGAD')) { // Replay Gain Adjustment
1807
+ // http://privatewww.essex.ac.uk/~djmrob/replaygain/file_format_id3v2.html
1808
+ // There may only be one 'RGAD' frame in a tag
1809
+ // <Header for 'Replay Gain Adjustment', ID: 'RGAD'>
1810
+ // Peak Amplitude $xx $xx $xx $xx
1811
+ // Radio Replay Gain Adjustment %aaabbbcd %dddddddd
1812
+ // Audiophile Replay Gain Adjustment %aaabbbcd %dddddddd
1813
+ // a - name code
1814
+ // b - originator code
1815
+ // c - sign bit
1816
+ // d - replay gain adjustment
1817
+
1818
+ $frame_offset = 0;
1819
+ $parsedFrame['peakamplitude'] = getid3_lib::BigEndian2Float(substr($parsedFrame['data'], $frame_offset, 4));
1820
+ $frame_offset += 4;
1821
+ $rg_track_adjustment = getid3_lib::Dec2Bin(substr($parsedFrame['data'], $frame_offset, 2));
1822
+ $frame_offset += 2;
1823
+ $rg_album_adjustment = getid3_lib::Dec2Bin(substr($parsedFrame['data'], $frame_offset, 2));
1824
+ $frame_offset += 2;
1825
+ $parsedFrame['raw']['track']['name'] = getid3_lib::Bin2Dec(substr($rg_track_adjustment, 0, 3));
1826
+ $parsedFrame['raw']['track']['originator'] = getid3_lib::Bin2Dec(substr($rg_track_adjustment, 3, 3));
1827
+ $parsedFrame['raw']['track']['signbit'] = getid3_lib::Bin2Dec(substr($rg_track_adjustment, 6, 1));
1828
+ $parsedFrame['raw']['track']['adjustment'] = getid3_lib::Bin2Dec(substr($rg_track_adjustment, 7, 9));
1829
+ $parsedFrame['raw']['album']['name'] = getid3_lib::Bin2Dec(substr($rg_album_adjustment, 0, 3));
1830
+ $parsedFrame['raw']['album']['originator'] = getid3_lib::Bin2Dec(substr($rg_album_adjustment, 3, 3));
1831
+ $parsedFrame['raw']['album']['signbit'] = getid3_lib::Bin2Dec(substr($rg_album_adjustment, 6, 1));
1832
+ $parsedFrame['raw']['album']['adjustment'] = getid3_lib::Bin2Dec(substr($rg_album_adjustment, 7, 9));
1833
+ $parsedFrame['track']['name'] = getid3_lib::RGADnameLookup($parsedFrame['raw']['track']['name']);
1834
+ $parsedFrame['track']['originator'] = getid3_lib::RGADoriginatorLookup($parsedFrame['raw']['track']['originator']);
1835
+ $parsedFrame['track']['adjustment'] = getid3_lib::RGADadjustmentLookup($parsedFrame['raw']['track']['adjustment'], $parsedFrame['raw']['track']['signbit']);
1836
+ $parsedFrame['album']['name'] = getid3_lib::RGADnameLookup($parsedFrame['raw']['album']['name']);
1837
+ $parsedFrame['album']['originator'] = getid3_lib::RGADoriginatorLookup($parsedFrame['raw']['album']['originator']);
1838
+ $parsedFrame['album']['adjustment'] = getid3_lib::RGADadjustmentLookup($parsedFrame['raw']['album']['adjustment'], $parsedFrame['raw']['album']['signbit']);
1839
+
1840
+ $info['replay_gain']['track']['peak'] = $parsedFrame['peakamplitude'];
1841
+ $info['replay_gain']['track']['originator'] = $parsedFrame['track']['originator'];
1842
+ $info['replay_gain']['track']['adjustment'] = $parsedFrame['track']['adjustment'];
1843
+ $info['replay_gain']['album']['originator'] = $parsedFrame['album']['originator'];
1844
+ $info['replay_gain']['album']['adjustment'] = $parsedFrame['album']['adjustment'];
1845
+
1846
+ unset($parsedFrame['data']);
1847
+
1848
+ }
1849
+
1850
+ return true;
1851
+ }
1852
+
1853
+
1854
+ function DeUnsynchronise($data) {
1855
+ return str_replace("\xFF\x00", "\xFF", $data);
1856
+ }
1857
+
1858
+ function LookupExtendedHeaderRestrictionsTagSizeLimits($index) {
1859
+ static $LookupExtendedHeaderRestrictionsTagSizeLimits = array(
1860
+ 0x00 => 'No more than 128 frames and 1 MB total tag size',
1861
+ 0x01 => 'No more than 64 frames and 128 KB total tag size',
1862
+ 0x02 => 'No more than 32 frames and 40 KB total tag size',
1863
+ 0x03 => 'No more than 32 frames and 4 KB total tag size',
1864
+ );
1865
+ return (isset($LookupExtendedHeaderRestrictionsTagSizeLimits[$index]) ? $LookupExtendedHeaderRestrictionsTagSizeLimits[$index] : '');
1866
+ }
1867
+
1868
+ function LookupExtendedHeaderRestrictionsTextEncodings($index) {
1869
+ static $LookupExtendedHeaderRestrictionsTextEncodings = array(
1870
+ 0x00 => 'No restrictions',
1871
+ 0x01 => 'Strings are only encoded with ISO-8859-1 or UTF-8',
1872
+ );
1873
+ return (isset($LookupExtendedHeaderRestrictionsTextEncodings[$index]) ? $LookupExtendedHeaderRestrictionsTextEncodings[$index] : '');
1874
+ }
1875
+
1876
+ function LookupExtendedHeaderRestrictionsTextFieldSize($index) {
1877
+ static $LookupExtendedHeaderRestrictionsTextFieldSize = array(
1878
+ 0x00 => 'No restrictions',
1879
+ 0x01 => 'No string is longer than 1024 characters',
1880
+ 0x02 => 'No string is longer than 128 characters',
1881
+ 0x03 => 'No string is longer than 30 characters',
1882
+ );
1883
+ return (isset($LookupExtendedHeaderRestrictionsTextFieldSize[$index]) ? $LookupExtendedHeaderRestrictionsTextFieldSize[$index] : '');
1884
+ }
1885
+
1886
+ function LookupExtendedHeaderRestrictionsImageEncoding($index) {
1887
+ static $LookupExtendedHeaderRestrictionsImageEncoding = array(
1888
+ 0x00 => 'No restrictions',
1889
+ 0x01 => 'Images are encoded only with PNG or JPEG',
1890
+ );
1891
+ return (isset($LookupExtendedHeaderRestrictionsImageEncoding[$index]) ? $LookupExtendedHeaderRestrictionsImageEncoding[$index] : '');
1892
+ }
1893
+
1894
+ function LookupExtendedHeaderRestrictionsImageSizeSize($index) {
1895
+ static $LookupExtendedHeaderRestrictionsImageSizeSize = array(
1896
+ 0x00 => 'No restrictions',
1897
+ 0x01 => 'All images are 256x256 pixels or smaller',
1898
+ 0x02 => 'All images are 64x64 pixels or smaller',
1899
+ 0x03 => 'All images are exactly 64x64 pixels, unless required otherwise',
1900
+ );
1901
+ return (isset($LookupExtendedHeaderRestrictionsImageSizeSize[$index]) ? $LookupExtendedHeaderRestrictionsImageSizeSize[$index] : '');
1902
+ }
1903
+
1904
+ function LookupCurrencyUnits($currencyid) {
1905
+
1906
+ $begin = __LINE__;
1907
+
1908
+ /** This is not a comment!
1909
+
1910
+
1911
+ AED Dirhams
1912
+ AFA Afghanis
1913
+ ALL Leke
1914
+ AMD Drams
1915
+ ANG Guilders
1916
+ AOA Kwanza
1917
+ ARS Pesos
1918
+ ATS Schillings
1919
+ AUD Dollars
1920
+ AWG Guilders
1921
+ AZM Manats
1922
+ BAM Convertible Marka
1923
+ BBD Dollars
1924
+ BDT Taka
1925
+ BEF Francs
1926
+ BGL Leva
1927
+ BHD Dinars
1928
+ BIF Francs
1929
+ BMD Dollars
1930
+ BND Dollars
1931
+ BOB Bolivianos
1932
+ BRL Brazil Real
1933
+ BSD Dollars
1934
+ BTN Ngultrum
1935
+ BWP Pulas
1936
+ BYR Rubles
1937
+ BZD Dollars
1938
+ CAD Dollars
1939
+ CDF Congolese Francs
1940
+ CHF Francs
1941
+ CLP Pesos
1942
+ CNY Yuan Renminbi
1943
+ COP Pesos
1944
+ CRC Colones
1945
+ CUP Pesos
1946
+ CVE Escudos
1947
+ CYP Pounds
1948
+ CZK Koruny
1949
+ DEM Deutsche Marks
1950
+ DJF Francs
1951
+ DKK Kroner
1952
+ DOP Pesos
1953
+ DZD Algeria Dinars
1954
+ EEK Krooni
1955
+ EGP Pounds
1956
+ ERN Nakfa
1957
+ ESP Pesetas
1958
+ ETB Birr
1959
+ EUR Euro
1960
+ FIM Markkaa
1961
+ FJD Dollars
1962
+ FKP Pounds
1963
+ FRF Francs
1964
+ GBP Pounds
1965
+ GEL Lari
1966
+ GGP Pounds
1967
+ GHC Cedis
1968
+ GIP Pounds
1969
+ GMD Dalasi
1970
+ GNF Francs
1971
+ GRD Drachmae
1972
+ GTQ Quetzales
1973
+ GYD Dollars
1974
+ HKD Dollars
1975
+ HNL Lempiras
1976
+ HRK Kuna
1977
+ HTG Gourdes
1978
+ HUF Forints
1979
+ IDR Rupiahs
1980
+ IEP Pounds
1981
+ ILS New Shekels
1982
+ IMP Pounds
1983
+ INR Rupees
1984
+ IQD Dinars
1985
+ IRR Rials
1986
+ ISK Kronur
1987
+ ITL Lire
1988
+ JEP Pounds
1989
+ JMD Dollars
1990
+ JOD Dinars
1991
+ JPY Yen
1992
+ KES Shillings
1993
+ KGS Soms
1994
+ KHR Riels
1995
+ KMF Francs
1996
+ KPW Won
1997
+ KWD Dinars
1998
+ KYD Dollars
1999
+ KZT Tenge
2000
+ LAK Kips
2001
+ LBP Pounds
2002
+ LKR Rupees
2003
+ LRD Dollars
2004
+ LSL Maloti
2005
+ LTL Litai
2006
+ LUF Francs
2007
+ LVL Lati
2008
+ LYD Dinars
2009
+ MAD Dirhams
2010
+ MDL Lei
2011
+ MGF Malagasy Francs
2012
+ MKD Denars
2013
+ MMK Kyats
2014
+ MNT Tugriks
2015
+ MOP Patacas
2016
+ MRO Ouguiyas
2017
+ MTL Liri
2018
+ MUR Rupees
2019
+ MVR Rufiyaa
2020
+ MWK Kwachas
2021
+ MXN Pesos
2022
+ MYR Ringgits
2023
+ MZM Meticais
2024
+ NAD Dollars
2025
+ NGN Nairas
2026
+ NIO Gold Cordobas
2027
+ NLG Guilders
2028
+ NOK Krone
2029
+ NPR Nepal Rupees
2030
+ NZD Dollars
2031
+ OMR Rials
2032
+ PAB Balboa
2033
+ PEN Nuevos Soles
2034
+ PGK Kina
2035
+ PHP Pesos
2036
+ PKR Rupees
2037
+ PLN Zlotych
2038
+ PTE Escudos
2039
+ PYG Guarani
2040
+ QAR Rials
2041
+ ROL Lei
2042
+ RUR Rubles
2043
+ RWF Rwanda Francs
2044
+ SAR Riyals
2045
+ SBD Dollars
2046
+ SCR Rupees
2047
+ SDD Dinars
2048
+ SEK Kronor
2049
+ SGD Dollars
2050
+ SHP Pounds
2051
+ SIT Tolars
2052
+ SKK Koruny
2053
+ SLL Leones
2054
+ SOS Shillings
2055
+ SPL Luigini
2056
+ SRG Guilders
2057
+ STD Dobras
2058
+ SVC Colones
2059
+ SYP Pounds
2060
+ SZL Emalangeni
2061
+ THB Baht
2062
+ TJR Rubles
2063
+ TMM Manats
2064
+ TND Dinars
2065
+ TOP Pa'anga
2066
+ TRL Liras
2067
+ TTD Dollars
2068
+ TVD Tuvalu Dollars
2069
+ TWD New Dollars
2070
+ TZS Shillings
2071
+ UAH Hryvnia
2072
+ UGX Shillings
2073
+ USD Dollars
2074
+ UYU Pesos
2075
+ UZS Sums
2076
+ VAL Lire
2077
+ VEB Bolivares
2078
+ VND Dong
2079
+ VUV Vatu
2080
+ WST Tala
2081
+ XAF Francs
2082
+ XAG Ounces
2083
+ XAU Ounces
2084
+ XCD Dollars
2085
+ XDR Special Drawing Rights
2086
+ XPD Ounces
2087
+ XPF Francs
2088
+ XPT Ounces
2089
+ YER Rials
2090
+ YUM New Dinars
2091
+ ZAR Rand
2092
+ ZMK Kwacha
2093
+ ZWD Zimbabwe Dollars
2094
+
2095
+ */
2096
+
2097
+ return getid3_lib::EmbeddedLookup($currencyid, $begin, __LINE__, __FILE__, 'id3v2-currency-units');
2098
+ }
2099
+
2100
+
2101
+ function LookupCurrencyCountry($currencyid) {
2102
+
2103
+ $begin = __LINE__;
2104
+
2105
+ /** This is not a comment!
2106
+
2107
+ AED United Arab Emirates
2108
+ AFA Afghanistan
2109
+ ALL Albania
2110
+ AMD Armenia
2111
+ ANG Netherlands Antilles
2112
+ AOA Angola
2113
+ ARS Argentina
2114
+ ATS Austria
2115
+ AUD Australia
2116
+ AWG Aruba
2117
+ AZM Azerbaijan
2118
+ BAM Bosnia and Herzegovina
2119
+ BBD Barbados
2120
+ BDT Bangladesh
2121
+ BEF Belgium
2122
+ BGL Bulgaria
2123
+ BHD Bahrain
2124
+ BIF Burundi
2125
+ BMD Bermuda
2126
+ BND Brunei Darussalam
2127
+ BOB Bolivia
2128
+ BRL Brazil
2129
+ BSD Bahamas
2130
+ BTN Bhutan
2131
+ BWP Botswana
2132
+ BYR Belarus
2133
+ BZD Belize
2134
+ CAD Canada
2135
+ CDF Congo/Kinshasa
2136
+ CHF Switzerland
2137
+ CLP Chile
2138
+ CNY China
2139
+ COP Colombia
2140
+ CRC Costa Rica
2141
+ CUP Cuba
2142
+ CVE Cape Verde
2143
+ CYP Cyprus
2144
+ CZK Czech Republic
2145
+ DEM Germany
2146
+ DJF Djibouti
2147
+ DKK Denmark
2148
+ DOP Dominican Republic
2149
+ DZD Algeria
2150
+ EEK Estonia
2151
+ EGP Egypt
2152
+ ERN Eritrea
2153
+ ESP Spain
2154
+ ETB Ethiopia
2155
+ EUR Euro Member Countries
2156
+ FIM Finland
2157
+ FJD Fiji
2158
+ FKP Falkland Islands (Malvinas)
2159
+ FRF France
2160
+ GBP United Kingdom
2161
+ GEL Georgia
2162
+ GGP Guernsey
2163
+ GHC Ghana
2164
+ GIP Gibraltar
2165
+ GMD Gambia
2166
+ GNF Guinea
2167
+ GRD Greece
2168
+ GTQ Guatemala
2169
+ GYD Guyana
2170
+ HKD Hong Kong
2171
+ HNL Honduras
2172
+ HRK Croatia
2173
+ HTG Haiti
2174
+ HUF Hungary
2175
+ IDR Indonesia
2176
+ IEP Ireland (Eire)
2177
+ ILS Israel
2178
+ IMP Isle of Man
2179
+ INR India
2180
+ IQD Iraq
2181
+ IRR Iran
2182
+ ISK Iceland
2183
+ ITL Italy
2184
+ JEP Jersey
2185
+ JMD Jamaica
2186
+ JOD Jordan
2187
+ JPY Japan
2188
+ KES Kenya
2189
+ KGS Kyrgyzstan
2190
+ KHR Cambodia
2191
+ KMF Comoros
2192
+ KPW Korea
2193
+ KWD Kuwait
2194
+ KYD Cayman Islands
2195
+ KZT Kazakstan
2196
+ LAK Laos
2197
+ LBP Lebanon
2198
+ LKR Sri Lanka
2199
+ LRD Liberia
2200
+ LSL Lesotho
2201
+ LTL Lithuania
2202
+ LUF Luxembourg
2203
+ LVL Latvia
2204
+ LYD Libya
2205
+ MAD Morocco
2206
+ MDL Moldova
2207
+ MGF Madagascar
2208
+ MKD Macedonia
2209
+ MMK Myanmar (Burma)
2210
+ MNT Mongolia
2211
+ MOP Macau
2212
+ MRO Mauritania
2213
+ MTL Malta
2214
+ MUR Mauritius
2215
+ MVR Maldives (Maldive Islands)
2216
+ MWK Malawi
2217
+ MXN Mexico
2218
+ MYR Malaysia
2219
+ MZM Mozambique
2220
+ NAD Namibia
2221
+ NGN Nigeria
2222
+ NIO Nicaragua
2223
+ NLG Netherlands (Holland)
2224
+ NOK Norway
2225
+ NPR Nepal
2226
+ NZD New Zealand
2227
+ OMR Oman
2228
+ PAB Panama
2229
+ PEN Peru
2230
+ PGK Papua New Guinea
2231
+ PHP Philippines
2232
+ PKR Pakistan
2233
+ PLN Poland
2234
+ PTE Portugal
2235
+ PYG Paraguay
2236
+ QAR Qatar
2237
+ ROL Romania
2238
+ RUR Russia
2239
+ RWF Rwanda
2240
+ SAR Saudi Arabia
2241
+ SBD Solomon Islands
2242
+ SCR Seychelles
2243
+ SDD Sudan
2244
+ SEK Sweden
2245
+ SGD Singapore
2246
+ SHP Saint Helena
2247
+ SIT Slovenia
2248
+ SKK Slovakia
2249
+ SLL Sierra Leone
2250
+ SOS Somalia
2251
+ SPL Seborga
2252
+ SRG Suriname
2253
+ STD S�o Tome and Principe
2254
+ SVC El Salvador
2255
+ SYP Syria
2256
+ SZL Swaziland
2257
+ THB Thailand
2258
+ TJR Tajikistan
2259
+ TMM Turkmenistan
2260
+ TND Tunisia
2261
+ TOP Tonga
2262
+ TRL Turkey
2263
+ TTD Trinidad and Tobago
2264
+ TVD Tuvalu
2265
+ TWD Taiwan
2266
+ TZS Tanzania
2267
+ UAH Ukraine
2268
+ UGX Uganda
2269
+ USD United States of America
2270
+ UYU Uruguay
2271
+ UZS Uzbekistan
2272
+ VAL Vatican City
2273
+ VEB Venezuela
2274
+ VND Viet Nam
2275
+ VUV Vanuatu
2276
+ WST Samoa
2277
+ XAF Communaut� Financi�re Africaine
2278
+ XAG Silver
2279
+ XAU Gold
2280
+ XCD East Caribbean
2281
+ XDR International Monetary Fund
2282
+ XPD Palladium
2283
+ XPF Comptoirs Fran�ais du Pacifique
2284
+ XPT Platinum
2285
+ YER Yemen
2286
+ YUM Yugoslavia
2287
+ ZAR South Africa
2288
+ ZMK Zambia
2289
+ ZWD Zimbabwe
2290
+
2291
+ */
2292
+
2293
+ return getid3_lib::EmbeddedLookup($currencyid, $begin, __LINE__, __FILE__, 'id3v2-currency-country');
2294
+ }
2295
+
2296
+
2297
+
2298
+ static function LanguageLookup($languagecode, $casesensitive=false) {
2299
+
2300
+ if (!$casesensitive) {
2301
+ $languagecode = strtolower($languagecode);
2302
+ }
2303
+
2304
+ // http://www.id3.org/id3v2.4.0-structure.txt
2305
+ // [4. ID3v2 frame overview]
2306
+ // The three byte language field, present in several frames, is used to
2307
+ // describe the language of the frame's content, according to ISO-639-2
2308
+ // [ISO-639-2]. The language should be represented in lower case. If the
2309
+ // language is not known the string "XXX" should be used.
2310
+
2311
+
2312
+ // ISO 639-2 - http://www.id3.org/iso639-2.html
2313
+
2314
+ $begin = __LINE__;
2315
+
2316
+ /** This is not a comment!
2317
+
2318
+ XXX unknown
2319
+ xxx unknown
2320
+ aar Afar
2321
+ abk Abkhazian
2322
+ ace Achinese
2323
+ ach Acoli
2324
+ ada Adangme
2325
+ afa Afro-Asiatic (Other)
2326
+ afh Afrihili
2327
+ afr Afrikaans
2328
+ aka Akan
2329
+ akk Akkadian
2330
+ alb Albanian
2331
+ ale Aleut
2332
+ alg Algonquian Languages
2333
+ amh Amharic
2334
+ ang English, Old (ca. 450-1100)
2335
+ apa Apache Languages
2336
+ ara Arabic
2337
+ arc Aramaic
2338
+ arm Armenian
2339
+ arn Araucanian
2340
+ arp Arapaho
2341
+ art Artificial (Other)
2342
+ arw Arawak
2343
+ asm Assamese
2344
+ ath Athapascan Languages
2345
+ ava Avaric
2346
+ ave Avestan
2347
+ awa Awadhi
2348
+ aym Aymara
2349
+ aze Azerbaijani
2350
+ bad Banda
2351
+ bai Bamileke Languages
2352
+ bak Bashkir
2353
+ bal Baluchi
2354
+ bam Bambara
2355
+ ban Balinese
2356
+ baq Basque
2357
+ bas Basa
2358
+ bat Baltic (Other)
2359
+ bej Beja
2360
+ bel Byelorussian
2361
+ bem Bemba
2362
+ ben Bengali
2363
+ ber Berber (Other)
2364
+ bho Bhojpuri
2365
+ bih Bihari
2366
+ bik Bikol
2367
+ bin Bini
2368
+ bis Bislama
2369
+ bla Siksika
2370
+ bnt Bantu (Other)
2371
+ bod Tibetan
2372
+ bra Braj
2373
+ bre Breton
2374
+ bua Buriat
2375
+ bug Buginese
2376
+ bul Bulgarian
2377
+ bur Burmese
2378
+ cad Caddo
2379
+ cai Central American Indian (Other)
2380
+ car Carib
2381
+ cat Catalan
2382
+ cau Caucasian (Other)
2383
+ ceb Cebuano
2384
+ cel Celtic (Other)
2385
+ ces Czech
2386
+ cha Chamorro
2387
+ chb Chibcha
2388
+ che Chechen
2389
+ chg Chagatai
2390
+ chi Chinese
2391
+ chm Mari
2392
+ chn Chinook jargon
2393
+ cho Choctaw
2394
+ chr Cherokee
2395
+ chu Church Slavic
2396
+ chv Chuvash
2397
+ chy Cheyenne
2398
+ cop Coptic
2399
+ cor Cornish
2400
+ cos Corsican
2401
+ cpe Creoles and Pidgins, English-based (Other)
2402
+ cpf Creoles and Pidgins, French-based (Other)
2403
+ cpp Creoles and Pidgins, Portuguese-based (Other)
2404
+ cre Cree
2405
+ crp Creoles and Pidgins (Other)
2406
+ cus Cushitic (Other)
2407
+ cym Welsh
2408
+ cze Czech
2409
+ dak Dakota
2410
+ dan Danish
2411
+ del Delaware
2412
+ deu German
2413
+ din Dinka
2414
+ div Divehi
2415
+ doi Dogri
2416
+ dra Dravidian (Other)
2417
+ dua Duala
2418
+ dum Dutch, Middle (ca. 1050-1350)
2419
+ dut Dutch
2420
+ dyu Dyula
2421
+ dzo Dzongkha
2422
+ efi Efik
2423
+ egy Egyptian (Ancient)
2424
+ eka Ekajuk
2425
+ ell Greek, Modern (1453-)
2426
+ elx Elamite
2427
+ eng English
2428
+ enm English, Middle (ca. 1100-1500)
2429
+ epo Esperanto
2430
+ esk Eskimo (Other)
2431
+ esl Spanish
2432
+ est Estonian
2433
+ eus Basque
2434
+ ewe Ewe
2435
+ ewo Ewondo
2436
+ fan Fang
2437
+ fao Faroese
2438
+ fas Persian
2439
+ fat Fanti
2440
+ fij Fijian
2441
+ fin Finnish
2442
+ fiu Finno-Ugrian (Other)
2443
+ fon Fon
2444
+ fra French
2445
+ fre French
2446
+ frm French, Middle (ca. 1400-1600)
2447
+ fro French, Old (842- ca. 1400)
2448
+ fry Frisian
2449
+ ful Fulah
2450
+ gaa Ga
2451
+ gae Gaelic (Scots)
2452
+ gai Irish
2453
+ gay Gayo
2454
+ gdh Gaelic (Scots)
2455
+ gem Germanic (Other)
2456
+ geo Georgian
2457
+ ger German
2458
+ gez Geez
2459
+ gil Gilbertese
2460
+ glg Gallegan
2461
+ gmh German, Middle High (ca. 1050-1500)
2462
+ goh German, Old High (ca. 750-1050)
2463
+ gon Gondi
2464
+ got Gothic
2465
+ grb Grebo
2466
+ grc Greek, Ancient (to 1453)
2467
+ gre Greek, Modern (1453-)
2468
+ grn Guarani
2469
+ guj Gujarati
2470
+ hai Haida
2471
+ hau Hausa
2472
+ haw Hawaiian
2473
+ heb Hebrew
2474
+ her Herero
2475
+ hil Hiligaynon
2476
+ him Himachali
2477
+ hin Hindi
2478
+ hmo Hiri Motu
2479
+ hun Hungarian
2480
+ hup Hupa
2481
+ hye Armenian
2482
+ iba Iban
2483
+ ibo Igbo
2484
+ ice Icelandic
2485
+ ijo Ijo
2486
+ iku Inuktitut
2487
+ ilo Iloko
2488
+ ina Interlingua (International Auxiliary language Association)
2489
+ inc Indic (Other)
2490
+ ind Indonesian
2491
+ ine Indo-European (Other)
2492
+ ine Interlingue
2493
+ ipk Inupiak
2494
+ ira Iranian (Other)
2495
+ iri Irish
2496
+ iro Iroquoian uages
2497
+ isl Icelandic
2498
+ ita Italian
2499
+ jav Javanese
2500
+ jaw Javanese
2501
+ jpn Japanese
2502
+ jpr Judeo-Persian
2503
+ jrb Judeo-Arabic
2504
+ kaa Kara-Kalpak
2505
+ kab Kabyle
2506
+ kac Kachin
2507
+ kal Greenlandic
2508
+ kam Kamba
2509
+ kan Kannada
2510
+ kar Karen
2511
+ kas Kashmiri
2512
+ kat Georgian
2513
+ kau Kanuri
2514
+ kaw Kawi
2515
+ kaz Kazakh
2516
+ kha Khasi
2517
+ khi Khoisan (Other)
2518
+ khm Khmer
2519
+ kho Khotanese
2520
+ kik Kikuyu
2521
+ kin Kinyarwanda
2522
+ kir Kirghiz
2523
+ kok Konkani
2524
+ kom Komi
2525
+ kon Kongo
2526
+ kor Korean
2527
+ kpe Kpelle
2528
+ kro Kru
2529
+ kru Kurukh
2530
+ kua Kuanyama
2531
+ kum Kumyk
2532
+ kur Kurdish
2533
+ kus Kusaie
2534
+ kut Kutenai
2535
+ lad Ladino
2536
+ lah Lahnda
2537
+ lam Lamba
2538
+ lao Lao
2539
+ lat Latin
2540
+ lav Latvian
2541
+ lez Lezghian
2542
+ lin Lingala
2543
+ lit Lithuanian
2544
+ lol Mongo
2545
+ loz Lozi
2546
+ ltz Letzeburgesch
2547
+ lub Luba-Katanga
2548
+ lug Ganda
2549
+ lui Luiseno
2550
+ lun Lunda
2551
+ luo Luo (Kenya and Tanzania)
2552
+ mac Macedonian
2553
+ mad Madurese
2554
+ mag Magahi
2555
+ mah Marshall
2556
+ mai Maithili
2557
+ mak Macedonian
2558
+ mak Makasar
2559
+ mal Malayalam
2560
+ man Mandingo
2561
+ mao Maori
2562
+ map Austronesian (Other)
2563
+ mar Marathi
2564
+ mas Masai
2565
+ max Manx
2566
+ may Malay
2567
+ men Mende
2568
+ mga Irish, Middle (900 - 1200)
2569
+ mic Micmac
2570
+ min Minangkabau
2571
+ mis Miscellaneous (Other)
2572
+ mkh Mon-Kmer (Other)
2573
+ mlg Malagasy
2574
+ mlt Maltese
2575
+ mni Manipuri
2576
+ mno Manobo Languages
2577
+ moh Mohawk
2578
+ mol Moldavian
2579
+ mon Mongolian
2580
+ mos Mossi
2581
+ mri Maori
2582
+ msa Malay
2583
+ mul Multiple Languages
2584
+ mun Munda Languages
2585
+ mus Creek
2586
+ mwr Marwari
2587
+ mya Burmese
2588
+ myn Mayan Languages
2589
+ nah Aztec
2590
+ nai North American Indian (Other)
2591
+ nau Nauru
2592
+ nav Navajo
2593
+ nbl Ndebele, South
2594
+ nde Ndebele, North
2595
+ ndo Ndongo
2596
+ nep Nepali
2597
+ new Newari
2598
+ nic Niger-Kordofanian (Other)
2599
+ niu Niuean
2600
+ nla Dutch
2601
+ nno Norwegian (Nynorsk)
2602
+ non Norse, Old
2603
+ nor Norwegian
2604
+ nso Sotho, Northern
2605
+ nub Nubian Languages
2606
+ nya Nyanja
2607
+ nym Nyamwezi
2608
+ nyn Nyankole
2609
+ nyo Nyoro
2610
+ nzi Nzima
2611
+ oci Langue d'Oc (post 1500)
2612
+ oji Ojibwa
2613
+ ori Oriya
2614
+ orm Oromo
2615
+ osa Osage
2616
+ oss Ossetic
2617
+ ota Turkish, Ottoman (1500 - 1928)
2618
+ oto Otomian Languages
2619
+ paa Papuan-Australian (Other)
2620
+ pag Pangasinan
2621
+ pal Pahlavi
2622
+ pam Pampanga
2623
+ pan Panjabi
2624
+ pap Papiamento
2625
+ pau Palauan
2626
+ peo Persian, Old (ca 600 - 400 B.C.)
2627
+ per Persian
2628
+ phn Phoenician
2629
+ pli Pali
2630
+ pol Polish
2631
+ pon Ponape
2632
+ por Portuguese
2633
+ pra Prakrit uages
2634
+ pro Provencal, Old (to 1500)
2635
+ pus Pushto
2636
+ que Quechua
2637
+ raj Rajasthani
2638
+ rar Rarotongan
2639
+ roa Romance (Other)
2640
+ roh Rhaeto-Romance
2641
+ rom Romany
2642
+ ron Romanian
2643
+ rum Romanian
2644
+ run Rundi
2645
+ rus Russian
2646
+ sad Sandawe
2647
+ sag Sango
2648
+ sah Yakut
2649
+ sai South American Indian (Other)
2650
+ sal Salishan Languages
2651
+ sam Samaritan Aramaic
2652
+ san Sanskrit
2653
+ sco Scots
2654
+ scr Serbo-Croatian
2655
+ sel Selkup
2656
+ sem Semitic (Other)
2657
+ sga Irish, Old (to 900)
2658
+ shn Shan
2659
+ sid Sidamo
2660
+ sin Singhalese
2661
+ sio Siouan Languages
2662
+ sit Sino-Tibetan (Other)
2663
+ sla Slavic (Other)
2664
+ slk Slovak
2665
+ slo Slovak
2666
+ slv Slovenian
2667
+ smi Sami Languages
2668
+ smo Samoan
2669
+ sna Shona
2670
+ snd Sindhi
2671
+ sog Sogdian
2672
+ som Somali
2673
+ son Songhai
2674
+ sot Sotho, Southern
2675
+ spa Spanish
2676
+ sqi Albanian
2677
+ srd Sardinian
2678
+ srr Serer
2679
+ ssa Nilo-Saharan (Other)
2680
+ ssw Siswant
2681
+ ssw Swazi
2682
+ suk Sukuma
2683
+ sun Sudanese
2684
+ sus Susu
2685
+ sux Sumerian
2686
+ sve Swedish
2687
+ swa Swahili
2688
+ swe Swedish
2689
+ syr Syriac
2690
+ tah Tahitian
2691
+ tam Tamil
2692
+ tat Tatar
2693
+ tel Telugu
2694
+ tem Timne
2695
+ ter Tereno
2696
+ tgk Tajik
2697
+ tgl Tagalog
2698
+ tha Thai
2699
+ tib Tibetan
2700
+ tig Tigre
2701
+ tir Tigrinya
2702
+ tiv Tivi
2703
+ tli Tlingit
2704
+ tmh Tamashek
2705
+ tog Tonga (Nyasa)
2706
+ ton Tonga (Tonga Islands)
2707
+ tru Truk
2708
+ tsi Tsimshian
2709
+ tsn Tswana
2710
+ tso Tsonga
2711
+ tuk Turkmen
2712
+ tum Tumbuka
2713
+ tur Turkish
2714
+ tut Altaic (Other)
2715
+ twi Twi
2716
+ tyv Tuvinian
2717
+ uga Ugaritic
2718
+ uig Uighur
2719
+ ukr Ukrainian
2720
+ umb Umbundu
2721
+ und Undetermined
2722
+ urd Urdu
2723
+ uzb Uzbek
2724
+ vai Vai
2725
+ ven Venda
2726
+ vie Vietnamese
2727
+ vol Volap�k
2728
+ vot Votic
2729
+ wak Wakashan Languages
2730
+ wal Walamo
2731
+ war Waray
2732
+ was Washo
2733
+ wel Welsh
2734
+ wen Sorbian Languages
2735
+ wol Wolof
2736
+ xho Xhosa
2737
+ yao Yao
2738
+ yap Yap
2739
+ yid Yiddish
2740
+ yor Yoruba
2741
+ zap Zapotec
2742
+ zen Zenaga
2743
+ zha Zhuang
2744
+ zho Chinese
2745
+ zul Zulu
2746
+ zun Zuni
2747
+
2748
+ */
2749
+
2750
+ return getid3_lib::EmbeddedLookup($languagecode, $begin, __LINE__, __FILE__, 'id3v2-languagecode');
2751
+ }
2752
+
2753
+
2754
+ static function ETCOEventLookup($index) {
2755
+ if (($index >= 0x17) && ($index <= 0xDF)) {
2756
+ return 'reserved for future use';
2757
+ }
2758
+ if (($index >= 0xE0) && ($index <= 0xEF)) {
2759
+ return 'not predefined synch 0-F';
2760
+ }
2761
+ if (($index >= 0xF0) && ($index <= 0xFC)) {
2762
+ return 'reserved for future use';
2763
+ }
2764
+
2765
+ static $EventLookup = array(
2766
+ 0x00 => 'padding (has no meaning)',
2767
+ 0x01 => 'end of initial silence',
2768
+ 0x02 => 'intro start',
2769
+ 0x03 => 'main part start',
2770
+ 0x04 => 'outro start',
2771
+ 0x05 => 'outro end',
2772
+ 0x06 => 'verse start',
2773
+ 0x07 => 'refrain start',
2774
+ 0x08 => 'interlude start',
2775
+ 0x09 => 'theme start',
2776
+ 0x0A => 'variation start',
2777
+ 0x0B => 'key change',
2778
+ 0x0C => 'time change',
2779
+ 0x0D => 'momentary unwanted noise (Snap, Crackle & Pop)',
2780
+ 0x0E => 'sustained noise',
2781
+ 0x0F => 'sustained noise end',
2782
+ 0x10 => 'intro end',
2783
+ 0x11 => 'main part end',
2784
+ 0x12 => 'verse end',
2785
+ 0x13 => 'refrain end',
2786
+ 0x14 => 'theme end',
2787
+ 0x15 => 'profanity',
2788
+ 0x16 => 'profanity end',
2789
+ 0xFD => 'audio end (start of silence)',
2790
+ 0xFE => 'audio file ends',
2791
+ 0xFF => 'one more byte of events follows'
2792
+ );
2793
+
2794
+ return (isset($EventLookup[$index]) ? $EventLookup[$index] : '');
2795
+ }
2796
+
2797
+ static function SYTLContentTypeLookup($index) {
2798
+ static $SYTLContentTypeLookup = array(
2799
+ 0x00 => 'other',
2800
+ 0x01 => 'lyrics',
2801
+ 0x02 => 'text transcription',
2802
+ 0x03 => 'movement/part name', // (e.g. 'Adagio')
2803
+ 0x04 => 'events', // (e.g. 'Don Quijote enters the stage')
2804
+ 0x05 => 'chord', // (e.g. 'Bb F Fsus')
2805
+ 0x06 => 'trivia/\'pop up\' information',
2806
+ 0x07 => 'URLs to webpages',
2807
+ 0x08 => 'URLs to images'
2808
+ );
2809
+
2810
+ return (isset($SYTLContentTypeLookup[$index]) ? $SYTLContentTypeLookup[$index] : '');
2811
+ }
2812
+
2813
+ static function APICPictureTypeLookup($index, $returnarray=false) {
2814
+ static $APICPictureTypeLookup = array(
2815
+ 0x00 => 'Other',
2816
+ 0x01 => '32x32 pixels \'file icon\' (PNG only)',
2817
+ 0x02 => 'Other file icon',
2818
+ 0x03 => 'Cover (front)',
2819
+ 0x04 => 'Cover (back)',
2820
+ 0x05 => 'Leaflet page',
2821
+ 0x06 => 'Media (e.g. label side of CD)',
2822
+ 0x07 => 'Lead artist/lead performer/soloist',
2823
+ 0x08 => 'Artist/performer',
2824
+ 0x09 => 'Conductor',
2825
+ 0x0A => 'Band/Orchestra',
2826
+ 0x0B => 'Composer',
2827
+ 0x0C => 'Lyricist/text writer',
2828
+ 0x0D => 'Recording Location',
2829
+ 0x0E => 'During recording',
2830
+ 0x0F => 'During performance',
2831
+ 0x10 => 'Movie/video screen capture',
2832
+ 0x11 => 'A bright coloured fish',
2833
+ 0x12 => 'Illustration',
2834
+ 0x13 => 'Band/artist logotype',
2835
+ 0x14 => 'Publisher/Studio logotype'
2836
+ );
2837
+ if ($returnarray) {
2838
+ return $APICPictureTypeLookup;
2839
+ }
2840
+ return (isset($APICPictureTypeLookup[$index]) ? $APICPictureTypeLookup[$index] : '');
2841
+ }
2842
+
2843
+ static function COMRReceivedAsLookup($index) {
2844
+ static $COMRReceivedAsLookup = array(
2845
+ 0x00 => 'Other',
2846
+ 0x01 => 'Standard CD album with other songs',
2847
+ 0x02 => 'Compressed audio on CD',
2848
+ 0x03 => 'File over the Internet',
2849
+ 0x04 => 'Stream over the Internet',
2850
+ 0x05 => 'As note sheets',
2851
+ 0x06 => 'As note sheets in a book with other sheets',
2852
+ 0x07 => 'Music on other media',
2853
+ 0x08 => 'Non-musical merchandise'
2854
+ );
2855
+
2856
+ return (isset($COMRReceivedAsLookup[$index]) ? $COMRReceivedAsLookup[$index] : '');
2857
+ }
2858
+
2859
+ static function RVA2ChannelTypeLookup($index) {
2860
+ static $RVA2ChannelTypeLookup = array(
2861
+ 0x00 => 'Other',
2862
+ 0x01 => 'Master volume',
2863
+ 0x02 => 'Front right',
2864
+ 0x03 => 'Front left',
2865
+ 0x04 => 'Back right',
2866
+ 0x05 => 'Back left',
2867
+ 0x06 => 'Front centre',
2868
+ 0x07 => 'Back centre',
2869
+ 0x08 => 'Subwoofer'
2870
+ );
2871
+
2872
+ return (isset($RVA2ChannelTypeLookup[$index]) ? $RVA2ChannelTypeLookup[$index] : '');
2873
+ }
2874
+
2875
+ static function FrameNameLongLookup($framename) {
2876
+
2877
+ $begin = __LINE__;
2878
+
2879
+ /** This is not a comment!
2880
+
2881
+ AENC Audio encryption
2882
+ APIC Attached picture
2883
+ ASPI Audio seek point index
2884
+ BUF Recommended buffer size
2885
+ CNT Play counter
2886
+ COM Comments
2887
+ COMM Comments
2888
+ COMR Commercial frame
2889
+ CRA Audio encryption
2890
+ CRM Encrypted meta frame
2891
+ ENCR Encryption method registration
2892
+ EQU Equalisation
2893
+ EQU2 Equalisation (2)
2894
+ EQUA Equalisation
2895
+ ETC Event timing codes
2896
+ ETCO Event timing codes
2897
+ GEO General encapsulated object
2898
+ GEOB General encapsulated object
2899
+ GRID Group identification registration
2900
+ IPL Involved people list
2901
+ IPLS Involved people list
2902
+ LINK Linked information
2903
+ LNK Linked information
2904
+ MCDI Music CD identifier
2905
+ MCI Music CD Identifier
2906
+ MLL MPEG location lookup table
2907
+ MLLT MPEG location lookup table
2908
+ OWNE Ownership frame
2909
+ PCNT Play counter
2910
+ PIC Attached picture
2911
+ POP Popularimeter
2912
+ POPM Popularimeter
2913
+ POSS Position synchronisation frame
2914
+ PRIV Private frame
2915
+ RBUF Recommended buffer size
2916
+ REV Reverb
2917
+ RVA Relative volume adjustment
2918
+ RVA2 Relative volume adjustment (2)
2919
+ RVAD Relative volume adjustment
2920
+ RVRB Reverb
2921
+ SEEK Seek frame
2922
+ SIGN Signature frame
2923
+ SLT Synchronised lyric/text
2924
+ STC Synced tempo codes
2925
+ SYLT Synchronised lyric/text
2926
+ SYTC Synchronised tempo codes
2927
+ TAL Album/Movie/Show title
2928
+ TALB Album/Movie/Show title
2929
+ TBP BPM (Beats Per Minute)
2930
+ TBPM BPM (beats per minute)
2931
+ TCM Composer
2932
+ TCMP Part of a compilation
2933
+ TCO Content type
2934
+ TCOM Composer
2935
+ TCON Content type
2936
+ TCOP Copyright message
2937
+ TCP Part of a compilation
2938
+ TCR Copyright message
2939
+ TDA Date
2940
+ TDAT Date
2941
+ TDEN Encoding time
2942
+ TDLY Playlist delay
2943
+ TDOR Original release time
2944
+ TDRC Recording time
2945
+ TDRL Release time
2946
+ TDTG Tagging time
2947
+ TDY Playlist delay
2948
+ TEN Encoded by
2949
+ TENC Encoded by
2950
+ TEXT Lyricist/Text writer
2951
+ TFLT File type
2952
+ TFT File type
2953
+ TIM Time
2954
+ TIME Time
2955
+ TIPL Involved people list
2956
+ TIT1 Content group description
2957
+ TIT2 Title/songname/content description
2958
+ TIT3 Subtitle/Description refinement
2959
+ TKE Initial key
2960
+ TKEY Initial key
2961
+ TLA Language(s)
2962
+ TLAN Language(s)
2963
+ TLE Length
2964
+ TLEN Length
2965
+ TMCL Musician credits list
2966
+ TMED Media type
2967
+ TMOO Mood
2968
+ TMT Media type
2969
+ TOA Original artist(s)/performer(s)
2970
+ TOAL Original album/movie/show title
2971
+ TOF Original filename
2972
+ TOFN Original filename
2973
+ TOL Original Lyricist(s)/text writer(s)
2974
+ TOLY Original lyricist(s)/text writer(s)
2975
+ TOPE Original artist(s)/performer(s)
2976
+ TOR Original release year
2977
+ TORY Original release year
2978
+ TOT Original album/Movie/Show title
2979
+ TOWN File owner/licensee
2980
+ TP1 Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group
2981
+ TP2 Band/Orchestra/Accompaniment
2982
+ TP3 Conductor/Performer refinement
2983
+ TP4 Interpreted, remixed, or otherwise modified by
2984
+ TPA Part of a set
2985
+ TPB Publisher
2986
+ TPE1 Lead performer(s)/Soloist(s)
2987
+ TPE2 Band/orchestra/accompaniment
2988
+ TPE3 Conductor/performer refinement
2989
+ TPE4 Interpreted, remixed, or otherwise modified by
2990
+ TPOS Part of a set
2991
+ TPRO Produced notice
2992
+ TPUB Publisher
2993
+ TRC ISRC (International Standard Recording Code)
2994
+ TRCK Track number/Position in set
2995
+ TRD Recording dates
2996
+ TRDA Recording dates
2997
+ TRK Track number/Position in set
2998
+ TRSN Internet radio station name
2999
+ TRSO Internet radio station owner
3000
+ TS2 Album-Artist sort order
3001
+ TSA Album sort order
3002
+ TSC Composer sort order
3003
+ TSI Size
3004
+ TSIZ Size
3005
+ TSO2 Album-Artist sort order
3006
+ TSOA Album sort order
3007
+ TSOC Composer sort order
3008
+ TSOP Performer sort order
3009
+ TSOT Title sort order
3010
+ TSP Performer sort order
3011
+ TSRC ISRC (international standard recording code)
3012
+ TSS Software/hardware and settings used for encoding
3013
+ TSSE Software/Hardware and settings used for encoding
3014
+ TSST Set subtitle
3015
+ TST Title sort order
3016
+ TT1 Content group description
3017
+ TT2 Title/Songname/Content description
3018
+ TT3 Subtitle/Description refinement
3019
+ TXT Lyricist/text writer
3020
+ TXX User defined text information frame
3021
+ TXXX User defined text information frame
3022
+ TYE Year
3023
+ TYER Year
3024
+ UFI Unique file identifier
3025
+ UFID Unique file identifier
3026
+ ULT Unsychronised lyric/text transcription
3027
+ USER Terms of use
3028
+ USLT Unsynchronised lyric/text transcription
3029
+ WAF Official audio file webpage
3030
+ WAR Official artist/performer webpage
3031
+ WAS Official audio source webpage
3032
+ WCM Commercial information
3033
+ WCOM Commercial information
3034
+ WCOP Copyright/Legal information
3035
+ WCP Copyright/Legal information
3036
+ WOAF Official audio file webpage
3037
+ WOAR Official artist/performer webpage
3038
+ WOAS Official audio source webpage
3039
+ WORS Official Internet radio station homepage
3040
+ WPAY Payment
3041
+ WPB Publishers official webpage
3042
+ WPUB Publishers official webpage
3043
+ WXX User defined URL link frame
3044
+ WXXX User defined URL link frame
3045
+ TFEA Featured Artist
3046
+ TSTU Recording Studio
3047
+ rgad Replay Gain Adjustment
3048
+
3049
+ */
3050
+
3051
+ return getid3_lib::EmbeddedLookup($framename, $begin, __LINE__, __FILE__, 'id3v2-framename_long');
3052
+
3053
+ // Last three:
3054
+ // from Helium2 [www.helium2.com]
3055
+ // from http://privatewww.essex.ac.uk/~djmrob/replaygain/file_format_id3v2.html
3056
+ }
3057
+
3058
+
3059
+ static function FrameNameShortLookup($framename) {
3060
+
3061
+ $begin = __LINE__;
3062
+
3063
+ /** This is not a comment!
3064
+
3065
+ AENC audio_encryption
3066
+ APIC attached_picture
3067
+ ASPI audio_seek_point_index
3068
+ BUF recommended_buffer_size
3069
+ CNT play_counter
3070
+ COM comment
3071
+ COMM comment
3072
+ COMR commercial_frame
3073
+ CRA audio_encryption
3074
+ CRM encrypted_meta_frame
3075
+ ENCR encryption_method_registration
3076
+ EQU equalisation
3077
+ EQU2 equalisation
3078
+ EQUA equalisation
3079
+ ETC event_timing_codes
3080
+ ETCO event_timing_codes
3081
+ GEO general_encapsulated_object
3082
+ GEOB general_encapsulated_object
3083
+ GRID group_identification_registration
3084
+ IPL involved_people_list
3085
+ IPLS involved_people_list
3086
+ LINK linked_information
3087
+ LNK linked_information
3088
+ MCDI music_cd_identifier
3089
+ MCI music_cd_identifier
3090
+ MLL mpeg_location_lookup_table
3091
+ MLLT mpeg_location_lookup_table
3092
+ OWNE ownership_frame
3093
+ PCNT play_counter
3094
+ PIC attached_picture
3095
+ POP popularimeter
3096
+ POPM popularimeter
3097
+ POSS position_synchronisation_frame
3098
+ PRIV private_frame
3099
+ RBUF recommended_buffer_size
3100
+ REV reverb
3101
+ RVA relative_volume_adjustment
3102
+ RVA2 relative_volume_adjustment
3103
+ RVAD relative_volume_adjustment
3104
+ RVRB reverb
3105
+ SEEK seek_frame
3106
+ SIGN signature_frame
3107
+ SLT synchronised_lyric
3108
+ STC synced_tempo_codes
3109
+ SYLT synchronised_lyric
3110
+ SYTC synchronised_tempo_codes
3111
+ TAL album
3112
+ TALB album
3113
+ TBP bpm
3114
+ TBPM bpm
3115
+ TCM composer
3116
+ TCMP part_of_a_compilation
3117
+ TCO genre
3118
+ TCOM composer
3119
+ TCON genre
3120
+ TCOP copyright_message
3121
+ TCP part_of_a_compilation
3122
+ TCR copyright_message
3123
+ TDA date
3124
+ TDAT date
3125
+ TDEN encoding_time
3126
+ TDLY playlist_delay
3127
+ TDOR original_release_time
3128
+ TDRC recording_time
3129
+ TDRL release_time
3130
+ TDTG tagging_time
3131
+ TDY playlist_delay
3132
+ TEN encoded_by
3133
+ TENC encoded_by
3134
+ TEXT lyricist
3135
+ TFLT file_type
3136
+ TFT file_type
3137
+ TIM time
3138
+ TIME time
3139
+ TIPL involved_people_list
3140
+ TIT1 content_group_description
3141
+ TIT2 title
3142
+ TIT3 subtitle
3143
+ TKE initial_key
3144
+ TKEY initial_key
3145
+ TLA language
3146
+ TLAN language
3147
+ TLE length
3148
+ TLEN length
3149
+ TMCL musician_credits_list
3150
+ TMED media_type
3151
+ TMOO mood
3152
+ TMT media_type
3153
+ TOA original_artist
3154
+ TOAL original_album
3155
+ TOF original_filename
3156
+ TOFN original_filename
3157
+ TOL original_lyricist
3158
+ TOLY original_lyricist
3159
+ TOPE original_artist
3160
+ TOR original_year
3161
+ TORY original_year
3162
+ TOT original_album
3163
+ TOWN file_owner
3164
+ TP1 artist
3165
+ TP2 band
3166
+ TP3 conductor
3167
+ TP4 remixer
3168
+ TPA part_of_a_set
3169
+ TPB publisher
3170
+ TPE1 artist
3171
+ TPE2 band
3172
+ TPE3 conductor
3173
+ TPE4 remixer
3174
+ TPOS part_of_a_set
3175
+ TPRO produced_notice
3176
+ TPUB publisher
3177
+ TRC isrc
3178
+ TRCK track_number
3179
+ TRD recording_dates
3180
+ TRDA recording_dates
3181
+ TRK track_number
3182
+ TRSN internet_radio_station_name
3183
+ TRSO internet_radio_station_owner
3184
+ TS2 album_artist_sort_order
3185
+ TSA album_sort_order
3186
+ TSC composer_sort_order
3187
+ TSI size
3188
+ TSIZ size
3189
+ TSO2 album_artist_sort_order
3190
+ TSOA album_sort_order
3191
+ TSOC composer_sort_order
3192
+ TSOP performer_sort_order
3193
+ TSOT title_sort_order
3194
+ TSP performer_sort_order
3195
+ TSRC isrc
3196
+ TSS encoder_settings
3197
+ TSSE encoder_settings
3198
+ TSST set_subtitle
3199
+ TST title_sort_order
3200
+ TT1 description
3201
+ TT2 title
3202
+ TT3 subtitle
3203
+ TXT lyricist
3204
+ TXX text
3205
+ TXXX text
3206
+ TYE year
3207
+ TYER year
3208
+ UFI unique_file_identifier
3209
+ UFID unique_file_identifier
3210
+ ULT unsychronised_lyric
3211
+ USER terms_of_use
3212
+ USLT unsynchronised_lyric
3213
+ WAF url_file
3214
+ WAR url_artist
3215
+ WAS url_source
3216
+ WCM commercial_information
3217
+ WCOM commercial_information
3218
+ WCOP copyright
3219
+ WCP copyright
3220
+ WOAF url_file
3221
+ WOAR url_artist
3222
+ WOAS url_source
3223
+ WORS url_station
3224
+ WPAY url_payment
3225
+ WPB url_publisher
3226
+ WPUB url_publisher
3227
+ WXX url_user
3228
+ WXXX url_user
3229
+ TFEA featured_artist
3230
+ TSTU recording_studio
3231
+ rgad replay_gain_adjustment
3232
+
3233
+ */
3234
+
3235
+ return getid3_lib::EmbeddedLookup($framename, $begin, __LINE__, __FILE__, 'id3v2-framename_short');
3236
+ }
3237
+
3238
+ static function TextEncodingTerminatorLookup($encoding) {
3239
+ // http://www.id3.org/id3v2.4.0-structure.txt
3240
+ // Frames that allow different types of text encoding contains a text encoding description byte. Possible encodings:
3241
+ static $TextEncodingTerminatorLookup = array(
3242
+ 0 => "\x00", // $00 ISO-8859-1. Terminated with $00.
3243
+ 1 => "\x00\x00", // $01 UTF-16 encoded Unicode with BOM. All strings in the same frame SHALL have the same byteorder. Terminated with $00 00.
3244
+ 2 => "\x00\x00", // $02 UTF-16BE encoded Unicode without BOM. Terminated with $00 00.
3245
+ 3 => "\x00", // $03 UTF-8 encoded Unicode. Terminated with $00.
3246
+ 255 => "\x00\x00"
3247
+ );
3248
+ return (isset($TextEncodingTerminatorLookup[$encoding]) ? $TextEncodingTerminatorLookup[$encoding] : '');
3249
+ }
3250
+
3251
+ static function TextEncodingNameLookup($encoding) {
3252
+ // http://www.id3.org/id3v2.4.0-structure.txt
3253
+ // Frames that allow different types of text encoding contains a text encoding description byte. Possible encodings:
3254
+ static $TextEncodingNameLookup = array(
3255
+ 0 => 'ISO-8859-1', // $00 ISO-8859-1. Terminated with $00.
3256
+ 1 => 'UTF-16', // $01 UTF-16 encoded Unicode with BOM. All strings in the same frame SHALL have the same byteorder. Terminated with $00 00.
3257
+ 2 => 'UTF-16BE', // $02 UTF-16BE encoded Unicode without BOM. Terminated with $00 00.
3258
+ 3 => 'UTF-8', // $03 UTF-8 encoded Unicode. Terminated with $00.
3259
+ 255 => 'UTF-16BE'
3260
+ );
3261
+ return (isset($TextEncodingNameLookup[$encoding]) ? $TextEncodingNameLookup[$encoding] : 'ISO-8859-1');
3262
+ }
3263
+
3264
+ static function IsValidID3v2FrameName($framename, $id3v2majorversion) {
3265
+ switch ($id3v2majorversion) {
3266
+ case 2:
3267
+ return preg_match('#[A-Z][A-Z0-9]{2}#', $framename);
3268
+ break;
3269
+
3270
+ case 3:
3271
+ case 4:
3272
+ return preg_match('#[A-Z][A-Z0-9]{3}#', $framename);
3273
+ break;
3274
+ }
3275
+ return false;
3276
+ }
3277
+
3278
+ static function IsANumber($numberstring, $allowdecimal=false, $allownegative=false) {
3279
+ for ($i = 0; $i < strlen($numberstring); $i++) {
3280
+ if ((chr($numberstring{$i}) < chr('0')) || (chr($numberstring{$i}) > chr('9'))) {
3281
+ if (($numberstring{$i} == '.') && $allowdecimal) {
3282
+ // allowed
3283
+ } elseif (($numberstring{$i} == '-') && $allownegative && ($i == 0)) {
3284
+ // allowed
3285
+ } else {
3286
+ return false;
3287
+ }
3288
+ }
3289
+ }
3290
+ return true;
3291
+ }
3292
+
3293
+ static function IsValidDateStampString($datestamp) {
3294
+ if (strlen($datestamp) != 8) {
3295
+ return false;
3296
+ }
3297
+ if (!self::IsANumber($datestamp, false)) {
3298
+ return false;
3299
+ }
3300
+ $year = substr($datestamp, 0, 4);
3301
+ $month = substr($datestamp, 4, 2);
3302
+ $day = substr($datestamp, 6, 2);
3303
+ if (($year == 0) || ($month == 0) || ($day == 0)) {
3304
+ return false;
3305
+ }
3306
+ if ($month > 12) {
3307
+ return false;
3308
+ }
3309
+ if ($day > 31) {
3310
+ return false;
3311
+ }
3312
+ if (($day > 30) && (($month == 4) || ($month == 6) || ($month == 9) || ($month == 11))) {
3313
+ return false;
3314
+ }
3315
+ if (($day > 29) && ($month == 2)) {
3316
+ return false;
3317
+ }
3318
+ return true;
3319
+ }
3320
+
3321
+ static function ID3v2HeaderLength($majorversion) {
3322
+ return (($majorversion == 2) ? 6 : 10);
3323
+ }
3324
+
3325
+ }
3326
+
3327
+ ?>
getid3/module.tag.lyrics3.php ADDED
@@ -0,0 +1,297 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /////////////////////////////////////////////////////////////////
3
+ /// getID3() by James Heinrich <info@getid3.org> //
4
+ // available at http://getid3.sourceforge.net //
5
+ // or http://www.getid3.org //
6
+ /////////////////////////////////////////////////////////////////
7
+ // See readme.txt for more details //
8
+ /////////////////////////////////////////////////////////////////
9
+ /// //
10
+ // module.tag.lyrics3.php //
11
+ // module for analyzing Lyrics3 tags //
12
+ // dependencies: module.tag.apetag.php (optional) //
13
+ // ///
14
+ /////////////////////////////////////////////////////////////////
15
+
16
+
17
+ class getid3_lyrics3 extends getid3_handler
18
+ {
19
+
20
+ function Analyze() {
21
+ $info = &$this->getid3->info;
22
+
23
+ // http://www.volweb.cz/str/tags.htm
24
+
25
+ if (!getid3_lib::intValueSupported($info['filesize'])) {
26
+ $info['warning'][] = 'Unable to check for Lyrics3 because file is larger than '.round(PHP_INT_MAX / 1073741824).'GB';
27
+ return false;
28
+ }
29
+
30
+ fseek($this->getid3->fp, (0 - 128 - 9 - 6), SEEK_END); // end - ID3v1 - "LYRICSEND" - [Lyrics3size]
31
+ $lyrics3_id3v1 = fread($this->getid3->fp, 128 + 9 + 6);
32
+ $lyrics3lsz = substr($lyrics3_id3v1, 0, 6); // Lyrics3size
33
+ $lyrics3end = substr($lyrics3_id3v1, 6, 9); // LYRICSEND or LYRICS200
34
+ $id3v1tag = substr($lyrics3_id3v1, 15, 128); // ID3v1
35
+
36
+ if ($lyrics3end == 'LYRICSEND') {
37
+ // Lyrics3v1, ID3v1, no APE
38
+
39
+ $lyrics3size = 5100;
40
+ $lyrics3offset = $info['filesize'] - 128 - $lyrics3size;
41
+ $lyrics3version = 1;
42
+
43
+ } elseif ($lyrics3end == 'LYRICS200') {
44
+ // Lyrics3v2, ID3v1, no APE
45
+
46
+ // LSZ = lyrics + 'LYRICSBEGIN'; add 6-byte size field; add 'LYRICS200'
47
+ $lyrics3size = $lyrics3lsz + 6 + strlen('LYRICS200');
48
+ $lyrics3offset = $info['filesize'] - 128 - $lyrics3size;
49
+ $lyrics3version = 2;
50
+
51
+ } elseif (substr(strrev($lyrics3_id3v1), 0, 9) == strrev('LYRICSEND')) {
52
+ // Lyrics3v1, no ID3v1, no APE
53
+
54
+ $lyrics3size = 5100;
55
+ $lyrics3offset = $info['filesize'] - $lyrics3size;
56
+ $lyrics3version = 1;
57
+ $lyrics3offset = $info['filesize'] - $lyrics3size;
58
+
59
+ } elseif (substr(strrev($lyrics3_id3v1), 0, 9) == strrev('LYRICS200')) {
60
+
61
+ // Lyrics3v2, no ID3v1, no APE
62
+
63
+ $lyrics3size = strrev(substr(strrev($lyrics3_id3v1), 9, 6)) + 6 + strlen('LYRICS200'); // LSZ = lyrics + 'LYRICSBEGIN'; add 6-byte size field; add 'LYRICS200'
64
+ $lyrics3offset = $info['filesize'] - $lyrics3size;
65
+ $lyrics3version = 2;
66
+
67
+ } else {
68
+
69
+ if (isset($info['ape']['tag_offset_start']) && ($info['ape']['tag_offset_start'] > 15)) {
70
+
71
+ fseek($this->getid3->fp, $info['ape']['tag_offset_start'] - 15, SEEK_SET);
72
+ $lyrics3lsz = fread($this->getid3->fp, 6);
73
+ $lyrics3end = fread($this->getid3->fp, 9);
74
+
75
+ if ($lyrics3end == 'LYRICSEND') {
76
+ // Lyrics3v1, APE, maybe ID3v1
77
+
78
+ $lyrics3size = 5100;
79
+ $lyrics3offset = $info['ape']['tag_offset_start'] - $lyrics3size;
80
+ $info['avdataend'] = $lyrics3offset;
81
+ $lyrics3version = 1;
82
+ $info['warning'][] = 'APE tag located after Lyrics3, will probably break Lyrics3 compatability';
83
+
84
+ } elseif ($lyrics3end == 'LYRICS200') {
85
+ // Lyrics3v2, APE, maybe ID3v1
86
+
87
+ $lyrics3size = $lyrics3lsz + 6 + strlen('LYRICS200'); // LSZ = lyrics + 'LYRICSBEGIN'; add 6-byte size field; add 'LYRICS200'
88
+ $lyrics3offset = $info['ape']['tag_offset_start'] - $lyrics3size;
89
+ $lyrics3version = 2;
90
+ $info['warning'][] = 'APE tag located after Lyrics3, will probably break Lyrics3 compatability';
91
+
92
+ }
93
+
94
+ }
95
+
96
+ }
97
+
98
+ if (isset($lyrics3offset)) {
99
+ $info['avdataend'] = $lyrics3offset;
100
+ $this->getLyrics3Data($lyrics3offset, $lyrics3version, $lyrics3size);
101
+
102
+ if (!isset($info['ape'])) {
103
+ $GETID3_ERRORARRAY = &$info['warning'];
104
+ if (getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.tag.apetag.php', __FILE__, false)) {
105
+ $getid3_temp = new getID3();
106
+ $getid3_temp->openfile($this->getid3->filename);
107
+ $getid3_apetag = new getid3_apetag($getid3_temp);
108
+ $getid3_apetag->overrideendoffset = $info['lyrics3']['tag_offset_start'];
109
+ $getid3_apetag->Analyze();
110
+ if (!empty($getid3_temp->info['ape'])) {
111
+ $info['ape'] = $getid3_temp->info['ape'];
112
+ }
113
+ if (!empty($getid3_temp->info['replay_gain'])) {
114
+ $info['replay_gain'] = $getid3_temp->info['replay_gain'];
115
+ }
116
+ unset($getid3_temp, $getid3_apetag);
117
+ }
118
+ }
119
+
120
+ }
121
+
122
+ return true;
123
+ }
124
+
125
+ function getLyrics3Data($endoffset, $version, $length) {
126
+ // http://www.volweb.cz/str/tags.htm
127
+
128
+ $info = &$this->getid3->info;
129
+
130
+ if (!getid3_lib::intValueSupported($endoffset)) {
131
+ $info['warning'][] = 'Unable to check for Lyrics3 because file is larger than '.round(PHP_INT_MAX / 1073741824).'GB';
132
+ return false;
133
+ }
134
+
135
+ fseek($this->getid3->fp, $endoffset, SEEK_SET);
136
+ if ($length <= 0) {
137
+ return false;
138
+ }
139
+ $rawdata = fread($this->getid3->fp, $length);
140
+
141
+ $ParsedLyrics3['raw']['lyrics3version'] = $version;
142
+ $ParsedLyrics3['raw']['lyrics3tagsize'] = $length;
143
+ $ParsedLyrics3['tag_offset_start'] = $endoffset;
144
+ $ParsedLyrics3['tag_offset_end'] = $endoffset + $length - 1;
145
+
146
+ if (substr($rawdata, 0, 11) != 'LYRICSBEGIN') {
147
+ if (strpos($rawdata, 'LYRICSBEGIN') !== false) {
148
+
149
+ $info['warning'][] = '"LYRICSBEGIN" expected at '.$endoffset.' but actually found at '.($endoffset + strpos($rawdata, 'LYRICSBEGIN')).' - this is invalid for Lyrics3 v'.$version;
150
+ $info['avdataend'] = $endoffset + strpos($rawdata, 'LYRICSBEGIN');
151
+ $rawdata = substr($rawdata, strpos($rawdata, 'LYRICSBEGIN'));
152
+ $length = strlen($rawdata);
153
+ $ParsedLyrics3['tag_offset_start'] = $info['avdataend'];
154
+ $ParsedLyrics3['raw']['lyrics3tagsize'] = $length;
155
+
156
+ } else {
157
+
158
+ $info['error'][] = '"LYRICSBEGIN" expected at '.$endoffset.' but found "'.substr($rawdata, 0, 11).'" instead';
159
+ return false;
160
+
161
+ }
162
+
163
+ }
164
+
165
+ switch ($version) {
166
+
167
+ case 1:
168
+ if (substr($rawdata, strlen($rawdata) - 9, 9) == 'LYRICSEND') {
169
+ $ParsedLyrics3['raw']['LYR'] = trim(substr($rawdata, 11, strlen($rawdata) - 11 - 9));
170
+ $this->Lyrics3LyricsTimestampParse($ParsedLyrics3);
171
+ } else {
172
+ $info['error'][] = '"LYRICSEND" expected at '.(ftell($this->getid3->fp) - 11 + $length - 9).' but found "'.substr($rawdata, strlen($rawdata) - 9, 9).'" instead';
173
+ return false;
174
+ }
175
+ break;
176
+
177
+ case 2:
178
+ if (substr($rawdata, strlen($rawdata) - 9, 9) == 'LYRICS200') {
179
+ $ParsedLyrics3['raw']['unparsed'] = substr($rawdata, 11, strlen($rawdata) - 11 - 9 - 6); // LYRICSBEGIN + LYRICS200 + LSZ
180
+ $rawdata = $ParsedLyrics3['raw']['unparsed'];
181
+ while (strlen($rawdata) > 0) {
182
+ $fieldname = substr($rawdata, 0, 3);
183
+ $fieldsize = (int) substr($rawdata, 3, 5);
184
+ $ParsedLyrics3['raw'][$fieldname] = substr($rawdata, 8, $fieldsize);
185
+ $rawdata = substr($rawdata, 3 + 5 + $fieldsize);
186
+ }
187
+
188
+ if (isset($ParsedLyrics3['raw']['IND'])) {
189
+ $i = 0;
190
+ $flagnames = array('lyrics', 'timestamps', 'inhibitrandom');
191
+ foreach ($flagnames as $flagname) {
192
+ if (strlen($ParsedLyrics3['raw']['IND']) > $i++) {
193
+ $ParsedLyrics3['flags'][$flagname] = $this->IntString2Bool(substr($ParsedLyrics3['raw']['IND'], $i, 1 - 1));
194
+ }
195
+ }
196
+ }
197
+
198
+ $fieldnametranslation = array('ETT'=>'title', 'EAR'=>'artist', 'EAL'=>'album', 'INF'=>'comment', 'AUT'=>'author');
199
+ foreach ($fieldnametranslation as $key => $value) {
200
+ if (isset($ParsedLyrics3['raw'][$key])) {
201
+ $ParsedLyrics3['comments'][$value][] = trim($ParsedLyrics3['raw'][$key]);
202
+ }
203
+ }
204
+
205
+ if (isset($ParsedLyrics3['raw']['IMG'])) {
206
+ $imagestrings = explode("\r\n", $ParsedLyrics3['raw']['IMG']);
207
+ foreach ($imagestrings as $key => $imagestring) {
208
+ if (strpos($imagestring, '||') !== false) {
209
+ $imagearray = explode('||', $imagestring);
210
+ $ParsedLyrics3['images'][$key]['filename'] = (isset($imagearray[0]) ? $imagearray[0] : '');
211
+ $ParsedLyrics3['images'][$key]['description'] = (isset($imagearray[1]) ? $imagearray[1] : '');
212
+ $ParsedLyrics3['images'][$key]['timestamp'] = $this->Lyrics3Timestamp2Seconds(isset($imagearray[2]) ? $imagearray[2] : '');
213
+ }
214
+ }
215
+ }
216
+ if (isset($ParsedLyrics3['raw']['LYR'])) {
217
+ $this->Lyrics3LyricsTimestampParse($ParsedLyrics3);
218
+ }
219
+ } else {
220
+ $info['error'][] = '"LYRICS200" expected at '.(ftell($this->getid3->fp) - 11 + $length - 9).' but found "'.substr($rawdata, strlen($rawdata) - 9, 9).'" instead';
221
+ return false;
222
+ }
223
+ break;
224
+
225
+ default:
226
+ $info['error'][] = 'Cannot process Lyrics3 version '.$version.' (only v1 and v2)';
227
+ return false;
228
+ break;
229
+ }
230
+
231
+
232
+ if (isset($info['id3v1']['tag_offset_start']) && ($info['id3v1']['tag_offset_start'] <= $ParsedLyrics3['tag_offset_end'])) {
233
+ $info['warning'][] = 'ID3v1 tag information ignored since it appears to be a false synch in Lyrics3 tag data';
234
+ unset($info['id3v1']);
235
+ foreach ($info['warning'] as $key => $value) {
236
+ if ($value == 'Some ID3v1 fields do not use NULL characters for padding') {
237
+ unset($info['warning'][$key]);
238
+ sort($info['warning']);
239
+ break;
240
+ }
241
+ }
242
+ }
243
+
244
+ $info['lyrics3'] = $ParsedLyrics3;
245
+
246
+ return true;
247
+ }
248
+
249
+ function Lyrics3Timestamp2Seconds($rawtimestamp) {
250
+ if (preg_match('#^\\[([0-9]{2}):([0-9]{2})\\]$#', $rawtimestamp, $regs)) {
251
+ return (int) (($regs[1] * 60) + $regs[2]);
252
+ }
253
+ return false;
254
+ }
255
+
256
+ function Lyrics3LyricsTimestampParse(&$Lyrics3data) {
257
+ $lyricsarray = explode("\r\n", $Lyrics3data['raw']['LYR']);
258
+ foreach ($lyricsarray as $key => $lyricline) {
259
+ $regs = array();
260
+ unset($thislinetimestamps);
261
+ while (preg_match('#^(\\[[0-9]{2}:[0-9]{2}\\])#', $lyricline, $regs)) {
262
+ $thislinetimestamps[] = $this->Lyrics3Timestamp2Seconds($regs[0]);
263
+ $lyricline = str_replace($regs[0], '', $lyricline);
264
+ }
265
+ $notimestamplyricsarray[$key] = $lyricline;
266
+ if (isset($thislinetimestamps) && is_array($thislinetimestamps)) {
267
+ sort($thislinetimestamps);
268
+ foreach ($thislinetimestamps as $timestampkey => $timestamp) {
269
+ if (isset($Lyrics3data['synchedlyrics'][$timestamp])) {
270
+ // timestamps only have a 1-second resolution, it's possible that multiple lines
271
+ // could have the same timestamp, if so, append
272
+ $Lyrics3data['synchedlyrics'][$timestamp] .= "\r\n".$lyricline;
273
+ } else {
274
+ $Lyrics3data['synchedlyrics'][$timestamp] = $lyricline;
275
+ }
276
+ }
277
+ }
278
+ }
279
+ $Lyrics3data['unsynchedlyrics'] = implode("\r\n", $notimestamplyricsarray);
280
+ if (isset($Lyrics3data['synchedlyrics']) && is_array($Lyrics3data['synchedlyrics'])) {
281
+ ksort($Lyrics3data['synchedlyrics']);
282
+ }
283
+ return true;
284
+ }
285
+
286
+ function IntString2Bool($char) {
287
+ if ($char == '1') {
288
+ return true;
289
+ } elseif ($char == '0') {
290
+ return false;
291
+ }
292
+ return null;
293
+ }
294
+ }
295
+
296
+
297
+ ?>
languages/powerpress-da_DK.mo CHANGED
Binary file
languages/powerpress-da_DK.po CHANGED
@@ -1,997 +1,1109 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: PowerPress 1.0.11\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2010-10-02 00:14+0100\n"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: Team Blogos <wordpress@blogos.dk>\n"
8
  "Language-Team: Team Blogos <wordpress@blogos.dk>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
  "X-Poedit-Language: Danish\n"
14
  "X-Poedit-Country: DENMARK\n"
15
  "X-Poedit-SourceCharset: utf-8\n"
16
- "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
17
- "X-Poedit-Basepath: c:/wamp/www/plugintester/wp-content/plugins/powerpress\n"
18
- "X-Poedit-Bookmarks: \n"
19
- "X-Poedit-SearchPath-0: c:/wamp/www/plugintester/wp-content/plugins/powerpress\n"
20
- "X-Textdomain-Support: yes"
21
-
22
- #: mp3info.class.php:103
23
- #: powerpressadmin-jquery.php:479
24
- #@ powerpress
25
  msgid "Your server must either have the php.ini setting 'allow_url_fopen' enabled or have the PHP cURL library installed in order to continue."
26
  msgstr "Din server skal enten have php.ini indstillingen 'allow_url_fopen' aktiveret eller have cURL-biblioteket til PHP installeret for at kunne fortsætte."
27
 
28
- #: mp3info.class.php:113
29
  #, php-format
30
- #@ powerpress
31
  msgid "Media URL exceeded redirect limit of %d (fopen)."
32
  msgstr "Medie-URL overskred grænsen for redirect på %d (fopen)."
33
 
34
- #: mp3info.class.php:124
35
- #@ powerpress
36
  msgid "Unable to obtain host name from URL."
37
  msgstr "Kan ikke finde værtsnavn i URL."
38
 
39
- #: mp3info.class.php:126
40
- #@ powerpress
41
  msgid "Unable to obtain host name from the URL:"
42
  msgstr "Kan ikke finde værtsnavn i URL'en:"
43
 
44
- #: mp3info.class.php:226
45
- #@ powerpress
46
  msgid "Unable to obtain media size from web server."
47
  msgstr "Kan ikke få størrelse på mediet fra webserveren."
48
 
49
- #: mp3info.class.php:239
50
- #@ powerpress
51
  msgid "Unable to save media information to temporary directory."
52
  msgstr "Kan ikke gemme information om mediet i den midlertidige mappe."
53
 
54
- #: mp3info.class.php:252
55
- #@ powerpress
56
  msgid "Unable to connect to host:"
57
  msgstr "Kan ikke etablere forbindelse til vært:"
58
 
59
- #: mp3info.class.php:266
60
  #, php-format
61
- #@ powerpress
62
  msgid "Media URL exceeded redirect limit of %d (cURL in safe mode)."
63
  msgstr "Medie-URL overskred grænsen for redirect på %d (cURL i safe mode)."
64
 
65
- #: mp3info.class.php:308
66
  #, php-format
67
- #@ powerpress
68
  msgid "Media URL exceeded redirect limit of %d (cURL)."
69
  msgstr "Medie-URL overskred grænsen for redirect på %d (cURL)."
70
 
71
- #: mp3info.class.php:323
72
  #, php-format
73
- #@ powerpress
74
  msgid "Unable to obtain HTTP %d redirect URL."
75
  msgstr "Kan ikke få redirect-URL for HTTP %d."
76
 
77
- #: mp3info.class.php:353
78
- #@ powerpress
79
  msgid "Unable to obtain media size from server."
80
  msgstr "Kan ikke få størrelse på medie fra serveren."
81
 
82
- #: mp3info.class.php:364
83
- #@ powerpress
84
  msgid "Unable to create temporary file for checking media information."
85
  msgstr "Kan ikke oprette midlertidig fil til tjekning af information om medie."
86
 
87
- #: mp3info.class.php:427
88
- #: mp3info.class.php:437
89
- #@ powerpress
90
  msgid "Unable to download media."
91
  msgstr "Kan ikke downloade medie."
92
 
93
- #: mp3info.class.php:435
94
- #@ powerpress
95
  msgid "Retrieving file info:"
96
  msgstr "<span title=\"retrieving file info\">Information om fil, der skal hentes:</span>"
97
 
98
- #: mp3info.class.php:513
99
- #: mp3info.class.php:519
100
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  msgid "Error occurred downloading media file."
102
  msgstr "Der forekom en fejl under download af mediefil."
103
 
104
- #: mp3info.class.php:528
105
- #@ powerpress
106
  msgid "Downloaded media file is empty."
107
  msgstr "Downloadet mediefil er tom."
108
 
109
- #: mp3info.class.php:568
110
  #, php-format
111
- #@ powerpress
112
  msgid "Sample Rate %dKhz may cause playback issues, we recommend 22Khz or 44Khz for maximum player compatibility."
113
  msgstr "Samplerate på %dKHz kan skabe afspilningsproblemer; vi anbefaler 22 KHz eller 44KHz for maksimal afspillerkompatibilitet."
114
 
115
- #: mp3info.class.php:574
116
  #, php-format
117
- #@ powerpress
118
  msgid "Channel Mode '%s' may cause playback issues, we recommend 'joint stereo' for maximum player compatibility."
119
  msgstr "<span title=\"Channel Mode\">Kanalmodus</span> '%s' kan skabe afspilningsproblemer. Vi anbefaler '"
120
 
121
- #: powerpress-feed-auth.php:22
122
- #@ powerpress
123
  msgid "Access Denied"
124
  msgstr "Adgang nægtet"
125
 
126
- #: powerpress-feed-auth.php:26
127
- #@ powerpress
128
  msgid "Authorization Failed"
129
  msgstr "Adgangstilladelse mislykkedes"
130
 
131
- #: powerpress-feed-auth.php:32
132
- #@ powerpress
133
  msgid "Unauthorized"
134
  msgstr "Ingen adgangstilladelse"
135
 
136
- #: powerpress-player.php:1526
137
- #: powerpressadmin-player-page.php:726
138
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  msgid "TRACK"
140
  msgstr "SPOR"
141
 
142
- #: powerpress.php:55
143
- #: powerpressadmin-customfeeds.php:70
144
- #: powerpressadmin-customfeeds.php:85
145
- #: powerpressadmin-editfeed.php:1036
146
- #: powerpressadmin.php:3154
147
- #@ powerpress
148
  msgid "Podcast"
149
  msgstr "Podcast"
150
 
151
- #: powerpress.php:57
152
- #: powerpressadmin-metabox.php:234
153
- #@ powerpress
154
  msgid "Duration"
155
- msgstr "<span title=\"duration\">Varighed</span>"
156
 
157
- #: powerpress.php:59
158
- #@ powerpress
159
  msgid "Play in new window"
160
  msgstr "Afspil i nyt vindue"
161
 
162
- #: powerpress.php:61
163
- #@ powerpress
164
  msgid "Download"
165
  msgstr "Download"
166
 
167
- #: powerpress.php:63
168
- #: powerpressadmin-podpress-stats.php:24
169
- #: powerpressadmin-podpress-stats.php:28
170
- #@ powerpress
171
  msgid "Play"
172
  msgstr "Afspil"
173
 
174
- #: powerpress-player.php:304
175
- #: powerpress-player.php:861
176
- #@ powerpress
177
- msgid "Best viewed with"
178
- msgstr "Vises bedst med"
179
-
180
- #: powerpress-player.php:306
181
- #: powerpress-player.php:863
182
- #@ powerpress
183
- msgid "Windows Media Player plugin for Firefox"
184
- msgstr "Windows Media Player-plugin for Firefox"
185
-
186
- #: powerpress-player.php:499
187
- #: powerpress-player.php:1103
188
- #@ powerpress
189
- msgid "Blubrry PowerPress Player"
190
- msgstr "Blubrry PowerPress-afspiller"
191
-
192
- #: powerpress-player.php:1121
193
- #@ powerpress
194
- msgid "Unable to retrieve media information."
195
- msgstr "Kan ikke hente information om medie."
196
-
197
- #: powerpress-player.php:971
198
- #@ powerpress
199
- msgid "Open in New Window"
200
- msgstr "Åbn i nyt vindue"
201
-
202
- #: powerpress-player.php:1053
203
- #@ powerpress
204
- msgid "E-Book PDF"
205
- msgstr "E-bog som PDF"
206
 
207
- #: powerpressadmin-basic.php:19
208
- #@ powerpress
209
  msgid "The redirect entered is not recongized as a supported statistics redirect service."
210
  msgstr "Den indtastede redirect genkendes ikke som en understøttet statistisk redirect-service."
211
 
212
- #: powerpressadmin-basic.php:19
213
- #@ powerpress
214
  msgid "Are you sure you wish to continue with this redirect url?"
215
  msgstr "Er du sikker på, at du ønsker at fortsætte med denne redirect-URL?"
216
 
217
- #: powerpressadmin-basic.php:70
218
- #@ powerpress
219
  msgid "Blubrry PowerPress Settings"
220
  msgstr "Blubrry PowerPress-indstillinger"
221
 
222
- #: powerpressadmin-basic.php:75
223
- #: powerpressadmin-player-page.php:641
224
- #: powerpressadmin-player-page.php:1117
225
- #@ powerpress
 
226
  msgid "Basic Settings"
227
  msgstr "Grundindstillinger"
228
 
229
- #: powerpressadmin-basic.php:78
230
- #@ powerpress
 
 
 
 
 
 
 
 
231
  msgid "Feeds"
232
  msgstr "Feeds"
233
 
234
- #: powerpressadmin-basic.php:79
235
- #: powerpressadmin.php:3156
236
- #@ powerpress
237
  msgid "iTunes"
238
  msgstr "iTunes"
239
 
240
- #: powerpressadmin-basic.php:133
241
- #@ powerpress
 
 
 
 
242
  msgid "You must delete all of the Podcast Channels to disable this option."
243
  msgstr "Du skal slette alle Podcast-kanaler for at deaktivere denne indstilling."
244
 
245
- #: powerpressadmin-mode.php:29
246
- #@ powerpress
247
- msgid "Advanced Mode"
248
- msgstr "Avancerede funktioner"
249
-
250
- #: powerpressadmin-basic.php:143
251
- #@ powerpress
252
  msgid "Audio Player Options"
253
- msgstr "Lydafspiller-indstillinger"
254
 
255
- #: powerpressadmin-basic.php:145
256
- #: powerpressadmin-basic.php:151
257
- #: powerpressadmin-basic.php:157
258
- #: powerpressadmin-basic.php:163
259
- #@ powerpress
 
 
 
260
  msgid "feature will appear in left menu when enabled"
261
  msgstr "Funktion vises i venstre menu, når aktiveret"
262
 
263
- #: powerpressadmin-basic.php:155
264
- #: powerpressadmin-categoryfeeds.php:27
265
- #: powerpressadmin-customfeeds.php:23
266
- #: powerpressadmin-podpress.php:807
267
- #@ powerpress
268
- #@ default
 
 
 
 
 
269
  msgid "Custom Podcast Channels"
270
  msgstr "Brugerdefinerede podcastkanaler"
271
 
272
- #: powerpressadmin-basic.php:156
273
- #@ powerpress
274
  msgid "Manage multiple media files and/or formats to one blog post."
275
  msgstr "Håndtér flere mediefiler og/eller formater i et blogindlæg."
276
 
277
- #: powerpressadmin-basic.php:161
278
- #: powerpressadmin-categoryfeeds.php:21
279
- #: powerpressadmin.php:972
280
- #@ powerpress
281
  msgid "Category Podcasting"
282
  msgstr "Kategori-podcasting"
283
 
284
- #: powerpressadmin-basic.php:162
285
- #@ powerpress
286
  msgid "Manage category podcast feeds."
287
  msgstr "Håndtér podcastfeeds baseret på kategorier."
288
 
289
- #: powerpressadmin-basic.php:173
290
- #@ powerpress
291
  msgid "Like The Plugin?"
292
  msgstr "Kan du lide dette plugin?"
293
 
294
- #: powerpressadmin-basic.php:175
295
- #@ powerpress
296
  msgid "This plugin is great, don't you think? If you like the plugin we'd be ever so grateful if you'd give it your support. Here's how:"
297
  msgstr "Dette plugin er fremragende, synes du ikke? Hvis du kan lide pluginnet, så vil vi være utrolig taknemmelig, hvis du vil støtte det. Det kan du gøre ved at:"
298
 
299
- #: powerpressadmin-basic.php:178
300
  #, php-format
301
- #@ powerpress
302
  msgid "Rate this plugin 5 stars in the %s."
303
  msgstr "Bedøm dette plugin med fem stjerner i %s."
304
 
305
- #: powerpressadmin-basic.php:179
306
- #@ powerpress
307
  msgid "WordPress Plugins Directory"
308
  msgstr "WordPress' pluginmappe"
309
 
310
- #: powerpressadmin-basic.php:183
311
- #@ powerpress
312
  msgid "Tell the world about PowerPress by writing about it on your blog"
313
  msgstr "Fortæl verden om PowerPress ved at skrive om det på din blog"
314
 
315
- #: powerpressadmin-basic.php:184
316
- #@ powerpress
317
  msgid "I'm podcasting with Blubrry PowerPress (http://blubrry.com/powerpress/) #powerpress #wordpress"
318
  msgstr "<span title=\"I'm podcasting with\">Jeg podcaster med</span> Blubrry PowerPress (http://blubrry.com/powerpress/) #powerpress #wordpress"
319
 
320
- #: powerpressadmin-basic.php:184
321
- #@ powerpress
322
  msgid "Twitter"
323
  msgstr "Twitter"
324
 
325
- #: powerpressadmin-basic.php:185
326
- #@ powerpress
327
  msgid "I podcast with Blubrry PowerPress"
328
  msgstr "Jeg podcaster med Blubrry PowerPress"
329
 
330
- #: powerpressadmin-basic.php:185
331
- #@ powerpress
332
  msgid "Facebook"
333
  msgstr "Facebook"
334
 
335
- #: powerpressadmin-basic.php:186
336
- #@ powerpress
337
  msgid "Blubrry PowerPress Podcasting Plugin for WordPress"
338
  msgstr "Blubrry PowerPress Podcasting Plugin for WordPress"
339
 
340
- #: powerpressadmin-basic.php:186
341
- #@ powerpress
342
  msgid "Digg"
343
  msgstr "Digg"
344
 
345
- #: powerpressadmin-basic.php:188
346
- #@ powerpress
347
  msgid "Send us feedback"
348
  msgstr "Send os feedback"
349
 
350
- #: powerpressadmin-basic.php:188
351
- #@ powerpress
352
  msgid "we love getting suggestions for new features!"
353
  msgstr "Vi elsker at få forslag til nye funktioner!"
354
 
355
- #: powerpressadmin-basic.php:212
356
- #@ powerpress
357
  msgid "Episode Entry Options"
358
  msgstr "Indstillinger for indtastning af episode"
359
 
360
- #: powerpressadmin-basic.php:307
361
- #@ powerpress
362
- msgid "Default Media URL"
363
- msgstr "Standard-URL for medier"
364
 
365
- #: powerpressadmin-basic.php:310
366
- #@ powerpress
367
- msgid "e.g. http://example.com/mediafolder/"
368
- msgstr "f.eks. http://eksempel.dk/mediemappe/"
369
 
370
- #: powerpressadmin-basic.php:311
371
- #@ powerpress
372
- msgid "URL above will prefix entered file names that do not start with 'http://'. URL above must end with a trailing slash. You may leave blank if you always enter the complete URL to your media when creating podcast episodes."
373
- msgstr "URL'en ovenfor sættes foran filnavne, som ikke begynder med 'http://'. URL'en ovenfor skal ende med en skråstreg. Du behøver ikke udfylde feltet, hvis du altid indtaster hele URL'en til din mediefil, når du opretter podcastepisoder."
374
 
375
- #: powerpressadmin-basic.php:219
376
- #@ powerpress
377
- msgid "Podcast Entry Box"
378
- msgstr "<span title=\"Podcast Entry Box\">Podcast-indtastningspanel</span>"
379
 
380
- #: powerpressadmin-basic.php:853
381
- #: powerpressadmin-basic.php:880
382
- #@ powerpress
383
- msgid "default"
384
- msgstr "standard"
385
 
386
- #: powerpressadmin-player-page.php:1723
387
- #: powerpressadmin-player-page.php:1725
388
- #@ powerpress
389
- msgid "Custom"
390
- msgstr "Brugerdefineret"
391
 
392
- #: powerpressadmin-basic.php:232
393
- #@ powerpress
394
  msgid "Embed Field"
395
  msgstr "Felt til indsættelse af kode"
396
 
397
- #: powerpressadmin-basic.php:233
398
- #@ powerpress
399
  msgid "Enter embed code from sites such as YouTube, Viddler and Blip.tv"
400
  msgstr "Indsat kode til indsættelse af medie fra sites som fx YouTube, Viddler og Blip.tv"
401
 
402
- #: powerpressadmin-basic.php:234
403
- #@ powerpress
404
  msgid "Replace Player with Embed"
405
  msgstr "Erstat afspiller med indsat kode"
406
 
407
- #: powerpressadmin-basic.php:235
408
- #@ powerpress
409
  msgid "Do not display default player if embed present for episode."
410
  msgstr "Vis ikke standardafspiller, hvis denne episode har et indsat medie."
411
 
412
- #: powerpressadmin-basic.php:237
413
- #@ powerpress
414
  msgid "Display Player and Links Options"
415
  msgstr "Vis indstillinger for afspiller og links"
416
 
417
- #: powerpressadmin-basic.php:241
418
- #@ powerpress
419
  msgid "No Player & Links Option"
420
  msgstr "Ingen indstillinger for afspiller og links"
421
 
422
- #: powerpressadmin-basic.php:242
423
- #@ powerpress
424
  msgid "Disable media player and links on a per episode basis"
425
  msgstr "Deaktivér medieafspiller og links episode for episode"
426
 
427
- #: powerpressadmin-basic.php:244
428
- #@ powerpress
429
  msgid "- or -"
430
  msgstr "- eller -"
431
 
432
- #: powerpressadmin-basic.php:246
433
- #@ powerpress
434
  msgid "No Player Option"
435
  msgstr "Ingen afspillerindstilling."
436
 
437
- #: powerpressadmin-basic.php:247
438
- #@ powerpress
439
  msgid "Disable media player on a per episode basis"
440
  msgstr "Deaktivér medieafspiller episode for episode"
441
 
442
- #: powerpressadmin-basic.php:249
443
- #@ powerpress
444
  msgid "No Links Option"
445
  msgstr "Ingen linkindstilling."
446
 
447
- #: powerpressadmin-basic.php:250
448
- #@ powerpress
449
  msgid "Disable media links on a per episode basis"
450
  msgstr "Deaktivér medielinks episode for episode"
451
 
452
- #: powerpressadmin-basic.php:260
453
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
454
  msgid "iTunes Keywords Field"
455
  msgstr "<span title=\"iTunes Keywords Field\">Felt med iTunes-nøgleord</span>"
456
 
457
- #: powerpressadmin-basic.php:261
458
- #@ powerpress
459
  msgid "Leave unchecked to use your blog post tags"
460
  msgstr "Skal ikke krydses af, hvis du vil bruge dit blogindlægs tags"
461
 
462
- #: powerpressadmin-basic.php:262
463
- #@ powerpress
464
  msgid "iTunes Subtitle Field"
465
  msgstr "<span title=\"iTunes Subtitle Field\">Felt med iTunes-undertitel</span>"
466
 
467
- #: powerpressadmin-basic.php:263
468
- #@ powerpress
469
  msgid "Leave unchecked to use the first 250 characters of your blog post"
470
  msgstr "Skal ikke krydses af, hvis du vil bruge de første 250 tegn i blogindlægget"
471
 
472
- #: powerpressadmin-basic.php:264
473
- #@ powerpress
474
  msgid "iTunes Summary Field"
475
  msgstr "<span title=\"iTunes Summary Field\">Felt med iTunes-resumé</span>"
476
 
477
- #: powerpressadmin-basic.php:265
478
- #@ powerpress
479
  msgid "Leave unchecked to use your blog post"
480
  msgstr "Skal ikke krydses af, hvis du vil bruge dit blogindlæg"
481
 
482
- #: powerpressadmin-basic.php:266
483
- #@ powerpress
484
  msgid "iTunes Author Field"
485
  msgstr "<span title=\"iTunes Author Field\">Felt med iTunes-forfatter</span>"
486
 
487
- #: powerpressadmin-basic.php:267
488
- #@ powerpress
489
  msgid "Leave unchecked to the post author name"
490
  msgstr "Skal ikke krydses af, hvis du vil bruge forfatternavn fra indlæg"
491
 
492
- #: powerpressadmin-basic.php:268
493
- #@ powerpress
494
  msgid "iTunes Explicit Field"
495
  msgstr "<span title=\"iTunes Explicit Field\">Felt med iTunes-oplysninger om \"direkte sprog m.m.\" (\"explicit\")</span>"
496
 
497
- #: powerpressadmin-basic.php:269
498
- #@ powerpress
499
  msgid "Leave unchecked to use your feed's explicit setting"
500
  msgstr "Skal ikke krydses af, hvis du vil bruge feedets konkrete indstillinger"
501
 
502
- #: powerpressadmin-basic.php:271
503
- #@ powerpress
504
  msgid "NOTE: An invalid entry into any of the iTunes fields may cause problems with your iTunes listing. It is highly recommended that you validate your feed using feedvalidator.org everytime you modify any of the iTunes fields listed above."
505
  msgstr "BEMÆRK: En ugyldig indtastning i bare én af iTunes-felterne kan give problemer med <span title=\"iTunes Listing\">iTunes-katalogiseringen af dine podcasts</span>. Det anbefales varmt, at du validerer dit feed på feedvalidator.org, hver gang du ændrer i en af de iTunes-felter, der findes ovenfor."
506
 
507
- #: powerpressadmin-basic.php:272
508
- #@ powerpress
509
  msgid "USE THE ITUNES FIELDS ABOVE AT YOUR OWN RISK."
510
  msgstr "BRUG iTUNES-FELTERNE OVENFOR PÅ EGEN RISIKO."
511
 
512
- #: powerpressadmin-basic.php:322
513
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
514
  msgid "File Size Default"
515
  msgstr "Standard for filstørrelse"
516
 
517
- #: powerpressadmin-basic.php:326
518
- #: powerpressadmin-metabox.php:223
519
- #@ powerpress
520
  msgid "Auto detect file size"
521
  msgstr "Autobestem filstørrelse"
522
 
523
- # CHANGE to user specified?
524
- #: powerpressadmin-basic.php:326
525
- #: powerpressadmin-basic.php:342
526
- #@ powerpress
527
  msgid "User specify"
528
  msgstr "Brugerangivelse"
529
 
530
- #: powerpressadmin-basic.php:332
531
- #@ powerpress
532
  msgid "specify default file size option when creating a new episode"
533
  msgstr "Angiv standardindstilling for filstørrelse, når der oprettes ny episode"
534
 
535
- #: powerpressadmin-basic.php:338
536
- #@ powerpress
537
  msgid "Duration Default"
538
  msgstr "Standard for <span title=\"duration\">varighed</span>"
539
 
540
- #: powerpressadmin-basic.php:342
541
- #: powerpressadmin-metabox.php:238
542
- #@ powerpress
543
  msgid "Auto detect duration (mp3's only)"
544
  msgstr "Autobestem <span title=\"duration\">varighed</span> (kun MP3-filer)"
545
 
546
- #: powerpressadmin-basic.php:342
547
- #@ powerpress
548
  msgid "Not specified (not recommended)"
549
  msgstr "Ikke angivet (anbefales ikke)"
550
 
551
- #: powerpressadmin-basic.php:348
552
- #@ powerpress
553
  msgid "specify default duration option when creating a new episode"
554
  msgstr "Angiv standardindstilling for <span title=\"duration\">varighed</span>, når der oprettes en ny episode"
555
 
556
- #: powerpressadmin-basic.php:357
557
- #@ powerpress
558
  msgid "Auto Add Media"
559
  msgstr "Tilføj automatisk medie"
560
 
561
- #: powerpressadmin-basic.php:361
562
- #: powerpressadmin-diagnostics.php:258
563
- #: powerpressadmin-diagnostics.php:259
564
- #: powerpressadmin-diagnostics.php:260
565
- #: powerpressadmin-diagnostics.php:261
566
- #: powerpressadmin-diagnostics.php:262
567
- #@ powerpress
568
  msgid "Disabled (default)"
569
  msgstr "Deaktiveret (standard)"
570
 
571
- #: powerpressadmin-basic.php:361
572
- #@ powerpress
573
  msgid "First media link found in post content"
574
  msgstr "Første medielink i indlægsindholdet"
575
 
576
- #: powerpressadmin-basic.php:361
577
- #@ powerpress
578
  msgid "Last media link found in post content"
579
  msgstr "Sidste medielink i indlægsindholdet"
580
 
581
- #: powerpressadmin-basic.php:368
582
- #@ powerpress
583
  msgid "When enabled, the first or last media link found in the post content is automatically added as your podcast episode."
584
  msgstr "Når aktiveret, tilføjes det første eller det sidste medielink i blogindlægget automatisk som podcast-episode."
585
 
586
- #: powerpressadmin-basic.php:369
587
- #@ powerpress
588
  msgid "NOTE: Use this feature with caution. Links to media files could unintentionally become podcast episodes."
589
  msgstr "BEMÆRK: Brug denne funktion med forsigtighed. Links til mediefiler kunne ende som podcast-episoder ved et uheld."
590
 
591
- #: powerpressadmin-basic.php:370
592
- #@ powerpress
593
  msgid "WARNING: Episodes created with this feature will <u>not</u> include Duration (total play time) information."
594
  msgstr "ADVARSEL: Episoder oprettet med denne funktion indeholder <u>ikke</u> information om <span title=\"duration\">varighed</span> (spilletid i alt)."
595
 
596
- #: powerpressadmin-basic.php:380
597
- #@ powerpress
598
  msgid "Podcast Permalinks"
599
  msgstr "Podcast-permalinks"
600
 
601
- #: powerpressadmin-basic.php:384
602
- #@ powerpress
603
  msgid "Default WordPress Behavior"
604
  msgstr "<span title=\"Default WordPress Behavior\">WordPress' standardopførsel</span>"
605
 
606
- #: powerpressadmin-basic.php:384
607
- #@ powerpress
608
  msgid "Match Feed Name to Page/Category"
609
  msgstr "Match feednavn til side/kategori"
610
 
611
- #: powerpressadmin-basic.php:391
612
  #, php-format
613
- #@ powerpress
614
  msgid "When configured, %s/podcast/ is matched to page/category named 'podcast'."
615
  msgstr "Når konfigureret, matches %s/podcast/ til side/kategori med navnet 'podcast'."
616
 
617
- #: powerpressadmin-basic.php:415
618
- #@ powerpress
619
  msgid "PodPress Options"
620
  msgstr "PodPress-indstillinger"
621
 
622
- #: powerpressadmin-basic.php:420
623
- #@ powerpress
624
  msgid "PodPress Episodes"
625
  msgstr "PodPress-episoder"
626
 
627
- #: powerpressadmin-basic.php:424
628
- #@ powerpress
629
  msgid "Ignore"
630
  msgstr "Ignorér"
631
 
632
- #: powerpressadmin-basic.php:424
633
- #@ powerpress
634
  msgid "Include in Posts and Feeds"
635
  msgstr "Inkludér i indlæg og feeds"
636
 
637
- #: powerpressadmin-basic.php:430
638
- #@ powerpress
639
  msgid "includes podcast episodes previously created in PodPress"
640
  msgstr "inkluderer podcast-episoder, som tidligere er oprettet i PodPress"
641
 
642
- #: powerpressadmin-basic.php:437
643
- #@ powerpress
644
  msgid "PodPress Stats Archive"
645
  msgstr "Arkiv med PodPress-statistik"
646
 
647
- #: powerpressadmin-basic.php:441
648
- #@ powerpress
649
  msgid "Hide"
650
  msgstr "Skjul"
651
 
652
- #: powerpressadmin-basic.php:441
653
- #@ powerpress
654
  msgid "Display"
655
  msgstr "Vis"
656
 
657
- #: powerpressadmin-basic.php:447
658
- #@ powerpress
659
  msgid "display archive of old PodPress statistics"
660
  msgstr "vis arkiv over gammel PodPress-statistik"
661
 
662
- #: powerpressadmin-basic.php:483
663
- #@ powerpress
664
  msgid "Ping iTunes requires OpenSSL in PHP. Please refer to your php.ini to enable the php_openssl module."
665
  msgstr "For at kunne pinge iTunes skal OpenSSL være installeret i PHP. Du kan aktivere php_openssl-modulet i din php.ini."
666
 
667
- #: powerpressadmin-basic.php:486
668
- #@ powerpress
669
  msgid "iTunes Listing Information"
670
  msgstr "<span title=\"iTunes Listing Information\">Information om iTunes-katalogisering af dine podcasts</span>"
671
 
672
- #: powerpressadmin-basic.php:489
673
- #@ powerpress
674
  msgid "iTunes Subscription URL"
675
  msgstr "<span title=\"iTunes Subscription URL\">URL til tegning af iTunes-abonnement</span>"
676
 
677
- #: powerpressadmin-basic.php:498
678
  #, php-format
679
- #@ powerpress
680
  msgid "e.g. %s"
681
  msgstr "fx %s"
682
 
683
- #: powerpressadmin-basic.php:500
684
  #, php-format
685
- #@ powerpress
686
  msgid "You may use the older style Subscription URL: %s"
687
  msgstr "Du kan bruge Tilmeldings-URL&#39;en i det gamle format: %s"
688
 
689
- #: powerpressadmin-basic.php:502
690
  #, php-format
691
- #@ powerpress
692
  msgid "Click the following link to %s."
693
  msgstr "Klik på det følgende link til %s."
694
 
695
- #: powerpressadmin-basic.php:502
696
- #@ powerpress
697
  msgid "Publish a Podcast on iTunes"
698
  msgstr "Udgiv en podcast på iTunes"
699
 
700
- #: powerpressadmin-basic.php:503
701
- #@ powerpress
702
  msgid "iTunes will email your Subscription URL to the <em>iTunes Email</em> entered below when your podcast is accepted into the iTunes Directory."
703
  msgstr "iTunes vil sende en e-mail med tilmeldings-URL&#39;en til den <em>iTunes-e-mail</em>, der er indtastet nedenfor, så snart din podcast er accepteret af iTunes og optaget i <span title=\"iTunes Podcast Directory\">podcastoversigten</span>."
704
 
705
- #: powerpressadmin-basic.php:506
706
- #@ powerpress
707
  msgid "Recommended feed to submit to iTunes: "
708
  msgstr "Anbefalet feed til indsendelse af podcast til iTunes: "
709
 
710
- #: powerpressadmin-basic.php:528
711
- #@ powerpress
712
  msgid "Update iTunes Listing"
713
  msgstr "Opdatér <span title=\"iTunes Listing\">iTunes-katalogisering af dine podcasts</span>"
714
 
715
- #: powerpressadmin-player-page.php:689
716
- #: powerpressadmin-player-page.php:738
717
- #: powerpressadmin-player-page.php:753
718
- #: powerpressadmin-player-page.php:1245
719
- #: powerpressadmin-player-page.php:1260
720
- #: powerpressadmin-player-page.php:1282
721
- #: powerpressadmin-player-page.php:1339
722
- #@ powerpress
723
- msgid "No"
724
- msgstr "Nej"
725
 
726
- #: powerpressadmin-player-page.php:689
727
- #: powerpressadmin-player-page.php:738
728
- #: powerpressadmin-player-page.php:753
729
- #: powerpressadmin-player-page.php:1245
730
- #: powerpressadmin-player-page.php:1260
731
- #: powerpressadmin-player-page.php:1282
732
- #: powerpressadmin-player-page.php:1339
733
- #@ powerpress
734
- msgid "Yes"
735
- msgstr "Ja"
736
 
737
- #: powerpressadmin.php:1057
738
- #: powerpressadmin.php:1090
739
- #: powerpressadmin.php:1105
740
- #: powerpressadmin.php:1111
741
- #: powerpressadmin.php:1191
742
- #: powerpressadmin.php:1196
743
- #@ powerpress
744
- msgid "Error"
745
- msgstr "Fejl"
746
 
747
- #: powerpressadmin-diagnostics.php:217
748
- #: powerpressadmin-diagnostics.php:226
749
- #: powerpressadmin-jquery.php:427
750
- #@ powerpress
751
- msgid "Error:"
752
- msgstr "Fejl:"
753
 
754
- #: powerpressadmin-jquery.php:449
755
- #: powerpressadmin-jquery.php:453
756
- #: powerpressadmin-jquery.php:469
757
- #: powerpressadmin-jquery.php:478
758
- #: powerpressadmin-jquery.php:497
759
- #: powerpressadmin-jquery.php:504
760
- #@ powerpress
761
- msgid "Blubrry Services Integration"
762
- msgstr "Blubrrys service-integration"
763
 
764
- #: powerpressadmin-jquery.php:78
765
- #: powerpressadmin-jquery.php:80
766
- #: powerpressadmin-jquery.php:89
767
- #: powerpressadmin-jquery.php:98
768
- #: powerpressadmin-jquery.php:100
769
- #@ powerpress
770
- msgid "Blubrry Media Statistics"
771
- msgstr "Blubrrys mediestatistik"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
772
 
773
- #: powerpressadmin-basic.php:659
774
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
775
  msgid "Blubrry Media Hosting"
776
  msgstr "Blubrrys mediehosting"
777
 
778
- #: powerpressadmin-basic.php:718
779
- #: powerpressadmin-editfeed.php:592
780
- #@ powerpress
 
 
 
781
  msgid "Media Statistics"
782
  msgstr "Mediestatistik"
783
 
784
- #: powerpressadmin-basic.php:721
785
- #: powerpressadmin-editfeed.php:594
786
- #@ powerpress
787
  msgid "Enter your Redirect URL issued by your media statistics service provider below."
788
  msgstr "Indtast den Redirect-URL, som du har fået af serviceleverandøren af din medie statistik, nedenfor."
789
 
790
- #: powerpressadmin-basic.php:728
791
- #@ powerpress
792
  msgid "Redirect URL 1"
793
  msgstr "Redirect-URL 1"
794
 
795
- #: powerpressadmin-basic.php:737
796
- #: powerpressadmin-basic.php:756
797
- #@ powerpress
798
  msgid "Add Another Redirect"
799
  msgstr "Tilføj endnu en redirect"
800
 
801
- #: powerpressadmin-basic.php:747
802
- #@ powerpress
803
  msgid "Redirect URL 2"
804
  msgstr "Redirect-URL 2"
805
 
806
- #: powerpressadmin-basic.php:765
807
- #@ powerpress
808
  msgid "Redirect URL 3"
809
  msgstr "Redirect-URL 3"
810
 
811
- #: powerpressadmin-basic.php:656
812
- #: powerpressadmin-basic.php:784
813
- #: powerpressadmin-basic.php:796
814
- #@ powerpress
815
- msgid "FREE"
816
- msgstr "GRATIS"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
817
 
818
- #: powerpressadmin-basic.php:831
819
- #@ powerpress
 
 
 
820
  msgid "Default Podcast (podcast)"
821
  msgstr "Standardpodcast (podcast)"
822
 
823
- #: powerpressadmin-editfeed.php:735
824
- #@ powerpress
825
- msgid "Appearance Settings"
826
- msgstr "Indstillinger for udseende"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
827
 
828
- #: powerpressadmin-basic.php:900
829
- #@ powerpress
830
  msgid "Display media / links in:"
831
  msgstr "Vis medie/links i:"
832
 
833
- #: powerpressadmin-basic.php:900
834
- #@ powerpress
835
  msgid "WordPress Excerpts"
836
  msgstr "WordPress-uddrag"
837
 
838
- #: powerpressadmin-basic.php:900
839
- #@ powerpress
840
  msgid "e.g. search results"
841
  msgstr "f.eks. søgeresultater"
842
 
843
- #: powerpressadmin-basic.php:906
844
- #: powerpressadmin-basic.php:916
845
- #@ powerpress
846
  msgid "PowerPress Shortcode"
847
  msgstr "PowerPress-<span title=\"shortcode\">kortkode</span>"
848
 
849
- #: powerpressadmin-basic.php:916
 
 
 
 
 
 
 
 
 
850
  #, php-format
851
- #@ powerpress
852
  msgid "Please visit the %s page for additional options."
853
  msgstr "Gå til %s-siden for flere indstillinger."
854
 
855
- #: powerpressadmin-basic.php:893
856
- #@ powerpress
857
- msgid "Disable"
858
- msgstr "Deaktivér"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
859
 
860
- #: powerpressadmin-basic.php:968
861
- #@ powerpress
862
  msgid "Having Theme Issues?"
863
  msgstr "Har du problemer med temaet?"
864
 
865
- #: powerpressadmin-basic.php:972
866
- #@ powerpress
867
  msgid "No, everything is working"
868
  msgstr "Nej, alt virker"
869
 
870
- #: powerpressadmin-basic.php:972
871
- #@ powerpress
872
  msgid "Yes, please try to fix"
873
  msgstr "Ja, prøv venligst at løse problemet"
874
 
875
- #: powerpressadmin-basic.php:980
876
- #@ powerpress
877
  msgid "Use this option if you are having problems with the players not appearing in your pages."
878
  msgstr "Brug denne indstilling, hvis du har problemer med, at afspillerne ikke vises på dine sider."
879
 
880
- #: powerpressadmin-basic.php:989
881
- #@ powerpress
882
  msgid "Play in New Window Settings"
883
  msgstr "Indstillinger for afspilning i nyt vindue"
884
 
885
- #: powerpressadmin-basic.php:994
886
- #@ powerpress
887
  msgid "New Window Width"
888
  msgstr "Brede på nyt vindue"
889
 
890
- #: powerpressadmin-basic.php:1004
891
- #@ powerpress
 
 
 
892
  msgid "New Window Height"
893
  msgstr "Højde på nyt vindue"
894
 
895
- #: powerpressadmin-basic.php:1008
896
- #@ powerpress
897
  msgid "Height of new window (leave blank for 240 default)"
898
  msgstr "Højde på nyt vindue (udfyldes feltet ikke, bruges 240 som standard)"
899
 
900
- #: powerpressadmin-player-page.php:1694
901
- #@ powerpress
902
- msgid "Player Width"
903
- msgstr "Bredde på afspiller"
904
 
905
- #: powerpressadmin-player-page.php:1704
906
- #@ powerpress
907
- msgid "Player Height"
908
- msgstr "Højde på afspiller"
909
 
910
- #: powerpressadmin-player-page.php:1714
911
- #@ powerpress
912
- msgid "QuickTime Scale"
913
- msgstr "QuickTimes Scale-parameter"
914
 
915
- #: powerpressadmin-player-page.php:1718
916
- #@ powerpress
917
- msgid "ToFit (default)"
918
- msgstr "<span title=\"tilpas størrelse\">ToFit (standard)</span>"
919
 
920
- #: powerpressadmin-player-page.php:1718
921
- #@ powerpress
922
- msgid "Aspect"
923
- msgstr "Proportional"
924
 
925
- #: powerpressadmin-player-page.php:1736
926
- #@ powerpress
927
- msgid "Scale:"
928
- msgstr "Scale:"
929
 
930
- #: powerpressadmin-player-page.php:1736
931
- #@ powerpress
932
- msgid "e.g."
933
- msgstr "fx"
934
 
935
- #: powerpressadmin-player-page.php:1739
936
- #@ powerpress
937
- msgid "If you do not see video, adjust the width, height and scale settings above."
938
- msgstr "Hvis du ikke ser videoen, så tilpas bredde, højde og scale-indstillinger ovenfor."
939
 
940
- #: powerpressadmin-player-page.php:1630
941
- #@ powerpress
942
- msgid "Width of Audio mp3 player (leave blank for 320 default)"
943
- msgstr "Bredde på MP3-lydafspiller (udfyldes feltet ikke, bruges 320 som standard)"
944
 
945
- #: powerpressadmin-categoryfeeds.php:8
946
- #: powerpressadmin-categoryfeeds.php:59
947
- #@ powerpress
948
- msgid "Category Name"
949
- msgstr "Kategorinavn"
950
 
951
- #: powerpressadmin-categoryfeeds.php:9
952
- #: powerpressadmin-categoryfeeds.php:60
953
- #: powerpressadmin-customfeeds.php:9
954
- #@ powerpress
955
- msgid "Slug"
956
- msgstr "Kort titel"
957
 
958
- #: powerpressadmin-categoryfeeds.php:10
959
- #: powerpressadmin-categoryfeeds.php:61
960
- #: powerpressadmin-editfeed.php:386
961
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
962
  msgid "Feed URL"
963
  msgstr "Feed-URL"
964
 
965
- #: powerpressadmin-categoryfeeds.php:23
966
- #@ powerpress
967
  msgid "Category Podcasting adds custom podcast settings to specific blog category feeds, allowing you to organize episodes by topic."
968
  msgstr "Kategoribaseret podcasting tilføjer brugerdefinerede podcast-indstillinger til de enkelte kategoribaserede blogfeeds, så du kan organisere episoder efter emne."
969
 
970
- #: powerpressadmin-categoryfeeds.php:26
971
  #, php-format
972
- #@ powerpress
973
  msgid "If you are looking to organize episodes by file or format, please use %s."
974
  msgstr "Hvis du ønsker at organisere episoder efter filnavne eller -formater, så brug %s."
975
 
976
- #: powerpressadmin-categoryfeeds.php:122
977
- #: powerpressadmin-customfeeds.php:116
978
- #: powerpressadmin-mt.php:569
979
- #: powerpressadmin-podpress.php:572
980
  #, php-format
981
- #@ powerpress
982
  msgid "Edit \"%s\""
983
  msgstr "Redigér \"%s\""
984
 
985
- #: powerpressadmin-categoryfeeds.php:124
986
- #: powerpressadmin-customfeeds.php:118
987
- #: powerpressadmin-customfeeds.php:166
988
- #@ powerpress
989
  msgid "Edit"
990
  msgstr "Redigér"
991
 
992
- #: powerpressadmin-categoryfeeds.php:125
993
  #, php-format
994
- #@ powerpress
995
  msgid ""
996
  "You are about to remove podcast settings for category feed '%s'\n"
997
  " 'Cancel' to stop, 'OK' to delete."
@@ -999,105 +1111,85 @@ msgstr ""
999
  "Du er ved at fjerne podcast-indstillinger for kategorifeedet '%s'\n"
1000
  " 'Annullér' for at stoppe, 'OK' for at slette."
1001
 
1002
- #: powerpressadmin-categoryfeeds.php:125
1003
- #: powerpressadmin-metabox.php:148
1004
- #@ powerpress
1005
  msgid "Remove"
1006
  msgstr "Fjern"
1007
 
1008
- #: powerpressadmin-categoryfeeds.php:141
1009
- #: powerpressadmin-customfeeds.php:139
1010
  #, php-format
1011
- #@ powerpress
1012
  msgid "Visit %s"
1013
  msgstr "Besøg %s"
1014
 
1015
- #: powerpressadmin-categoryfeeds.php:143
1016
- #: powerpressadmin-customfeeds.php:141
1017
- #@ powerpress
1018
  msgid "Validate Feed"
1019
  msgstr "Validér feed"
1020
 
1021
- #: powerpressadmin-categoryfeeds.php:171
1022
- #@ powerpress
1023
  msgid "Add Podcast Settings to existing Category Feed"
1024
  msgstr "Tilføj podcast-indstillinger til eksisterende kategorifeed"
1025
 
1026
- #: powerpressadmin-categoryfeeds.php:179
1027
- #@ powerpress
1028
  msgid "Category"
1029
  msgstr "Kategori"
1030
 
1031
- #: powerpressadmin-categoryfeeds.php:181
1032
- #: powerpressadmin-editfeed.php:869
1033
- #: powerpressadmin-editfeed.php:898
1034
- #: powerpressadmin-editfeed.php:918
1035
- #@ powerpress
1036
  msgid "Select Category"
1037
  msgstr "Vælg kategori"
1038
 
1039
- #: powerpressadmin-categoryfeeds.php:187
1040
- #@ powerpress
1041
  msgid "Add Podcast Settings to Category Feed"
1042
  msgstr "Tilføj podcast-indstillinger til kategorifeed"
1043
 
1044
- #: powerpressadmin-categoryfeeds.php:196
1045
- #: powerpressadmin-customfeeds.php:202
1046
- #@ powerpress
1047
  msgid "Example Usage"
1048
  msgstr "Eksempler på brug"
1049
 
1050
- #: powerpressadmin-categoryfeeds.php:198
1051
- #@ powerpress
1052
  msgid "Example 1: You have a podcast that covers two topics that sometimes share same posts and sometimes do not. Use your main podcast feed as a combined feed of both topics \tand use category feeds to distribute topic specific episodes."
1053
  msgstr "Eksempel 1: Du har en podcast, som dækker to emner, der sommetider omfatter de samme indlæg, sommetider ikke. Brug din hovedpodcastfeed som en kombineret feed med begge emner \tog brug kategorifeeds til at distribuere episoder inden for de enkelte emner."
1054
 
1055
- #: powerpressadmin-categoryfeeds.php:201
1056
- #@ powerpress
1057
  msgid "Example 2: You want to use categories to keep episodes separate from each other. Each category can be used to distribute separate podcasts with the main podcast feed combining all categories to provide a network feed."
1058
  msgstr "Eksempel 2: Du ønsker at bruge kategorier til at holde episoder adskilt fra hinanden. Hver kategori kan bruges til at distribuere separate podcasts, mens hovedpodcastfeedet leverer et netværksfeed, der kombinerer alle kategorier."
1059
 
1060
- #: powerpressadmin-customfeeds.php:8
1061
- #@ powerpress
1062
  msgid "Name"
1063
  msgstr "Navn"
1064
 
1065
- #: powerpressadmin-customfeeds.php:10
1066
- #@ powerpress
1067
  msgid "Episodes"
1068
  msgstr "Episoder"
1069
 
1070
- #: powerpressadmin-customfeeds.php:11
1071
- #: powerpressadmin-podpress.php:590
1072
- #: powerpressadmin-podpress.php:595
1073
- #@ powerpress
1074
  msgid "URL"
1075
  msgstr "URL"
1076
 
1077
- #: powerpressadmin-customfeeds.php:25
1078
- #@ powerpress
1079
  msgid "Custom podcast Channels allow you to associate multiple media files and/or formats to one blog post."
1080
  msgstr "Brugerdefinerede podcastkanaler giver dig mulighed for at samle flere mediefiler og/eller formater i et blogindlæg."
1081
 
1082
- #: powerpressadmin-customfeeds.php:28
1083
  #, php-format
1084
- #@ powerpress
1085
  msgid "If you are looking to organize episodes by topic, please use %s."
1086
  msgstr "Hvis du ønsker at organisere episoder efter emne, skal du bruge %s."
1087
 
1088
- #: powerpressadmin-customfeeds.php:29
1089
- #@ powerpress
1090
  msgid "Category Podcast Feeds"
1091
  msgstr "Kategoribaserede podcastfeeds"
1092
 
1093
- #: powerpressadmin-customfeeds.php:116
1094
- #@ powerpress
1095
  msgid "default channel"
1096
  msgstr "Standardkanal"
1097
 
1098
- #: powerpressadmin-customfeeds.php:119
1099
  #, php-format
1100
- #@ powerpress
1101
  msgid ""
1102
  "You are about to delete feed '%s'\n"
1103
  " 'Cancel' to stop, 'OK' to delete."
@@ -1105,3598 +1197,3283 @@ msgstr ""
1105
  "Du er ved at slette feedet '%s'\n"
1106
  " 'Annullér' for at stoppe, 'OK' for at slette."
1107
 
1108
- #: powerpressadmin-customfeeds.php:119
1109
- #: powerpressadmin-jquery.php:206
1110
- #: powerpressadmin-jquery.php:260
1111
- #@ powerpress
1112
  msgid "Delete"
1113
  msgstr "Slet"
1114
 
1115
- #: powerpressadmin-customfeeds.php:165
1116
  #, php-format
1117
- #@ powerpress
1118
  msgid "Note: The default channel \"Podcast\" is currently using global PowerPress settings. Click %s to customize the default \"Podcast\" channel."
1119
  msgstr "Bemærk: Standard-podcastkanalen bruger i øjeblikket globale WordPress-indstillinger. Klik %s for at tilpasse standard-podcastkanalen."
1120
 
1121
- #: powerpressadmin-customfeeds.php:173
1122
- #: powerpressadmin-customfeeds.php:193
1123
- #@ powerpress
1124
  msgid "Add Podcast Channel"
1125
  msgstr "Tilføj podcastkanal"
1126
 
1127
- #: powerpressadmin-customfeeds.php:182
1128
- #@ powerpress
1129
  msgid "Feed Name"
1130
  msgstr "Navn på feed"
1131
 
1132
- # TJEKKES
1133
- #: powerpressadmin-customfeeds.php:184
1134
- #@ powerpress
1135
  msgid "The name is used for use within the administration area only."
1136
  msgstr "Navnet bruges kun i kontrolpanelet."
1137
 
1138
- #: powerpressadmin-customfeeds.php:188
1139
- #@ powerpress
1140
  msgid "Feed Slug"
1141
  msgstr "Kort titel for feed"
1142
 
1143
- #: powerpressadmin-customfeeds.php:190
1144
- #@ powerpress
1145
  msgid "The &#8220;slug&#8221; is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens."
1146
  msgstr "Den korte titel er den url-venlige udgave af navnet. Det er normalt skrevet med ene små bogstaver og indeholder kun bogstaver, tal og bindestreger."
1147
 
1148
- #: powerpressadmin-customfeeds.php:204
1149
- #@ powerpress
1150
  msgid "Example 1: You want to distribute both an mp3 and an ogg version of your podcast. Use the default podcast channel for your mp3 media and create a custom channel for your ogg media."
1151
  msgstr "Eksempel 1: Du ønsker at distribuere både en MP3- og en OGG-version af din podcast. Brug standard-podcastkanalen til dine MP3-medier og opret en brugerdefineret kanal til dine OGG-medier."
1152
 
1153
- #: powerpressadmin-customfeeds.php:207
1154
- #@ powerpress
1155
  msgid "Example 2: You have a video podcast with multiple file formats. Use the default podcast channel for the main media that you want to appear on your blog (e.g. m4v). Create additional channels for the remaining formats (e.g. wmv, mov, mpeg)."
1156
  msgstr "Eksempel 2: Du har en videopodcast i flere filformater. Brug standard-podcastkanalen for hovedmediet, du ønsker, der skal vises på din blog (fx M4V). Opret ekstra kanaler til de resterende formater (fx WMV, MOV og MPEG)."
1157
 
1158
- #: powerpressadmin-dashboard.php:112
 
 
 
 
1159
  #, php-format
1160
- #@ powerpress
1161
  msgid "Wait a sec! This feature is only available to Blubrry Podcast Community members. Join our community to get free podcast statistics and access to other valuable %s."
1162
  msgstr "Vent et øjeblik! Denne funktion er kun tilgængelig for medlemmer af Blubrry Podcast Community. Meld dig ind og få gratis podcast-statistik og adgang til andre værdifulde %s."
1163
 
1164
- #: powerpressadmin-dashboard.php:113
1165
- #@ powerpress
1166
  msgid "Services"
1167
  msgstr "tjenester"
1168
 
1169
- #: powerpressadmin-dashboard.php:115
1170
  #, php-format
1171
- #@ powerpress
1172
  msgid "Our %s integrated PowerPress makes podcast publishing simple. Check out the %s on our exciting three-step publishing system!"
1173
  msgstr "Vores PowerPress, som integrerer %s, har gjort det let at udgive podcasts. Tjek %s om vores spændende publiceringssystem i tre trin!"
1174
 
1175
- #: powerpressadmin-dashboard.php:116
1176
- #@ powerpress
1177
  msgid "Podcast Hosting"
1178
  msgstr "Podcast Hosting"
1179
 
1180
- #: powerpressadmin-dashboard.php:117
1181
- #@ powerpress
1182
  msgid "Video"
1183
  msgstr "videon"
1184
 
1185
- #: powerpressadmin-dashboard.php:128
1186
- #@ powerpress
1187
  msgid "Error: An error occurred authenticating user."
1188
  msgstr "Fejl: Der forekom en fejl i forsøget på <span title=\"authenticating user\">at tjekke adgangsoplysninger for bruger</span>."
1189
 
1190
- #: powerpressadmin-dashboard.php:140
1191
- #@ powerpress
1192
  msgid "Blubrry Media statistics"
1193
  msgstr "Blubrrys mediestatistik"
1194
 
1195
- #: powerpressadmin-dashboard.php:140
1196
- #: powerpressadmin-editfeed.php:879
1197
- #@ powerpress
1198
  msgid "more"
1199
  msgstr "mere"
1200
 
1201
- #: powerpressadmin-dashboard.php:192
1202
- #@ powerpress
 
 
 
1203
  msgid "Blubrry Podcast Statistics"
1204
  msgstr "Blubrrys poodcaststatistik"
1205
 
1206
- #: powerpressadmin-diagnostics.php:23
1207
- #@ powerpress
1208
  msgid "Your web server supports the PHP cURL library."
1209
  msgstr "Din webserver understøtter cURL-biblioteket for PHP."
1210
 
1211
- #: powerpressadmin-diagnostics.php:25
1212
- #@ powerpress
1213
  msgid "Your web server is also configured with the php.ini setting 'allow_url_fopen' enabled, but the cURL library takes precedence."
1214
  msgstr "Din webserver er også konfigureret med php.ini-indstillingen 'allow_url_fopen' slået til, men cURL-biblioteket har forrang."
1215
 
1216
- #: powerpressadmin-diagnostics.php:30
1217
- #@ powerpress
1218
  msgid "Warning: Both php.ini settings 'safe_mode' and 'open_basedir' will prevent the cURL library from following redirects in URLs."
1219
  msgstr "Advarsel: Både php.ini-indstillingerne 'safe_mode' og 'open_basedir' forhindrer cURL-biblioteket i at følge URL-redirects."
1220
 
1221
- #: powerpressadmin-diagnostics.php:35
1222
- #@ powerpress
1223
  msgid "Warning: The php.ini setting 'safe_mode' will prevent the cURL library from following redirects in URLs."
1224
  msgstr "Advarsel: php.ini-indstillingen 'safe_mode' forhindrer cURL-biblioteket i at følge URL-redirects."
1225
 
1226
- #: powerpressadmin-diagnostics.php:40
1227
- #@ powerpress
1228
  msgid "Warning: The php.ini setting 'open_basedir' will prevent the cURL library from following redirects in URLs."
1229
  msgstr "Advarsel: php.ini-indstillingen 'open_basedir' forhindrer cURL-biblioteket i at følge URL-redirects."
1230
 
1231
- #: powerpressadmin-diagnostics.php:45
1232
- #@ powerpress
1233
  msgid "Your web server is configured with the php.ini setting 'allow_url_fopen' enabled."
1234
  msgstr "Din webserver er konfigureret med php.ini-indstillingen 'allow_url_fopen' aktiveret."
1235
 
1236
- #: powerpressadmin-diagnostics.php:50
1237
- #@ powerpress
1238
  msgid "Your server must either have the php.ini setting 'allow_url_fopen' enabled or have the PHP cURL library installed in order to detect media information."
1239
  msgstr "Din server skal enten have php.ini-indstillingen 'allow_url_fopen' aktiveret eller have cURL-biblioteket til PHP installeret for at kunne aflæse medieinformation."
1240
 
1241
- #: powerpressadmin-diagnostics.php:71
1242
- #@ powerpress
1243
  msgid "The problem with 'Detecting Media Information' above needs to be resolved for this test to continue."
1244
  msgstr "Problemet med 'Aflæsning af information om medier' ovenfor skal løses, for at denne test kan fortsætte."
1245
 
1246
- #: powerpressadmin-diagnostics.php:75
1247
- #: powerpressadmin-diagnostics.php:84
1248
- #@ powerpress
1249
  msgid "Your web server supports secure HTTPS connections."
1250
  msgstr "Din webserver understøtter sikre HTTPS-forbindelser."
1251
 
1252
- #: powerpressadmin-diagnostics.php:80
1253
- #@ powerpress
1254
  msgid "Your web server's cURL library does not support secure HTTPS connections."
1255
  msgstr "Din webservers cURL-bibliotek understøtter ikke sikre HTTPS-forbindelser."
1256
 
1257
- #: powerpressadmin-diagnostics.php:89
1258
- #@ powerpress
1259
  msgid "Pinging iTunes requires the PHP OpenSSL library to be installed."
1260
  msgstr "For at kunne pinge iTunes skal <span title=\"PHP OpenSSL library\">OpenSSL-biblioteket for PHP</span> være installeret."
1261
 
1262
- #: powerpressadmin-diagnostics.php:108
1263
- #@ powerpress
1264
  msgid "Your server requires the php.ini setting 'file_uploads' enabled in order to upload podcast artwork."
1265
  msgstr "Din server kræver, at php.ini-indstillingen 'file_uploads' er aktiveret, for at der kan uploades podcast-illustrationer."
1266
 
1267
- #: powerpressadmin-diagnostics.php:116
1268
  #, php-format
1269
- #@ powerpress
1270
  msgid "Unable to create directory %s. Is its parent directory writable by the server?"
1271
  msgstr "Kunne ikke oprette mappen %s. Er overmappen skrivbar for serveren?"
1272
 
1273
- #: powerpressadmin-diagnostics.php:123
1274
  #, php-format
1275
- #@ powerpress
1276
  msgid "PowerPress is unable to write to the %s directory."
1277
  msgstr "PowerPress kan ikke skrive til %s-mappen."
1278
 
1279
- #: powerpressadmin-diagnostics.php:128
1280
- #@ powerpress
1281
  msgid "You are able to upload and save artwork images for your podcasts."
1282
  msgstr "Du kan uploade og gemme billeder med illustrationer til dine podcasts."
1283
 
1284
- #: powerpressadmin-diagnostics.php:137
1285
- #@ powerpress
1286
  msgid "An error occurred obtaining the uploads directory from WordPress."
1287
  msgstr "En fejl forekom i forsøget på at aflæse navnet på uploads-mappen i WordPress."
1288
 
1289
- #: powerpressadmin-diagnostics.php:166
1290
  #, php-format
1291
- #@ powerpress
1292
  msgid "Your version of PHP (%s) is OK!"
1293
  msgstr "Din version af PHP (%s) er OK!"
1294
 
1295
- #: powerpressadmin-diagnostics.php:170
1296
  #, php-format
1297
- #@ powerpress
1298
  msgid "Your version of PHP (%s) is OK, though PHP 5.2 or newer is recommended."
1299
  msgstr "Din version af PHP (%s) er OK, selv om PHP 5.2 eller nyere anbefales."
1300
 
1301
- #: powerpressadmin-diagnostics.php:174
1302
  #, php-format
1303
- #@ powerpress
1304
  msgid "Your version of PHP (%s) will work, but PHP 5.2 or newer is recommended."
1305
  msgstr "Din version af PHP (%s) vil fungere, men PHP 5.2 eller nyere anbefales."
1306
 
1307
- #: powerpressadmin-diagnostics.php:182
1308
- #@ powerpress
1309
  msgid "Your scripts have no limit to the amount of memory they can use."
1310
  msgstr "Dine skripts har ingen begrænsninger på, hvor meget hukommelse de må bruge."
1311
 
1312
- #: powerpressadmin-diagnostics.php:192
1313
  #, php-format
1314
- #@ powerpress
1315
  msgid "You are using %d%% (%.01fM of %.01dM) of available memory."
1316
  msgstr "Du bruger %d%% (%.01fM af %.01dM) af den tilgængelige hukommelse."
1317
 
1318
- #: powerpressadmin-diagnostics.php:199
1319
  #, php-format
1320
- #@ powerpress
1321
  msgid "You are using %d%% (%.01fM of %dM) of available memory. Versions of PHP 5.2 or newer will give you a more accurate total of memory usage."
1322
  msgstr "Du bruger %d%% (%.01fM af %dM) den tilgængelige hukommelse. PHP 5.2 eller nyere versioner vil give dig mere en mere præcis opgørelse over hukommelsesforbruget."
1323
 
1324
- #: powerpressadmin-diagnostics.php:203
1325
  #, php-format
1326
- #@ powerpress
1327
  msgid "Your scripts have a total of %dM."
1328
  msgstr "Dine skripts kan højst bruge %dM."
1329
 
1330
- #: powerpressadmin-diagnostics.php:209
1331
- #@ powerpress
1332
  msgid "Warning:"
1333
  msgstr "Advarsel:"
1334
 
1335
- #: powerpressadmin-diagnostics.php:211
1336
  #, php-format
1337
- #@ powerpress
1338
  msgid "We recommend that you have at least %dM (4M more that what is currently used) or more memory to accomodate all of your installed plugins."
1339
  msgstr "Vi anbefaler, at du som minimum har %dM (4M mere, end hvad der bruges for øjeblikket) eller mere hukommelse, så alle dine installerede plugins kan køre."
1340
 
1341
- #: powerpressadmin-diagnostics.php:217
1342
- #@ powerpress
 
 
 
 
 
1343
  msgid "No temporary directory available."
1344
  msgstr "Der er ingen mappe til midlertidige filer tilgængelig."
1345
 
1346
- #: powerpressadmin-diagnostics.php:221
1347
  #, php-format
1348
- #@ powerpress
1349
  msgid "Temporary directory %s is writable."
1350
  msgstr "Mappen for midlertidige filer %s er skrivbar."
1351
 
1352
- #: powerpressadmin-diagnostics.php:226
1353
  #, php-format
1354
- #@ powerpress
1355
  msgid "Temporary directory %s is not writable."
1356
  msgstr "Mappe til midlertidige filer %s er ikke skrivbar."
1357
 
1358
- #: powerpressadmin-diagnostics.php:234
1359
  #, php-format
1360
- #@ powerpress
1361
  msgid "Diagnostic results sent to %s."
1362
  msgstr "Diagnostiske resultater sendt til %s."
1363
 
1364
- #: powerpressadmin-diagnostics.php:244
1365
- #@ powerpress
1366
  msgid "Blog Title:"
1367
  msgstr "Blogtitel:"
1368
 
1369
- #: powerpressadmin-diagnostics.php:245
1370
- #@ powerpress
1371
  msgid "Blog URL:"
1372
  msgstr "URL til blog"
1373
 
1374
- #: powerpressadmin-diagnostics.php:246
1375
- #@ powerpress
1376
  msgid "WordPress Version:"
1377
  msgstr "WordPress-version:"
1378
 
1379
- #: powerpressadmin-diagnostics.php:248
1380
- #@ powerpress
1381
  msgid "WordPress MU Version:"
1382
  msgstr "WordPress MU-Version:"
1383
 
1384
- #: powerpressadmin-diagnostics.php:249
1385
- #@ powerpress
1386
  msgid "System:"
1387
  msgstr "System:"
1388
 
1389
- # CHANGE typo?
1390
- #: powerpressadmin-diagnostics.php:250
1391
- #@ powerpress
1392
  msgid "Safe node:"
1393
  msgstr "Safe mode:"
1394
 
1395
- #: powerpressadmin-diagnostics.php:251
1396
- #@ powerpress
1397
  msgid "Open basedir:"
1398
  msgstr "Open basedir:"
1399
 
1400
- #: powerpressadmin-diagnostics.php:255
1401
- #@ powerpress
1402
  msgid "Important PowerPress Settings"
1403
  msgstr "Vigtige WordPress-indstillinger"
1404
 
1405
- #: powerpressadmin-diagnostics.php:256
1406
- #@ powerpress
1407
  msgid "PowerPress version:"
1408
  msgstr "WordPress-version:"
1409
 
1410
- #: powerpressadmin-diagnostics.php:258
1411
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
1412
  msgid "Podcasting capability:"
1413
  msgstr "Podcasting-rettigheder:"
1414
 
1415
- #: powerpressadmin-diagnostics.php:258
1416
- #: powerpressadmin-diagnostics.php:259
1417
- #: powerpressadmin-diagnostics.php:260
1418
- #: powerpressadmin-diagnostics.php:261
1419
- #: powerpressadmin-diagnostics.php:262
1420
- #@ powerpress
1421
  msgid "Enabled"
1422
  msgstr "aktiveret"
1423
 
1424
- #: powerpressadmin-diagnostics.php:259
1425
- #@ powerpress
1426
  msgid "Feed capability:"
1427
  msgstr "Feedrettigheder:"
1428
 
1429
- #: powerpressadmin-diagnostics.php:260
1430
- #@ powerpress
1431
  msgid "Category Podcasting:"
1432
  msgstr "Kategoribaseret podcasting:"
1433
 
1434
- #: powerpressadmin-diagnostics.php:261
1435
- #@ powerpress
1436
  msgid "Podcast Channels:"
1437
  msgstr "Podcastkanaler:"
1438
 
1439
- #: powerpressadmin-diagnostics.php:262
1440
- #@ powerpress
1441
  msgid "Additional Player Options:"
1442
  msgstr "Flere indstillinger for afspiller:"
1443
 
1444
- #: powerpressadmin-diagnostics.php:266
1445
- #: powerpressadmin-diagnostics.php:401
1446
- #@ powerpress
1447
  msgid "Detecting Media Information"
1448
  msgstr "Aflæsning af information om medier"
1449
 
1450
- #: powerpressadmin-diagnostics.php:267
1451
- #: powerpressadmin-diagnostics.php:285
1452
- #: powerpressadmin-diagnostics.php:294
1453
- #@ powerpress
1454
  msgid "success:"
1455
  msgstr "succes:"
1456
 
1457
- #: powerpressadmin-diagnostics.php:268
1458
- #: powerpressadmin-diagnostics.php:295
1459
- #@ powerpress
1460
  msgid "warning:"
1461
  msgstr "advarsel:"
1462
 
1463
- #: powerpressadmin-diagnostics.php:269
1464
- #@ powerpress
1465
  msgid "allow_url_fopen:"
1466
  msgstr "allow_url_fopen:"
1467
 
1468
- #: powerpressadmin-diagnostics.php:270
1469
- #@ powerpress
1470
  msgid "curl:"
1471
  msgstr "cURL:"
1472
 
1473
- #: powerpressadmin-diagnostics.php:271
1474
- #: powerpressadmin-diagnostics.php:289
1475
- #: powerpressadmin-diagnostics.php:300
1476
- #@ powerpress
1477
  msgid "message:"
1478
  msgstr "besked:"
1479
 
1480
- #: powerpressadmin-diagnostics.php:272
1481
- #: powerpressadmin-diagnostics.php:301
1482
- #@ powerpress
1483
  msgid "message 2:"
1484
  msgstr "besked 2:"
1485
 
1486
- #: powerpressadmin-diagnostics.php:424
1487
- #@ powerpress
1488
- msgid "Pinging iTunes"
1489
- msgstr "Pingning af iTunes"
1490
-
1491
- #: powerpressadmin-diagnostics.php:284
1492
- #: powerpressadmin-diagnostics.php:441
1493
- #@ powerpress
1494
  msgid "Uploading Artwork"
1495
  msgstr "Uploadning af illustrationer"
1496
 
1497
- #: powerpressadmin-diagnostics.php:286
1498
- #@ powerpress
1499
  msgid "file_uploads:"
1500
  msgstr "file_uploads:"
1501
 
1502
- #: powerpressadmin-diagnostics.php:287
1503
- #@ powerpress
1504
  msgid "writable:"
1505
  msgstr "skrivbar:"
1506
 
1507
- #: powerpressadmin-diagnostics.php:288
1508
- #@ powerpress
1509
  msgid "upload_path:"
1510
  msgstr "upload_path:"
1511
 
1512
- #: powerpressadmin-diagnostics.php:293
1513
- #: powerpressadmin-diagnostics.php:454
1514
- #@ powerpress
1515
  msgid "System Information"
1516
  msgstr "Systeminformation"
1517
 
1518
- #: powerpressadmin-diagnostics.php:296
1519
- #@ powerpress
1520
  msgid "php_version:"
1521
  msgstr "php_version:"
1522
 
1523
- #: powerpressadmin-diagnostics.php:297
1524
- #@ powerpress
1525
  msgid "memory_limit:"
1526
  msgstr "memory_limit:"
1527
 
1528
- #: powerpressadmin-diagnostics.php:298
1529
- #@ powerpress
1530
  msgid "memory_used:"
1531
  msgstr "memory_used:"
1532
 
1533
- #: powerpressadmin-diagnostics.php:299
1534
- #@ powerpress
1535
  msgid "temp directory:"
1536
  msgstr "<span title=\"temp directory\">mappe til midlertidige filer</span>"
1537
 
1538
- #: powerpressadmin-diagnostics.php:302
1539
- #@ powerpress
1540
  msgid "message 3:"
1541
  msgstr "besked 3:"
1542
 
1543
- #: powerpressadmin-diagnostics.php:308
1544
- #@ powerpress
1545
  msgid "Active Plugins"
1546
  msgstr "Aktive plugins"
1547
 
1548
- #: powerpressadmin-diagnostics.php:313
1549
- #@ powerpress
1550
  msgid "Title:"
1551
  msgstr "Titel:"
1552
 
1553
- #: powerpressadmin-diagnostics.php:314
1554
- #@ powerpress
1555
  msgid "Relative Path:"
1556
  msgstr "Relativ sti:"
1557
 
1558
- #: powerpressadmin-diagnostics.php:315
1559
- #@ powerpress
1560
  msgid "Version:"
1561
  msgstr "Version:"
1562
 
1563
- #: powerpressadmin-diagnostics.php:316
1564
- #@ powerpress
1565
  msgid "Web Site:"
1566
  msgstr "Website:"
1567
 
1568
- #: powerpressadmin-diagnostics.php:337
1569
  #, php-format
1570
- #@ powerpress
1571
  msgid "Blubrry PowerPress diagnostic results for %s"
1572
  msgstr "Diagnostiske resultater for Blubrry PowerPress på %s"
1573
 
1574
- #: powerpressadmin-diagnostics.php:355
1575
- #: powerpressadmin-find-replace.php:318
1576
- #@ powerpress
1577
  msgid "Success"
1578
  msgstr "Succes"
1579
 
1580
- #: powerpressadmin-diagnostics.php:360
1581
- #: powerpressadmin-find-replace.php:323
1582
- #@ powerpress
1583
  msgid "Failed"
1584
  msgstr "Mislykkedes"
1585
 
1586
- #: powerpressadmin-diagnostics.php:366
1587
- #@ powerpress
1588
  msgid "Warning"
1589
  msgstr "Advarsel"
1590
 
1591
- #: powerpressadmin-diagnostics.php:386
1592
- #@ powerpress
1593
  msgid "Blubrry PowerPress Diagnostics"
1594
  msgstr "Blubrrys PowerPress-diagnosticering"
1595
 
1596
- #: powerpressadmin-diagnostics.php:388
1597
- #: powerpressadmin-tools.php:193
1598
- #@ powerpress
1599
  msgid "The Diagnostics page checks to see if your server is configured to support all of the available features in Blubrry PowerPress."
1600
  msgstr "PowerPress-diagnosticering tjekker, om din server er konfigureret, så den understøtter alle de tilgængelige funktioner i Blubrry PowerPress."
1601
 
1602
- #: powerpressadmin-diagnostics.php:395
1603
- #@ powerpress
1604
  msgid "Diagnostics Email Message"
1605
  msgstr "E-mail-besked med diagnostiske oplysninger"
1606
 
1607
- #: powerpressadmin-diagnostics.php:403
1608
- #@ powerpress
1609
  msgid "The following test checks to see if your web server can make connections with other web servers to obtain file size and media duration information. The test checks to see if either the PHP cURL library is installed or the php.ini setting 'allow_url_fopen' enabled."
1610
  msgstr "De følgende test tjekker, om din webserver kan etablere forbindelse med andre webservere og hente informationer om filstørrelse og <span title=\"media duration\">medievarighed</span>. Testen tjekker, enten om cURL-biblioteket til PHP er installeret, eller om php.ini-indstillingen 'allow_url_fopen' er aktiveret."
1611
 
1612
- #: powerpressadmin-diagnostics.php:415
1613
- #@ powerpress
1614
  msgid "If you are still having problems detecting media information, check with your web hosting provider if there is a firewall blocking your server."
1615
  msgstr "Hvis du stadig har problemer med at aflæse information om medier, så tjek med din leverandøren af din webserver, at der ikke er en firewall, der blokerer for din server."
1616
 
1617
- #: powerpressadmin-diagnostics.php:417
1618
- #: powerpressadmin-diagnostics.php:434
1619
- #@ powerpress
1620
  msgid "Contact your web hosting provider with the information above."
1621
  msgstr "Kontakt din leverandør af webserver med oplysningerne ovenfor."
1622
 
1623
- #: powerpressadmin-diagnostics.php:425
1624
- #@ powerpress
 
 
 
1625
  msgid "The following test checks to see that your web server can make connections with Apple's secure ping server."
1626
  msgstr "Den følgende test tjekker, om din webserver kan etablere forbindelse med <span title=\"Apple's secure ping server\">Apples sikre ping-server</span>."
1627
 
1628
- #: powerpressadmin-diagnostics.php:442
1629
- #@ powerpress
1630
  msgid "The following test checks to see that you can upload and store files on your web server."
1631
  msgstr "Den følgende test tjekker, om du kan uploade og gemme filer på din webserver."
1632
 
1633
- #: powerpressadmin-diagnostics.php:455
1634
- #@ powerpress
1635
  msgid "The following test checks your version of PHP, memory usage and temporary directory access."
1636
  msgstr "Den følgende test tjekker versionen af din PHP, hukommelsesbrug og adgang til mappen for midlertidige filer."
1637
 
1638
- #: powerpressadmin-diagnostics.php:467
1639
- #@ powerpress
 
 
 
 
1640
  msgid "Contact your web hosting provider to inquire how to increase the PHP memory limit on your web server."
1641
  msgstr "Kontakt leverandøren af din webserver og find ud af, hvordan man øger <span title=\"PHP memory limit\">PHP's hukommelsesbegrænsning</span> på din webserver."
1642
 
1643
- #: powerpressadmin-diagnostics.php:481
1644
- #@ powerpress
1645
  msgid "Email Results"
1646
  msgstr "E-mail resultater"
1647
 
1648
- #: powerpressadmin-diagnostics.php:482
1649
- #@ powerpress
1650
  msgid "Send the results above to the specified Email address."
1651
  msgstr "Send resultaterne ovenfor til e-mail-adressen angivet nedenfor."
1652
 
1653
- #: powerpressadmin-diagnostics.php:486
1654
- #@ powerpress
1655
  msgid "Email"
1656
  msgstr "E-mail"
1657
 
1658
- #: powerpressadmin-diagnostics.php:497
1659
- #@ powerpress
1660
  msgid "Include list of active plugins in diagnostics results."
1661
  msgstr "Inkludér liste over aktive plugins i de diagnostiske resultater."
1662
 
1663
- #: powerpressadmin-editfeed.php:10
1664
- #@ powerpress
1665
  msgid "Afrikaans"
1666
  msgstr "Afrikaans"
1667
 
1668
- #: powerpressadmin-editfeed.php:11
1669
- #@ powerpress
1670
  msgid "Albanian"
1671
  msgstr "Albansk"
1672
 
1673
- #: powerpressadmin-editfeed.php:12
1674
- #@ powerpress
1675
  msgid "Arabic"
1676
  msgstr "Arabisk"
1677
 
1678
- #: powerpressadmin-editfeed.php:13
1679
- #@ powerpress
1680
  msgid "Arabic (Saudi Arabia)"
1681
  msgstr "Arabisk (Saudi-Arabien)"
1682
 
1683
- #: powerpressadmin-editfeed.php:14
1684
- #@ powerpress
1685
  msgid "Arabic (Egypt)"
1686
  msgstr "Arabisk (Egypten)"
1687
 
1688
- #: powerpressadmin-editfeed.php:15
1689
- #@ powerpress
1690
  msgid "Arabic (Algeria)"
1691
  msgstr "Arabisk (Algeriet)"
1692
 
1693
- #: powerpressadmin-editfeed.php:16
1694
- #@ powerpress
1695
  msgid "Arabic (Tunisia)"
1696
  msgstr "Arabisk (Tunesien)"
1697
 
1698
- #: powerpressadmin-editfeed.php:17
1699
- #@ powerpress
1700
  msgid "Arabic (Yemen)"
1701
  msgstr "Arabisk (Yemen)"
1702
 
1703
- #: powerpressadmin-editfeed.php:18
1704
- #@ powerpress
1705
  msgid "Arabic (Jordan)"
1706
  msgstr "Arabisk (Jordan)"
1707
 
1708
- #: powerpressadmin-editfeed.php:19
1709
- #@ powerpress
1710
  msgid "Arabic (Kuwait)"
1711
  msgstr "Arabisk (Kuwait)"
1712
 
1713
- #: powerpressadmin-editfeed.php:20
1714
- #@ powerpress
1715
  msgid "Arabic (Bahrain)"
1716
  msgstr "Arabisk (Bahrain)"
1717
 
1718
- #: powerpressadmin-editfeed.php:21
1719
- #@ powerpress
1720
  msgid "Basque"
1721
  msgstr "Baskisk"
1722
 
1723
- #: powerpressadmin-editfeed.php:22
1724
- #@ powerpress
1725
  msgid "Belarusian"
1726
  msgstr "Hviderussisk"
1727
 
1728
- #: powerpressadmin-editfeed.php:23
1729
- #@ powerpress
1730
  msgid "Bulgarian"
1731
  msgstr "Bulgarsk"
1732
 
1733
- #: powerpressadmin-editfeed.php:24
1734
- #@ powerpress
1735
  msgid "Catalan"
1736
  msgstr "Katalansk"
1737
 
1738
- #: powerpressadmin-editfeed.php:25
1739
- #@ powerpress
1740
  msgid "Chinese (Simplified)"
1741
  msgstr "Kinesisk (forsimplet)"
1742
 
1743
- #: powerpressadmin-editfeed.php:26
1744
- #@ powerpress
1745
  msgid "Chinese (Traditional)"
1746
  msgstr "Kinesisk (traditionel)"
1747
 
1748
- #: powerpressadmin-editfeed.php:27
1749
- #@ powerpress
1750
  msgid "Croatian"
1751
  msgstr "Kroatisk"
1752
 
1753
- #: powerpressadmin-editfeed.php:28
1754
- #@ powerpress
1755
  msgid "Czech"
1756
  msgstr "Tjekkisk"
1757
 
1758
- #: powerpressadmin-editfeed.php:29
1759
- #@ powerpress
1760
  msgid "Danish"
1761
  msgstr "Dansk"
1762
 
1763
- #: powerpressadmin-editfeed.php:30
1764
- #@ powerpress
1765
  msgid "Dutch"
1766
  msgstr "Nederlandsk"
1767
 
1768
- #: powerpressadmin-editfeed.php:31
1769
- #@ powerpress
1770
  msgid "Dutch (Belgium)"
1771
  msgstr "Nederlandsk (Belgien)"
1772
 
1773
- #: powerpressadmin-editfeed.php:32
1774
- #@ powerpress
1775
  msgid "Dutch (Netherlands)"
1776
  msgstr "Nederlandsk (Nederlandene)"
1777
 
1778
- #: powerpressadmin-editfeed.php:33
1779
- #@ powerpress
1780
  msgid "English"
1781
  msgstr "Engelsk"
1782
 
1783
- #: powerpressadmin-editfeed.php:34
1784
- #@ powerpress
1785
  msgid "English (Australia)"
1786
  msgstr "Engelsk (Australien)"
1787
 
1788
- #: powerpressadmin-editfeed.php:35
1789
- #@ powerpress
1790
  msgid "English (Belize)"
1791
  msgstr "Engelsk (Belize)"
1792
 
1793
- #: powerpressadmin-editfeed.php:36
1794
- #@ powerpress
1795
  msgid "English (Canada)"
1796
  msgstr "Engelsk (Canada)"
1797
 
1798
- #: powerpressadmin-editfeed.php:37
1799
- #@ powerpress
1800
  msgid "English (Ireland)"
1801
  msgstr "Engelsk (Irland)"
1802
 
1803
- #: powerpressadmin-editfeed.php:38
1804
- #@ powerpress
1805
  msgid "English (Jamaica)"
1806
  msgstr "Engelsk (Jamaica)"
1807
 
1808
- #: powerpressadmin-editfeed.php:39
1809
- #@ powerpress
1810
  msgid "English (New Zealand)"
1811
  msgstr "Engelsk (New Zealand)"
1812
 
1813
- #: powerpressadmin-editfeed.php:40
1814
- #@ powerpress
1815
  msgid "English (Phillipines)"
1816
  msgstr "Engelsk (Filippinerne)"
1817
 
1818
- #: powerpressadmin-editfeed.php:41
1819
- #@ powerpress
1820
  msgid "English (South Africa)"
1821
  msgstr "Engelsk (Sydafrika)"
1822
 
1823
- #: powerpressadmin-editfeed.php:42
1824
- #@ powerpress
1825
  msgid "English (Trinidad)"
1826
  msgstr "Engelsk (Trinidad)"
1827
 
1828
- #: powerpressadmin-editfeed.php:43
1829
- #@ powerpress
1830
  msgid "English (United Kingdom)"
1831
  msgstr "Engelsk (Storbritannien)"
1832
 
1833
- #: powerpressadmin-editfeed.php:44
1834
- #@ powerpress
1835
  msgid "English (United States)"
1836
  msgstr "Engelsk (USA)"
1837
 
1838
- #: powerpressadmin-editfeed.php:45
1839
- #@ powerpress
1840
  msgid "English (Zimbabwe)"
1841
  msgstr "Engelsk (Zimbabwe)"
1842
 
1843
- #: powerpressadmin-editfeed.php:46
1844
- #@ powerpress
1845
  msgid "Estonian"
1846
  msgstr "Estisk"
1847
 
1848
- #: powerpressadmin-editfeed.php:47
1849
- #@ powerpress
1850
  msgid "Faeroese"
1851
  msgstr "Færøsk"
1852
 
1853
- #: powerpressadmin-editfeed.php:48
1854
- #@ powerpress
1855
  msgid "Finnish"
1856
  msgstr "Finsk"
1857
 
1858
- #: powerpressadmin-editfeed.php:49
1859
- #@ powerpress
1860
  msgid "French"
1861
  msgstr "Fransk"
1862
 
1863
- #: powerpressadmin-editfeed.php:50
1864
- #@ powerpress
1865
  msgid "French (Belgium)"
1866
  msgstr "Fransk (Belgien)"
1867
 
1868
- #: powerpressadmin-editfeed.php:51
1869
- #@ powerpress
1870
  msgid "French (Canada)"
1871
  msgstr "Fransk (Canada)"
1872
 
1873
- #: powerpressadmin-editfeed.php:52
1874
- #@ powerpress
1875
  msgid "French (France)"
1876
  msgstr "Fransk (Frankrig)"
1877
 
1878
- #: powerpressadmin-editfeed.php:53
1879
- #@ powerpress
1880
  msgid "French (Luxembourg)"
1881
  msgstr "Fransk (Luxemburg)"
1882
 
1883
- #: powerpressadmin-editfeed.php:54
1884
- #@ powerpress
1885
  msgid "French (Monaco)"
1886
  msgstr "Fransk (Monaco)"
1887
 
1888
- #: powerpressadmin-editfeed.php:55
1889
- #@ powerpress
1890
  msgid "French (Switzerland)"
1891
  msgstr "Fransk (Schweiz)"
1892
 
1893
- #: powerpressadmin-editfeed.php:56
1894
- #@ powerpress
1895
  msgid "Galician"
1896
  msgstr "Galicisk"
1897
 
1898
- #: powerpressadmin-editfeed.php:57
1899
- #@ powerpress
1900
  msgid "Gaelic"
1901
  msgstr "Gælisk"
1902
 
1903
- #: powerpressadmin-editfeed.php:58
1904
- #@ powerpress
1905
  msgid "German"
1906
  msgstr "Tysk"
1907
 
1908
- #: powerpressadmin-editfeed.php:59
1909
- #@ powerpress
1910
  msgid "German (Austria)"
1911
  msgstr "Tysk (Østrig)"
1912
 
1913
- #: powerpressadmin-editfeed.php:60
1914
- #@ powerpress
1915
  msgid "German (Germany)"
1916
  msgstr "Tysk (Tyskland)"
1917
 
1918
- #: powerpressadmin-editfeed.php:61
1919
- #@ powerpress
1920
  msgid "German (Liechtenstein)"
1921
  msgstr "Tysk (Liechtenstein)"
1922
 
1923
- #: powerpressadmin-editfeed.php:62
1924
- #@ powerpress
1925
  msgid "German (Luxembourg)"
1926
  msgstr "Tysk (Luxemburg)"
1927
 
1928
- #: powerpressadmin-editfeed.php:63
1929
- #@ powerpress
1930
  msgid "German (Switzerland)"
1931
  msgstr "Tysk (Schweiz)"
1932
 
1933
- #: powerpressadmin-editfeed.php:64
1934
- #@ powerpress
1935
  msgid "Greek"
1936
  msgstr "Græsk"
1937
 
1938
- #: powerpressadmin-editfeed.php:65
1939
- #@ powerpress
1940
  msgid "Hawaiian"
1941
  msgstr "Hawaiiansk"
1942
 
1943
- #: powerpressadmin-editfeed.php:66
1944
- #@ powerpress
1945
  msgid "Hungarian"
1946
  msgstr "Ungarsk"
1947
 
1948
- #: powerpressadmin-editfeed.php:67
1949
- #@ powerpress
1950
  msgid "Icelandic"
1951
  msgstr "Islandsk"
1952
 
1953
- #: powerpressadmin-editfeed.php:68
1954
- #@ powerpress
1955
  msgid "Indonesian"
1956
  msgstr "Indonesisk"
1957
 
1958
- #: powerpressadmin-editfeed.php:69
1959
- #@ powerpress
1960
  msgid "Irish"
1961
  msgstr "Irsk"
1962
 
1963
- #: powerpressadmin-editfeed.php:70
1964
- #@ powerpress
1965
  msgid "Italian"
1966
  msgstr "Italiensk"
1967
 
1968
- #: powerpressadmin-editfeed.php:71
1969
- #@ powerpress
1970
  msgid "Italian (Italy)"
1971
  msgstr "Italiensk (Italien)"
1972
 
1973
- #: powerpressadmin-editfeed.php:72
1974
- #@ powerpress
1975
  msgid "Italian (Switzerland)"
1976
  msgstr "Italiensk (Schweiz)"
1977
 
1978
- #: powerpressadmin-editfeed.php:73
1979
- #@ powerpress
1980
  msgid "Japanese"
1981
  msgstr "Japansk"
1982
 
1983
- #: powerpressadmin-editfeed.php:74
1984
- #@ powerpress
1985
  msgid "Korean"
1986
  msgstr "Koreansk"
1987
 
1988
- #: powerpressadmin-editfeed.php:75
1989
- #@ powerpress
1990
  msgid "Macedonian"
1991
  msgstr "Makedonsk"
1992
 
1993
- #: powerpressadmin-editfeed.php:76
1994
- #@ powerpress
1995
  msgid "Norwegian"
1996
  msgstr "Norsk"
1997
 
1998
- #: powerpressadmin-editfeed.php:77
1999
- #@ powerpress
2000
  msgid "Polish"
2001
  msgstr "Polsk"
2002
 
2003
- #: powerpressadmin-editfeed.php:78
2004
- #@ powerpress
2005
  msgid "Portuguese"
2006
  msgstr "Portugisisk"
2007
 
2008
- #: powerpressadmin-editfeed.php:79
2009
- #@ powerpress
2010
  msgid "Portuguese (Brazil)"
2011
  msgstr "Portugisisk (Brasilien)"
2012
 
2013
- #: powerpressadmin-editfeed.php:80
2014
- #@ powerpress
2015
  msgid "Portuguese (Portugal)"
2016
  msgstr "Portugisisk (Portugal)"
2017
 
2018
- #: powerpressadmin-editfeed.php:81
2019
- #@ powerpress
2020
  msgid "Romanian"
2021
  msgstr "Rumænsk"
2022
 
2023
- #: powerpressadmin-editfeed.php:82
2024
- #@ powerpress
2025
  msgid "Romanian (Moldova)"
2026
  msgstr "Rumænsk (Moldova)"
2027
 
2028
- #: powerpressadmin-editfeed.php:83
2029
- #@ powerpress
2030
  msgid "Romanian (Romania)"
2031
  msgstr "Rumænsk (Rumænien)"
2032
 
2033
- #: powerpressadmin-editfeed.php:84
2034
- #@ powerpress
2035
  msgid "Russian"
2036
  msgstr "Russisk"
2037
 
2038
- #: powerpressadmin-editfeed.php:85
2039
- #@ powerpress
2040
  msgid "Russian (Moldova)"
2041
  msgstr "Russisk (Moldova)"
2042
 
2043
- #: powerpressadmin-editfeed.php:86
2044
- #@ powerpress
2045
  msgid "Russian (Russia)"
2046
  msgstr "Russisk (Rusland)"
2047
 
2048
- #: powerpressadmin-editfeed.php:87
2049
- #@ powerpress
2050
  msgid "Serbian"
2051
  msgstr "Serbisk"
2052
 
2053
- #: powerpressadmin-editfeed.php:88
2054
- #@ powerpress
2055
  msgid "Slovak"
2056
  msgstr "Slovakisk"
2057
 
2058
- #: powerpressadmin-editfeed.php:89
2059
- #@ powerpress
2060
  msgid "Slovenian"
2061
  msgstr "Slovensk"
2062
 
2063
- #: powerpressadmin-editfeed.php:90
2064
- #@ powerpress
2065
  msgid "Spanish"
2066
  msgstr "Spansk"
2067
 
2068
- #: powerpressadmin-editfeed.php:91
2069
- #@ powerpress
2070
  msgid "Spanish (Argentina)"
2071
  msgstr "Spansk (Argentina)"
2072
 
2073
- #: powerpressadmin-editfeed.php:92
2074
- #@ powerpress
2075
  msgid "Spanish (Bolivia)"
2076
  msgstr "Spansk (Bolivia)"
2077
 
2078
- #: powerpressadmin-editfeed.php:93
2079
- #@ powerpress
2080
  msgid "Spanish (Chile)"
2081
  msgstr "Spansk (Chile)"
2082
 
2083
- #: powerpressadmin-editfeed.php:94
2084
- #@ powerpress
2085
  msgid "Spanish (Colombia)"
2086
  msgstr "Spansk (Colombia)"
2087
 
2088
- #: powerpressadmin-editfeed.php:95
2089
- #@ powerpress
2090
  msgid "Spanish (Costa Rica)"
2091
  msgstr "Spansk (Costa Rica)"
2092
 
2093
- #: powerpressadmin-editfeed.php:96
2094
- #@ powerpress
2095
  msgid "Spanish (Dominican Republic)"
2096
  msgstr "Spansk (Dominikansk Republik)"
2097
 
2098
- #: powerpressadmin-editfeed.php:97
2099
- #@ powerpress
2100
  msgid "Spanish (Ecuador)"
2101
  msgstr "Spansk (Ecuador)"
2102
 
2103
- #: powerpressadmin-editfeed.php:98
2104
- #@ powerpress
2105
  msgid "Spanish (El Salvador)"
2106
  msgstr "Spansk (El Salvador)"
2107
 
2108
- #: powerpressadmin-editfeed.php:99
2109
- #@ powerpress
2110
  msgid "Spanish (Guatemala)"
2111
  msgstr "Spansk (Guatemala)"
2112
 
2113
- #: powerpressadmin-editfeed.php:100
2114
- #@ powerpress
2115
  msgid "Spanish (Honduras)"
2116
  msgstr "Spansk (Honduras)"
2117
 
2118
- #: powerpressadmin-editfeed.php:101
2119
- #@ powerpress
2120
  msgid "Spanish (Mexico)"
2121
  msgstr "Spansk (Mexico)"
2122
 
2123
- #: powerpressadmin-editfeed.php:102
2124
- #@ powerpress
2125
  msgid "Spanish (Nicaragua)"
2126
  msgstr "Spansk (Nicaragua)"
2127
 
2128
- #: powerpressadmin-editfeed.php:103
2129
- #@ powerpress
2130
  msgid "Spanish (Panama)"
2131
  msgstr "Spansk (Panama)"
2132
 
2133
- #: powerpressadmin-editfeed.php:104
2134
- #@ powerpress
2135
  msgid "Spanish (Paraguay)"
2136
  msgstr "Spansk (Paraguay)"
2137
 
2138
- #: powerpressadmin-editfeed.php:105
2139
- #@ powerpress
2140
  msgid "Spanish (Peru)"
2141
  msgstr "Spansk (Peru)"
2142
 
2143
- #: powerpressadmin-editfeed.php:106
2144
- #@ powerpress
2145
  msgid "Spanish (Puerto Rico)"
2146
  msgstr "Spansk (Puerto Rico)"
2147
 
2148
- #: powerpressadmin-editfeed.php:107
2149
- #@ powerpress
2150
  msgid "Spanish (Spain)"
2151
  msgstr "Spansk (Spanien)"
2152
 
2153
- #: powerpressadmin-editfeed.php:108
2154
- #@ powerpress
2155
  msgid "Spanish (Uruguay)"
2156
  msgstr "Spansk (Uruguay)"
2157
 
2158
- #: powerpressadmin-editfeed.php:109
2159
- #@ powerpress
2160
  msgid "Spanish (Venezuela)"
2161
  msgstr "Spansk (Venezuela)"
2162
 
2163
- #: powerpressadmin-editfeed.php:110
2164
- #@ powerpress
2165
  msgid "Swedish"
2166
  msgstr "Svensk"
2167
 
2168
- #: powerpressadmin-editfeed.php:111
2169
- #@ powerpress
2170
  msgid "Swedish (Finland)"
2171
  msgstr "Svensk (Finland)"
2172
 
2173
- #: powerpressadmin-editfeed.php:112
2174
- #@ powerpress
2175
  msgid "Swedish (Sweden)"
2176
  msgstr "Svensk (Sverige)"
2177
 
2178
- #: powerpressadmin-editfeed.php:113
2179
- #@ powerpress
2180
  msgid "Turkish"
2181
  msgstr "Tyrkisk"
2182
 
2183
- #: powerpressadmin-editfeed.php:114
2184
- #@ powerpress
2185
  msgid "Ukranian"
2186
  msgstr "Ukrainsk"
2187
 
2188
- #: powerpressadmin-editfeed.php:159
2189
- #@ powerpress
2190
  msgid "Podcast (default)"
2191
  msgstr "Podcast (standard)"
2192
 
2193
- #: powerpressadmin-editfeed.php:172
2194
- #: powerpressadmin-editfeed.php:195
2195
- #: powerpressadmin-editfeed.php:400
2196
- #@ powerpress
2197
  msgid "Feed Settings"
2198
  msgstr "Feed-indstillinger"
2199
 
2200
- #: powerpressadmin-editfeed.php:181
2201
  #, php-format
2202
- #@ powerpress
2203
  msgid "Edit Category Feed: %s"
2204
  msgstr "Redigér kategorifeed: %s"
2205
 
2206
- #: powerpressadmin-editfeed.php:196
2207
- #@ powerpress
2208
  msgid "iTunes Settings"
2209
  msgstr "iTunes-indstillinger"
2210
 
2211
- #: powerpressadmin-editfeed.php:200
2212
- #: powerpressadmin-editfeed.php:203
2213
- #@ powerpress
2214
  msgid "Other Settings"
2215
  msgstr "Andre indstillinger"
2216
 
2217
- #: powerpressadmin-editfeed.php:275
2218
- #@ powerpress
2219
  msgid "Configure your custom podcast feed."
2220
  msgstr "Konfigurér dit brugerdefinerede postcastfeed"
2221
 
2222
- #: powerpressadmin-editfeed.php:285
2223
- #@ powerpress
2224
  msgid "Configure your category feed to support podcasting."
2225
  msgstr "Konfigurér dit kategorifeed, så det understøtter podcasting."
2226
 
2227
- #: powerpressadmin-editfeed.php:299
2228
- #@ powerpress
2229
  msgid "Enhance Feeds"
2230
  msgstr "<span title=\"Enhance feed\">Udvid feedfunktionalitet</span>"
2231
 
2232
- #: powerpressadmin-editfeed.php:302
2233
- #@ powerpress
2234
  msgid "Enhance All Feeds"
2235
  msgstr "<span title=\"Enhance all feeds\">Udvid feedfunktionalitet for alle feeds</span>"
2236
 
2237
- #: powerpressadmin-editfeed.php:302
2238
- #@ powerpress
2239
  msgid "Recommended"
2240
  msgstr "Anbefalet"
2241
 
2242
- #: powerpressadmin-editfeed.php:305
2243
- #@ powerpress
2244
  msgid "Adds podcasting support to all feeds"
2245
  msgstr "Tilføjer podcastingsupport til alle feeds"
2246
 
2247
- #: powerpressadmin-editfeed.php:306
2248
- #@ powerpress
2249
  msgid "Allows for Category Podcasting"
2250
  msgstr "Tillad kategoribaseret podcasting"
2251
 
2252
- #: powerpressadmin-editfeed.php:306
2253
- #@ powerpress
2254
  msgid "Visitors may subscribe to your categories as a podcast"
2255
  msgstr "Besøgende må tilmelde sig din kategorier som podcast"
2256
 
2257
- #: powerpressadmin-editfeed.php:307
2258
- #@ powerpress
2259
  msgid "Allows for Tag/Keyword Casting"
2260
  msgstr "Giver mulighed for tags-/nøgleord-udsendelser"
2261
 
2262
- #: powerpressadmin-editfeed.php:307
2263
- #@ powerpress
2264
  msgid "Visitors may subscribe to your tags as a podcast"
2265
  msgstr "Besøgende må tilmelde sig dine tags som podcast"
2266
 
2267
- #: powerpressadmin-editfeed.php:310
2268
- #@ powerpress
2269
  msgid "Enhance Main Feed Only"
2270
  msgstr "<span title=\"Enhance main feed only\">Udvid kun feedfunktionalitet for hovedfeed</span>"
2271
 
2272
- #: powerpressadmin-editfeed.php:313
2273
- #@ powerpress
2274
  msgid "Adds podcasting support to your main feed only"
2275
  msgstr "Tilføjer kun podcastingsupport til dit hovedfeed"
2276
 
2277
- #: powerpressadmin-editfeed.php:316
2278
- #@ powerpress
2279
  msgid "Do Not Enhance Feeds"
2280
  msgstr "<span title=\"Do not Enhance feeds\">Udvid ikke feedfunktionalitet</span>"
2281
 
2282
- #: powerpressadmin-editfeed.php:319
2283
- #@ powerpress
2284
  msgid "Feed Settings below will only apply to your podcast channel feeds"
2285
  msgstr "Feedindstillingerne nedenfor anvendes kun på dine postcastede kanalfeeds"
2286
 
2287
- #: powerpressadmin-editfeed.php:329
2288
- #@ powerpress
2289
  msgid "Main Site Feed"
2290
  msgstr "Sitens hovedfeed"
2291
 
2292
- #: powerpressadmin-editfeed.php:331
2293
- #@ powerpress
2294
  msgid "Main RSS2 Feed"
2295
  msgstr "Sitens hovedfeed i RSS2-format"
2296
 
2297
- #: powerpressadmin-editfeed.php:331
2298
- #@ powerpress
2299
  msgid "Main RSS 2 Feed"
2300
  msgstr "Sitens hovedfeed i RSS2-format"
2301
 
2302
- #: powerpressadmin-editfeed.php:331
2303
- #: powerpressadmin-editfeed.php:355
2304
- #: powerpressadmin-editfeed.php:390
2305
- #: powerpressadmin-editfeed.php:392
2306
- #@ powerpress
2307
  msgid "validate"
2308
  msgstr "Validér"
2309
 
2310
- #: powerpressadmin-editfeed.php:344
2311
- #@ powerpress
 
 
 
 
 
 
 
2312
  msgid "Special Podcast only Feed"
2313
  msgstr "Specielt feed kun for podcasts"
2314
 
2315
- #: powerpressadmin-editfeed.php:357
2316
- #@ powerpress
2317
  msgid "Edit Podcast Channel"
2318
  msgstr "Redigér podcastkanal"
2319
 
2320
- #: powerpressadmin-editfeed.php:357
2321
- #@ powerpress
2322
  msgid "edit"
2323
  msgstr "redigér"
2324
 
2325
- #: powerpressadmin-editfeed.php:382
2326
- #@ powerpress
2327
  msgid "Feed Information"
2328
  msgstr "Feedinformation"
2329
 
2330
- #: powerpressadmin-editfeed.php:409
2331
- #@ powerpress
2332
  msgid "Feed Title"
2333
  msgstr "Feed-titel"
2334
 
2335
- #: powerpressadmin-editfeed.php:414
2336
- #@ powerpress
2337
  msgid "leave blank to use default category title"
2338
  msgstr "Udfyldes ikke, hvis du vil bruge standard-kategorititel"
2339
 
2340
- #: powerpressadmin-editfeed.php:416
2341
- #@ powerpress
2342
  msgid "leave blank to use blog title"
2343
  msgstr "Udfyldes ikke, hvis du vil bruge blogtitel"
2344
 
2345
- #: powerpressadmin-editfeed.php:422
2346
- #@ powerpress
2347
  msgid "Default Category title:"
2348
  msgstr "Standard-kategorititel:"
2349
 
2350
- #: powerpressadmin-editfeed.php:424
2351
- #@ powerpress
2352
  msgid "Blog title:"
2353
  msgstr "Blogtitel:"
2354
 
2355
- #: powerpressadmin-editfeed.php:430
2356
- #@ powerpress
2357
  msgid "Feed Description"
2358
  msgstr "Feedbeskrivelse"
2359
 
2360
- #: powerpressadmin-editfeed.php:435
2361
- #@ powerpress
2362
  msgid "leave blank to use category description"
2363
  msgstr "udfyldes det ikke, bruges kategoribeskrivelse"
2364
 
2365
- #: powerpressadmin-editfeed.php:437
2366
- #@ powerpress
2367
  msgid "leave blank to use blog description"
2368
  msgstr "udfyldes det ikke, bruges blogbeskrivelse"
2369
 
2370
- #: powerpressadmin-editfeed.php:444
2371
- #@ powerpress
2372
  msgid "Feed Landing Page URL"
2373
  msgstr "<span title=\"Feed Landing Page URL\">URL til side, hvor feed skal lande</span>"
2374
 
2375
- #: powerpressadmin-editfeed.php:449
2376
- #@ powerpress
2377
  msgid "leave blank to use category page"
2378
  msgstr "Udfyld ikke, hvis du vil bruge kategoriside"
2379
 
2380
- #: powerpressadmin-editfeed.php:451
2381
- #@ powerpress
2382
  msgid "leave blank to use home page"
2383
  msgstr "Udfyldes ikke, hvis du vil bruge Hjem-side"
2384
 
2385
- #: powerpressadmin-editfeed.php:454
2386
- #@ powerpress
2387
  msgid "Category page URL"
2388
  msgstr "URL til kategoriside"
2389
 
2390
- #: powerpressadmin-editfeed.php:463
2391
- #@ powerpress
2392
  msgid "FeedBurner Feed URL"
2393
  msgstr "URL for Feedburner-feed"
2394
 
2395
- #: powerpressadmin-editfeed.php:466
2396
- #@ powerpress
2397
  msgid "leave blank to use current feed"
2398
  msgstr "Udfyldes ikke, hvis du vil bruge aktuelle feed"
2399
 
2400
- #: powerpressadmin-editfeed.php:467
2401
- #@ powerpress
2402
  msgid "Use this option to redirect this feed to a hosted feed service such as FeedBurner."
2403
  msgstr "Brug denne indstilling til at videresende dette feed til en hostet feedservice så som FeedBurner."
2404
 
2405
- #: powerpressadmin-editfeed.php:479
2406
- #@ powerpress
2407
  msgid "Bypass Redirect URL"
2408
  msgstr "<span title=\"bypass redirect url\">Omgå redirect-URL</span>"
2409
 
2410
- #: powerpressadmin-editfeed.php:487
2411
- #@ powerpress
2412
  msgid "Show the most recent"
2413
  msgstr "Vis de seneste"
2414
 
2415
- #: powerpressadmin-editfeed.php:490
2416
- #@ powerpress
2417
  msgid "episodes / posts per feed (leave blank to use blog default"
2418
  msgstr "episoder/indlæg per feed (hvis det ikke udfyldes, bruges blogstandard"
2419
 
2420
- #: powerpressadmin-editfeed.php:492
2421
- #@ powerpress
2422
  msgid "Note: Setting above applies only to podcast channel feeds"
2423
  msgstr "Bemærk: Indstillingen overfor anvendes kun på podcastede kanalfeeds"
2424
 
2425
- #: powerpressadmin-editfeed.php:499
2426
- #@ powerpress
2427
  msgid "RSS2 Image"
2428
  msgstr "RSS2-billede"
2429
 
2430
- #: powerpressadmin-editfeed.php:503
2431
- #: powerpressadmin-editfeed.php:957
2432
- #: powerpressadmin-player-page.php:1750
2433
- #: powerpressadmin-tags.php:144
2434
- #@ powerpress
2435
  msgid "preview"
2436
  msgstr "preview"
2437
 
2438
- #: powerpressadmin-editfeed.php:505
2439
- #@ powerpress
2440
  msgid "Place the URL to the RSS image above."
2441
  msgstr "Indtast URL&#39;en til RSS-billedet ovenfor."
2442
 
2443
- #: powerpressadmin-editfeed.php:505
2444
- #: powerpressadmin-editfeed.php:959
2445
- #: powerpressadmin-find-replace.php:230
2446
- #: powerpressadmin-find-replace.php:238
2447
- #: powerpressadmin-player-page.php:1752
2448
- #@ powerpress
2449
  msgid "Example"
2450
  msgstr "Eksempel"
2451
 
2452
- #: powerpressadmin-editfeed.php:506
2453
- #@ powerpress
2454
  msgid "RSS image should be at least 88 and at most 144 pixels wide and at least 31 and at most 400 pixels high in either .gif, .jpg and .png format. A square 144 x 144 pixel image is recommended."
2455
  msgstr "RSS-billedet bør mindst være 88 og højst 144px bred og mindst 31 og højst 400 pixels høj i enten GIF-, JPG- eller PNG-format. Et kvadratisk billede på 144 &times; 144 pixels anbefales."
2456
 
2457
- #: powerpressadmin-editfeed.php:509
2458
- #: powerpressadmin-editfeed.php:965
2459
- #: powerpressadmin-player-page.php:1756
2460
- #: powerpressadmin-tags.php:156
2461
- #@ powerpress
2462
  msgid "Upload new image"
2463
  msgstr "Upload nyt billede"
2464
 
2465
- #: powerpressadmin-editfeed.php:511
2466
- #: powerpressadmin-editfeed.php:967
2467
- #: powerpressadmin-player-page.php:1758
2468
- #: powerpressadmin-tags.php:158
2469
- #@ powerpress
2470
  msgid "Choose file"
2471
  msgstr "Vælg fil"
2472
 
2473
- #: powerpressadmin-editfeed.php:521
2474
- #@ powerpress
2475
  msgid "Feed Language"
2476
  msgstr "Feedsprog"
2477
 
2478
- #: powerpressadmin-editfeed.php:527
2479
- #@ powerpress
2480
  msgid "Blog Default Language"
2481
  msgstr "Bloggens standardsprog"
2482
 
2483
- #: powerpressadmin-editfeed.php:537
2484
- #@ powerpress
2485
  msgid "Blog Default"
2486
  msgstr "Blogstandard"
2487
 
2488
- #: powerpressadmin-editfeed.php:544
2489
- #@ powerpress
2490
  msgid "Copyright"
2491
  msgstr "Copyright"
2492
 
2493
- #: powerpressadmin-editfeed.php:600
2494
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2495
  msgid "Redirect URL"
2496
  msgstr "Redirect-URL"
2497
 
2498
- #: powerpressadmin-editfeed.php:604
2499
- #@ powerpress
2500
  msgid "Note: Category Media Redirect URL is applied to category feeds and pages only. The redirect will also apply to single pages if this is the only category associated with the blog post."
2501
  msgstr "Bemærk: <span title=\"Category Media Redirect URL\">Kategoribaserede medieomdirigerings-URL&#39;er</span> anvendes kun for kategorifeeds og -sider. <span title=\"the redirect\">Omdirigeringen</span> anvendes også på enkelt-sider, hvis det er den eneste kategori, der er knyttet til blogindlægget."
2502
 
2503
- #: powerpressadmin-editfeed.php:614
2504
- #@ powerpress
2505
  msgid "Episode Entry Box"
2506
  msgstr "Episodepanel"
2507
 
2508
- #: powerpressadmin-editfeed.php:618
2509
- #: powerpressadmin-player-page.php:1156
2510
- #: powerpressadmin-player-page.php:1500
2511
- #@ powerpress
2512
  msgid "Background Color"
2513
  msgstr "Baggrundsfarve"
2514
 
2515
- #: powerpressadmin-editfeed.php:630
2516
- #@ powerpress
2517
  msgid "leave blank for default"
2518
  msgstr "Udfyldes ikke, hvis du vil bruge standard"
2519
 
2520
- #: powerpressadmin-editfeed.php:632
2521
- #@ powerpress
2522
  msgid "Use a distinctive background color for this podcast channel's episode box."
2523
  msgstr "Brug en særlig baggrundsfarve for episodepanelet til denne podcastede kanal."
2524
 
2525
- #: powerpressadmin-editfeed.php:643
2526
- #@ powerpress
2527
  msgid "Password Protect Podcast Channel"
2528
  msgstr "Kodeordsbeskyt podcastkanal"
2529
 
2530
- #: powerpressadmin-editfeed.php:645
2531
- #@ powerpress
2532
  msgid "Require visitors to have membership to your blog in order to gain access to this channel's Premium Content."
2533
  msgstr "Kræv, at besøgende skal være medlemmer på din blog, hvis de skal have adgang til denne kanals betalingsindhold."
2534
 
2535
- #: powerpressadmin-editfeed.php:651
2536
- #@ powerpress
2537
  msgid "Protect Content"
2538
  msgstr "Beskyt indhold"
2539
 
2540
- #: powerpressadmin-editfeed.php:653
2541
- #@ powerpress
2542
  msgid "Require user to be signed-in to access feed."
2543
  msgstr "Kræv, at bruger er logget ind for at få adgang til feedet."
2544
 
2545
- #: powerpressadmin-editfeed.php:655
2546
- #@ powerpress
2547
  msgid "User must have the following capability"
2548
  msgstr "Bruger skal have den følgende rettighed"
2549
 
2550
- #: powerpressadmin-editfeed.php:680
2551
- #@ powerpress
2552
  msgid "Sign In"
2553
  msgstr "Log på"
2554
 
2555
- #: powerpressadmin-editfeed.php:684
2556
- #@ powerpress
2557
  msgid "Use default label, are you sure?"
2558
  msgstr "Brug standardetiket, er du sikker?"
2559
 
2560
- # USIKKER OVERSÆTTELSE - UNCERTAIN TRANSLATION
2561
- #: powerpressadmin-editfeed.php:700
2562
- #@ powerpress
2563
  msgid "Unauthorized Label"
2564
  msgstr "<span title=\"Unauthorized Label - Oversættelse usikker\">Etiket for manglende adgangstilladelse</span>"
2565
 
2566
- #: powerpressadmin-editfeed.php:704
2567
- #@ powerpress
2568
  msgid "Use default label"
2569
  msgstr "Brug standardetiket"
2570
 
2571
- #: powerpressadmin-editfeed.php:707
2572
- #@ powerpress
2573
  msgid "Protected Content"
2574
  msgstr "Beskyttet indhold"
2575
 
2576
- #: powerpressadmin-editfeed.php:710
2577
- #@ powerpress
2578
  msgid "Use a custom label"
2579
  msgstr "Brug standardetiket"
2580
 
2581
- #: powerpressadmin-editfeed.php:716
2582
- #@ powerpress
2583
  msgid "Add sign in link to message"
2584
  msgstr "Tilføj log på-link til indholdet"
2585
 
2586
- #: powerpressadmin-editfeed.php:719
2587
- #@ powerpress
2588
  msgid "Label above appears in place of the in-page player and links when the current signed-in user does not have access to the protected content."
2589
  msgstr "Etiketten ovenfor vises i stedet for en afspiller og links på siden, når den aktuelle indloggede bruger ikke har adgang til det beskyttede indhold."
2590
 
2591
- #: powerpressadmin-editfeed.php:739
2592
- #@ powerpress
 
 
 
2593
  msgid "Disable Player"
2594
  msgstr "Deaktivér afspiller"
2595
 
2596
- #: powerpressadmin-editfeed.php:742
2597
- #@ powerpress
2598
  msgid "Do not display web player or links for this podcast channel."
2599
  msgstr "Vis ikke webafspiller eller links for denne podcastede kanal."
2600
 
2601
- #: powerpressadmin-editfeed.php:778
2602
- #@ powerpress
2603
  msgid "iTunes Feed Settings"
2604
  msgstr "Indstillinger for iTunes-feed"
2605
 
2606
- #: powerpressadmin-editfeed.php:794
2607
- #@ powerpress
 
 
 
2608
  msgid "iTunes Program Subtitle"
2609
  msgstr "iTunes-programundertitel"
2610
 
2611
- #: powerpressadmin-editfeed.php:804
2612
- #@ powerpress
2613
  msgid "iTunes Program Summary"
2614
  msgstr "iTunes-programresumé"
2615
 
2616
- #: powerpressadmin-editfeed.php:806
2617
- #@ powerpress
2618
  msgid "Your summary may not contain HTML and cannot exceed 4,000 characters in length."
2619
  msgstr "Dit resumé må ikke indeholde HTML og må højst fylde 4000 tegn."
2620
 
2621
- #: powerpressadmin-editfeed.php:815
2622
- #@ powerpress
2623
  msgid "iTunes Episode Summary"
2624
  msgstr "iTunes-episoderesumé"
2625
 
2626
- #: powerpressadmin-editfeed.php:819
2627
- #@ powerpress
2628
  msgid "Optimize iTunes Summary from Blog Posts"
2629
  msgstr "Optimér iTunes-resumé fra blogindlæg"
2630
 
2631
- #: powerpressadmin-editfeed.php:819
2632
- #@ powerpress
2633
  msgid "We no longer recommend using this setting, see note below"
2634
  msgstr "Vi anbefaler ikke længere at bruge denne indstilling, jf. noten nedenfor"
2635
 
2636
- #: powerpressadmin-editfeed.php:822
2637
- #@ powerpress
2638
  msgid "Creates a friendlier view of your post/episode content by converting web links and images to clickable links in the iTunes application."
2639
  msgstr "Opretter en mere brugervenlig visning af dit indlægs/din episodes indhold ved at konvertere weblinks og -billeder til klikbare links i iTunes-programmet."
2640
 
2641
- #: powerpressadmin-editfeed.php:829
2642
- #@ powerpress
 
 
 
2643
  msgid "Option Not Available"
2644
  msgstr "Indstilling ikke tilgængelig"
2645
 
2646
- #: powerpressadmin-editfeed.php:832
2647
- #@ powerpress
2648
  msgid "This feature requires PHP version 5 or newer."
2649
  msgstr "Denne funktion kræver PHP version 5 eller nyere."
2650
 
2651
- #: powerpressadmin-editfeed.php:833
2652
  #, php-format
2653
- #@ powerpress
2654
  msgid "Your server's version of PHP is %s"
2655
  msgstr "Din servers version af PHP er %s"
2656
 
2657
- #: powerpressadmin-editfeed.php:845
2658
- #@ powerpress
2659
  msgid "iTunes Program Keywords"
2660
  msgstr "<span title=\"iTunes Program Keywords\">iTunes-programnøgleord</span>"
2661
 
2662
- #: powerpressadmin-editfeed.php:849
2663
- #@ powerpress
2664
  msgid "Enter up to 12 keywords separated by commas."
2665
  msgstr "Indtast op til 12 nøgleord adskilt af kommaer."
2666
 
2667
- #: powerpressadmin-editfeed.php:855
2668
- #@ powerpress
2669
  msgid "iTunes Category"
2670
  msgstr "<span title=\"iTunes Category\">iTunes-kategori</span>"
2671
 
2672
- #: powerpressadmin-editfeed.php:891
2673
- #@ powerpress
2674
  msgid "iTunes Category 2"
2675
  msgstr "<span title=\"iTunes Category 2\">iTunes-kategori 2</span>"
2676
 
2677
- #: powerpressadmin-editfeed.php:912
2678
- #@ powerpress
2679
  msgid "iTunes Category 3"
2680
  msgstr "<span title=\"iTunes Category 3\">iTunes-kategori 3</span>"
2681
 
2682
- #: powerpressadmin-editfeed.php:936
2683
- #: powerpressadmin-metabox.php:373
2684
- #@ powerpress
2685
  msgid "iTunes Explicit"
2686
  msgstr "iTunes-<span title=\"eksplicit - upassende indhold\">Eksplicit</span>"
2687
 
2688
- #: powerpressadmin-editfeed.php:941
2689
- #@ powerpress
2690
  msgid "No - display nothing"
2691
  msgstr "Nej &ndash; vis intet"
2692
 
2693
- #: powerpressadmin-editfeed.php:941
2694
- #@ powerpress
2695
  msgid "Yes - explicit content"
2696
  msgstr "Ja &ndash; <span title=\"explicit content - upassende indhold\">eksplicit indhold</span>"
2697
 
2698
- #: powerpressadmin-editfeed.php:941
2699
- #@ powerpress
2700
  msgid "Clean - no explicit content"
2701
  msgstr "Ikke-upassende &ndash; <span title=\"no explicit content - upassende indhold\">intet eksplicit indhold</span>"
2702
 
2703
- #: powerpressadmin-editfeed.php:953
2704
- #@ powerpress
2705
  msgid "iTunes Image"
2706
  msgstr "iTunes-billede"
2707
 
2708
- #: powerpressadmin-editfeed.php:959
2709
- #@ powerpress
2710
  msgid "Place the URL to the iTunes image above."
2711
  msgstr "Indtast URL&#39;en til iTunes-billedet ovenfor."
2712
 
2713
- #: powerpressadmin-editfeed.php:960
2714
- #@ powerpress
2715
  msgid "iTunes prefers square .jpg or .png images that are at 600 x 600 pixels (prevously 300 x 300), which is different than what is specified for the standard RSS image."
2716
  msgstr "iTunes foretrækker kvadratiske JPG- eller PNG-billeder, som er 600 &times; 600 pixels (tidligere 300 &times; 300), hvilket adskiller sig fra, hvad der er specificeret for RSS-standardbillederne."
2717
 
2718
- #: powerpressadmin-editfeed.php:962
2719
- #@ powerpress
2720
  msgid "Note: It may take some time (days or even a month) for iTunes to cache modified or replaced iTunes images in the iTunes Podcast Directory."
2721
  msgstr "Bemærk: Det kan tage tid (dage eller endda en måned), før iTunes cacher ændrede eller erstattede iTunes-billeder i <span title=\"iTunes Podcast Directory\">iTunes' podcastoversigt</span>."
2722
 
2723
- #: powerpressadmin-editfeed.php:963
2724
  #, php-format
2725
- #@ powerpress
2726
  msgid "Please contact %s if you are having issues with your image changes not appearing in iTunes."
2727
  msgstr "Kontakt venligst %s, hvis du har problemer med, at dine billedændringer ikke vises på iTunes."
2728
 
2729
- #: powerpressadmin-editfeed.php:963
2730
- #@ powerpress
2731
  msgid "iTunes Support"
2732
  msgstr "iTunes-support"
2733
 
2734
- #: powerpressadmin-editfeed.php:977
2735
- #@ powerpress
2736
  msgid "iTunes Talent Name"
2737
  msgstr "iTunes-talentnavn"
2738
 
2739
- #: powerpressadmin-editfeed.php:981
2740
- #@ powerpress
2741
  msgid "Use blog post author's name for individual episodes."
2742
  msgstr "Brug indlægsforfatters navn som forfatter til individuelle episoder."
2743
 
2744
- #: powerpressadmin-editfeed.php:990
2745
- #@ powerpress
2746
  msgid "iTunes Email"
2747
  msgstr "iTunes-e-mail"
2748
 
2749
- #: powerpressadmin-editfeed.php:994
2750
- #@ powerpress
2751
  msgid "iTunes will email this address when your podcast is accepted into the iTunes Directory."
2752
  msgstr "iTunes vil e-maile til denne adresse, når dit podcast er optaget i <span title=\"iTunes Podcast Directory\">iTunes' podcastoversigt</span>."
2753
 
2754
- #: powerpressadmin-editfeed.php:1002
2755
- #@ powerpress
2756
  msgid "iTunes New Feed URL"
2757
  msgstr "<span title=\"iTunes New Feed URL\">URL til nyt iTunes-feed</span>"
2758
 
2759
- #: powerpressadmin-editfeed.php:1005
2760
- #@ powerpress
2761
  msgid "Set iTunes New Feed URL"
2762
  msgstr "Sæt ny feed-URL for iTunes"
2763
 
2764
- #: powerpressadmin-editfeed.php:1016
2765
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
2766
  msgid "WARNING: Changes made here are permanent. If the New Feed URL entered is incorrect, you will lose subscribers and will no longer be able to update your listing in the iTunes Store."
2767
  msgstr "ADVARSEL: De ændringer, du laver her, er permanente. Hvis den URL'en for dit nye feed er forkert, vil du miste abonnenter og vil ikke længere være i stand til at opdatere <span title=\"your listing in the iTunes store\">iTunes-katalogiseringen af dine podcasts</span> i iTunes-butikken."
2768
 
2769
- #: powerpressadmin-editfeed.php:1017
2770
- #@ powerpress
2771
  msgid "DO NOT MODIFY THIS SETTING UNLESS YOU ABSOLUTELY KNOW WHAT YOU ARE DOING."
2772
  msgstr "ÆNDR IKKE PÅ DENNE INDSTILLING, MED MINDRE DU ER 100 % SIKKER PÅ, HVAD DU ER VED AT GØRE."
2773
 
2774
- #: powerpressadmin-editfeed.php:1019
2775
  #, php-format
2776
- #@ powerpress
2777
  msgid "Apple recommends you maintain the %s tag in your feed for at least two weeks to ensure that most subscribers will receive the new New Feed URL."
2778
  msgstr "Apple anbefaler, at du beholder %s-tagget i dit feed i mindst to uger, så du sikrer dig, at så mange abonnenter som muligt får den nye feed-URL."
2779
 
2780
- #: powerpressadmin-editfeed.php:1023
2781
- #@ powerpress
2782
  msgid "Main RSS2 feed"
2783
  msgstr "Hovedfeed i RSS2-format"
2784
 
2785
- #: powerpressadmin-editfeed.php:1028
2786
  #, php-format
2787
- #@ powerpress
2788
  msgid "%s category feed"
2789
  msgstr "Kategorifeed for %s"
2790
 
2791
- #: powerpressadmin-editfeed.php:1037
2792
- #@ powerpress
2793
  msgid "feed"
2794
  msgstr "feed"
2795
 
2796
- #: powerpressadmin-editfeed.php:1041
2797
  #, php-format
2798
- #@ powerpress
2799
  msgid "The New Feed URL value below will be applied to the %s (%s)."
2800
  msgstr "Værdien for den nye feed-URL nedenfor vil blive anvendt på %s (%s)."
2801
 
2802
- #: powerpressadmin-editfeed.php:1045
2803
- #@ powerpress
2804
  msgid "New Feed URL"
2805
  msgstr "URL til nyt feed"
2806
 
2807
- #: powerpressadmin-editfeed.php:1048
2808
- #@ powerpress
2809
  msgid "Leave blank for no New Feed URL"
2810
  msgstr "Udfyldes kun, hvis du ikke vil angive en ny feed-URL"
2811
 
2812
- #: powerpressadmin-editfeed.php:1050
2813
- #@ powerpress
2814
  msgid "More information regarding the iTunes New Feed URL is available here."
2815
  msgstr "Flere informationer om iTunes' ny feed-URL findes her."
2816
 
2817
- #: powerpressadmin-editfeed.php:1056
2818
  #, php-format
2819
- #@ powerpress
2820
  msgid "Please activate the 'Custom Podcast Channels' Advanced Option to set the new-feed-url for your podcast only feed (%s)"
2821
  msgstr "Aktivér venligst avancerede indstillinger for 'Brugerdefinerede podcastede kanaler' for at angive ny-feed-url&#39;en for feedet udelukkende med podcasts (%s)"
2822
 
2823
- #: powerpressadmin-editfeed.php:1058
2824
  #, php-format
2825
- #@ powerpress
2826
  msgid "Please navigate to the 'Custom Podcast Channels' section to set the new-feed-url for your podcast only feed (%s)"
2827
  msgstr "Gå venligst til sektionen med 'Brugerdefinerede podcastede kanaler' for at angive ny-feed-url&#39;en for feedet udelukkende med podcasts (%s)"
2828
 
2829
- #: powerpressadmin-find-replace.php:134
2830
  #, php-format
2831
- #@ powerpress
2832
  msgid "%d URLs updated successfully."
2833
  msgstr "%d URL'er opdateret med succes."
2834
 
2835
- #: powerpressadmin-find-replace.php:136
2836
  #, php-format
2837
- #@ powerpress
2838
  msgid "%d URLs were not updated."
2839
  msgstr "%d URL#&39;er blev ikke opdateret."
2840
 
2841
- #: powerpressadmin-find-replace.php:138
2842
- #@ powerpress
2843
  msgid "Nothing specified to find."
2844
  msgstr "Der blev ikke angivet noget at finde."
2845
 
2846
- #: powerpressadmin-find-replace.php:145
2847
- #@ powerpress
2848
  msgid "WARNING: Please backup your database before proceeding. Blubrry PowerPress is not responsibile for any lost or damaged data resulting from this Find and Replace tool."
2849
  msgstr "ADVARSEL: Tag venligst en sikkerhedskopi, inden du fortsætter. Blubrry PowerPress er ikke ansvarlig for tabte eller ødelagte data, som denne Find og erstat-funktion måtte medføre."
2850
 
2851
- #: powerpressadmin-find-replace.php:220
2852
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2853
  msgid "Find and Replace Episode URLs"
2854
  msgstr "Find og erstat i episode-URL&#39;er"
2855
 
2856
- #: powerpressadmin-find-replace.php:222
2857
- #: powerpressadmin-tools.php:77
2858
- #@ powerpress
2859
  msgid "Find and replace complete or partial segments of media URLs. Useful if you move your media to a new web site or service."
2860
  msgstr "Find og erstat hele eller dele af medie-URL&#39;er. Kan bruges, hvis du flytter dine medier til et nyt website eller udbyder."
2861
 
2862
- #: powerpressadmin-find-replace.php:226
2863
- #@ powerpress
2864
  msgid "Find in URL"
2865
  msgstr "Find i URL"
2866
 
2867
- #: powerpressadmin-find-replace.php:229
2868
- #: powerpressadmin-find-replace.php:237
2869
- #@ powerpress
2870
  msgid "Modify"
2871
  msgstr "Ændr"
2872
 
2873
- #: powerpressadmin-find-replace.php:234
2874
- #@ powerpress
2875
  msgid "Replace with"
2876
  msgstr "Erstat med"
2877
 
2878
- #: powerpressadmin-find-replace.php:250
2879
- #@ powerpress
2880
  msgid "Preview Changes"
2881
  msgstr "Preview ændringer"
2882
 
2883
- #: powerpressadmin-find-replace.php:250
2884
- #@ powerpress
2885
  msgid "Change Results"
2886
  msgstr "<span title=\"Change Results\">Resultat efter ændringer</span>"
2887
 
2888
- #: powerpressadmin-find-replace.php:252
2889
  #, php-format
2890
- #@ powerpress
2891
  msgid "Found %d results with \"%s\""
2892
  msgstr "Fandt %d resultater med \"%s"
2893
 
2894
- #: powerpressadmin-find-replace.php:259
2895
- #@ powerpress
2896
  msgid "Edit Post"
2897
  msgstr "Redigér indlæg"
2898
 
2899
- #: powerpressadmin-find-replace.php:277
2900
- #@ powerpress
2901
  msgid "Found"
2902
  msgstr "Fundet"
2903
 
2904
- #: powerpressadmin-find-replace.php:280
2905
- #@ powerpress
2906
  msgid "Replace"
2907
  msgstr "Erstat"
2908
 
2909
- #: powerpressadmin-find-replace.php:281
2910
- #@ powerpress
2911
  msgid "test link"
2912
  msgstr "Test-link"
2913
 
2914
- #: powerpressadmin-find-replace.php:300
2915
- #@ powerpress
2916
  msgid "Verify modified URLs"
2917
  msgstr "Bekræft ændrede URL&#39;er"
2918
 
2919
- #: powerpressadmin-find-replace.php:301
2920
- #@ powerpress
2921
  msgid "Does not change media URL if link is not found or invalid"
2922
  msgstr "Ændrer ikke medie-URL&#39;er, hvis linket ikke findes eller er ugyldigt"
2923
 
2924
- #: powerpressadmin-find-replace.php:305
2925
- #: powerpressadmin-tools.php:8
2926
- #: powerpressadmin.php:979
2927
- #@ powerpress
2928
  msgid "PowerPress Tools"
2929
  msgstr "PowerPress-værktøjer"
2930
 
2931
- #: powerpressadmin-find-replace.php:309
2932
  #, php-format
2933
- #@ powerpress
2934
  msgid "We recommend using the %s plugin to backup your database before using this Find and Replace tool."
2935
  msgstr "Vi anbefaler, at du bruger %s-pluginnet til at tage sikkerhedskopi af din database, førend du bruger denne Find og erstat-funktion."
2936
 
2937
- #: powerpressadmin-find-replace.php:309
2938
- #@ powerpress
2939
  msgid "WP-DB-Backup"
2940
  msgstr "WP-DB-Backup"
2941
 
2942
- #: powerpressadmin-jquery.php:81
2943
- #: powerpressadmin-jquery.php:128
2944
- #: powerpressadmin-jquery.php:312
2945
- #: powerpressadmin-jquery.php:470
2946
- #: powerpressadmin.php:69
2947
- #@ powerpress
 
 
 
 
 
 
2948
  msgid "You do not have sufficient permission to manage options."
2949
  msgstr "Du har ikke tilstrækkelige rettigheder til at ændre indstillinger."
2950
 
2951
- #: powerpressadmin-jquery.php:82
2952
- #: powerpressadmin-jquery.php:129
2953
- #: powerpressadmin-jquery.php:152
2954
- #: powerpressadmin-jquery.php:300
2955
- #: powerpressadmin-jquery.php:452
2956
- #: powerpressadmin-jquery.php:456
2957
- #: powerpressadmin-jquery.php:615
2958
- #: powerpressadmin-jquery.php:646
2959
- #@ powerpress
2960
  msgid "Close"
2961
  msgstr "Luk"
2962
 
2963
- #: powerpressadmin-jquery.php:90
2964
- #@ powerpress
2965
  msgid "You do not have sufficient permission to view media statistics."
2966
  msgstr "Du har ikke tilstrækkelige rettigheder til at se mediestatistikken."
2967
 
2968
- #: powerpressadmin-jquery.php:111
2969
- #: powerpressadmin-jquery.php:552
2970
- #: powerpressadmin-jquery.php:625
2971
- #@ powerpress
2972
  msgid "You do not have sufficient permission to upload media."
2973
  msgstr "Du har ikke tilstrækkelige rettigheder til at uploade medier."
2974
 
2975
- #: powerpressadmin-jquery.php:125
2976
- #: powerpressadmin-jquery.php:127
2977
- #: powerpressadmin-jquery.php:137
2978
- #: powerpressadmin-jquery.php:139
2979
- #: powerpressadmin-jquery.php:180
2980
- #: powerpressadmin-jquery.php:211
2981
- #@ powerpress
2982
  msgid "Select Media"
2983
  msgstr "Vælg medie"
2984
 
2985
- #: powerpressadmin-jquery.php:140
2986
- #@ powerpress
2987
  msgid "Wait a sec! This feature is only available to Blubrry Podcast paid hosting members."
2988
  msgstr "Vent et øjeblik! Denne funktion er kun tilgængelig for medlemmer, der betaler for at bruge Blubrry Podcast på vores server."
2989
 
2990
- #: powerpressadmin-jquery.php:142
2991
  #, php-format
2992
- #@ powerpress
2993
  msgid "Join our community to get free podcast statistics and access to other valuable %s."
2994
  msgstr "Slut dig til vores fællesskab og få gratis podcast-statistik og adgang til andre værdifulde %s."
2995
 
2996
- #: powerpressadmin-jquery.php:143
2997
- #@ powerpress
2998
  msgid "services"
2999
  msgstr "tjenester"
3000
 
3001
- #: powerpressadmin-jquery.php:147
3002
  #, php-format
3003
- #@ powerpress
3004
  msgid "Our %s PowerPress makes podcast publishing simple. Check out the %s on our exciting three-step publishing system!"
3005
  msgstr "Vores %s PowerPress gør udgivelse af podcast simpelt. Tjek %s om vores fantastiske tretrins udgivelsessystem!"
3006
 
3007
- #: powerpressadmin-jquery.php:148
3008
- #@ powerpress
3009
  msgid "podcast-hosting integrated"
3010
  msgstr "podcasthosting-integrerende"
3011
 
3012
- #: powerpressadmin-jquery.php:149
3013
- #@ powerpress
3014
  msgid "video"
3015
  msgstr "video"
3016
 
3017
- #: powerpressadmin-jquery.php:171
3018
- #@ powerpress
3019
  msgid "An unknown error occurred deleting media file."
3020
  msgstr "En ukendt fejl opstod i forsøget på at slette mediefil."
3021
 
3022
- #: powerpressadmin-jquery.php:206
3023
- #@ powerpress
3024
  msgid "Are you sure you want to delete this media file?"
3025
  msgstr "Er du sikker på, at du vil slette denne mediefil?"
3026
 
3027
- #: powerpressadmin-jquery.php:216
3028
- #: powerpressadmin-jquery.php:273
3029
- #@ powerpress
3030
  msgid "Upload Media File"
3031
  msgstr "Upload mediefil"
3032
 
3033
- #: powerpressadmin-jquery.php:217
3034
- #@ powerpress
3035
  msgid "Select from media files uploaded to blubrry.com"
3036
  msgstr "Vælg blandt mediefiler, der er uploadet til blubrry.com"
3037
 
3038
- #: powerpressadmin-jquery.php:242
3039
- #@ powerpress
3040
  msgid "Media Published within the past 30 days"
3041
  msgstr "Mediefiler udgivet inden de sidste 30 dage"
3042
 
3043
- #: powerpressadmin-jquery.php:253
3044
- #@ powerpress
3045
  msgid "Published on"
3046
  msgstr "Udgivet den"
3047
 
3048
- #: powerpressadmin-jquery.php:257
3049
- #: powerpressadmin-jquery.php:262
3050
- #@ powerpress
3051
  msgid "Select"
3052
  msgstr "Vælg"
3053
 
3054
- #: powerpressadmin-jquery.php:279
3055
  #, php-format
3056
- #@ powerpress
3057
  msgid "You have uploaded %s (%s available) of your %s limit."
3058
  msgstr "Du har uploadet %s (%s til rådighed) af din kvote på %s."
3059
 
3060
- #: powerpressadmin-jquery.php:286
3061
  #, php-format
3062
- #@ powerpress
3063
  msgid "You are hosting %s (%s available) of your %s/30 day limit."
3064
  msgstr "Du har %s liggende på serveren (%s til rådighed) af din 30-dages kvote på %s"
3065
 
3066
- #: powerpressadmin-jquery.php:293
3067
  #, php-format
3068
- #@ powerpress
3069
  msgid "Your limit will adjust on %s to %s (%s available)."
3070
  msgstr "Din kvote vil blive ændret den %s til %s (%s til rådighed)."
3071
 
3072
- #: powerpressadmin-jquery.php:360
3073
- #@ powerpress
3074
  msgid "currently not available"
3075
  msgstr "pt. ikke tilgængelig"
3076
 
3077
- #: powerpressadmin-jquery.php:362
3078
- #: powerpressadmin-jquery.php:580
3079
- #@ powerpress
3080
  msgid "Unable to find podcasts for this account."
3081
  msgstr "Kunne ikke finde denne kontos podcasts."
3082
 
3083
- #: powerpressadmin-jquery.php:397
3084
- #@ powerpress
3085
  msgid "You must select a program to continue."
3086
  msgstr "Du skal vælge et program for at kunne fortsætte."
3087
 
3088
- #: powerpressadmin-jquery.php:409
3089
- #@ powerpress
3090
  msgid "Please select your podcast program to continue."
3091
  msgstr "Vælg venligst dit podcastprogram for at kunne fortsætte."
3092
 
3093
- #: powerpressadmin-jquery.php:417
3094
- #@ powerpress
3095
  msgid "No podcasts for this account are listed on blubrry.com."
3096
  msgstr "Denne konto har ingen podcasts listet på blubrry.com."
3097
 
3098
- #: powerpressadmin-jquery.php:429
3099
- #@ powerpress
3100
  msgid "Authentication failed."
3101
  msgstr "<span title=\"authentication\">Brugerbekræftelse</span> mislykkedes."
3102
 
3103
- #: powerpressadmin-jquery.php:454
3104
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
3105
  msgid "Settings Saved Successfully!"
3106
  msgstr "Indstillinger gemt!"
3107
 
3108
- #: powerpressadmin-jquery.php:507
3109
- #@ powerpress
3110
  msgid "Blubrry User Name (Email)"
3111
  msgstr "Blubrry-brugernavn (e-mail)"
3112
 
3113
- #: powerpressadmin-jquery.php:511
3114
- #@ powerpress
3115
  msgid "Blubrry Password"
3116
  msgstr "Blubrry-adgangskode"
3117
 
3118
- #: powerpressadmin-jquery.php:514
3119
- #@ powerpress
3120
  msgid "Select Blubrry Services"
3121
  msgstr "Vælg Blubrry-tjenester"
3122
 
3123
- #: powerpressadmin-jquery.php:516
3124
- #@ powerpress
3125
  msgid "Statistics Integration only"
3126
  msgstr "Kun statistikintegration"
3127
 
3128
- #: powerpressadmin-jquery.php:519
3129
- #@ powerpress
3130
  msgid "Statistics and Hosting Integration (Requires Blubrry Hosting Account)"
3131
  msgstr "Integration af statistik og hosting (kræver en Blubrry-hostingkonto)"
3132
 
3133
- #: powerpressadmin-jquery.php:526
3134
- #@ powerpress
3135
  msgid "Blubrry Program Keyword"
3136
  msgstr "<span title=\"Blubrry Program Keyword\">Blubrry-programnøgleord</span>"
3137
 
3138
- #: powerpressadmin-jquery.php:528
3139
- #@ powerpress
3140
  msgid "Select Program"
3141
  msgstr "Vælg program"
3142
 
3143
- #: powerpressadmin-jquery.php:537
3144
- #@ powerpress
3145
  msgid "Remove Blubrry Services Integration, are you sure?"
3146
  msgstr "Fjern Blubrry-serviceintegration &ndash; Er du sikker?"
3147
 
3148
- #: powerpressadmin-jquery.php:538
3149
- #@ powerpress
3150
  msgid "Save"
3151
  msgstr "Gem"
3152
 
3153
- #: powerpressadmin-jquery.php:539
3154
- #: powerpressadmin-jquery.php:700
3155
- #@ powerpress
3156
  msgid "Cancel"
3157
  msgstr "Annullér"
3158
 
3159
- #: powerpressadmin-jquery.php:551
3160
- #: powerpressadmin-jquery.php:609
3161
- #: powerpressadmin-jquery.php:610
3162
- #: powerpressadmin-jquery.php:635
3163
- #@ powerpress
3164
  msgid "Uploader"
3165
  msgstr "Uploader"
3166
 
3167
- #: powerpressadmin-jquery.php:564
3168
- #@ powerpress
3169
  msgid "This feature is available to Blubrry Hosting users only."
3170
  msgstr "Denne funktion er kun tilgængelig for brugere af Blubrry Hosting."
3171
 
3172
- #: powerpressadmin-jquery.php:606
3173
- #@ powerpress
3174
  msgid "Unable to obtain upload session."
3175
  msgstr "Kunne ikke etablere upload-session."
3176
 
3177
- #: powerpressadmin-jquery.php:634
3178
- #@ powerpress
3179
  msgid "Upload Complete"
3180
  msgstr "Upload fuldført"
3181
 
3182
- #: powerpressadmin-jquery.php:639
3183
- #: powerpressadmin-mt.php:725
3184
- #: powerpressadmin-podpress-stats.php:23
3185
- #: powerpressadmin-podpress-stats.php:27
3186
- #: powerpressadmin-podpress.php:590
3187
- #: powerpressadmin-podpress.php:595
3188
- #: powerpressadmin-podpress.php:660
3189
- #@ powerpress
3190
  msgid "File"
3191
  msgstr "Fil"
3192
 
3193
- #: powerpressadmin-jquery.php:677
3194
- #@ powerpress
3195
  msgid "WordPress"
3196
  msgstr "PowerPress"
3197
 
3198
- #: powerpressadmin-metabox.php:132
3199
- #@ powerpress
3200
  msgid "Modify existing podcast episode"
3201
  msgstr "Redigér eksisterende podcastepisode"
3202
 
3203
- #: powerpressadmin-metabox.php:151
3204
- #@ powerpress
3205
  msgid "Podcast episode will be removed from this post upon save"
3206
  msgstr "Podcastepisode vil blive fjernet fra dette indlæg, når det gemmes"
3207
 
3208
- #: powerpressadmin-basic.php:226
3209
- #: powerpressadmin-metabox.php:161
3210
- #@ powerpress
3211
- msgid "Media URL"
3212
- msgstr "URL til mediefilen"
3213
-
3214
- #: powerpressadmin-metabox.php:165
3215
- #@ powerpress
3216
  msgid "Browse Media File"
3217
  msgstr "Gennemse for mediefil"
3218
 
3219
- #: powerpressadmin-metabox.php:165
3220
- #@ powerpress
3221
  msgid "Browse Media Files"
3222
  msgstr "Gennemse for mediefiler"
3223
 
3224
- #: powerpressadmin-metabox.php:167
3225
- #@ powerpress
3226
  msgid "Verify"
3227
  msgstr "Bekræft"
3228
 
3229
- #: powerpressadmin-metabox.php:167
3230
- #@ powerpress
3231
  msgid "Verify Media"
3232
  msgstr "Tjek medie"
3233
 
3234
- #: powerpressadmin-metabox.php:168
3235
- #@ powerpress
3236
  msgid "Checking Media"
3237
  msgstr "Tjekker medie"
3238
 
3239
- #: powerpressadmin-metabox.php:171
3240
- #@ powerpress
3241
  msgid "Media file hosted by blubrry.com."
3242
  msgstr "Mediefil hostet af blubrry.com"
3243
 
3244
- #: powerpressadmin-metabox.php:172
3245
- #@ powerpress
3246
  msgid "Remove Blubrry.com hosted media file"
3247
  msgstr "Fjern mediefil hostet på Blubrry.com"
3248
 
3249
- #: powerpressadmin-metabox.php:172
3250
- #@ powerpress
3251
  msgid "remove"
3252
  msgstr "fjern"
3253
 
3254
- #: powerpressadmin-metabox.php:185
3255
- #@ powerpress
 
 
 
3256
  msgid "Do not display player and media links"
3257
  msgstr "Vis ikke afspiller og medielinks"
3258
 
3259
- #: powerpressadmin-metabox.php:191
3260
- #@ powerpress
3261
  msgid "Do not display player"
3262
  msgstr "Vis ikke afspiller"
3263
 
3264
- #: powerpressadmin-metabox.php:197
3265
- #@ powerpress
3266
  msgid "Do not display media links"
3267
  msgstr "Vis ikke medielinks"
3268
 
3269
- #: powerpressadmin-metabox.php:219
3270
- #@ powerpress
 
 
 
 
 
 
 
3271
  msgid "File Size"
3272
  msgstr "Filstørrelse"
3273
 
3274
- #: powerpressadmin-metabox.php:227
3275
- #: powerpressadmin-metabox.php:242
3276
- #: powerpressadmin-tags.php:168
3277
- #: powerpressadmin-tags.php:177
3278
- #@ powerpress
3279
  msgid "Specify"
3280
  msgstr "Angiv"
3281
 
3282
- #: powerpressadmin-metabox.php:229
3283
- #@ powerpress
3284
  msgid "in bytes"
3285
  msgstr "i bytes"
3286
 
3287
- #: powerpressadmin-metabox.php:249
3288
- #@ powerpress
3289
  msgid "Not specified"
3290
  msgstr "Ikke-angivet"
3291
 
3292
- #: powerpressadmin-metabox.php:301
3293
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3294
  msgid "Media Embed"
3295
  msgstr "<span title=\"media embed\">Indsættelse af medie</span>"
3296
 
3297
- #: powerpressadmin-metabox.php:313
3298
- #@ powerpress
3299
  msgid "iTunes Keywords"
3300
  msgstr "<span title=\"iTunes keywords\">iTunes-nøgleord</span>"
3301
 
3302
- #: powerpressadmin-metabox.php:318
3303
- #@ powerpress
3304
  msgid "Enter up to 12 keywords separated by commas. Leave blank to use your blog post tags."
3305
  msgstr "Indtast op til 12 kommaseparerede nøgleord. Dine blogindlægs tags bruges, hvis du ikke udfylder dette felt."
3306
 
3307
- #: powerpressadmin-metabox.php:328
3308
- #@ powerpress
3309
  msgid "iTunes Subtitle"
3310
  msgstr "<span title=\"iTunes subtitle\">iTunes-undertitel</span>"
3311
 
3312
- #: powerpressadmin-metabox.php:333
3313
- #@ powerpress
3314
  msgid "Your subtitle may not contain HTML and cannot exceed 250 characters in length. Leave blank to use the first 250 characters of your blog post."
3315
  msgstr "Din undertitel må ikke indeholde HTML, og længden kan højest være på 250 tegn. De første 250 tegn af dit blogindlæg bruges, hvis du ikke udfylder dette felt."
3316
 
3317
- #: powerpressadmin-metabox.php:343
3318
- #@ powerpress
3319
  msgid "iTunes Summary"
3320
  msgstr "iTunes-resumé"
3321
 
3322
- #: powerpressadmin-metabox.php:348
3323
- #@ powerpress
3324
  msgid "Your summary may not contain HTML and cannot exceed 4,000 characters in length. Leave blank to use your blog post."
3325
  msgstr "Dit resumé må ikke indeholde HTML, og længden må ikke overskride 4.000 tegn. Dit blogindlæg bruges, hvis du ikke udfylder feltet."
3326
 
3327
- #: powerpressadmin-metabox.php:358
3328
- #@ powerpress
3329
  msgid "iTunes Author"
3330
  msgstr "<span title=\"iTunes author\">iTunes-forfatter</span>"
3331
 
3332
- #: powerpressadmin-metabox.php:363
3333
- #@ powerpress
3334
  msgid "Leave blank to use post author name."
3335
  msgstr "Navnet på indlæggets forfatter bruges, hvis du ikke udfylder feltet."
3336
 
3337
- #: powerpressadmin-metabox.php:377
3338
- #@ powerpress
3339
  msgid "Use feed's explicit setting"
3340
  msgstr "Brug feedets konkrete indstillinger"
3341
 
3342
- #: powerpressadmin-metabox.php:377
3343
- #@ powerpress
3344
  msgid "no - display nothing"
3345
  msgstr "nej &ndash; vis intet"
3346
 
3347
- #: powerpressadmin-metabox.php:377
3348
- #@ powerpress
3349
  msgid "yes - explicit content"
3350
  msgstr "Ja &ndash; <span title=\"explicit content - upassende indhold\">eksplicit indhold</span>"
3351
 
3352
- #: powerpressadmin-metabox.php:377
3353
- #@ powerpress
3354
  msgid "clean - no explicit content"
3355
  msgstr "ren - ingen \"direkte sprog m.m."
3356
 
3357
- #: powerpressadmin-mode.php:10
3358
- #@ powerpress
 
 
 
3359
  msgid "Welcome to Blubrry PowerPress"
3360
  msgstr "Velkommen til Blubrry PowerPress"
3361
 
3362
- #: powerpressadmin-mode.php:13
3363
- #@ powerpress
3364
  msgid "Welcome to Blubrry PowerPress. In order to give each user the best experience, we designed two modes; Simple and Advanced. Please select the mode that is most appropriate for your needs."
3365
- msgstr "Velkommen til Blubrry PowerPress. For at kunne give alle brugere den bedste oplevelse har vi designet to niveauer: Simple funktioner og Avancerede funktioner. Vælg venligst det niveau, som passer bedst til dine behov."
3366
 
3367
- #: powerpressadmin-mode.php:18
3368
- #@ powerpress
3369
  msgid "Select Mode"
3370
  msgstr "Vælg niveau for funktioner"
3371
 
3372
- #: powerpressadmin-mode.php:21
3373
- #@ powerpress
3374
  msgid "Simple Mode"
3375
  msgstr "Simple funktioner"
3376
 
3377
- #: powerpressadmin-mode.php:22
3378
- #@ powerpress
3379
  msgid "Simple Mode is intended for podcasters who are just starting out and feel a bit intimidated by all of the possible options and settings. This mode is perfect for someone who is recording in one format (e.g. mp3) and wants to keep things simple."
3380
  msgstr "Simple funktioner er beregnet til podcasters, som lige er begyndt og føler sig en smule skræmt over alle de forskellige muligheder og indstillinger. Simple funktioner passer fint til den, der optager i et enkelt format (fx MP3) og ønsker, at tingene skal være simple."
3381
 
3382
- #: powerpressadmin-mode.php:23
3383
- #: powerpressadmin-mode.php:31
3384
- #@ powerpress
3385
  msgid "Features Include"
3386
  msgstr "Funktioner inkluderer"
3387
 
3388
- #: powerpressadmin-mode.php:24
3389
- #@ powerpress
3390
  msgid "Only the bare essential settings"
3391
  msgstr "Kun den helt nødvendige indstillinger"
3392
 
3393
- #: powerpressadmin-mode.php:25
3394
- #@ powerpress
3395
  msgid "Important feed and iTunes settings"
3396
  msgstr "Vigtige indstillinger for feeds og iTunes"
3397
 
3398
- #: powerpressadmin-mode.php:26
3399
- #@ powerpress
3400
  msgid "Player and download links added to bottom of episode posts"
3401
  msgstr "Afspiller og downloadlinks tilføjet i slutningen af episodeindlæg"
3402
 
3403
- #: powerpressadmin-mode.php:30
3404
- #@ powerpress
 
 
 
3405
  msgid "Advanced Mode gives you all of the features packaged in Blubrry PowerPress. This mode is perfect for someone who may want to distribute multiple versions of their podcast, customize the web player and download links, or import data from a previous podcasting platform."
3406
  msgstr "Avancerede funktioner giver dig adgang til alle de funktioner, Blubrry PowerPress tilbyder. Avancerede funktioner passer fint til den, der måtte ønske at distribuere forskellige podcastversioner og tilpasse webafspilleren og downloadlinks, eller som måtte ønske at importere data fra en tidligere anvendt podcastingplatform."
3407
 
3408
- #: powerpressadmin-mode.php:32
3409
- #@ powerpress
3410
  msgid "Advanced Settings"
3411
  msgstr "Avancerede indstillinger"
3412
 
3413
- #: powerpressadmin-mode.php:32
3414
- #@ powerpress
3415
  msgid "Tweak additional settings."
3416
  msgstr "Tilpas flere indstillinger."
3417
 
3418
- #: powerpressadmin-mode.php:33
3419
- #@ powerpress
3420
  msgid "Presentation Settings"
3421
  msgstr "Indstillinger for præsentation"
3422
 
3423
- #: powerpressadmin-mode.php:33
3424
- #@ powerpress
3425
  msgid "Customize web player and media download links"
3426
  msgstr "Tilpas webafspiller og mediedownloadlinks"
3427
 
3428
- #: powerpressadmin-mode.php:34
3429
- #@ powerpress
3430
  msgid "Extensive Feed Settings"
3431
  msgstr "<span title=\"extensive feed settings\">Indstillinger for feeds med udvidet funktionalitet</span>"
3432
 
3433
- #: powerpressadmin-mode.php:34
3434
- #@ powerpress
3435
  msgid "Tweak all available feed settings"
3436
  msgstr "Tilpas alle tilgængelige feedindstillinger"
3437
 
3438
- #: powerpressadmin-mode.php:42
3439
- #@ powerpress
3440
  msgid "Set Mode and Continue"
3441
  msgstr "Vælg niveau for funktioner og fortsæt"
3442
 
3443
- #: powerpressadmin-mt.php:234
3444
- #@ powerpress
3445
  msgid "HTTP return code"
3446
  msgstr "HTTP's <span title=\"HTTP return code\">svarkode</span>"
3447
 
3448
- #: powerpressadmin-mt.php:248
3449
  #, php-format
3450
- #@ powerpress
3451
  msgid "Error importing %s for blog post %s:"
3452
  msgstr "Fejl under import af %s knyttet til blogindlægget %s:"
3453
 
3454
- #: powerpressadmin-mt.php:256
3455
  #, php-format
3456
- #@ powerpress
3457
  msgid "Episode %s for blog post %s imported to feed %s."
3458
  msgstr "Episode %s knyttet til blogindlægget %s importeret til feedet %s."
3459
 
3460
- #: powerpressadmin-mt.php:290
3461
- #@ powerpress
3462
  msgid "Duration of each mp3 detected."
3463
  msgstr "<span title=\"duration\">Varighed</span> for hver MP3 aflæst."
3464
 
3465
- #: powerpressadmin-mt.php:295
3466
  #, php-format
3467
- #@ powerpress
3468
  msgid "Imported %d episode(s)."
3469
  msgstr "Importerede %d episode(r)."
3470
 
3471
- #: powerpressadmin-mt.php:297
3472
  #, php-format
3473
- #@ powerpress
3474
  msgid "Found %d error(s)."
3475
  msgstr "Fandt %d fejl."
3476
 
3477
- #: powerpressadmin-mt.php:304
3478
- #@ powerpress
3479
  msgid "Episode Title"
3480
  msgstr "Episodetitel"
3481
 
3482
- #: powerpressadmin-mt.php:305
3483
- #@ powerpress
3484
  msgid "Date"
3485
  msgstr "Dato"
3486
 
3487
- #: powerpressadmin-mt.php:307
3488
- #: powerpressadmin-podpress.php:315
3489
- #@ powerpress
3490
  msgid "Feed: (podcast)"
3491
  msgstr "Feed: (podcast)"
3492
 
3493
- #: powerpressadmin-mt.php:314
3494
- #: powerpressadmin-podpress-stats.php:23
3495
- #: powerpressadmin-podpress-stats.php:27
3496
- #: powerpressadmin-podpress.php:322
3497
- #@ powerpress
3498
  msgid "Feed"
3499
  msgstr "Feed"
3500
 
3501
- #: powerpressadmin-mt.php:317
3502
- #: powerpressadmin-mt.php:733
3503
- #: powerpressadmin-podpress.php:325
3504
- #: powerpressadmin-podpress.php:721
3505
- #@ powerpress
3506
  msgid "No Import"
3507
  msgstr "Ingen import"
3508
 
3509
- #: powerpressadmin-mt.php:329
3510
- #: powerpressadmin-mt.php:331
3511
- #: powerpressadmin-mt.php:548
3512
- #: powerpressadmin-podpress.php:337
3513
- #@ powerpress
3514
  msgid "Podcast Feed (default)"
3515
  msgstr "Podcastfeed (standard)"
3516
 
3517
- #: powerpressadmin-mt.php:337
3518
  #, php-format
3519
- #@ powerpress
3520
  msgid "We found blog posts that have as many as %d media files. You may need to create %d more Custom Feed%s in order to import all of the media."
3521
  msgstr "Vi fandt blogindlæg, som har helt op til %d mediefiler. Du vil være nødt til at oprette %d flere brugerdefinerede feed%s for at kunne importere alle disse mediefiler."
3522
 
3523
- #: powerpressadmin-mt.php:395
3524
- #: powerpressadmin-podpress.php:397
3525
- #@ powerpress
3526
  msgid "Sorry, you may only select one media file per post per feed."
3527
  msgstr "Beklager, men du kan kun vælge én mediefil per indlæg per feed."
3528
 
3529
- #: powerpressadmin-mt.php:409
3530
- #: powerpressadmin-podpress.php:411
3531
- #@ powerpress
3532
  msgid "Select \"No Import\" option for all media files?"
3533
  msgstr "Vælg indstillingen \"Ingen import\" for alle mediefiler?"
3534
 
3535
- #: powerpressadmin-mt.php:452
3536
- #: powerpressadmin-podpress.php:744
3537
- #: powerpressadmin-podpress.php:752
3538
- #: powerpressadmin-podpress.php:813
3539
- #: powerpressadmin-tools.php:47
3540
- #@ powerpress
3541
  msgid "Import Episodes"
3542
  msgstr "Importér episoder"
3543
 
3544
- #: powerpressadmin-mt.php:458
3545
- #@ powerpress
3546
  msgid "No episodes found to import."
3547
  msgstr "Der blev ikke fundet episoder, der kunne importeres."
3548
 
3549
- #: powerpressadmin-mt.php:465
3550
- #: powerpressadmin-podpress.php:472
3551
- #@ powerpress
3552
  msgid "Select the media file under each feed for each episode you wish to import."
3553
  msgstr "Vælge mediefilerne under hvert feed for hver episode du ønsker at importere."
3554
 
3555
- #: powerpressadmin-mt.php:653
3556
- #: powerpressadmin-podpress.php:644
3557
- #@ powerpress
3558
  msgid "present"
3559
  msgstr "findes"
3560
 
3561
- #: powerpressadmin-mt.php:655
3562
- #: powerpressadmin-podpress.php:646
3563
- #@ powerpress
3564
  msgid "imported"
3565
  msgstr "importeret"
3566
 
3567
- #: powerpressadmin-mt.php:712
3568
- #: powerpressadmin-podpress.php:702
3569
  #, php-format
3570
- #@ powerpress
3571
  msgid "Importable episodes highlighted in %s with asterisks *."
3572
  msgstr "Episoder, der kan importeres, er fremhævet i %s med asteriskerne *."
3573
 
3574
- #: powerpressadmin-mt.php:713
3575
- #: powerpressadmin-podpress.php:703
3576
- #@ powerpress
3577
  msgid "red"
3578
  msgstr "rød"
3579
 
3580
- #: powerpressadmin-mt.php:716
3581
- #@ powerpress
3582
  msgid "Select Only:"
3583
  msgstr "Vælg kun:"
3584
 
3585
- #: powerpressadmin-mt.php:738
3586
- #@ powerpress
3587
  msgid "Types of media found:"
3588
  msgstr "Medietyper fundet:"
3589
 
3590
- #: powerpressadmin-mt.php:762
3591
  #, php-format
3592
- #@ powerpress
3593
  msgid "There are %s media files that can be imported with a total of %d blog post podcast episodes."
3594
  msgstr "Der er %s mediefiler, som kan importeres, med i alt %d podcastepisoder knyttet til blogindlæggene."
3595
 
3596
- #: powerpressadmin-mt.php:773
3597
- #@ powerpress
3598
  msgid "Detect duration for mp3 media. (expect script to take a while with this option)"
3599
  msgstr "Aflæs <span title=\"duration\">varighed</span> for MP3-medier. (Forvent, at det tager nogen tid, når denne indstilling er valgt)"
3600
 
3601
- #: powerpressadmin-mt.php:780
3602
- #: powerpressadmin-podpress.php:830
3603
- #@ powerpress
3604
  msgid "Filter Results"
3605
  msgstr "Filtrering af resultater"
3606
 
3607
- #: powerpressadmin-mt.php:781
3608
- #: powerpressadmin-podpress.php:831
3609
- #@ powerpress
3610
  msgid "Include Only"
3611
  msgstr "Inkludér kun"
3612
 
3613
- #: powerpressadmin-mt.php:782
3614
- #@ powerpress
3615
  msgid "leave blank for all media"
3616
  msgstr "udfyldes ikke, hvis alle medier skal medtages"
3617
 
3618
- #: powerpressadmin-mt.php:783
3619
- #@ powerpress
3620
  msgid "Specify the file extensions to include separated by commas (e.g. mp3, m4v)."
3621
  msgstr "Angiv filtyperne, der skal inkluderes, adskilt af kommaerne (fx MP3, M4V)."
3622
 
3623
- #: powerpressadmin-mt.php:786
3624
- #@ powerpress
3625
  msgid "Filter Episodes"
3626
  msgstr "Filtrér episoder"
3627
 
3628
- #: powerpressadmin-ping-sites.php:18
3629
- #@ powerpress
3630
  msgid "Update services added successfully."
3631
  msgstr "Updatetjenester tilføjet med succes."
3632
 
3633
- #: powerpressadmin-ping-sites.php:22
3634
- #@ powerpress
3635
  msgid "No update services selected to add."
3636
  msgstr "Du valgte ikke nogen updatetjenester til at blive tilføjet."
3637
 
3638
- #: powerpressadmin-ping-sites.php:29
3639
- #@ powerpress
3640
  msgid "Ping-o-Matic!"
3641
  msgstr "Ping-o-Matic!"
3642
 
3643
- #: powerpressadmin-ping-sites.php:30
3644
- #@ powerpress
3645
  msgid "Google Blog Search"
3646
  msgstr "Google Blogsøgning"
3647
 
3648
- #: powerpressadmin-ping-sites.php:31
3649
- #@ powerpress
3650
  msgid "WebLogs"
3651
  msgstr "WebLogs"
3652
 
3653
- #: powerpressadmin-ping-sites.php:33
3654
- #@ powerpress
3655
  msgid "WebLogs Audio"
3656
  msgstr "WebLogs Audio"
3657
 
3658
- #: powerpressadmin-ping-sites.php:38
3659
- #@ powerpress
3660
  msgid "Add Update services / Ping Sites"
3661
  msgstr "Tilføj updatetjenester/pingsites"
3662
 
3663
- #: powerpressadmin-ping-sites.php:40
3664
- #@ powerpress
3665
  msgid "Notify the following Update Services / Ping Sites when you create a new blog post / podcast episode."
3666
  msgstr "Giv de følgende updatetjenester/pingsites besked, når du opretter et nyt blogindlæg/podcastepisode"
3667
 
3668
- #: powerpressadmin-ping-sites.php:44
3669
- #@ powerpress
3670
  msgid "Update Blog Searvices"
3671
  msgstr "Opdatér blogtjenester"
3672
 
3673
- #: powerpressadmin-ping-sites.php:46
3674
- #@ powerpress
3675
  msgid "Select the blog service you would like to notify."
3676
  msgstr "Vælg de blogtjenester, du gerne vil give besked."
3677
 
3678
- #: powerpressadmin-ping-sites.php:68
3679
- #@ powerpress
3680
  msgid "Update Podcast Searvices"
3681
  msgstr "Opdatér podcasttjenester"
3682
 
3683
- #: powerpressadmin-ping-sites.php:70
3684
- #@ powerpress
3685
  msgid "Select the podcasting service you would like to notify."
3686
  msgstr "Vælg de podcastingtjenester, du gerne vil give besked."
3687
 
3688
- #: powerpressadmin-ping-sites.php:93
3689
- #@ powerpress
3690
  msgid "You can manually add ping services by going to the to the \"Update Services\" section found in the <b>WordPress Settings</b> &gt; <b>Writing</b> page."
3691
  msgstr "Du kan selv tilføje pingtjenester ved at gå til \"Opdateringstjenester\" under <b>Skrivning</b> i <b>WordPress' Indstillinger</b>."
3692
 
3693
- #: powerpressadmin-ping-sites.php:96
3694
- #@ powerpress
3695
  msgid "Add Selected Update Services"
3696
  msgstr "Tilføj valgte updatetjenester"
3697
 
3698
- #: powerpressadmin-player-page.php:177
3699
- #@ powerpress
 
 
 
 
 
 
 
3700
  msgid "Blubrry PowerPress Player Options"
3701
  msgstr "Indstillinger for Blubrry PowerPress' afspiller"
3702
 
3703
- #: powerpressadmin-player-page.php:178
3704
- #@ powerpress
3705
  msgid "Select the media player you would like to use."
3706
  msgstr "Vælg den medieafspiller, du ønsker at bruge."
3707
 
3708
- #: powerpressadmin-player-page.php:281
3709
- #@ powerpress
3710
- msgid "Flow Player Classic (default)"
3711
- msgstr "Flow Player Classic (standard)"
3712
-
3713
- #: powerpressadmin-player-page.php:191
3714
- #: powerpressadmin-player-page.php:205
3715
- #: powerpressadmin-player-page.php:282
3716
- #: powerpressadmin-player-page.php:294
3717
- #: powerpressadmin-player-page.php:306
3718
- #: powerpressadmin-player-page.php:318
3719
- #: powerpressadmin-player-page.php:332
3720
- #: powerpressadmin-player-page.php:346
3721
- #@ powerpress
3722
  msgid "Activate and Configure Now"
3723
  msgstr "Aktivér og konfigurér nu"
3724
 
3725
- #: powerpressadmin-player-page.php:293
3726
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3727
  msgid "1 Pixel Out Audio Player"
3728
  msgstr "1 Pixel Out Audio Player"
3729
 
3730
- #: powerpressadmin-player-page.php:301
3731
- #@ powerpress
3732
  msgid "1 Pixel Out Audio Player is a popular customizable audio (mp3 only) flash player. Features include an animated play/pause button, scrollable position bar, ellapsed/remaining time, volume control and color styling options."
3733
  msgstr "1 Pixel Out Audio Player er en populær audioflashafspiller, der kan tilpasses (understøtter kun MP3). Funktionerne inkluderer en animeret afspil/pause-knap, en forløbsbjælke, hvor man selv kan flytte forløbsikonet, forløbet tid, tid tilbage og volumenkontrol. Desuden er der indstillinger, så man kan tilpasse farverne."
3734
 
3735
- #: powerpressadmin-player-page.php:305
3736
- #@ powerpress
3737
  msgid "Mp3 Player Maxi"
3738
  msgstr "Mp3 Player Maxi"
3739
 
3740
- #: powerpressadmin-player-page.php:313
3741
- #@ powerpress
3742
  msgid "Flash Mp3 Maxi Player is a customizable open source audio (mp3 only) flash player. Features include pause/play/stop/file info buttons, scrollable position bar, volume control and color styling options."
3743
  msgstr "Flash MP3 Max Player er en open source-lyd-flashafspiller, der kan tilpasses af brugeren (understøtter kun MP3). Funktioner inkluderer knapper til pause/afspil/stop/filinfo, en forløbsbjælke, hvor man selv kan flytte forløbsikonet og volumenkontrol. Desuden er der indstillinger, så man kan tilpasse farverne."
3744
 
3745
- #: powerpressadmin-player-page.php:317
3746
- #@ powerpress
3747
  msgid "Simple Flash MP3 Player"
3748
  msgstr "Simple Flash MP3 Player"
3749
 
3750
- #: powerpressadmin-player-page.php:327
3751
- #@ powerpress
3752
  msgid "Simple Flash MP3 Player is a free and simple audio (mp3 only) flash player. Features include play/pause and stop buttons."
3753
  msgstr "Simple Flash MP3 Player er en gratis og simpel lyd-flashafspiller (understøtter kun MP3). Funktioner inkluderer afspil/pause- og stop-knapper."
3754
 
3755
- #: powerpressadmin-player-page.php:331
3756
- #@ powerpress
3757
  msgid "AudioPlay"
3758
  msgstr "AudioPlay"
3759
 
3760
- #: powerpressadmin-player-page.php:341
3761
- #@ powerpress
3762
  msgid "AudioPlay is one button freeware audio (mp3 only) flash player. Features include a play/stop or play/pause button available in two sizes in either black or white."
3763
  msgstr "AudioPlay er et freewareprogram til flashafspilning af lyd (kun MP3). Funktioner inkluderer en afspil/stop- eller en afspil/pause-knap i to størrelser i enten sort eller hvid."
3764
 
3765
- #: powerpressadmin-player-page.php:413
3766
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3767
  msgid "Click 'Save Changes' to activate and configure selected player."
3768
  msgstr "Klik 'Gem ændringer' for at aktivere og konfigurere valgte afspiller."
3769
 
3770
- #: powerpressadmin-player-page.php:419
3771
- #@ powerpress
3772
  msgid "Configure Player"
3773
  msgstr "Konfigurér afspiller"
3774
 
3775
- #: powerpressadmin-player-page.php:618
3776
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3777
  msgid "Configure the 1 pixel out Audio Player"
3778
- msgstr "Konfigurér 1 Piexel Out Audio Player"
3779
-
3780
- #: powerpressadmin-player-page.php:625
3781
- #: powerpressadmin-player-page.php:944
3782
- #: powerpressadmin-player-page.php:1099
3783
- #: powerpressadmin-player-page.php:1483
3784
- #: powerpressadmin-player-page.php:1577
3785
- #: powerpressadmin-player-page.php:1610
3786
- #: powerpressadmin-player-page.php:1648
3787
- #: powerpressadmin-player-page.php:1668
3788
- #@ powerpress
3789
  msgid "Preview of Player"
3790
  msgstr "Forhåndsvisning af afspiller"
3791
 
3792
- #: powerpressadmin-player-page.php:638
3793
- #: powerpressadmin-player-page.php:1114
3794
- #@ powerpress
3795
  msgid "Set Defaults"
3796
  msgstr "Sæt standardværdier"
3797
 
3798
- #: powerpressadmin-player-page.php:642
3799
- #: powerpressadmin-player-page.php:780
3800
- #@ powerpress
3801
  msgid "Progress Bar"
3802
  msgstr "Forløbsbjælke"
3803
 
3804
- #: powerpressadmin-player-page.php:643
3805
- #@ powerpress
3806
  msgid "Volume Button"
3807
  msgstr "Volumenknap"
3808
 
3809
- #: powerpressadmin-player-page.php:644
3810
- #@ powerpress
3811
  msgid "Play / Pause Button"
3812
  msgstr "Afspil/Pause-knap"
3813
 
3814
- #: powerpressadmin-player-page.php:648
3815
- #: powerpressadmin-player-page.php:1124
3816
- #: powerpressadmin-player-page.php:1496
3817
- #: powerpressadmin-player-page.php:1622
3818
- #@ powerpress
3819
  msgid "General Settings"
3820
  msgstr "Generelle indstillinger"
3821
 
3822
- #: powerpressadmin-player-page.php:652
3823
- #@ powerpress
3824
  msgid "Page Background Color"
3825
  msgstr "Baggrundsfarve på side"
3826
 
3827
- #: powerpressadmin-player-page.php:660
3828
- #: powerpressadmin-player-page.php:1164
3829
- #: powerpressadmin-player-page.php:1508
3830
- #@ powerpress
3831
  msgid "leave blank for transparent"
3832
  msgstr "Hvis du ønsker gennemsigtig, så udfyld ikke"
3833
 
3834
- #: powerpressadmin-player-page.php:664
3835
- #@ powerpress
3836
  msgid "Player Background Color"
3837
  msgstr "Baggrundsfarve for afspiller"
3838
 
3839
- #: powerpressadmin-player-page.php:675
3840
- #@ powerpress
3841
  msgid "Width (in pixels)"
3842
  msgstr "Bredde (i pixels)"
3843
 
3844
- #: powerpressadmin-player-page.php:679
3845
- #@ powerpress
3846
  msgid "width of the player. e.g. 290 (290 pixels) or 100%"
3847
  msgstr "bredde på afspilleren. Fx 290 (290 pixels) eller 100%"
3848
 
3849
- #: powerpressadmin-player-page.php:684
3850
- #@ powerpress
3851
  msgid "Right-to-Left"
3852
  msgstr "Højre-mod-venstre"
3853
 
3854
- #: powerpressadmin-player-page.php:692
3855
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3856
  msgid "switches the layout to animate from the right to the left"
3857
  msgstr "skifter layoutet, så animering foregår fra højre mod venstre"
3858
 
3859
- #: powerpressadmin-player-page.php:698
3860
- #@ powerpress
3861
  msgid "Loading Bar Color"
3862
  msgstr "Bjælkefarve under indlæsning"
3863
 
3864
- #: powerpressadmin-player-page.php:710
3865
- #: powerpressadmin-player-page.php:1169
3866
- #@ powerpress
3867
  msgid "Text Color"
3868
  msgstr "Tekstfarve"
3869
 
3870
- #: powerpressadmin-player-page.php:722
3871
- #@ powerpress
3872
  msgid "Text In Player"
3873
  msgstr "Tekst i afspiller"
3874
 
3875
- #: powerpressadmin-player-page.php:726
3876
  #, php-format
3877
- #@ powerpress
3878
  msgid "Enter '%s' to display track name from mp3. Only works if media is hosted on same server as blog."
3879
  msgstr "Indtast '%s' for at hente MP3-oplysninger og vise navn på nummeret. Virker kun, hvis mediefilerne hostes på samme server som bloggen."
3880
 
3881
- #: powerpressadmin-player-page.php:732
3882
- #@ powerpress
3883
  msgid "Play Animation"
3884
  msgstr "Afspilningsanimation"
3885
 
3886
- #: powerpressadmin-player-page.php:741
3887
- #@ powerpress
3888
  msgid "if no, player is always open"
3889
  msgstr "hvis nej, er afspiller altid åben"
3890
 
3891
- #: powerpressadmin-player-page.php:747
3892
- #@ powerpress
3893
  msgid "Display Remaining Time"
3894
  msgstr "Vis resterende spilletid"
3895
 
3896
- #: powerpressadmin-player-page.php:756
3897
- #@ powerpress
3898
  msgid "if yes, shows remaining track time rather than ellapsed time (default: no)"
3899
  msgstr "hvis ja, vises resterende spilletid på nummeret i stedet for forløbet tid (standard: nej)"
3900
 
3901
- #: powerpressadmin-player-page.php:762
3902
- #@ powerpress
3903
  msgid "Buffering Time"
3904
  msgstr "Buffertid"
3905
 
3906
- #: powerpressadmin-player-page.php:768
3907
- #@ powerpress
3908
  msgid "No buffering"
3909
  msgstr "Brug ikke buffer"
3910
 
3911
- #: powerpressadmin-player-page.php:768
3912
- #@ powerpress
3913
  msgid "Default (5 seconds)"
3914
  msgstr "Standard (5 sekunder)"
3915
 
3916
- #: powerpressadmin-player-page.php:768
3917
- #@ powerpress
3918
  msgid "10 seconds"
3919
  msgstr "10 sekunder"
3920
 
3921
- #: powerpressadmin-player-page.php:768
3922
- #@ powerpress
3923
  msgid "15 seconds"
3924
  msgstr "15 sekunder"
3925
 
3926
- #: powerpressadmin-player-page.php:768
3927
- #@ powerpress
3928
  msgid "20 seconds"
3929
  msgstr "20 sekunder"
3930
 
3931
- #: powerpressadmin-player-page.php:768
3932
- #@ powerpress
3933
  msgid "30 seconds"
3934
  msgstr "30 sekunder"
3935
 
3936
- #: powerpressadmin-player-page.php:768
3937
- #@ powerpress
3938
  msgid "60 seconds"
3939
  msgstr "60 sekunder"
3940
 
3941
- #: powerpressadmin-player-page.php:771
3942
- #@ powerpress
3943
  msgid "buffering time in seconds"
3944
  msgstr "buffertid i sekunder"
3945
 
3946
- #: powerpressadmin-player-page.php:784
3947
- #@ powerpress
3948
  msgid "Progress Bar Background"
3949
  msgstr "Baggrund for forløbsbjælke"
3950
 
3951
- #: powerpressadmin-player-page.php:795
3952
- #@ powerpress
3953
  msgid "Progress Bar Color"
3954
  msgstr "Farve for forløbsbjælke"
3955
 
3956
- #: powerpressadmin-player-page.php:806
3957
- #@ powerpress
3958
  msgid "Progress Bar Border"
3959
  msgstr "Ramme for forløbsbjælke"
3960
 
3961
- #: powerpressadmin-player-page.php:820
3962
- #@ powerpress
3963
  msgid "Volume Button Settings"
3964
  msgstr "Indstillinger for volumenknap"
3965
 
3966
- #: powerpressadmin-player-page.php:824
3967
- #@ powerpress
3968
  msgid "Initial Volume"
3969
  msgstr "Startvolumen"
3970
 
3971
- #: powerpressadmin-player-page.php:835
3972
- #@ powerpress
3973
  msgid "initial volume level (default: 60)"
3974
  msgstr "Niveau for startvolumen (standard: 60)"
3975
 
3976
- #: powerpressadmin-player-page.php:841
3977
- #@ powerpress
3978
  msgid "Volumn Background Color"
3979
  msgstr "Baggrundsfarve på volumen"
3980
 
3981
- #: powerpressadmin-player-page.php:852
3982
- #@ powerpress
3983
  msgid "Speaker Icon Color"
3984
  msgstr "Farve på højtalerikon"
3985
 
3986
- #: powerpressadmin-player-page.php:863
3987
- #@ powerpress
3988
  msgid "Volume Icon Background"
3989
  msgstr "Baggrund for volumenikon"
3990
 
3991
- #: powerpressadmin-player-page.php:874
3992
- #@ powerpress
3993
  msgid "Volume Slider Color"
3994
  msgstr "Farve på volumenglider"
3995
 
3996
- #: powerpressadmin-player-page.php:887
3997
- #@ powerpress
3998
  msgid "Play / Pause Button Settings"
3999
  msgstr "Indstillinger for afspil/pause-knap"
4000
 
4001
- #: powerpressadmin-player-page.php:891
4002
- #@ powerpress
4003
  msgid "Play/Pause Background Color"
4004
  msgstr "Baggrundsfarve for Afspil/Pause"
4005
 
4006
- #: powerpressadmin-player-page.php:902
4007
- #@ powerpress
4008
  msgid "Play/Pause Hover Color"
4009
  msgstr "<span title=\"hover\">Mus over</span>-farve for Afspil/Pause"
4010
 
4011
- #: powerpressadmin-player-page.php:913
4012
- #@ powerpress
4013
  msgid "Play/Pause Icon Color"
4014
  msgstr "Farve på Afspil/Pause-ikon"
4015
 
4016
- #: powerpressadmin-player-page.php:924
4017
- #@ powerpress
4018
  msgid "Play/Pause Icon Hover Color"
4019
  msgstr "<span title=\"hover\">Mus over</span>-farve for Afspil/Pause ikon"
4020
 
4021
- #: powerpressadmin-player-page.php:960
4022
- #@ powerpress
4023
  msgid "Simple Flash Player has no additional settings."
4024
  msgstr "Simple Flash Player har ikke flere indstillinger."
4025
 
4026
- #: powerpressadmin-player-page.php:1129
4027
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4028
  msgid "leave blank for default values"
4029
  msgstr "Hvis du ønsker standardværdier, skal du ikke udfylde feltet"
4030
 
4031
- #: powerpressadmin-player-page.php:1134
4032
- #@ powerpress
4033
  msgid "Player Gradient Color Top"
4034
  msgstr "Gradientfarve for afspillerens topfarve"
4035
 
4036
- #: powerpressadmin-player-page.php:1145
4037
- #@ powerpress
4038
  msgid "Player Gradient Color Bottom"
4039
  msgstr "Gradientfarve for afspillerens bundfarve"
4040
 
4041
- #: powerpressadmin-player-page.php:1181
4042
- #@ powerpress
4043
  msgid "Player Height (in pixels)"
4044
  msgstr "Højde på afspiller (i pixels)"
4045
 
4046
- #: powerpressadmin-player-page.php:1191
4047
- #@ powerpress
4048
  msgid "Player Width (in pixels)"
4049
  msgstr "Bredde på afspiller (i pixels)"
4050
 
4051
- #: powerpressadmin-player-page.php:1118
4052
- #: powerpressadmin-player-page.php:1203
4053
- #@ powerpress
4054
- msgid "Button Settings"
4055
- msgstr "Knapindstillinger"
4056
-
4057
- #: powerpressadmin-player-page.php:1207
4058
- #@ powerpress
4059
  msgid "Button Color"
4060
  msgstr "Knapfarve"
4061
 
4062
- #: powerpressadmin-player-page.php:1218
4063
- #@ powerpress
4064
  msgid "Button Hover Color"
4065
  msgstr "Knappens mus-over-farve"
4066
 
4067
- #: powerpressadmin-player-page.php:1229
4068
- #@ powerpress
4069
  msgid "Button Width (in pixels)"
4070
  msgstr "Knapbredde (i pixels)"
4071
 
4072
- #: powerpressadmin-player-page.php:1239
4073
- #@ powerpress
4074
  msgid "Show Stop Button"
4075
  msgstr "Vis stopknap"
4076
 
4077
- #: powerpressadmin-player-page.php:1254
4078
- #@ powerpress
4079
  msgid "Show Info"
4080
  msgstr "Vis info"
4081
 
4082
- #: powerpressadmin-player-page.php:1119
4083
- #: powerpressadmin-player-page.php:1271
4084
- #@ powerpress
4085
- msgid "Volume Settings"
4086
- msgstr "Volumenindstillinger"
4087
-
4088
- #: powerpressadmin-player-page.php:1276
4089
- #@ powerpress
4090
  msgid "Show Volume"
4091
  msgstr "Vis volumen"
4092
 
4093
- #: powerpressadmin-player-page.php:1291
4094
- #@ powerpress
4095
  msgid "Volume"
4096
  msgstr "Volume"
4097
 
4098
- #: powerpressadmin-player-page.php:1305
4099
- #@ powerpress
4100
  msgid "Volume Height (in pixels)"
4101
  msgstr "Højde på volumen (i pixels)"
4102
 
4103
- #: powerpressadmin-player-page.php:1315
4104
- #@ powerpress
4105
  msgid "Volume Width (in pixels)"
4106
  msgstr "Bredde på volumen (i pixels)"
4107
 
4108
- #: powerpressadmin-player-page.php:1120
4109
- #: powerpressadmin-player-page.php:1328
4110
- #@ powerpress
4111
- msgid "Slider Settings"
4112
- msgstr "Indstillinger for glider"
4113
-
4114
- #: powerpressadmin-player-page.php:1333
4115
- #@ powerpress
4116
  msgid "Show Slider"
4117
  msgstr "Vis glider"
4118
 
4119
- #: powerpressadmin-player-page.php:1349
4120
- #@ powerpress
4121
  msgid "Slider Color Top"
4122
  msgstr "Gliderens topfarve"
4123
 
4124
- #: powerpressadmin-player-page.php:1360
4125
- #@ powerpress
4126
  msgid "Slider Color Bottom"
4127
  msgstr "Gliderens bundfarve"
4128
 
4129
- #: powerpressadmin-player-page.php:1372
4130
- #@ powerpress
4131
  msgid "Slider Hover Color"
4132
  msgstr "Gliderens mus-over-farve"
4133
 
4134
- #: powerpressadmin-player-page.php:1383
4135
- #@ powerpress
4136
  msgid "Slider Height (in pixels)"
4137
  msgstr "Højde på glider (i pixels)"
4138
 
4139
- #: powerpressadmin-player-page.php:1393
4140
- #@ powerpress
4141
  msgid "Slider Width (in pixels)"
4142
  msgstr "Bredde på glider (i pixels)"
4143
 
4144
- #: powerpressadmin-player-page.php:1404
4145
- #@ powerpress
4146
  msgid "Show Loading Buffer"
4147
  msgstr "Viser indlæsningsbuffer"
4148
 
4149
- #: powerpressadmin-player-page.php:1418
4150
- #@ powerpress
4151
  msgid "Loading Buffer Color"
4152
  msgstr "Farve på indlæsningsbuffer"
4153
 
4154
- #: powerpressadmin-player-page.php:1477
4155
- #@ powerpress
4156
  msgid "Configure the AudioPlay Player"
4157
  msgstr "Konfigurér AudioPlay-afspilleren"
4158
 
4159
- #: powerpressadmin-player-page.php:1513
4160
- #@ powerpress
4161
  msgid "Player Mode"
4162
  msgstr "Afspillerfunktion"
4163
 
4164
- #: powerpressadmin-player-page.php:1519
4165
- #@ powerpress
4166
  msgid "Play/Pause"
4167
  msgstr "Afspil/Pause"
4168
 
4169
- #: powerpressadmin-player-page.php:1519
4170
- #@ powerpress
4171
  msgid "Play/Stop"
4172
  msgstr "Afspil/Stop"
4173
 
4174
- #: powerpressadmin-player-page.php:1528
4175
- #@ powerpress
4176
  msgid "Player Button"
4177
  msgstr "Afspillerknap"
4178
 
4179
- #: powerpressadmin-player-page.php:1544
4180
- #@ powerpress
4181
  msgid "Small White"
4182
  msgstr "Lille hvid"
4183
 
4184
- #: powerpressadmin-player-page.php:1546
4185
- #@ powerpress
4186
  msgid "Large White"
4187
  msgstr "Stor hvid"
4188
 
4189
- #: powerpressadmin-player-page.php:1553
4190
- #@ powerpress
4191
  msgid "Small Black"
4192
  msgstr "Lille sort"
4193
 
4194
- #: powerpressadmin-player-page.php:1555
4195
- #@ powerpress
4196
  msgid "Large Black"
4197
  msgstr "Stor sort"
4198
 
4199
- #: powerpressadmin-player.php:31
4200
- #@ powerpress
4201
- msgid "Player activated successfully."
4202
- msgstr "Afspiller blev aktiveret med succes."
4203
 
4204
- #: powerpressadmin-player.php:38
4205
- #@ powerpress
4206
- msgid "Audio Player settings saved successfully."
4207
- msgstr "Indstillinger for lydafspiller gemt med succes."
4208
 
4209
- #: powerpressadmin-player.php:45
4210
- #@ powerpress
4211
- msgid "Flash Mp3 Maxi settings saved successfully."
4212
- msgstr "Flash MP3 Maxi-indstillinger gemt med succes."
4213
 
4214
- #: powerpressadmin-player.php:52
4215
- #@ powerpress
4216
- msgid "AudioPlay settings saved successfully."
4217
- msgstr "AudioPlay-indstillinger gemt med succes."
4218
 
4219
- #: powerpressadmin-podpress-stats.php:19
4220
- #@ powerpress
4221
- msgid "Archive of PodPress Stats"
4222
- msgstr "Arkiv med PodPress-statistik"
4223
 
4224
- #: powerpressadmin-podpress-stats.php:20
4225
- #, php-format
4226
- #@ powerpress
4227
- msgid "Displaying %d - %d of %d total"
4228
- msgstr "Viser %d - %d af %d i alt"
4229
 
4230
- #: powerpressadmin-podpress-stats.php:23
4231
- #: powerpressadmin-podpress-stats.php:27
4232
- #@ powerpress
4233
- msgid "Web"
4234
- msgstr "Web"
4235
 
4236
- #: powerpressadmin-podpress-stats.php:24
4237
- #: powerpressadmin-podpress-stats.php:28
4238
- #@ powerpress
4239
- msgid "Total"
4240
- msgstr "I alt"
4241
 
4242
- #: powerpressadmin-podpress-stats.php:51
4243
- #@ powerpress
4244
- msgid "first"
4245
- msgstr "første"
4246
 
4247
- #: powerpressadmin-podpress-stats.php:52
4248
- #@ powerpress
4249
- msgid "prev"
4250
- msgstr "forr"
4251
 
4252
- #: powerpressadmin-podpress-stats.php:55
4253
- #@ powerpress
4254
- msgid "next"
4255
- msgstr "næste"
4256
 
4257
- #: powerpressadmin-podpress-stats.php:56
4258
- #@ powerpress
4259
- msgid "last"
4260
- msgstr "sidste"
4261
 
4262
- #: powerpressadmin-podpress.php:47
4263
- #, php-format
4264
- #@ powerpress
4265
- msgid "Unable to detect PodPress media URL setting. Using the PowerPress setting \"Default Media URL\" (%s) instead."
4266
- msgstr "Kunne ikke aflæse indstilling for PodPress-medie-URL. Bruger i stedet PowerPress-indstillingen \"Standard-URL for medier (%s)\""
4267
 
4268
- #: powerpressadmin-podpress.php:52
4269
- #@ powerpress
4270
- msgid "Unable to detect PodPress media URL setting. Please set the \"Default Media URL\" setting in PowerPress to properly import podcast episodes."
4271
- msgstr "Kunne ikke aflæse indstilling for PodPress-medie-URL. Sæt venligst PowerPress-indstillingen for \"Standard-URL for medier\", så det bliver muligt at importere podcastepisoder."
4272
 
4273
- #: powerpressadmin-podpress.php:116
4274
- #, php-format
4275
- #@ powerpress
4276
- msgid "Error decoding PodPress data for post \"%s\""
4277
- msgstr "Fejl under afkodning af PodPress-data for indlægget \"%s\""
4278
 
4279
- #: powerpressadmin-podpress.php:229
4280
- #, php-format
4281
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4282
  msgid "PodPress data deleted from database successfully. (%d database records removed)"
4283
  msgstr "PodPress-data blev slettet fra databasen med succes. (%d databaseposter blev fjernet)"
4284
 
4285
- #: powerpressadmin-podpress.php:277
4286
  #, php-format
4287
- #@ powerpress
4288
  msgid "Podpress Episode \"%s\" for blog post \"%s\" imported to feed \"%s\""
4289
  msgstr "PodPress-episoden \"%s\" for blogindlægget \"%s\" blev importeret til feedet \"%s\""
4290
 
4291
- #: powerpressadmin-podpress.php:296
4292
- #@ powerpress
4293
  msgid "If you are unsure about importing your PodPress data, try the option under Basic Settings titled 'PodPress Episodes' and set to 'Include in posts and feeds'."
4294
  msgstr "Hvis du er usikker på, hvordan dine PodPress-data importeres, så prøv indstillingen 'PodPress-episoder' under Grundindstillinger og sæt den til 'Inkludér i indlæg og feeds'."
4295
 
4296
- #: powerpressadmin-podpress.php:297
4297
- #@ powerpress
4298
  msgid "Once you feel comfortable with PowerPress, you can use this screen to import your PodPress data."
4299
  msgstr "Når du føler dig hjemme i PowerPress, kan du bruge denne skærm til at importere dine PodPress-data."
4300
 
4301
- #: powerpressadmin-podpress.php:302
4302
- #@ powerpress
4303
  msgid "PodPress Import Log"
4304
  msgstr "Log over PodPress-import"
4305
 
4306
- #: powerpressadmin-podpress.php:305
4307
  #, php-format
4308
- #@ powerpress
4309
  msgid "Imported %d PodPress episode(s)."
4310
  msgstr "Importerede %d PodPress-episode(r)."
4311
 
4312
- #: powerpressadmin-podpress.php:346
4313
  #, php-format
4314
- #@ powerpress
4315
  msgid "We found blog posts that have %d media files. You will need to create %d more Custom Feed%s in order to continue."
4316
  msgstr "Vi fandt blogindlæg, som har %d mediefiler. Du er nødt til at oprette yderligere %d brugerfeed%s for at kunne fortsætte."
4317
 
4318
- #: powerpressadmin-podpress.php:454
4319
- #: powerpressadmin-tools.php:50
4320
- #@ powerpress
4321
  msgid "Import PodPress Episodes"
4322
  msgstr "Importér PodPress-episoder"
4323
 
4324
- #: powerpressadmin-podpress.php:465
4325
- #@ powerpress
4326
  msgid "No PodPress episodes found to import."
4327
  msgstr "Der blev ikke fundet nogen PodPress-episoder, som kunne importeres."
4328
 
4329
- #: powerpressadmin-podpress.php:705
4330
- #@ powerpress
4331
  msgid "Select Only"
4332
  msgstr "Vælg kun"
4333
 
4334
- #: powerpressadmin-podpress.php:732
4335
  #, php-format
4336
- #@ powerpress
4337
  msgid "There are %d PodPress media files that can be imported."
4338
  msgstr "Der er %d PodPress-mediefiler, som kan importeres."
4339
 
4340
- #: powerpressadmin-podpress.php:752
4341
- #@ powerpress
4342
  msgid "There are no PodPress episodes found to import."
4343
  msgstr "Der er ingen PodPress-episoder, der kan importeres."
4344
 
4345
- #: powerpressadmin-podpress.php:787
4346
- #: powerpressadmin-podpress.php:814
4347
  #, php-format
4348
- #@ powerpress
4349
  msgid "We found blog posts that have %d media files."
4350
  msgstr "Vi fandt blogindlæg, som har %d mediefiler."
4351
 
4352
- #: powerpressadmin-podpress.php:790
4353
  #, php-format
4354
- #@ powerpress
4355
  msgid "You will need to create %d Podcast Channels to continue."
4356
  msgstr "Du skal oprette %d postcastkanaler for at fortsætte."
4357
 
4358
- #: powerpressadmin-podpress.php:797
4359
- #@ powerpress
4360
  msgid "Blubrry PowerPress does not allow you to include multiple media files for one feed item (blog post)."
4361
  msgstr "Blubrry PowerPress tillader dig ikke at inkludere flere mediefiler for et enkelt feed (blogindlæg)."
4362
 
4363
- #: powerpressadmin-podpress.php:798
4364
- #@ powerpress
4365
  msgid "This is because each podcatcher handles multiple enclosures in feeds differently. iTunes will download the first enclosure that it sees in the feed ignoring the rest."
4366
  msgstr "Det skyldes, at de forskellige podcast-læsere håndtere flere <span title=\"enclosures in feeds\">indsatte mediefiler i feeds</span> forskelligt."
4367
 
4368
- #: powerpressadmin-podpress.php:799
4369
- #@ powerpress
4370
  msgid "Other podcatchers and podcasting directories either pick up the first enclosure or the last in each post item."
4371
  msgstr "Andre programmer og kataloger, som henter eller viser podcasts vælger enten den første <span title=\"enclosure\">indsatte mediefiler</span> eller den sidste i hvert blogindlæg."
4372
 
4373
- #: powerpressadmin-podpress.php:800
4374
  #, php-format
4375
- #@ powerpress
4376
  msgid "This inconsistency combined with the fact that Dave Winer does not recommend multiple enclosures (%s) and FeedValidator.org (%s) recommendation against it is why Blubrry PowerPress does not support them."
4377
  msgstr "Denne inkonsistens, kombineret med den kendsgerning, at Dave Winer ikke anbefaler flere <span title=\"enclosures\">indsatte mediefiler</span> (%s), og FeedValidator.org (%s) fraråder dem, gør, at Blubrry PowerPress ikke understøtter dem."
4378
 
4379
- #: powerpressadmin-podpress.php:801
4380
- #: powerpressadmin-podpress.php:802
4381
- #@ powerpress
4382
  msgid "Link"
4383
  msgstr "Link"
4384
 
4385
- #: powerpressadmin-podpress.php:806
4386
  #, php-format
4387
- #@ powerpress
4388
  msgid "As a alternative, PowerPress allows you to create additional %s to associate additional media files in a blog post to specific feed channels."
4389
  msgstr "Alternativt lader PowerPress dig oprette flere %s for at knytte yderligere mediefiler i et blogindlæg til separate feedkanaler."
4390
 
4391
- #: powerpressadmin-podpress.php:816
4392
  #, php-format
4393
- #@ powerpress
4394
  msgid "You will need to create %d additional Podcast Channels in order to continue."
4395
  msgstr "Du skal oprette %d ekstra postcastkanaler for at fortsætte."
4396
 
4397
- #: powerpressadmin-podpress.php:831
4398
- #@ powerpress
4399
  msgid "(leave blank for all media)"
4400
  msgstr "udfyldes feltet ikke, vises alle medier"
4401
 
4402
- #: powerpressadmin-podpress.php:832
4403
- #@ powerpress
4404
  msgid "specify the file extensions to include separated by commas (e.g. mp3, m4v)."
4405
  msgstr "angiv filtyperne, der skal medtages, adskilt af kommaer (fx MP3, M4V)."
4406
 
4407
- #: powerpressadmin-tags.php:19
4408
- #: powerpressadmin.php:978
4409
- #@ powerpress
4410
  msgid "MP3 Tags"
4411
  msgstr "MP3-tags"
4412
 
4413
- #: powerpressadmin-tags.php:21
4414
- #@ powerpress
4415
  msgid "Blubrry Hosting users can configure how to have the service write their MP3 ID3 Tags before publishing episodes."
4416
  msgstr "Blubrry Hosting-brugere kan konfigurere, hvordan de have tjenesten til at skrive deres MP3-ID3-tags, inden episoderne udgives."
4417
 
4418
- #: powerpressadmin-tags.php:25
4419
- #@ powerpress
4420
  msgid "ID3 tags contain useful information (title, artist, album, year, etc...) about your podcast as well as an image for display during playback in most media players."
4421
  msgstr "ID3-tags indeholder nyttig information (title, kunstner, album, år, osv.) om podcastet samt et billede, der vises under afspilning i de fleste medieafspillere."
4422
 
4423
- #: powerpressadmin-tags.php:27
4424
  #, php-format
4425
- #@ powerpress
4426
  msgid "Please visit the ID3 Tags (%s) section on PodcastFAQ.com to learn more about MP3 ID3 tags."
4427
  msgstr "Læs mere om ID3-tags (%s) i sektionen herom på PodcastFAQ.com for at lære mere om MP3-ID3-tags."
4428
 
4429
- #: powerpressadmin-tags.php:28
4430
- #@ powerpress
4431
  msgid "link"
4432
  msgstr "link"
4433
 
4434
- #: powerpressadmin-tags.php:38
4435
- #: powerpressadmin-tags.php:55
4436
- #@ powerpress
4437
  msgid "Write Tags"
4438
  msgstr "Skrivning af tags"
4439
 
4440
- #: powerpressadmin-tags.php:41
4441
- #@ powerpress
4442
  msgid "You must configure your Blubrry Services Account in the Blubrry PowerPress > Basic Settings page in order to utilize this feature."
4443
  msgstr "Du skal konfigurere din Blubrry Services-konto i Blubrry PowerPress&#39; Grundindstillinger for at kunne bruge denne funktion."
4444
 
4445
- #: powerpressadmin-tags.php:42
4446
- #: powerpressadmin-tags.php:59
4447
- #@ powerpress
4448
  msgid "Use Blubrry Hosting services to write MP3 ID3 tags to your media."
4449
  msgstr "Brug Blubrry Hosting-tjenesterne til at skrive MP3-ID3-tags ind i dine mediefiler."
4450
 
4451
- #: powerpressadmin-tags.php:69
4452
- #@ powerpress
4453
  msgid "Title Tag"
4454
  msgstr "Titel-tag"
4455
 
4456
- #: powerpressadmin-tags.php:69
4457
- #@ powerpress
4458
  msgid "Use blog post title"
4459
  msgstr "Brug titel på blogindlæg"
4460
 
4461
- #: powerpressadmin-tags.php:70
4462
- #@ powerpress
4463
  msgid "Artist Tag"
4464
  msgstr "Kunstner-tag"
4465
 
4466
- #: powerpressadmin-tags.php:70
4467
- #: powerpressadmin-tags.php:76
4468
- #@ powerpress
4469
  msgid "Use Feed Talent Name"
4470
  msgstr "Brug feedets talentnavn"
4471
 
4472
- #: powerpressadmin-tags.php:71
4473
- #@ powerpress
4474
  msgid "Album Tag"
4475
  msgstr "Album-tag"
4476
 
4477
- #: powerpressadmin-tags.php:71
4478
- #@ powerpress
4479
  msgid "Use blog title"
4480
  msgstr "Brug blogtitel"
4481
 
4482
- #: powerpressadmin-tags.php:72
4483
- #@ powerpress
4484
  msgid "Genre Tag"
4485
  msgstr "Genre-tag"
4486
 
4487
- #: powerpressadmin-tags.php:73
4488
- #@ powerpress
 
 
 
4489
  msgid "Year Tag"
4490
  msgstr "År-tag"
4491
 
4492
- #: powerpressadmin-tags.php:73
4493
- #@ powerpress
4494
  msgid "Use current year"
4495
  msgstr "Brug aktuelle år"
4496
 
4497
- #: powerpressadmin-tags.php:75
4498
- #@ powerpress
4499
  msgid "Track Tag"
4500
  msgstr "Nummer-tag"
4501
 
4502
- #: powerpressadmin-tags.php:75
4503
- #@ powerpress
4504
  msgid "Do not specify track number"
4505
  msgstr "Angiv ikke sporets nummer"
4506
 
4507
- #: powerpressadmin-tags.php:76
4508
- #@ powerpress
4509
  msgid "Composer Tag"
4510
  msgstr "Komponist-tag"
4511
 
4512
- #: powerpressadmin-tags.php:77
4513
- #@ powerpress
4514
  msgid "Copyright Tag"
4515
  msgstr "Copyright-tag"
4516
 
4517
- #: powerpressadmin-tags.php:77
4518
- #@ powerpress
4519
  msgid "Use &copy; Talent Name"
4520
  msgstr "Brug &copy; Talentnavn"
4521
 
4522
- #: powerpressadmin-tags.php:78
4523
- #@ powerpress
4524
  msgid "URL Tag"
4525
  msgstr "URL-tag"
4526
 
4527
- #: powerpressadmin-tags.php:78
4528
- #@ powerpress
4529
  msgid "Use main blog URL"
4530
  msgstr "Brug bloggens hoved-URL"
4531
 
4532
- #: powerpressadmin-tags.php:79
4533
- #@ powerpress
4534
  msgid "Coverart Tag"
4535
  msgstr "Coverbillede-tag"
4536
 
4537
- #: powerpressadmin-tags.php:140
4538
- #@ powerpress
4539
  msgid "Do not add a coverart image."
4540
  msgstr "Tilføj ikke et coverbillede."
4541
 
4542
- #: powerpressadmin-tags.php:146
4543
- #@ powerpress
4544
  msgid "Place the URL to the Coverart image above. e.g. http://mysite.com/images/coverart.jpg"
4545
  msgstr "Indtast URL&#39;en til coverbilledet ovenfor. Fx http://mitdomaene.dk/billeder/cover.jpg"
4546
 
4547
- #: powerpressadmin-tags.php:147
4548
- #@ powerpress
4549
  msgid "Coverart images may be saved as either .gif, .jpg or .png images of any size, though 300 x 300 or 600 x 600 in either png or jpg format is recommended."
4550
  msgstr "Coverbilleder kan gemmes som enten GIF-, JPG- eller PNG-billeder i enhver størrelse, men det er bedst med 300 x 300 eller 600 x 600 i enten PNG- eller JPG-format."
4551
 
4552
- #: powerpressadmin-tags.php:151
4553
- #@ powerpress
4554
  msgid "Click here to use your current iTunes image."
4555
  msgstr "Klik her for at bruge dit aktuelle iTunes-billede."
4556
 
4557
- #: powerpressadmin-tags.php:171
4558
- #@ powerpress
4559
  msgid "(value entered increments every episode)"
4560
  msgstr "(den værdi, du indtaster, forøges for hver episode)"
4561
 
4562
- #: powerpressadmin-tools.php:10
4563
- #@ powerpress
4564
  msgid "Useful utilities and tools."
4565
  msgstr "Nyttige utilities og værktøjer."
4566
 
4567
- #: powerpressadmin-tools.php:15
4568
- #@ powerpress
4569
  msgid "Podcasting Resources"
4570
  msgstr "Podcastingressourcer"
4571
 
4572
- #: powerpressadmin-tools.php:18
4573
- #@ powerpress
4574
  msgid "everything you need to know about podcasting."
4575
  msgstr "alt, hvad du har brug for at vide om podcasting."
4576
 
4577
- #: powerpressadmin-tools.php:20
4578
- #@ powerpress
4579
  msgid "PowerPress Documentation"
4580
  msgstr "PowerPress-dokumentation"
4581
 
4582
- #: powerpressadmin-tools.php:21
4583
- #@ powerpress
4584
  msgid "learn more about PowerPress."
4585
  msgstr "få mere at vide om PowerPress."
4586
 
4587
- #: powerpressadmin-tools.php:23
4588
- #: powerpressadmin.php:1885
4589
- #@ powerpress
4590
  msgid "Blubrry Forum"
4591
  msgstr "Blubrry-forum"
4592
 
4593
- #: powerpressadmin-tools.php:24
4594
- #@ powerpress
4595
  msgid "interact with other podcasters."
4596
  msgstr "få kontakt til andre, der podcaster."
4597
 
4598
- #: powerpressadmin-tools.php:29
4599
- #@ powerpress
4600
  msgid "Import Settings"
4601
  msgstr "Importér indstillinger"
4602
 
4603
- #: powerpressadmin-tools.php:35
4604
- #@ powerpress
 
 
 
 
 
 
 
 
 
4605
  msgid "Import PodPress Settings"
4606
  msgstr "Importér PodPress-indstillinger"
4607
 
4608
- #: powerpressadmin-tools.php:36
4609
- #@ powerpress
4610
  msgid "Import settings from PodPress into PowerPress."
4611
  msgstr "Importér indstillinger fra PodPress til PowerPress."
4612
 
4613
- #: powerpressadmin-tools.php:40
4614
- #@ powerpress
4615
  msgid "Import Podcasting plugin settings, are you sure?"
4616
  msgstr "Importér indstillinger for Podcasting-plugins, er du sikker?"
4617
 
4618
- #: powerpressadmin-tools.php:40
4619
- #@ powerpress
4620
  msgid "Existing PowerPress settings will be overwritten."
4621
  msgstr "Eksisterende PowerPress-indstillinger vil blive overskrevet."
4622
 
4623
- #: powerpressadmin-tools.php:40
4624
- #@ powerpress
4625
  msgid "Import plugin \"Podcasting\" Settings"
4626
  msgstr "Importér indstillinger for pluginnet \"Podcasting\""
4627
 
4628
- #: powerpressadmin-tools.php:41
4629
- #@ powerpress
4630
  msgid "Import settings from the plugin \"Podcasting\" into PowerPress."
4631
  msgstr "Importér indstillinger fra pluginnet \"Podcasting\" til PowerPress."
4632
 
4633
- #: powerpressadmin-tools.php:42
4634
- #@ powerpress
4635
  msgid "Note: Episodes created using the plugin \"Podcasting\" do not require importing."
4636
  msgstr "Bemærk: Episoder oprettet med pluginnet \"Podcasting\" kræver ikke import."
4637
 
4638
- #: powerpressadmin-tools.php:51
4639
- #@ powerpress
4640
  msgid "Import PodPress created episodes to PowerPress."
4641
  msgstr "Importér episoder oprettet i PodPress til PowerPress."
4642
 
4643
- #: powerpressadmin-tools.php:53
4644
- #@ powerpress
4645
  msgid "Import from other Blogging Platform"
4646
  msgstr "Importér fra andet <span title=blogging platform\">blogsystem</span>"
4647
 
4648
- #: powerpressadmin-tools.php:53
4649
- #@ powerpress
4650
  msgid "(media linked in blog posts)"
4651
  msgstr "(mediefiler, som der linkes til i blogindlæg)"
4652
 
4653
- #: powerpressadmin-tools.php:54
4654
- #@ powerpress
4655
  msgid "Import from podcast episodes from blogging platforms such as Movable Type/Blogger/Joomla/TypePad (and most other blogging systems) to PowerPress."
4656
  msgstr "Importér podcastepisoder fra blogsystemer som Movable Type/Blogger/Joomla/TypePad (og de fleste andre blogsystemer) til PowerPress."
4657
 
4658
- #: powerpressadmin-tools.php:61
4659
- #@ powerpress
4660
  msgid "Add Update Services"
4661
  msgstr "Tilføj updatetjenester"
4662
 
4663
- #: powerpressadmin-tools.php:64
4664
- #@ powerpress
4665
  msgid "Add Update Services / Ping Sites"
4666
  msgstr "Tilføj updatetjenester/pingsites"
4667
 
4668
- #: powerpressadmin-tools.php:64
4669
- #@ powerpress
4670
  msgid "(notify podcast directories when you publish new episodes)"
4671
  msgstr "(giv besked til <span title=\"podcast directories\">podcastkataloger</span>)"
4672
 
4673
- #: powerpressadmin-tools.php:65
4674
- #@ powerpress
4675
  msgid "Add Update Services / Ping Sites geared towards podcasting."
4676
  msgstr "Tilføj updatetjenester/pingsites specialiseret i podcasting."
4677
 
4678
- #: powerpressadmin-tools.php:72
4679
- #@ powerpress
4680
  msgid "Find and Replace Media"
4681
  msgstr "Find og erstat mediefiler"
4682
 
4683
- #: powerpressadmin-tools.php:75
4684
- #@ powerpress
4685
  msgid "Find and Replace for Episode URLs"
4686
  msgstr "Find og erstat episode-URL&#39;er"
4687
 
4688
- #: powerpressadmin-tools.php:85
4689
- #@ powerpress
4690
  msgid "User Capabilities"
4691
  msgstr "Brugerrettigheder"
4692
 
4693
- #: powerpressadmin-tools.php:91
4694
- #@ powerpress
4695
  msgid "Remove PowerPress Podcasting Capabilities for User Role Management"
4696
  msgstr "Fjern PowerPress-podcasting-rettigheder fra håndtering af brugerroller"
4697
 
4698
- #: powerpressadmin-tools.php:93
4699
- #@ powerpress
4700
  msgid ""
4701
  "Podcasting capability allows administrators, editors and authors access to create and configure podcast episodes. \n"
4702
  "\tOnly administrators will be able to view media statistics from the WordPress Dashboard. Contributors, subscribers and other\n"
@@ -4707,13 +4484,11 @@ msgstr ""
4707
  "\tbrugere har ikke adgang til at oprette podcastepisoder eller se statistik i kontrolpanelet. Da denne funktion\n"
4708
  "\ter temmelig kompleks, understøttes den ikke af Blubrry.com."
4709
 
4710
- #: powerpressadmin-tools.php:105
4711
- #@ powerpress
4712
  msgid "Add PowerPress Podcasting Capabilities for User Role Management"
4713
  msgstr "Tilføj PowerPress-podcasting-rettigheder til håndtering af brugerroller"
4714
 
4715
- #: powerpressadmin-tools.php:107
4716
- #@ powerpress
4717
  msgid ""
4718
  "Adding podcasting capability will allow administrators, editors and authors access to create and configure podcast episodes. \n"
4719
  "\tOnly administrators will be able to view media statistics from the WordPress Dashboard. Contributors, subscribers and other\n"
@@ -4725,31 +4500,26 @@ msgstr ""
4725
  "\tbrugere har ikke adgang til at oprette podcastepisoder eller se statistik i kontrolpanelet. Da denne funktion\n"
4726
  "\ter temmelig kompleks, understøttes den ikke af Blubrry.com."
4727
 
4728
- #: powerpressadmin-tools.php:118
4729
- #@ powerpress
4730
  msgid "Remove Password Protection Capabilities for Control of Which Users can Access Your Podcasts"
4731
  msgstr "Fjern <span title=\"password protection capabilities\">kodeordsbeskyttelsesrettigheder</span>, der giver mulighed for at kontrollere, hvilke brugere der kan få adgang til dine podcasts"
4732
 
4733
- #: powerpressadmin-tools.php:118
4734
- #: powerpressadmin-tools.php:136
4735
- #@ powerpress
4736
  msgid "Also kown as Premium Content"
4737
  msgstr "Også kendt som <span title=\"premium content\">betalingsindhold</span>"
4738
 
4739
- #: powerpressadmin-tools.php:121
4740
  #, php-format
4741
- #@ powerpress
4742
  msgid "To use this feature, go to %s and create a new custom podcast channel. In the Edit Podcast Channel page, click the last tab labeled 'Other Settings'. Place a check in the box labled 'Protect Content' and then click 'Save Changes'."
4743
  msgstr "Hvis du vil bruge denne funktion, skal du gå til %s og oprette en ny brugerdefineret podcastkanal. På siden Redigér Podcastkanal, skal du klikke på den sidste fane med etiketten \"Andre indstillinger\". Markér i afkrydsningsfeltet med etiketten 'Beskyt indhold' og klik så på 'Gem ændringer'."
4744
 
4745
- #: powerpressadmin-tools.php:122
4746
- #: powerpressadmin.php:970
4747
- #@ powerpress
4748
  msgid "Podcast Channels"
4749
  msgstr "Podcastkanaler"
4750
 
4751
- #: powerpressadmin-tools.php:126
4752
- #@ powerpress
4753
  msgid ""
4754
  "Password protection capabilities for custom podcast channel feeds lets you control who can listen and view your \n"
4755
  "\t\tpodcast. This feature allows you to password-protect custom podcast channels by adding a new role called \"Premium \n"
@@ -4761,13 +4531,11 @@ msgstr ""
4761
  "\t\tKun brugere med denne rolle har adgang til dine kodeordsbeskyttede podcastkanaler.\n"
4762
  "\t\tFordi denne funktion er temmelig kompleks, understøttes den ikke af Blubrry.com."
4763
 
4764
- #: powerpressadmin-tools.php:136
4765
- #@ powerpress
4766
  msgid "Add Password Protection Capabilities for Control of Which Users can Access Your Podcasts"
4767
  msgstr "Tilføj <span title=\"password protection capabilities\">kodeordsbeskyttelsesrettigheder</span>, der giver mulighed for at kontrollere, hvilke brugere der kan få adgang til dine podcasts"
4768
 
4769
- #: powerpressadmin-tools.php:138
4770
- #@ powerpress
4771
  msgid ""
4772
  "Adding password protection capabilities for custom podcast channel feeds lets you control who can listen and view your \n"
4773
  "\t\tpodcast. This feature allows you to password-protect custom podcast channels by adding a new role called \"Premium \n"
@@ -4779,14 +4547,12 @@ msgstr ""
4779
  "\t\tKun brugere med denne rolle har adgang til dine kodeordsbeskyttede podcastkanaler.\n"
4780
  "\t\tFordi denne funktion er temmelig kompleks, understøttes den ikke af Blubrry.com."
4781
 
4782
- #: powerpressadmin-tools.php:147
4783
- #@ powerpress
4784
  msgid "What are Roles and Capabilities?"
4785
  msgstr "Hvad er <span title=\"roles\">roller</span> og <span title=\"capabilities\">rettigheder</span>"
4786
 
4787
- #: powerpressadmin-tools.php:150
4788
  #, php-format
4789
- #@ powerpress
4790
  msgid ""
4791
  "The WordPress %s feature gives the blog owner the ability to control what users can and \n"
4792
  "\t\t\tcannot do in the blog. You will most likely need a roles and capabilities plugin such as %s, %s, or %s\n"
@@ -4797,1484 +4563,767 @@ msgstr ""
4797
  "\t\t\troller og rettigheder, så som %s, %s eller %s, for at gøre brug af disse funktioner.\n"
4798
  "\t\t\tFordi denne funktion er ret kompleks, understøttes den ikke af Blubrry.com."
4799
 
4800
- #: powerpressadmin-tools.php:153
4801
- #@ powerpress
4802
  msgid "Roles and Capabilities"
4803
  msgstr "Roller og <span title=\"capabilities\">rettigheder</span>"
4804
 
4805
- #: powerpressadmin-tools.php:154
4806
- #@ powerpress
4807
  msgid "Role Manager"
4808
  msgstr "Role Manager"
4809
 
4810
- #: powerpressadmin-tools.php:155
4811
- #@ powerpress
4812
  msgid "Capability Manager"
4813
  msgstr "Capability Manager"
4814
 
4815
- #: powerpressadmin-tools.php:156
4816
- #@ powerpress
4817
  msgid "Role Scoper"
4818
  msgstr "Role Scoper"
4819
 
4820
- #: powerpressadmin-tools.php:166
4821
- #@ powerpress
4822
  msgid "Update Plugins Cache"
4823
  msgstr "Opdatér plugins-cachen"
4824
 
4825
- #: powerpressadmin-tools.php:168
4826
- #@ powerpress
4827
  msgid "Clear Plugins Update Cache"
4828
  msgstr "Ryd cache med pluginopdateringsoplysninger"
4829
 
4830
- #: powerpressadmin-tools.php:171
4831
  #, php-format
4832
- #@ powerpress
4833
  msgid "The list of plugins on the plugins page will cache the plugin version numbers for up to 24 hours. Click the link above to clear the cache to get the latest versions of plugins listed on your %s page."
4834
  msgstr "Listen med plugins på Plugins-siden cacher pluginversionsnumrene i op til 24 timer. Klik på linket ovenfor for at rydde cachen og hente de seneste versioner af de plugins, der er med i listen på din %s-side."
4835
 
4836
- #: powerpressadmin-tools.php:172
4837
- #@ powerpress
4838
  msgid "plugins"
4839
  msgstr "plugins"
4840
 
4841
- #: powerpressadmin-tools.php:179
4842
- #@ powerpress
4843
  msgid "Translations"
4844
  msgstr "Oversættelser"
4845
 
4846
- #: powerpressadmin-tools.php:189
4847
- #@ powerpress
 
 
 
4848
  msgid "Diagnostics"
4849
  msgstr "Fejlfinding"
4850
 
4851
- #: powerpressadmin-tools.php:191
4852
- #@ powerpress
4853
  msgid "Diagnose Your PowerPress Installation"
4854
  msgstr "Fejlfind din PowerPress-installation"
4855
 
4856
- #: powerpressadmin.php:75
4857
- #@ powerpress
4858
  msgid "Another podcasting plugin has been detected, PowerPress is currently disabled."
4859
  msgstr "Der findes et andet podcastingplugin, så PowerPress er deaktiveret for øjeblikket."
4860
 
4861
- #: powerpressadmin.php:130
4862
- #@ powerpress
 
 
 
 
 
 
 
 
4863
  msgid "Invalid iTunes image"
4864
  msgstr "Ugyldigt iTunes-billede"
4865
 
4866
- #: powerpressadmin.php:156
4867
- #@ powerpress
4868
  msgid "Invalid RSS image"
4869
  msgstr "Ugyldigt RSS-billede"
4870
 
4871
- #: powerpressadmin.php:182
4872
- #@ powerpress
4873
  msgid "Invalid Coverat image"
4874
  msgstr "Ugyldigt coverbillede"
4875
 
4876
- #: powerpressadmin.php:359
4877
- #@ powerpress
 
 
 
4878
  msgid "Blubrry Hosting Error (updating coverart)"
4879
  msgstr "Blubrry Hosting-fejl (under opdatering af coverbillede)"
4880
 
4881
- #: powerpressadmin.php:363
4882
- #@ powerpress
4883
  msgid "An error occurred updating the coverart with your Blubrry Services Account."
4884
  msgstr "Det skete en fejl, da coverbilledet skulle opdateres med din Blubrry Services-konto."
4885
 
4886
- #: powerpressadmin.php:369
4887
- #@ powerpress
4888
  msgid "Coverart Image was not uploaded to your Blubrry Services Account. It will NOT be added to your mp3s."
4889
  msgstr "Coverbilledet blev ikke uploadet til din Blubrry Services-konto. Det vil IKKE blive tilføjet til dine MP3-filer."
4890
 
4891
- #: powerpressadmin.php:424
4892
- #@ powerpress
4893
  msgid "Blubrry PowerPress settings saved successfully."
4894
  msgstr "Blubrry PowerPress-indstillinger blev gemt med succes."
4895
 
4896
- #: powerpressadmin.php:427
4897
- #@ powerpress
4898
  msgid "Blubrry PowerPress Custom Feed settings saved."
4899
  msgstr "Indstillingerne for Blubrry PowerPress&#39; brugerdefinerede feeds blev gemt."
4900
 
4901
- #: powerpressadmin.php:430
4902
- #@ powerpress
4903
  msgid "Blubrry PowerPress Category Feed settings saved."
4904
  msgstr "Indstillingerne for Blubrry PowerPress&#39; kategorifeeds blev gemt."
4905
 
4906
- #: powerpressadmin.php:435
4907
- #@ powerpress
4908
  msgid "ATTENTION: You must configure your Blubrry Services in the Blubrry PowerPress &gt; Basic Settings page in order to utilize this feature."
4909
  msgstr "BEMÆRK: Du skal konfigurere dine Blubrry Services i Blubrry PowerPress under Grundindstillinger for at kunne bruge denne funktion."
4910
 
4911
- #: powerpressadmin.php:437
4912
- #@ powerpress
4913
  msgid "Blubrry PowerPress MP3 Tag settings saved."
4914
  msgstr "Blubrry PowerPress&#39; MP3-tags-indstillinger blev gemt."
4915
 
4916
- #: powerpressadmin.php:443
4917
- #@ powerpress
4918
  msgid "Blubrry PowerPress settings saved."
4919
  msgstr "Blubrry PowerPress-indstillinger gemt."
4920
 
4921
- #: powerpressadmin.php:459
4922
- #@ powerpress
4923
  msgid "iTunes Ping Successful. Podcast Feed URL"
4924
  msgstr "iTunes-ping lykkedes. Podcast-feed-URL"
4925
 
4926
- #: powerpressadmin.php:488
4927
  #, php-format
4928
- #@ powerpress
4929
  msgid "Feed slug \"%s\" is not valid."
4930
  msgstr "Feed-<span title=\"feed slug\">korttitel</span> \"%s\" er ikke gyldig."
4931
 
4932
- #: powerpressadmin.php:492
4933
  #, php-format
4934
- #@ powerpress
4935
  msgid "Feed slug \"%s\" is not available."
4936
  msgstr "<span title=\"feed slug\">Feed-URL&#39;en</span> \"%s\" er ikke tilgængelig."
4937
 
4938
- #: powerpressadmin.php:502
4939
  #, php-format
4940
- #@ powerpress
4941
  msgid "Podcast Feed \"%s\" added, please configure your new feed now."
4942
  msgstr "Podcastfeedet \"%s\" blev tilføjet. Konfigurér venligst dit nye feed nu."
4943
 
4944
- #: powerpressadmin.php:526
4945
- #@ powerpress
4946
  msgid "You must select a category to continue."
4947
  msgstr "Du skal vælge en kategori for at kunne fortsætte."
4948
 
4949
- #: powerpressadmin.php:530
4950
- #: powerpressadmin.php:624
4951
- #@ powerpress
4952
  msgid "Error obtaining category information."
4953
  msgstr "Fejl i forsøget på at hente kategoriinformation."
4954
 
4955
- #: powerpressadmin.php:543
4956
- #: powerpressadmin.php:637
4957
- #@ powerpress
4958
  msgid "Please configure your category podcast feed now."
4959
  msgstr "Konfigurér venligst dit kategoripodcastfeed nu."
4960
 
4961
- #: powerpressadmin.php:652
4962
- #@ powerpress
4963
  msgid "Cannot delete default podcast feed."
4964
  msgstr "Kan ikke slette standardpodcastfeed."
4965
 
4966
- #: powerpressadmin.php:656
4967
  #, php-format
4968
- #@ powerpress
4969
  msgid "Cannot delete feed. Feed contains %d episode(s)."
4970
  msgstr "Kan ikke slette feed. Feedet indeholder %d episode(r)."
4971
 
4972
- #: powerpressadmin.php:678
4973
- #@ powerpress
4974
  msgid "Feed deleted successfully."
4975
  msgstr "Feed slettet med succes."
4976
 
4977
- #: powerpressadmin.php:694
4978
- #@ powerpress
4979
  msgid "Removed podcast settings for category feed successfully."
4980
  msgstr "Fjernede podcastindstillinger for kategorifeeds med succes."
4981
 
4982
- #: powerpressadmin.php:701
4983
- #@ powerpress
4984
  msgid "Podpress settings imported successfully."
4985
  msgstr "Podpress-indstillinger blev importeret med succes."
4986
 
4987
- #: powerpressadmin.php:703
4988
- #@ powerpress
4989
  msgid "No Podpress settings found."
4990
  msgstr "Ingen Podpress-indstillinger fundet."
4991
 
4992
- #: powerpressadmin.php:711
4993
- #@ powerpress
4994
  msgid "Settings imported from the plugin \"Podcasting\" successfully."
4995
  msgstr "Indstillingerne fra pluginnet \"Podcasting\" blev importeret med succes."
4996
 
4997
- #: powerpressadmin.php:713
4998
- #@ powerpress
4999
  msgid "No settings found for the plugin \"Podcasting\"."
5000
  msgstr "Der blev ikke fundet nogen indstillinger for pluginnet \"Podcasting\"."
5001
 
5002
- #: powerpressadmin.php:731
5003
- #@ powerpress
5004
  msgid "PowerPress Roles and Capabilities added to WordPress Blog."
5005
  msgstr "PowerPress-roller og rettigheder blev tilføjet til din WordPress-blog."
5006
 
5007
- #: powerpressadmin.php:748
5008
- #@ powerpress
5009
  msgid "PowerPress Roles and Capabilities removed from WordPress Blog"
5010
  msgstr "PowerPress-roller og rettigheder blev fjernet fra din WordPress-blog"
5011
 
5012
- #: powerpressadmin.php:757
5013
- #@ powerpress
5014
  msgid "Premium Subscriber"
5015
  msgstr "<span title=\"premium subscriber\">Betalingsabonnent</span>"
5016
 
5017
- #: powerpressadmin.php:773
5018
- #@ powerpress
5019
  msgid "Podcast Password Protection Capabilities for Custom Channel Feeds added successfully."
5020
  msgstr "Podcastkodeordsbeskyttelsesrettigheder for brugerdefinerede kanalfeeds blev tilføjet med succes."
5021
 
5022
- #: powerpressadmin.php:791
5023
- #@ powerpress
5024
  msgid "Podcast Password Protection Capabilities for Custom Channel Feeds removed successfully."
5025
  msgstr "Podcastkodeordsbeskyttelsesrettigheder for brugerdefinerede kanalfeeds blev fjernet med succes."
5026
 
5027
- #: powerpressadmin.php:798
5028
  #, php-format
5029
- #@ powerpress
5030
  msgid "Plugins Update Cache cleared successfully. You may now to go the %s page to see the latest plugin versions."
5031
  msgstr "Cachen over pluginopdateringer blev tømt med succes. Du kan nu gå til %s-siden for at se de seneste pluginversioner."
5032
 
5033
- #: powerpressadmin.php:798
5034
- #@ powerpress
5035
  msgid "Manage Plugins"
5036
  msgstr "Plugins"
5037
 
5038
- #: powerpressadmin.php:932
5039
- #: powerpressadmin.php:954
5040
- #@ powerpress
5041
  msgid "Podcast Episode"
5042
  msgstr "Podcastepisode"
5043
 
5044
- #: powerpressadmin.php:938
5045
- #@ powerpress
5046
  msgid "Podcast Episode (default)"
5047
  msgstr "Podcastepisode (standard)"
5048
 
5049
- #: powerpressadmin.php:947
5050
- #@ powerpress
5051
  msgid "Podcast Episode for Custom Channel"
5052
  msgstr "Podcastepisode for brugerdefineret kanal"
5053
 
5054
- #: powerpressadmin.php:962
5055
- #@ powerpress
5056
  msgid "PowerPress"
5057
  msgstr "PowerPress"
5058
 
5059
- #: powerpressadmin.php:963
5060
- #@ powerpress
5061
  msgid "PowerPress Settings"
5062
  msgstr "PowerPress-indstillinger"
5063
 
5064
- #: powerpressadmin.php:963
5065
- #@ powerpress
5066
  msgid "Settings"
5067
  msgstr "Indstillinger"
5068
 
5069
- #: powerpressadmin.php:966
5070
- #@ powerpress
5071
  msgid "PowerPress Audio Player Options"
5072
- msgstr "Indstillinger for PowerPress-lydafspiller"
5073
 
5074
- #: powerpressadmin.php:966
5075
- #@ powerpress
5076
  msgid "Audio Player"
5077
- msgstr "Lydafspiller"
 
 
 
 
 
 
 
 
5078
 
5079
- #: powerpressadmin.php:970
5080
- #@ powerpress
5081
  msgid "PowerPress Custom Podcast Channels"
5082
  msgstr "PowerPress&#39; brugerdefinerede podcastkanaler"
5083
 
5084
- #: powerpressadmin.php:972
5085
- #: powerpressadmin.php:1836
5086
- #: powerpressadmin.php:1843
5087
- #@ powerpress
5088
- #@ default
5089
  msgid "PowerPress Category Podcasting"
5090
  msgstr "PowerPress-kategoripodcasting"
5091
 
5092
- #: powerpressadmin.php:974
5093
- #@ powerpress
5094
  msgid "PodPress Stats"
5095
  msgstr "PodPress-statistik"
5096
 
5097
- #: powerpressadmin.php:978
5098
- #@ powerpress
5099
  msgid "PowerPress MP3 Tags"
5100
  msgstr "PowerPress-MP3-tags"
5101
 
5102
- #: powerpressadmin.php:979
5103
- #@ powerpress
5104
  msgid "Tools"
5105
  msgstr "Værktøj"
5106
 
5107
- #: powerpressadmin.php:1057
5108
- #@ powerpress
 
 
 
 
 
 
 
 
5109
  msgid "Unable to determine content type of media (e.g. audio/mpeg). Verify file extension is correct and try again."
5110
  msgstr "Kunne ikke bestemme mediefilens indholdstype (fx audio/MPEG). Tjek, at filtypen er korrekt og prøv igen."
5111
 
5112
- #: powerpressadmin.php:1111
5113
- #: powerpressadmin.php:1196
5114
- #@ powerpress
5115
  msgid "Unable to obtain size of media."
5116
  msgstr "Kunne ikke hente størrelse på mediefil."
5117
 
5118
- #: powerpressadmin.php:1475
5119
- #@ powerpress
 
 
 
 
 
 
 
 
 
 
 
 
 
5120
  msgid "Media URL contains characters that may cause problems for some clients. For maximum compatibility, only use letters, numbers, dash - and underscore _ characters only."
5121
  msgstr "Medie-URL&#39;en indeholder tegn, som kan give problemer for nogle programmer. Hvis flest muligt skal kunne bruge mediefilerne, skal du nøjes med bogstaver, tal, bindestregen - og understregningstegnet _."
5122
 
5123
- #: powerpressadmin.php:1490
5124
- #@ powerpress
5125
  msgid "PowerPress will not accept media URLs starting with https://.<br />Not all podcatching (podcast downloading) applications support secure http.<br />Please enter a different URL beginning with http://."
5126
  msgstr "PowerPress kan ikke bruge medie-URL&#39;er, der begynder med https://.<br />Ikke alle programmer, der henter podcasts (podcast-downloadere) understøtter sikker http.<br />Indtast venligst en anden URL, der begynder med http://."
5127
 
5128
- #: powerpressadmin.php:1499
5129
- #@ powerpress
5130
  msgid "Media URL should not start with https://.<br />Not all podcatching (podcast downloading) applications support secure http.<br />By using https://, you may limit the size of your audience."
5131
  msgstr "Medie-URL&#39;er bør ikke begynde med https://.<br />Ikke alle programmer, der henter podcasts (podcast-downloadere) understøtter sikker http.<br />Ved at bruge https:// begrænser du størrelsen af dit publikum."
5132
 
5133
- #: powerpressadmin.php:1574
5134
- #@ powerpress
5135
  msgid "Media verified successfully."
5136
  msgstr "Mediefil bekræftet med succes."
5137
 
5138
- #: powerpressadmin.php:1590
5139
- #@ powerpress
5140
  msgid "Unknown error occurred while checking Media URL."
5141
  msgstr "Der skete en ukendt fejl under forsøget på at tjekke medie-URL."
5142
 
5143
- #: powerpressadmin.php:1603
5144
- #@ powerpress
5145
  msgid "Operation timed out."
5146
  msgstr "Processen fik timeout."
5147
 
5148
- #: powerpressadmin.php:1605
5149
- #: powerpressadmin.php:1607
5150
- #: powerpressadmin.php:1609
5151
- #@ powerpress
5152
  msgid "AJAX Error"
5153
  msgstr "AJAX-fejl"
5154
 
5155
- #: powerpressadmin.php:1609
5156
- #@ powerpress
5157
  msgid "Unknown"
5158
  msgstr "Ukendt"
5159
 
5160
- #: powerpressadmin.php:1642
5161
- #@ powerpress
5162
  msgid "Are you sure you want to remove this media file?"
5163
  msgstr "Er du sikker på, at du vil fjerne denne mediefil?"
5164
 
5165
- #: powerpressadmin.php:1754
5166
- #@ powerpress
 
 
 
 
 
 
 
5167
  msgid "Unknown error occurred looking up media information."
5168
  msgstr "Der skete en ukendt fejl i forsøget på at hente information om mediet."
5169
 
5170
- #: powerpressadmin.php:1789
5171
- #@ powerpress
5172
  msgid "Edit Blubrry PowerPress Podcast Settings"
5173
  msgstr "Redigér Blubrry PowerPress&#39; podcastindstillinger"
5174
 
5175
- #: powerpressadmin.php:1789
5176
- #@ powerpress
5177
  msgid "Podcast Settings"
5178
  msgstr "Podcast-indstillinger"
5179
 
5180
- #: powerpressadmin.php:1794
5181
- #@ powerpress
5182
  msgid "Add Blubrry PowerPress Podcasting Settings"
5183
  msgstr "Tilføj Blubrry PowerPress&#39; podcastindstillinger"
5184
 
5185
- #: powerpressadmin.php:1794
5186
- #@ powerpress
5187
  msgid "Add Podcasting"
5188
  msgstr "Tilføj podcasting"
5189
 
5190
- #: powerpressadmin.php:1837
5191
- #@ powerpress
5192
  msgid "Enable Category Podcasting"
5193
  msgstr "Aktivér kategoripodcasting"
5194
 
5195
- #: powerpressadmin.php:1837
5196
- #@ powerpress
5197
  msgid "if you would like to add specific podcasting settings to your blog categories."
5198
  msgstr "Hvis du vil tilføje specifikke podcastindstilling til dine blogkategorier."
5199
 
5200
- #: powerpressadmin.php:1844
5201
- #@ powerpress
5202
  msgid "PowerPress Category Podcasting is enabled. Select 'Add Podcasting' to add podcasting settings. Select <u>Podcast Settings</u> to edit existing podcast settings."
5203
  msgstr "PowerPress&#39; kategoripodcasting er aktiveret. Vælg 'Tilføj podcasting' for at tilføje indstillinger for podcasting. Vælg <u>Podcast-indstillinger</u> for at redigere eksisterende podcast-indstillinger."
5204
 
5205
- #: powerpressadmin.php:1878
5206
- #@ powerpress
5207
  msgid "Save Changes"
5208
  msgstr "Gem ændringer"
5209
 
5210
- #: powerpressadmin.php:1882
5211
- #@ powerpress
5212
  msgid "Blubrry PowerPress"
5213
  msgstr "Blubrry PowerPress"
5214
 
5215
- #: powerpressadmin.php:1883
5216
- #@ powerpress
5217
  msgid "PodcastFAQ.com"
5218
  msgstr "PodcastFAQ.com"
5219
 
5220
- #: powerpressadmin.php:1884
5221
- #@ powerpress
5222
  msgid "Blubrry PowerPress Documentation"
5223
  msgstr "Blubrry PowerPress-dokumentation"
5224
 
5225
- #: powerpressadmin.php:1884
5226
- #@ powerpress
5227
  msgid "Documentation"
5228
  msgstr "Dokumentation"
5229
 
5230
- #: powerpressadmin.php:1885
5231
- #@ powerpress
5232
  msgid "Forum"
5233
  msgstr "Forum"
5234
 
5235
- #: powerpressadmin.php:1886
5236
- #@ powerpress
5237
  msgid "Follow Blubrry on Twitter"
5238
  msgstr "Følg Blubrry på Twitter"
5239
 
5240
- #: powerpressadmin.php:2140
5241
- #@ powerpress
5242
  msgid "iTunes URL required to ping iTunes."
5243
  msgstr "iTunes-URL er nødvendig for at kunne pinge iTunes."
5244
 
5245
- #: powerpressadmin.php:2151
5246
- #@ powerpress
5247
  msgid "Unable to connect to iTunes ping server."
5248
  msgstr "Kunne ikke etablere forbindelse til iTunes&#39; pingserver."
5249
 
5250
- #: powerpressadmin.php:2155
5251
- #@ powerpress
5252
  msgid "No Podcast Found from iTunes ping request."
5253
  msgstr "Ingen podcast fundet fra iTunes-pinganmodning."
5254
 
5255
- #: powerpressadmin.php:2344
5256
- #@ powerpress
5257
  msgid "Blubrry Hosting Error (media info)"
5258
  msgstr "Blubrry Hosting-fejl (mediefilsinfo)"
5259
 
5260
- #: powerpressadmin.php:2349
5261
  #, php-format
5262
- #@ powerpress
5263
  msgid "Blubrry Hosting Error (media info): An error occurred publishing media %s."
5264
  msgstr "Blubrry Hosting-fejl (mediefilsinfo): Der skete en fejl i forsøget på at udgive mediefilen %s."
5265
 
5266
- #: powerpressadmin.php:2351
5267
- #: powerpressadmin.php:2381
5268
- #@ powerpress
5269
  msgid "Display Error"
5270
  msgstr "Visningsfejl"
5271
 
5272
- #: powerpressadmin.php:2374
5273
- #: powerpressadmin.php:2380
5274
- #@ powerpress
5275
  msgid "Blubrry Hosting Error (publish)"
5276
  msgstr "Blubrry Hosting-fejl (udgivelse)"
5277
 
5278
- #: powerpressadmin.php:2380
5279
  #, php-format
5280
- #@ powerpress
5281
  msgid "An error occurred publishing media '%s'."
5282
  msgstr "Der skete en fejl i forsøget på at udgive mediefilen '%s'."
5283
 
5284
- #: powerpressadmin.php:2798
5285
- #@ powerpress
5286
  msgid "Error occurred writing MP3 ID3 Tags."
5287
  msgstr "Der skete en fejl under forsøget på at skrive MP3-ID3-tags."
5288
 
5289
- #: powerpressadmin.php:2815
5290
- #: powerpressadmin.php:2912
5291
- #: powerpressadmin.php:2958
5292
- #@ powerpress
5293
  msgid "Error occurred obtaining media information."
5294
  msgstr "Det skete en fejl i forsøget på at hente medieinformation."
5295
 
5296
- #: powerpressadmin.php:2880
5297
- #: powerpressadmin.php:2936
5298
  #, php-format
5299
- #@ powerpress
5300
  msgid "Warning, the Media URL %s contains %d redirects."
5301
  msgstr "Advarsel, mediefilens URL %s indeholder %d redirects (viderestillinger)."
5302
 
5303
- #: powerpressadmin.php:2881
5304
- #: powerpressadmin.php:2899
5305
- #: powerpressadmin.php:2937
5306
- #: powerpressadmin.php:2950
5307
- #@ powerpress
5308
- #@ default
5309
  msgid "Help"
5310
  msgstr "Hjælp"
5311
 
5312
- #: powerpressadmin.php:2899
5313
- #: powerpressadmin.php:2950
5314
  #, php-format
5315
- #@ powerpress
5316
  msgid "Warning, Media URL %s"
5317
  msgstr "Advarsel, medie-URL %s"
5318
 
5319
- #: powerpressadmin.php:2916
5320
- #: powerpressadmin.php:3009
5321
- #@ powerpress
5322
  msgid "Error occurred obtaining media file size."
5323
  msgstr "Fejl under aflæsning af mediefilens størrelse."
5324
 
5325
- #: powerpressadmin.php:2997
5326
- #@ powerpress
5327
  msgid "Error, HTTP"
5328
  msgstr "Fejl, HTTP"
5329
 
5330
- #: powerpressadmin.php:3005
5331
- #@ powerpress
5332
  msgid "Unable to obtain file size of media file."
5333
  msgstr "Kunne ikke aflæse filstørrelsen på mediefilen."
5334
 
5335
- #: mp3info.class.php:483
5336
- #@ powerpress
5337
- msgid "PowerPress is unable to detect media information."
5338
- msgstr ""
5339
 
5340
- #: mp3info.class.php:502
5341
- #, php-format
5342
- #@ powerpress
5343
- msgid "Plugin '%s' has included a different version of the GetID3 library located in %s"
5344
- msgstr ""
5345
 
5346
- #: mp3info.class.php:504
5347
- #, php-format
5348
- #@ powerpress
5349
- msgid "Another plugin has included a different version of the GetID3 library located in %s"
5350
- msgstr ""
5351
 
5352
- #: mp3info.class.php:506
5353
- #@ powerpress
5354
- msgid "Another plugin has included a different version of the GetID3 library."
5355
- msgstr ""
5356
 
5357
- #: powerpress-player.php:565
5358
- #@ powerpress
5359
- msgid "Player Not Available"
5360
- msgstr ""
5361
 
5362
- #: powerpress.php:65
5363
- #@ powerpress
5364
- msgid "Embed"
5365
- msgstr ""
5366
 
5367
- #: powerpressadmin-basic.php:74
5368
- #@ powerpress
5369
- msgid "Welcome"
5370
- msgstr ""
5371
 
5372
- #: powerpressadmin-basic.php:76
5373
- #@ powerpress
5374
- msgid "Services & Stats"
5375
- msgstr ""
5376
 
5377
- #: powerpressadmin-basic.php:77
5378
- #: powerpressadmin-editfeed.php:199
5379
- #@ powerpress
5380
- msgid "Media Appearance"
5381
- msgstr ""
 
 
5382
 
5383
- #: powerpressadmin-basic.php:80
5384
- #: powerpressadmin-editfeed.php:197
5385
- #@ powerpress
5386
- msgid "T.V."
5387
- msgstr ""
5388
 
5389
- #: powerpressadmin-basic.php:144
5390
- #@ powerpress
5391
- msgid "Select from 6 different web based audio players."
5392
- msgstr ""
 
5393
 
5394
- #: powerpressadmin-basic.php:149
5395
- #@ powerpress
5396
- msgid "Video Player Options"
5397
- msgstr ""
5398
 
5399
- #: powerpressadmin-basic.php:150
5400
- #@ powerpress
5401
- msgid "Select from 2 different web based video players."
5402
- msgstr ""
5403
 
5404
- #: powerpressadmin-basic.php:222
5405
- #@ powerpress
5406
- msgid "Configure your podcast episode entry box with the options that fit your needs."
5407
- msgstr ""
5408
 
5409
- #: powerpressadmin-basic.php:227
5410
- #@ powerpress
5411
- msgid "Specify URL to episode's media file"
5412
- msgstr ""
5413
 
5414
- #: powerpressadmin-basic.php:229
5415
- #@ powerpress
5416
- msgid "Media File Size and Duration"
5417
- msgstr ""
5418
 
5419
- #: powerpressadmin-basic.php:230
5420
- #@ powerpress
5421
- msgid "Specify episode's media file size and duration"
5422
- msgstr ""
5423
 
5424
- #: powerpressadmin-basic.php:254
5425
- #@ powerpress
5426
- msgid "Video Poster Image"
5427
- msgstr ""
5428
 
5429
- #: powerpressadmin-basic.php:255
5430
- #@ powerpress
5431
- msgid "Specify URL to poster artwork specific to each episode"
5432
- msgstr ""
5433
 
5434
- #: powerpressadmin-basic.php:257
5435
- #@ powerpress
5436
- msgid "Player Width and Height"
5437
- msgstr ""
5438
 
5439
- #: powerpressadmin-basic.php:258
5440
- #@ powerpress
5441
- msgid "Customize player width and height on a per episode basis"
5442
- msgstr ""
5443
 
5444
- #: powerpressadmin-basic.php:301
5445
- #@ powerpress
5446
- msgid "Show Advanced Episode Entry Settings"
5447
- msgstr ""
5448
 
5449
- #: powerpressadmin-basic.php:530
5450
- #@ powerpress
5451
- msgid "This option is no longer available."
5452
- msgstr ""
 
 
5453
 
5454
- #: powerpressadmin-basic.php:531
5455
- #: powerpressadmin-editfeed.php:1012
5456
- #@ powerpress
5457
- msgid "Learn more:"
5458
- msgstr ""
5459
 
5460
- #: powerpressadmin-basic.php:531
5461
- #@ powerpress
5462
- msgid "Apple Drops iTunes Podcast Directory Update Listing/Ping (pingPodcast) Function"
5463
- msgstr ""
5464
 
5465
- #: powerpressadmin-basic.php:630
5466
- #@ powerpress
5467
- msgid "Integrate Blubrry Services"
5468
- msgstr ""
5469
 
5470
- #: powerpressadmin-basic.php:630
5471
- #: powerpressadmin-basic.php:718
5472
- #: powerpressadmin-editfeed.php:567
5473
- #: powerpressadmin-editfeed.php:574
5474
- #@ powerpress
5475
- msgid "optional"
5476
- msgstr ""
5477
 
5478
- #: powerpressadmin-basic.php:632
5479
- #@ powerpress
5480
- msgid "Add Blubrry Media Statistics to your WordPress dashboard."
5481
- msgstr ""
5482
 
5483
- #: powerpressadmin-basic.php:635
5484
- #@ powerpress
5485
- msgid "Blubrry Media Hosting users can also quickly upload and publish media directly from their blog."
5486
- msgstr ""
5487
 
5488
- #: powerpressadmin-basic.php:640
5489
- #@ powerpress
5490
- msgid "Have an account on Blubrry.com?"
5491
- msgstr ""
5492
 
5493
- #: powerpressadmin-basic.php:643
5494
- #@ powerpress
5495
- msgid "Click here to configure your Blubrry settings"
5496
- msgstr ""
5497
 
5498
- #: powerpressadmin-basic.php:647
5499
- #@ powerpress
5500
- msgid "Display Blubrry Media Statistics in your dashboard"
5501
- msgstr ""
5502
 
5503
- #: powerpressadmin-basic.php:650
5504
- #@ powerpress
5505
- msgid "Don't have an account at Blubrry.com?"
5506
- msgstr ""
5507
 
5508
- #: powerpressadmin-basic.php:654
5509
- #, php-format
5510
- #@ powerpress
5511
- msgid "%s offers an array of services to media creators including a %s %s. Our %s, which includes U.S. downloads, trending, exporting, is available for $5 month. Need a reliable place to host your media? %s media hosting packages start at $12. %s"
5512
- msgstr ""
5513
 
5514
- #: powerpressadmin-basic.php:657
5515
- #@ powerpress
5516
- msgid "Basic Stats Service"
5517
- msgstr ""
5518
 
5519
- #: powerpressadmin-basic.php:658
5520
- #@ powerpress
5521
- msgid "Premium Media Statistics"
5522
- msgstr ""
5523
 
5524
- #: powerpressadmin-basic.php:660
5525
- #: powerpressadmin.php:3041
5526
- #@ powerpress
5527
- msgid "Learn More"
5528
- msgstr ""
5529
 
5530
- #: powerpressadmin-basic.php:780
5531
- #@ powerpress
5532
- msgid "Need a media statistics provider?"
5533
- msgstr ""
5534
 
5535
- #: powerpressadmin-basic.php:783
5536
- #, php-format
5537
- #@ powerpress
5538
- msgid "Blubrry.com offers %s access to the best statistics!"
5539
- msgstr ""
5540
 
5541
- #: powerpressadmin-basic.php:792
5542
- #@ powerpress
5543
- msgid "Blubrry brings you the most all-inclusive digital media statistics service available. Gain unsurpassed insights into your audience. Find out who is linking to you, listener-base demographics and geographical data with worldwide mapping. Try us! You'll find our custom reports and daily email summaries are info you can trust, track and build your media program on."
5544
- msgstr ""
5545
 
5546
- #: powerpressadmin-basic.php:795
5547
- #, php-format
5548
- #@ powerpress
5549
- msgid "* Get %s Media Statistics by taking a few minutes and adding your podcast to Blubrry.com. What's the catch? Nothing! For many, our free service is all you will need. But if you're looking to further your abilities with media download information, we hope you consider upgrading to our paid Premium Statistics Service."
5550
- msgstr ""
5551
 
5552
- #: powerpressadmin-basic.php:800
5553
- #@ powerpress
5554
- msgid "Sign Up Now!"
5555
- msgstr ""
5556
 
5557
- #: powerpressadmin-basic.php:801
5558
- #@ powerpress
5559
- msgid "* some restrictions apply"
5560
- msgstr ""
5561
 
5562
- #: powerpressadmin-basic.php:801
5563
- #@ powerpress
5564
- msgid "learn more"
5565
- msgstr ""
5566
 
5567
- #: powerpressadmin-basic.php:844
5568
- #@ powerpress
5569
- msgid "Media Appearance Settings"
5570
- msgstr ""
5571
 
5572
- #: powerpressadmin-basic.php:853
5573
- #@ powerpress
5574
- msgid "Enable PowerPress Media Players and Links"
5575
- msgstr ""
5576
 
5577
- #: powerpressadmin-basic.php:856
5578
- #@ powerpress
5579
- msgid "PowerPress will add media players and links to your site."
5580
- msgstr ""
5581
 
5582
- #: powerpressadmin-basic.php:860
5583
- #@ powerpress
5584
- msgid "Disable PowerPress Media Players and Links"
5585
- msgstr ""
5586
 
5587
- #: powerpressadmin-basic.php:863
5588
- #@ powerpress
5589
- msgid "PowerPress will <u>not</u> add any media players or media links to your site. PowerPress will only be used to add podcasting support to your feeds."
5590
- msgstr ""
5591
 
5592
- #: powerpressadmin-basic.php:873
5593
- #@ powerpress
5594
- msgid "Blog Posts and Pages"
5595
- msgstr ""
5596
 
5597
- #: powerpressadmin-basic.php:877
5598
- #@ powerpress
5599
- msgid "Display Media & Links"
5600
- msgstr ""
5601
 
5602
- #: powerpressadmin-basic.php:880
5603
- #@ powerpress
5604
- msgid "Below page content"
5605
- msgstr ""
 
 
5606
 
5607
- #: powerpressadmin-basic.php:883
5608
- #@ powerpress
5609
- msgid "Player and media links will appear <u>below</u> your post and page content."
5610
- msgstr ""
 
 
 
5611
 
5612
- #: powerpressadmin-basic.php:887
5613
- #@ powerpress
5614
- msgid "Above page content"
5615
- msgstr ""
5616
 
5617
- #: powerpressadmin-basic.php:890
5618
- #@ powerpress
5619
- msgid "Player and media links will appear <u>above</u> your post and page content."
5620
- msgstr ""
5621
 
5622
- #: powerpressadmin-basic.php:896
5623
- #@ powerpress
5624
- msgid "Player and media links will <u>NOT</u> appear in your post and page content. Media player and links can be added manually by using the <i>shortcode</i> below."
5625
- msgstr ""
5626
 
5627
- #: powerpressadmin-basic.php:909
5628
- #, php-format
5629
- #@ powerpress
5630
- msgid "The %s shortcode is used to position your media presentation (player and download links) exactly where you want within your post or page content."
5631
- msgstr ""
5632
 
5633
- #: powerpressadmin-basic.php:910
5634
- #@ powerpress
5635
- msgid "Simply insert the following code on a new line in your content."
5636
- msgstr ""
5637
 
5638
- #: powerpressadmin-basic.php:923
5639
- #@ powerpress
5640
- msgid "Media Player"
5641
- msgstr ""
5642
 
5643
- #: powerpressadmin-basic.php:926
5644
- #@ powerpress
5645
- msgid "Display Player"
5646
- msgstr ""
5647
 
5648
- #: powerpressadmin-basic.php:930
5649
- #@ powerpress
5650
- msgid "Detected mobile and tablet devices use an HTML5 player with a fallback link to download the media."
5651
- msgstr ""
5652
 
5653
- #: powerpressadmin-basic.php:943
5654
- #@ powerpress
5655
- msgid "Media Links"
5656
- msgstr ""
5657
 
5658
- #: powerpressadmin-basic.php:945
5659
- #@ powerpress
5660
- msgid "Display Play in new Window Link"
5661
- msgstr ""
5662
 
5663
- #: powerpressadmin-basic.php:947
5664
- #@ powerpress
5665
- msgid "Display Download Link"
5666
- msgstr ""
5667
 
5668
- #: powerpressadmin-basic.php:949
5669
- #@ powerpress
5670
- msgid "Include file size"
5671
- msgstr ""
5672
 
5673
- #: powerpressadmin-basic.php:950
5674
- #@ powerpress
5675
- msgid "Include file size and duration"
5676
- msgstr ""
 
 
5677
 
5678
- #: powerpressadmin-basic.php:952
5679
- #@ powerpress
5680
- msgid "Display Player Embed Link"
5681
- msgstr ""
5682
 
5683
- #: powerpressadmin-basic.php:954
5684
- #@ powerpress
5685
- msgid "Include embed in feeds"
5686
- msgstr ""
5687
 
5688
- #: powerpressadmin-basic.php:956
5689
- #@ powerpress
5690
- msgid "Embed option only works for Flow Player Classic and HTML5 Video player."
5691
- msgstr ""
5692
 
5693
- #: powerpressadmin-basic.php:998
5694
- #@ powerpress
5695
- msgid "Width of new window (leave blank for 420 default)"
5696
- msgstr ""
5697
 
5698
- #: powerpressadmin-basic.php:1015
5699
- #@ powerpress
5700
- msgid "Media Format Settings"
5701
- msgstr ""
5702
 
5703
- #: powerpressadmin-basic.php:1020
5704
- #@ powerpress
5705
- msgid "AAC Audio (.m4a)"
5706
- msgstr ""
5707
 
5708
- #: powerpressadmin-basic.php:1025
5709
- #@ powerpress
5710
- msgid "Use Flow Player Classic / HTML5 Audio player"
5711
- msgstr ""
5712
 
5713
- #: powerpressadmin-basic.php:1027
5714
- #@ powerpress
5715
- msgid "Leave this option unchecked if you want m4a chapter markers, images and information displayed."
5716
- msgstr ""
5717
-
5718
- #: powerpressadmin-basic.php:1028
5719
- #@ powerpress
5720
- msgid "When unchecked, m4a will be played with the quicktime video embed. Video player width/height settings apply."
5721
- msgstr ""
5722
-
5723
- #: powerpressadmin-basic.php:1046
5724
- #@ powerpress
5725
- msgid "Blubrry PowerPress and Community Podcast"
5726
- msgstr ""
5727
-
5728
- #: powerpressadmin-basic.php:1049
5729
- #@ powerpress
5730
- msgid "Remove from dashboard"
5731
- msgstr ""
5732
-
5733
- #: powerpressadmin-basic.php:1054
5734
- #@ powerpress
5735
- msgid "Highlighted Topics"
5736
- msgstr ""
5737
-
5738
- #: powerpressadmin-basic.php:1069
5739
- #@ powerpress
5740
- msgid "T.V. Settings"
5741
- msgstr ""
5742
-
5743
- #: powerpressadmin-basic.php:1073
5744
- #@ powerpress
5745
- msgid "Parental Rating"
5746
- msgstr ""
5747
-
5748
- #: powerpressadmin-basic.php:1075
5749
- #, php-format
5750
- #@ powerpress
5751
- msgid "A parental rating is used to display your content on %s applications available on Internet connected TV's. The TV Parental Rating applies to both audio and video media."
5752
- msgstr ""
5753
-
5754
- #: powerpressadmin-basic.php:1077
5755
- #@ powerpress
5756
- msgid "No rating specified"
5757
- msgstr ""
5758
-
5759
- #: powerpressadmin-basic.php:1078
5760
- #@ powerpress
5761
- msgid "Children of all ages"
5762
- msgstr ""
5763
-
5764
- #: powerpressadmin-basic.php:1079
5765
- #@ powerpress
5766
- msgid "Children 7 years and older"
5767
- msgstr ""
5768
-
5769
- #: powerpressadmin-basic.php:1080
5770
- #@ powerpress
5771
- msgid "Children 7 years and older [fantasy violence]"
5772
- msgstr ""
5773
-
5774
- #: powerpressadmin-basic.php:1081
5775
- #@ powerpress
5776
- msgid "General audience"
5777
- msgstr ""
5778
-
5779
- #: powerpressadmin-basic.php:1082
5780
- #@ powerpress
5781
- msgid "Parental guidance suggested"
5782
- msgstr ""
5783
-
5784
- #: powerpressadmin-basic.php:1083
5785
- #@ powerpress
5786
- msgid "May be unsuitable for children under 14 years of age"
5787
- msgstr ""
5788
-
5789
- #: powerpressadmin-basic.php:1084
5790
- #@ powerpress
5791
- msgid "Mature audience - may be unsuitable for children under 17"
5792
- msgstr ""
5793
-
5794
- #: powerpressadmin-basic.php:1087
5795
- #@ powerpress
5796
- msgid "Whether animated or live-action, the themes and elements in this program are specifically designed for a very young audience, including children from ages 2-6. These programs are not expected to frighten younger children. Examples of programs issued this rating include Sesame Street, Barney & Friends, Dora the Explorer, Go, Diego, Go! and The Backyardigans."
5797
- msgstr ""
5798
-
5799
- #: powerpressadmin-basic.php:1088
5800
- #@ powerpress
5801
- msgid "These shows may or may not be appropriate for some children under the age of 7. This rating may include crude, suggestive humor, mild fantasy violence, or content considered too scary or controversial to be shown to children under seven. Examples include Foster's Home for Imaginary Friends, Johnny Test, and SpongeBob SquarePants."
5802
- msgstr ""
5803
-
5804
- #: powerpressadmin-basic.php:1089
5805
- #@ powerpress
5806
- msgid "When a show has noticeably more fantasy violence, it is assigned the TV-Y7-FV rating. Action-adventure shows such Pokemon series and the Power Rangers series are assigned a TV-Y7-FV rating."
5807
- msgstr ""
5808
-
5809
- #: powerpressadmin-basic.php:1090
5810
- #@ powerpress
5811
- msgid "Although this rating does not signify a program designed specifically for children, most parents may let younger children watch this program unattended. It contains little or no violence, no strong language and little or no sexual dialogue or situation. Networks that air informational, how-to content, or generally inoffensive content."
5812
- msgstr ""
5813
-
5814
- #: powerpressadmin-basic.php:1091
5815
- #@ powerpress
5816
- msgid "This rating signifies that the program may be unsuitable for younger children without the guidance of a parent. Many parents may want to watch it with their younger children. Various game shows and most reality shows are rated TV-PG for their suggestive dialog, suggestive humor, and/or coarse language. Some prime-time sitcoms such as Everybody Loves Raymond, Fresh Prince of Bel-Air, The Simpsons, Futurama, and Seinfeld usually air with a TV-PG rating."
5817
- msgstr ""
5818
-
5819
- #: powerpressadmin-basic.php:1092
5820
- #@ powerpress
5821
- msgid "Parents are strongly urged to exercise greater care in monitoring this program and are cautioned against letting children of any age watch unattended. This rating may be accompanied by any of the following sub-ratings:"
5822
- msgstr ""
5823
-
5824
- #: powerpressadmin-basic.php:1093
5825
- #@ powerpress
5826
- msgid "A TV-MA rating means the program may be unsuitable for those below 17. The program may contain extreme graphic violence, strong profanity, overtly sexual dialogue, very coarse language, nudity and/or strong sexual content. The Sopranos is a popular example."
5827
- msgstr ""
5828
-
5829
- #: powerpressadmin-customfeeds.php:210
5830
- #@ powerpress
5831
- msgid "Example 3: You create two versions of your podcast, a 20 minute summary and a full 2 hour episode. Use the default channel for your 20 minute summary episodes and create a new custom channel for your full length episodes."
5832
- msgstr ""
5833
-
5834
- #: powerpressadmin-dashboard.php:189
5835
- #@ powerpress
5836
- msgid "Blubrry PowerPress & Community Podcast"
5837
- msgstr ""
5838
-
5839
- #: powerpressadmin-diagnostics.php:257
5840
- #@ powerpress
5841
- msgid "episode box file size/duration fields:"
5842
- msgstr ""
5843
-
5844
- #: powerpressadmin-diagnostics.php:257
5845
- #@ powerpress
5846
- msgid "yes"
5847
- msgstr ""
5848
-
5849
- #: powerpressadmin-diagnostics.php:257
5850
- #@ powerpress
5851
- msgid "no"
5852
- msgstr ""
5853
-
5854
- #: powerpressadmin-diagnostics.php:462
5855
- #, php-format
5856
- #@ default
5857
- msgid "WordPress Version %s"
5858
- msgstr ""
5859
-
5860
- #: powerpressadmin-editfeed.php:332
5861
- #@ powerpress
5862
- msgid "Note: We do not recommend submitting your main site feed to podcast directories such as iTunes. iTunes and many other podcast directories work best with feeds that do not have regular blog posts mixed in."
5863
- msgstr ""
5864
-
5865
- #: powerpressadmin-editfeed.php:339
5866
- #@ powerpress
5867
- msgid "Podcast Feeds"
5868
- msgstr ""
5869
-
5870
- #: powerpressadmin-editfeed.php:561
5871
- #@ powerpress
5872
- msgid "Basic Show Information"
5873
- msgstr ""
5874
-
5875
- #: powerpressadmin-editfeed.php:565
5876
- #@ powerpress
5877
- msgid "Location"
5878
- msgstr ""
5879
-
5880
- #: powerpressadmin-editfeed.php:568
5881
- #@ powerpress
5882
- msgid "e.g. Cleveland, Ohio"
5883
- msgstr ""
5884
-
5885
- #: powerpressadmin-editfeed.php:572
5886
- #@ powerpress
5887
- msgid "Episode Frequency"
5888
- msgstr ""
5889
-
5890
- #: powerpressadmin-editfeed.php:575
5891
- #@ powerpress
5892
- msgid "e.g. Weekly"
5893
- msgstr ""
5894
-
5895
- #: powerpressadmin-editfeed.php:787
5896
- #@ powerpress
5897
- msgid "Show Advanced iTunes Settings"
5898
- msgstr ""
5899
-
5900
- #: powerpressadmin-editfeed.php:825
5901
- #@ powerpress
5902
- msgid "Note: With the recent launch of iTunes web site during the summer of 2010, Optimize iTunes Summary's clickable links do not appear online in the same way they do in the iTunes application. For this reason, we no longer recommend using this feature."
5903
- msgstr ""
5904
-
5905
- #: powerpressadmin-editfeed.php:1007
5906
- #@ powerpress
5907
- msgid "The iTunes New Feed URL option works primarily for Apple's iTunes application only, and should only be used if you are unable to implement a HTTP 301 redirect."
5908
- msgstr ""
5909
-
5910
- #: powerpressadmin-editfeed.php:1008
5911
- #@ powerpress
5912
- msgid "A 301 redirect will route <u>all podcast clients including iTunes</u> to your new feed address."
5913
- msgstr ""
5914
-
5915
- #: powerpressadmin-editfeed.php:1012
5916
- #@ powerpress
5917
- msgid "Changing Your Podcast RSS Feed Address (URL)"
5918
- msgstr ""
5919
-
5920
- #: powerpressadmin-find-replace.php:177
5921
- #@ powerpress
5922
- msgid ""
5923
- "WARNING: Verification prevents changes if the URL entered is invalid.\n"
5924
- "\n"
5925
- "Are you sure you do not want to verify the URLs?"
5926
- msgstr ""
5927
-
5928
- #: powerpressadmin-find-replace.php:185
5929
- #@ powerpress
5930
- msgid ""
5931
- "WARNING: You are about to make permanent changes to your database.\n"
5932
- "\n"
5933
- "Are you sure you wish to continue?"
5934
- msgstr ""
5935
-
5936
- #: powerpressadmin-jquery.php:434
5937
- #@ powerpress
5938
- msgid "Click Here For Help"
5939
- msgstr ""
5940
-
5941
- #: powerpressadmin-metabox.php:177
5942
- #@ powerpress
5943
- msgid "Video is HD (720p/1080i/1080p)"
5944
- msgstr ""
5945
-
5946
- #: powerpressadmin-metabox.php:206
5947
- #@ powerpress
5948
- msgid "Alt WebM URL"
5949
- msgstr ""
5950
-
5951
- #: powerpressadmin-metabox.php:211
5952
- #@ powerpress
5953
- msgid "For HTML5 Video fallback, enter an alternative WebM media URL above. (optional)"
5954
- msgstr ""
5955
-
5956
- #: powerpressadmin-metabox.php:269
5957
- #@ powerpress
5958
- msgid "Poster Image"
5959
- msgstr ""
5960
-
5961
- #: powerpressadmin-metabox.php:272
5962
- #@ powerpress
5963
- msgid "Select Poster Image"
5964
- msgstr ""
5965
-
5966
- #: powerpressadmin-metabox.php:275
5967
- #@ powerpress
5968
- msgid "Poster image for video (m4v, mp4, ogv, webm, etc..). e.g. http://example.com/path/to/image.jpg"
5969
- msgstr ""
5970
-
5971
- #: powerpressadmin-metabox.php:286
5972
- #@ powerpress
5973
- msgid "Player Size"
5974
- msgstr ""
5975
-
5976
- #: powerpressadmin-metabox.php:499
5977
- #@ powerpress
5978
- msgid "Select poster image from your computer."
5979
- msgstr ""
5980
-
5981
- #: powerpressadmin-player-page.php:10
5982
- #@ powerpress
5983
- msgid "Flow Player Classic is an open source flash player that supports both audio (mp3 and m4a) and video (mp4, m4v and flv) media files. It includes all the necessary features for playback including a play/pause button, scrollable position bar, ellapsed time, total time, mute button and volume control."
5984
- msgstr ""
5985
-
5986
- #: powerpressadmin-player-page.php:14
5987
- #@ powerpress
5988
- msgid "Flow Player Classic was chosen as the default player in Blubrry PowerPress because if its backwards compatibility with older versions of Flash and support for both audio and video."
5989
- msgstr ""
5990
-
5991
- #: powerpressadmin-player-page.php:190
5992
- #@ powerpress
5993
- msgid "Flow Player Classic"
5994
- msgstr ""
5995
-
5996
- #: powerpressadmin-player-page.php:204
5997
- #@ powerpress
5998
- msgid "HTML5 Video Player"
5999
- msgstr ""
6000
-
6001
- #: powerpressadmin-player-page.php:214
6002
- #@ powerpress
6003
- msgid "HTML5 Video is an element introduced in the latest HTML specification (HTML5) for the purpose of playing videos."
6004
- msgstr ""
6005
-
6006
- #: powerpressadmin-player-page.php:217
6007
- #@ powerpress
6008
- msgid "HTML5 Video Player is not format specific. See table below for a list of browsers and supported formats."
6009
- msgstr ""
6010
-
6011
- #: powerpressadmin-player-page.php:221
6012
- #: powerpressadmin-player-page.php:362
6013
- #@ powerpress
6014
- msgid "Browser"
6015
- msgstr ""
6016
-
6017
- #: powerpressadmin-player-page.php:227
6018
- #: powerpressadmin-player-page.php:368
6019
- #@ powerpress
6020
- msgid "Internet Explorer"
6021
- msgstr ""
6022
-
6023
- #: powerpressadmin-player-page.php:233
6024
- #: powerpressadmin-player-page.php:374
6025
- #@ powerpress
6026
- msgid "Firefox"
6027
- msgstr ""
6028
-
6029
- #: powerpressadmin-player-page.php:239
6030
- #: powerpressadmin-player-page.php:380
6031
- #@ powerpress
6032
- msgid "Chrome"
6033
- msgstr ""
6034
-
6035
- #: powerpressadmin-player-page.php:245
6036
- #: powerpressadmin-player-page.php:386
6037
- #@ powerpress
6038
- msgid "Opera"
6039
- msgstr ""
6040
-
6041
- #: powerpressadmin-player-page.php:251
6042
- #: powerpressadmin-player-page.php:392
6043
- #@ powerpress
6044
- msgid "Safari"
6045
- msgstr ""
6046
-
6047
- #: powerpressadmin-player-page.php:257
6048
- #@ powerpress
6049
- msgid "Chrome supported H.264 in previous versions, but no longer supports the format."
6050
- msgstr ""
6051
-
6052
- #: powerpressadmin-player-page.php:258
6053
- #: powerpressadmin-player-page.php:399
6054
- #@ powerpress
6055
- msgid "Safari requires QuickTime installed for HTML5 playback."
6056
- msgstr ""
6057
-
6058
- #: powerpressadmin-player-page.php:260
6059
- #: powerpressadmin-player-page.php:401
6060
- #@ powerpress
6061
- msgid "Flow Player Classic is used when HTML5 support is not available."
6062
- msgstr ""
6063
-
6064
- #: powerpressadmin-player-page.php:345
6065
- #@ powerpress
6066
- msgid "HTML5 Audio Player"
6067
- msgstr ""
6068
-
6069
- #: powerpressadmin-player-page.php:355
6070
- #@ powerpress
6071
- msgid "HTML5 audio is an element introduced in the latest HTML specification (HTML5) for the purpose of playing audio."
6072
- msgstr ""
6073
-
6074
- #: powerpressadmin-player-page.php:358
6075
- #@ powerpress
6076
- msgid "HTML5 Audio Player is not format specific. See table below for a list of browsers and supported formats."
6077
- msgstr ""
6078
-
6079
- #: powerpressadmin-player-page.php:398
6080
- #@ powerpress
6081
- msgid "Chrome supported AAC in previous versions, but no longer supports the format."
6082
- msgstr ""
6083
-
6084
- #: powerpressadmin-player-page.php:421
6085
- #@ powerpress
6086
- msgid "Select a different audio player"
6087
- msgstr ""
6088
-
6089
- #: powerpressadmin-player-page.php:423
6090
- #@ powerpress
6091
- msgid "Select a different video player"
6092
- msgstr ""
6093
-
6094
- #: powerpressadmin-player-page.php:526
6095
- #@ powerpress
6096
- msgid ""
6097
- "Set defaults, are you sure?\\\n"
6098
- "\\\n"
6099
- "All of the current settings will be overwritten!"
6100
- msgstr ""
6101
-
6102
- #: powerpressadmin-player-page.php:1009
6103
- #@ powerpress
6104
- msgid ""
6105
- "Set defaults, are you sure?\\\n"
6106
- "\\\n"
6107
- "All of the current settings will be overwritten!'"
6108
- msgstr ""
6109
-
6110
- #: powerpressadmin-player-page.php:1094
6111
- #@ powerpress
6112
- msgid "Configure Flash Mp3 Maxi Player"
6113
- msgstr ""
6114
-
6115
- #: powerpressadmin-player-page.php:1573
6116
- #@ powerpress
6117
- msgid "Configure HTML5 Audio Player"
6118
- msgstr ""
6119
-
6120
- #: powerpressadmin-player-page.php:1592
6121
- #@ powerpress
6122
- msgid "HTML5 Audio Player has no additional settings."
6123
- msgstr ""
6124
-
6125
- #: powerpressadmin-player-page.php:1606
6126
- #: powerpressadmin-player-page.php:1644
6127
- #@ powerpress
6128
- msgid "Configure Flow Player Classic"
6129
- msgstr ""
6130
-
6131
- #: powerpressadmin-player-page.php:1626
6132
- #: powerpressadmin.php:1656
6133
- #@ powerpress
6134
- msgid "Width"
6135
- msgstr ""
6136
-
6137
- #: powerpressadmin-player-page.php:1664
6138
- #@ powerpress
6139
- msgid "Configure HTML5 Video Player"
6140
- msgstr ""
6141
-
6142
- #: powerpressadmin-player-page.php:1689
6143
- #@ powerpress
6144
- msgid "Common Settings"
6145
- msgstr ""
6146
-
6147
- #: powerpressadmin-player-page.php:1690
6148
- #@ powerpress
6149
- msgid "The following video settings apply to the video player above as well as to classic video &lt;embed&gt; formats such as Microsoft Windows Media (.wmv), QuickTime (.mov) and RealPlayer."
6150
- msgstr ""
6151
-
6152
- #: powerpressadmin-player-page.php:1698
6153
- #@ powerpress
6154
- msgid "Width of player (leave blank for 400 default)"
6155
- msgstr ""
6156
-
6157
- #: powerpressadmin-player-page.php:1708
6158
- #@ powerpress
6159
- msgid "Height of player (leave blank for 225 default)"
6160
- msgstr ""
6161
-
6162
- #: powerpressadmin-player-page.php:1746
6163
- #@ powerpress
6164
- msgid "Default Poster Image"
6165
- msgstr ""
6166
-
6167
- #: powerpressadmin-player-page.php:1752
6168
- #@ powerpress
6169
- msgid "Place the URL to the poster image above."
6170
- msgstr ""
6171
-
6172
- #: powerpressadmin-player-page.php:1753
6173
- #@ powerpress
6174
- msgid "Image should be at minimum the same width/height as the player above. Leave blank to use default black background image."
6175
- msgstr ""
6176
-
6177
- #: powerpressadmin-player-page.php:1761
6178
- #@ powerpress
6179
- msgid "Include play icon over poster image when applicable"
6180
- msgstr ""
6181
-
6182
- #: powerpressadmin-player-page.php:1762
6183
- #@ powerpress
6184
- msgid "Use poster image, player width and height above for audio (Flow Player only)"
6185
- msgstr ""
6186
-
6187
- #: powerpressadmin-tags.php:72
6188
- #@ powerpress
6189
- msgid "Use genre 'Podcast\\"
6190
- msgstr ""
6191
-
6192
- #: powerpressadmin-tools.php:33
6193
- #@ powerpress
6194
- msgid ""
6195
- "Import PodPress settings, are you sure?\n"
6196
- "\n"
6197
- "Existing PowerPress settings will be overwritten."
6198
- msgstr ""
6199
-
6200
- #: powerpressadmin-tools.php:182
6201
- #@ powerpress
6202
- msgid "Translate PowerPress to your language"
6203
- msgstr ""
6204
-
6205
- #: powerpressadmin.php:80
6206
- #@ powerpress
6207
- msgid "Blubrry PowerPress requires Wordpress version 2.8 or greater."
6208
- msgstr ""
6209
-
6210
- #: powerpressadmin.php:84
6211
- #: powerpressadmin.php:2866
6212
- #@ powerpress
6213
- msgid "The WP OS FLV plugin is not compatible with Blubrry PowerPress."
6214
- msgstr ""
6215
-
6216
- #: powerpressadmin.php:208
6217
- #@ powerpress
6218
- msgid "Invalid poster image"
6219
- msgstr ""
6220
-
6221
- #: powerpressadmin.php:967
6222
- #@ powerpress
6223
- msgid "PowerPress Video Player Options"
6224
- msgstr ""
6225
-
6226
- #: powerpressadmin.php:967
6227
- #@ powerpress
6228
- msgid "Video Player"
6229
- msgstr ""
6230
-
6231
- #: powerpressadmin.php:1328
6232
- #@ powerpress
6233
- msgid ""
6234
- "WARNING: Changes made here are permanent. If the New Feed URL entered is incorrect, you will lose subscribers and will no longer be able to update your listing in the iTunes Store.\n"
6235
- "\n"
6236
- "DO NOT MODIFY THIS SETTING UNLESS YOU ABSOLUTELY KNOW WHAT YOU ARE DOING.\n"
6237
- "\n"
6238
- "Are you sure you want to continue?"
6239
- msgstr ""
6240
-
6241
- #: powerpressadmin.php:1657
6242
- #@ powerpress
6243
- msgid "Height"
6244
- msgstr ""
6245
-
6246
- #: powerpressadmin.php:1672
6247
- #@ powerpress
6248
- msgid "Add Poster Image"
6249
- msgstr ""
6250
-
6251
- #: powerpressadmin.php:3069
6252
- #@ powerpress
6253
- msgid "new!"
6254
- msgstr ""
6255
-
6256
- #: powerpressadmin.php:3082
6257
- #@ powerpress
6258
- msgid "Error occurred retrieving news."
6259
- msgstr ""
6260
-
6261
- #: powerpressadmin.php:3150
6262
- #@ powerpress
6263
- msgid "Subscribe:"
6264
- msgstr ""
6265
-
6266
- #: powerpressadmin.php:3152
6267
- #@ powerpress
6268
- msgid "Blog"
6269
- msgstr ""
6270
-
6271
- #: powerpressadmin.php:3158
6272
- #@ powerpress
6273
- msgid "Zune"
6274
- msgstr ""
6275
-
6276
- #: powerpressadmin.php:3174
6277
- #@ powerpress
6278
- msgid "Error occurred retrieving highlighted items."
6279
- msgstr ""
6280
 
 
 
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: PowerPress 2.0.4\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2012-01-15 12:10+0100\n"
6
  "PO-Revision-Date: \n"
7
  "Last-Translator: Team Blogos <wordpress@blogos.dk>\n"
8
  "Language-Team: Team Blogos <wordpress@blogos.dk>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=2;plural=n != 1;\n"
13
  "X-Poedit-Language: Danish\n"
14
  "X-Poedit-Country: DENMARK\n"
15
  "X-Poedit-SourceCharset: utf-8\n"
16
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;__ngettext:1,2;__ngettext_noop:1,2;_nc:4c,1,2;_nx:4c,1,2;_n_noop:1,2;_nx_noop:4c,1,2;_x:1,2c;_c;esc_html__;esc_html_e;esc_html_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c\n"
17
+ "X-Poedit-Basepath: d:\\wordpress\\plugins\\powerpress\n"
18
+ "X-Poedit-SearchPath-0: d:\\wordpress\\plugins\\powerpress\n"
19
+
20
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:103
21
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:479
 
 
 
22
  msgid "Your server must either have the php.ini setting 'allow_url_fopen' enabled or have the PHP cURL library installed in order to continue."
23
  msgstr "Din server skal enten have php.ini indstillingen 'allow_url_fopen' aktiveret eller have cURL-biblioteket til PHP installeret for at kunne fortsætte."
24
 
25
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:113
26
  #, php-format
 
27
  msgid "Media URL exceeded redirect limit of %d (fopen)."
28
  msgstr "Medie-URL overskred grænsen for redirect på %d (fopen)."
29
 
30
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:124
 
31
  msgid "Unable to obtain host name from URL."
32
  msgstr "Kan ikke finde værtsnavn i URL."
33
 
34
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:126
 
35
  msgid "Unable to obtain host name from the URL:"
36
  msgstr "Kan ikke finde værtsnavn i URL'en:"
37
 
38
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:226
 
39
  msgid "Unable to obtain media size from web server."
40
  msgstr "Kan ikke få størrelse på mediet fra webserveren."
41
 
42
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:239
 
43
  msgid "Unable to save media information to temporary directory."
44
  msgstr "Kan ikke gemme information om mediet i den midlertidige mappe."
45
 
46
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:252
 
47
  msgid "Unable to connect to host:"
48
  msgstr "Kan ikke etablere forbindelse til vært:"
49
 
50
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:266
51
  #, php-format
 
52
  msgid "Media URL exceeded redirect limit of %d (cURL in safe mode)."
53
  msgstr "Medie-URL overskred grænsen for redirect på %d (cURL i safe mode)."
54
 
55
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:308
56
  #, php-format
 
57
  msgid "Media URL exceeded redirect limit of %d (cURL)."
58
  msgstr "Medie-URL overskred grænsen for redirect på %d (cURL)."
59
 
60
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:323
61
  #, php-format
 
62
  msgid "Unable to obtain HTTP %d redirect URL."
63
  msgstr "Kan ikke få redirect-URL for HTTP %d."
64
 
65
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:353
 
66
  msgid "Unable to obtain media size from server."
67
  msgstr "Kan ikke få størrelse på medie fra serveren."
68
 
69
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:364
 
70
  msgid "Unable to create temporary file for checking media information."
71
  msgstr "Kan ikke oprette midlertidig fil til tjekning af information om medie."
72
 
73
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:427
74
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:437
 
75
  msgid "Unable to download media."
76
  msgstr "Kan ikke downloade medie."
77
 
78
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:435
 
79
  msgid "Retrieving file info:"
80
  msgstr "<span title=\"retrieving file info\">Information om fil, der skal hentes:</span>"
81
 
82
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:483
83
+ msgid "PowerPress is unable to detect media information."
84
+ msgstr "PowerPress kan ikke hente information om medie."
85
+
86
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:502
87
+ #, php-format
88
+ msgid "Plugin '%s' has included a different version of the GetID3 library located in %s"
89
+ msgstr "Pluginnet '%s' har inkluderet en anden version af GetID3-biblioteket placeret i %s"
90
+
91
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:504
92
+ #, php-format
93
+ msgid "Another plugin has included a different version of the GetID3 library located in %s"
94
+ msgstr "Et andet plugin har inkluderet en anden version af GetID3-biblioteket placeret i %s"
95
+
96
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:506
97
+ msgid "Another plugin has included a different version of the GetID3 library."
98
+ msgstr "Et andet plugin har inkluderet en anden version af GetID3-biblioteket"
99
+
100
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:513
101
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:519
102
  msgid "Error occurred downloading media file."
103
  msgstr "Der forekom en fejl under download af mediefil."
104
 
105
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:528
 
106
  msgid "Downloaded media file is empty."
107
  msgstr "Downloadet mediefil er tom."
108
 
109
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:568
110
  #, php-format
 
111
  msgid "Sample Rate %dKhz may cause playback issues, we recommend 22Khz or 44Khz for maximum player compatibility."
112
  msgstr "Samplerate på %dKHz kan skabe afspilningsproblemer; vi anbefaler 22 KHz eller 44KHz for maksimal afspillerkompatibilitet."
113
 
114
+ #: d:\wordpress\plugins\powerpress/mp3info.class.php:574
115
  #, php-format
 
116
  msgid "Channel Mode '%s' may cause playback issues, we recommend 'joint stereo' for maximum player compatibility."
117
  msgstr "<span title=\"Channel Mode\">Kanalmodus</span> '%s' kan skabe afspilningsproblemer. Vi anbefaler '"
118
 
119
+ #: d:\wordpress\plugins\powerpress/powerpress-feed-auth.php:22
 
120
  msgid "Access Denied"
121
  msgstr "Adgang nægtet"
122
 
123
+ #: d:\wordpress\plugins\powerpress/powerpress-feed-auth.php:26
 
124
  msgid "Authorization Failed"
125
  msgstr "Adgangstilladelse mislykkedes"
126
 
127
+ #: d:\wordpress\plugins\powerpress/powerpress-feed-auth.php:32
 
128
  msgid "Unauthorized"
129
  msgstr "Ingen adgangstilladelse"
130
 
131
+ #: d:\wordpress\plugins\powerpress/powerpress-player.php:304
132
+ #: d:\wordpress\plugins\powerpress/powerpress-player.php:861
133
+ msgid "Best viewed with"
134
+ msgstr "Vises bedst med"
135
+
136
+ #: d:\wordpress\plugins\powerpress/powerpress-player.php:306
137
+ #: d:\wordpress\plugins\powerpress/powerpress-player.php:863
138
+ msgid "Windows Media Player plugin for Firefox"
139
+ msgstr "Windows Media Player-plugin for Firefox"
140
+
141
+ #: d:\wordpress\plugins\powerpress/powerpress-player.php:499
142
+ #: d:\wordpress\plugins\powerpress/powerpress-player.php:1103
143
+ msgid "Blubrry PowerPress Player"
144
+ msgstr "Blubrry PowerPress-afspiller"
145
+
146
+ #: d:\wordpress\plugins\powerpress/powerpress-player.php:565
147
+ msgid "Player Not Available"
148
+ msgstr "Afspiller ikke tilgængelig"
149
+
150
+ #: d:\wordpress\plugins\powerpress/powerpress-player.php:971
151
+ msgid "Open in New Window"
152
+ msgstr "Åbn i nyt vindue"
153
+
154
+ #: d:\wordpress\plugins\powerpress/powerpress-player.php:1053
155
+ msgid "E-Book PDF"
156
+ msgstr "E-bog som PDF"
157
+
158
+ #: d:\wordpress\plugins\powerpress/powerpress-player.php:1121
159
+ msgid "Unable to retrieve media information."
160
+ msgstr "Kan ikke hente information om medie."
161
+
162
+ #: d:\wordpress\plugins\powerpress/powerpress-player.php:1526
163
  msgid "TRACK"
164
  msgstr "SPOR"
165
 
166
+ #: d:\wordpress\plugins\powerpress/powerpress.php:55
167
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:70
168
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:85
169
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1036
 
 
170
  msgid "Podcast"
171
  msgstr "Podcast"
172
 
173
+ #: d:\wordpress\plugins\powerpress/powerpress.php:57
174
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:234
 
175
  msgid "Duration"
176
+ msgstr "Varighed"
177
 
178
+ #: d:\wordpress\plugins\powerpress/powerpress.php:59
 
179
  msgid "Play in new window"
180
  msgstr "Afspil i nyt vindue"
181
 
182
+ #: d:\wordpress\plugins\powerpress/powerpress.php:61
 
183
  msgid "Download"
184
  msgstr "Download"
185
 
186
+ #: d:\wordpress\plugins\powerpress/powerpress.php:63
 
 
 
187
  msgid "Play"
188
  msgstr "Afspil"
189
 
190
+ #: d:\wordpress\plugins\powerpress/powerpress.php:65
191
+ msgid "Embed"
192
+ msgstr "Indsæt"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
 
194
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:19
 
195
  msgid "The redirect entered is not recongized as a supported statistics redirect service."
196
  msgstr "Den indtastede redirect genkendes ikke som en understøttet statistisk redirect-service."
197
 
198
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:19
 
199
  msgid "Are you sure you wish to continue with this redirect url?"
200
  msgstr "Er du sikker på, at du ønsker at fortsætte med denne redirect-URL?"
201
 
202
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:95
 
203
  msgid "Blubrry PowerPress Settings"
204
  msgstr "Blubrry PowerPress-indstillinger"
205
 
206
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:99
207
+ msgid "Welcome"
208
+ msgstr "Velkommen"
209
+
210
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:100
211
  msgid "Basic Settings"
212
  msgstr "Grundindstillinger"
213
 
214
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:101
215
+ msgid "Services & Stats"
216
+ msgstr "Tjenester & Statistik"
217
+
218
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:102
219
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:199
220
+ msgid "Media Appearance"
221
+ msgstr "Medieudseende"
222
+
223
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:103
224
  msgid "Feeds"
225
  msgstr "Feeds"
226
 
227
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:104
 
 
228
  msgid "iTunes"
229
  msgstr "iTunes"
230
 
231
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:105
232
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:197
233
+ msgid "T.V."
234
+ msgstr "TV"
235
+
236
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:158
237
  msgid "You must delete all of the Podcast Channels to disable this option."
238
  msgstr "Du skal slette alle Podcast-kanaler for at deaktivere denne indstilling."
239
 
240
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:168
 
 
 
 
 
 
241
  msgid "Audio Player Options"
242
+ msgstr "Audioafspiller-indstillinger"
243
 
244
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:169
245
+ msgid "Select from 6 different web based audio players."
246
+ msgstr "Vælg blandt seks forskellige webbaserede audioafspillere."
247
+
248
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:170
249
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:176
250
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:182
251
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:188
252
  msgid "feature will appear in left menu when enabled"
253
  msgstr "Funktion vises i venstre menu, når aktiveret"
254
 
255
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:174
256
+ msgid "Video Player Options"
257
+ msgstr "Videoafspiller-indstillinger"
258
+
259
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:175
260
+ msgid "Select from 2 different web based video players."
261
+ msgstr "Vælg blandt to forskellige webbaserede videoafspillere."
262
+
263
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:180
264
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:27
265
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:23
266
  msgid "Custom Podcast Channels"
267
  msgstr "Brugerdefinerede podcastkanaler"
268
 
269
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:181
 
270
  msgid "Manage multiple media files and/or formats to one blog post."
271
  msgstr "Håndtér flere mediefiler og/eller formater i et blogindlæg."
272
 
273
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:186
274
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:21
 
 
275
  msgid "Category Podcasting"
276
  msgstr "Kategori-podcasting"
277
 
278
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:187
 
279
  msgid "Manage category podcast feeds."
280
  msgstr "Håndtér podcastfeeds baseret på kategorier."
281
 
282
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:198
 
283
  msgid "Like The Plugin?"
284
  msgstr "Kan du lide dette plugin?"
285
 
286
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:200
 
287
  msgid "This plugin is great, don't you think? If you like the plugin we'd be ever so grateful if you'd give it your support. Here's how:"
288
  msgstr "Dette plugin er fremragende, synes du ikke? Hvis du kan lide pluginnet, så vil vi være utrolig taknemmelig, hvis du vil støtte det. Det kan du gøre ved at:"
289
 
290
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:203
291
  #, php-format
 
292
  msgid "Rate this plugin 5 stars in the %s."
293
  msgstr "Bedøm dette plugin med fem stjerner i %s."
294
 
295
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:204
 
296
  msgid "WordPress Plugins Directory"
297
  msgstr "WordPress' pluginmappe"
298
 
299
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:208
 
300
  msgid "Tell the world about PowerPress by writing about it on your blog"
301
  msgstr "Fortæl verden om PowerPress ved at skrive om det på din blog"
302
 
303
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:209
 
304
  msgid "I'm podcasting with Blubrry PowerPress (http://blubrry.com/powerpress/) #powerpress #wordpress"
305
  msgstr "<span title=\"I'm podcasting with\">Jeg podcaster med</span> Blubrry PowerPress (http://blubrry.com/powerpress/) #powerpress #wordpress"
306
 
307
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:209
 
308
  msgid "Twitter"
309
  msgstr "Twitter"
310
 
311
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:210
 
312
  msgid "I podcast with Blubrry PowerPress"
313
  msgstr "Jeg podcaster med Blubrry PowerPress"
314
 
315
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:210
 
316
  msgid "Facebook"
317
  msgstr "Facebook"
318
 
319
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:211
 
320
  msgid "Blubrry PowerPress Podcasting Plugin for WordPress"
321
  msgstr "Blubrry PowerPress Podcasting Plugin for WordPress"
322
 
323
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:211
 
324
  msgid "Digg"
325
  msgstr "Digg"
326
 
327
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:213
 
328
  msgid "Send us feedback"
329
  msgstr "Send os feedback"
330
 
331
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:213
 
332
  msgid "we love getting suggestions for new features!"
333
  msgstr "Vi elsker at få forslag til nye funktioner!"
334
 
335
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:237
 
336
  msgid "Episode Entry Options"
337
  msgstr "Indstillinger for indtastning af episode"
338
 
339
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:244
340
+ msgid "Podcast Entry Box"
341
+ msgstr "<span title=\"Podcast Entry Box\">Podcast-indtastningspanel</span>"
 
342
 
343
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:247
344
+ msgid "Configure your podcast episode entry box with the options that fit your needs."
345
+ msgstr "Konfigurér indtastningspanelet for dine podcastepisoder med de indstillinger, der svarer til dine behov."
 
346
 
347
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:251
348
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:161
349
+ msgid "Media URL"
350
+ msgstr "URL til mediefilen"
351
 
352
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:252
353
+ msgid "Specify URL to episode's media file"
354
+ msgstr "Angiv URL til episodens mediefil"
 
355
 
356
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:254
357
+ msgid "Media File Size and Duration"
358
+ msgstr "Mediefilstørrelse og -varighed"
 
 
359
 
360
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:255
361
+ msgid "Specify episode's media file size and duration"
362
+ msgstr "Angiv mediefilstørrelse og -varighed for episoden"
 
 
363
 
364
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:257
 
365
  msgid "Embed Field"
366
  msgstr "Felt til indsættelse af kode"
367
 
368
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:258
 
369
  msgid "Enter embed code from sites such as YouTube, Viddler and Blip.tv"
370
  msgstr "Indsat kode til indsættelse af medie fra sites som fx YouTube, Viddler og Blip.tv"
371
 
372
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:259
 
373
  msgid "Replace Player with Embed"
374
  msgstr "Erstat afspiller med indsat kode"
375
 
376
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:260
 
377
  msgid "Do not display default player if embed present for episode."
378
  msgstr "Vis ikke standardafspiller, hvis denne episode har et indsat medie."
379
 
380
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:262
 
381
  msgid "Display Player and Links Options"
382
  msgstr "Vis indstillinger for afspiller og links"
383
 
384
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:266
 
385
  msgid "No Player & Links Option"
386
  msgstr "Ingen indstillinger for afspiller og links"
387
 
388
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:267
 
389
  msgid "Disable media player and links on a per episode basis"
390
  msgstr "Deaktivér medieafspiller og links episode for episode"
391
 
392
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:269
 
393
  msgid "- or -"
394
  msgstr "- eller -"
395
 
396
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:271
 
397
  msgid "No Player Option"
398
  msgstr "Ingen afspillerindstilling."
399
 
400
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:272
 
401
  msgid "Disable media player on a per episode basis"
402
  msgstr "Deaktivér medieafspiller episode for episode"
403
 
404
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:274
 
405
  msgid "No Links Option"
406
  msgstr "Ingen linkindstilling."
407
 
408
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:275
 
409
  msgid "Disable media links on a per episode basis"
410
  msgstr "Deaktivér medielinks episode for episode"
411
 
412
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:279
413
+ msgid "Video Poster Image"
414
+ msgstr "Videoplakatbillede"
415
+
416
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:280
417
+ msgid "Specify URL to poster artwork specific to each episode"
418
+ msgstr "Angiv URL til plakatkunst specifik for hver episode"
419
+
420
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:282
421
+ msgid "Player Width and Height"
422
+ msgstr "Bredde og højde på afspiller"
423
+
424
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:283
425
+ msgid "Customize player width and height on a per episode basis"
426
+ msgstr "Tilpas afspillers bredde og højde episode for episode"
427
+
428
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:285
429
  msgid "iTunes Keywords Field"
430
  msgstr "<span title=\"iTunes Keywords Field\">Felt med iTunes-nøgleord</span>"
431
 
432
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:286
 
433
  msgid "Leave unchecked to use your blog post tags"
434
  msgstr "Skal ikke krydses af, hvis du vil bruge dit blogindlægs tags"
435
 
436
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:287
 
437
  msgid "iTunes Subtitle Field"
438
  msgstr "<span title=\"iTunes Subtitle Field\">Felt med iTunes-undertitel</span>"
439
 
440
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:288
 
441
  msgid "Leave unchecked to use the first 250 characters of your blog post"
442
  msgstr "Skal ikke krydses af, hvis du vil bruge de første 250 tegn i blogindlægget"
443
 
444
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:289
 
445
  msgid "iTunes Summary Field"
446
  msgstr "<span title=\"iTunes Summary Field\">Felt med iTunes-resumé</span>"
447
 
448
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:290
 
449
  msgid "Leave unchecked to use your blog post"
450
  msgstr "Skal ikke krydses af, hvis du vil bruge dit blogindlæg"
451
 
452
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:291
 
453
  msgid "iTunes Author Field"
454
  msgstr "<span title=\"iTunes Author Field\">Felt med iTunes-forfatter</span>"
455
 
456
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:292
 
457
  msgid "Leave unchecked to the post author name"
458
  msgstr "Skal ikke krydses af, hvis du vil bruge forfatternavn fra indlæg"
459
 
460
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:293
 
461
  msgid "iTunes Explicit Field"
462
  msgstr "<span title=\"iTunes Explicit Field\">Felt med iTunes-oplysninger om \"direkte sprog m.m.\" (\"explicit\")</span>"
463
 
464
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:294
 
465
  msgid "Leave unchecked to use your feed's explicit setting"
466
  msgstr "Skal ikke krydses af, hvis du vil bruge feedets konkrete indstillinger"
467
 
468
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:296
 
469
  msgid "NOTE: An invalid entry into any of the iTunes fields may cause problems with your iTunes listing. It is highly recommended that you validate your feed using feedvalidator.org everytime you modify any of the iTunes fields listed above."
470
  msgstr "BEMÆRK: En ugyldig indtastning i bare én af iTunes-felterne kan give problemer med <span title=\"iTunes Listing\">iTunes-katalogiseringen af dine podcasts</span>. Det anbefales varmt, at du validerer dit feed på feedvalidator.org, hver gang du ændrer i en af de iTunes-felter, der findes ovenfor."
471
 
472
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:297
 
473
  msgid "USE THE ITUNES FIELDS ABOVE AT YOUR OWN RISK."
474
  msgstr "BRUG iTUNES-FELTERNE OVENFOR PÅ EGEN RISIKO."
475
 
476
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:326
477
+ msgid "Show Advanced Episode Entry Settings"
478
+ msgstr "Vis avancerede indstillinger for indtastning af episode"
479
+
480
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:332
481
+ msgid "Default Media URL"
482
+ msgstr "Standard-URL for medier"
483
+
484
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:335
485
+ msgid "e.g. http://example.com/mediafolder/"
486
+ msgstr "f.eks. http://eksempel.dk/mediemappe/"
487
+
488
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:336
489
+ msgid "URL above will prefix entered file names that do not start with 'http://'. URL above must end with a trailing slash. You may leave blank if you always enter the complete URL to your media when creating podcast episodes."
490
+ msgstr "URL'en ovenfor sættes foran filnavne, som ikke begynder med 'http://'. URL'en ovenfor skal ende med en skråstreg. Du behøver ikke udfylde feltet, hvis du altid indtaster hele URL'en til din mediefil, når du opretter podcastepisoder."
491
+
492
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:347
493
  msgid "File Size Default"
494
  msgstr "Standard for filstørrelse"
495
 
496
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:351
497
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:223
 
498
  msgid "Auto detect file size"
499
  msgstr "Autobestem filstørrelse"
500
 
501
+ # CHANGE to user specified?
502
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:351
503
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:367
 
504
  msgid "User specify"
505
  msgstr "Brugerangivelse"
506
 
507
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:357
 
508
  msgid "specify default file size option when creating a new episode"
509
  msgstr "Angiv standardindstilling for filstørrelse, når der oprettes ny episode"
510
 
511
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:363
 
512
  msgid "Duration Default"
513
  msgstr "Standard for <span title=\"duration\">varighed</span>"
514
 
515
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:367
516
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:238
 
517
  msgid "Auto detect duration (mp3's only)"
518
  msgstr "Autobestem <span title=\"duration\">varighed</span> (kun MP3-filer)"
519
 
520
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:367
 
521
  msgid "Not specified (not recommended)"
522
  msgstr "Ikke angivet (anbefales ikke)"
523
 
524
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:373
 
525
  msgid "specify default duration option when creating a new episode"
526
  msgstr "Angiv standardindstilling for <span title=\"duration\">varighed</span>, når der oprettes en ny episode"
527
 
528
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:382
 
529
  msgid "Auto Add Media"
530
  msgstr "Tilføj automatisk medie"
531
 
532
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:386
533
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:258
534
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:259
535
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:260
536
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:261
537
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:262
 
538
  msgid "Disabled (default)"
539
  msgstr "Deaktiveret (standard)"
540
 
541
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:386
 
542
  msgid "First media link found in post content"
543
  msgstr "Første medielink i indlægsindholdet"
544
 
545
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:386
 
546
  msgid "Last media link found in post content"
547
  msgstr "Sidste medielink i indlægsindholdet"
548
 
549
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:393
 
550
  msgid "When enabled, the first or last media link found in the post content is automatically added as your podcast episode."
551
  msgstr "Når aktiveret, tilføjes det første eller det sidste medielink i blogindlægget automatisk som podcast-episode."
552
 
553
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:394
 
554
  msgid "NOTE: Use this feature with caution. Links to media files could unintentionally become podcast episodes."
555
  msgstr "BEMÆRK: Brug denne funktion med forsigtighed. Links til mediefiler kunne ende som podcast-episoder ved et uheld."
556
 
557
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:395
 
558
  msgid "WARNING: Episodes created with this feature will <u>not</u> include Duration (total play time) information."
559
  msgstr "ADVARSEL: Episoder oprettet med denne funktion indeholder <u>ikke</u> information om <span title=\"duration\">varighed</span> (spilletid i alt)."
560
 
561
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:405
 
562
  msgid "Podcast Permalinks"
563
  msgstr "Podcast-permalinks"
564
 
565
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:409
 
566
  msgid "Default WordPress Behavior"
567
  msgstr "<span title=\"Default WordPress Behavior\">WordPress' standardopførsel</span>"
568
 
569
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:409
 
570
  msgid "Match Feed Name to Page/Category"
571
  msgstr "Match feednavn til side/kategori"
572
 
573
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:416
574
  #, php-format
 
575
  msgid "When configured, %s/podcast/ is matched to page/category named 'podcast'."
576
  msgstr "Når konfigureret, matches %s/podcast/ til side/kategori med navnet 'podcast'."
577
 
578
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:440
 
579
  msgid "PodPress Options"
580
  msgstr "PodPress-indstillinger"
581
 
582
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:445
 
583
  msgid "PodPress Episodes"
584
  msgstr "PodPress-episoder"
585
 
586
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:449
 
587
  msgid "Ignore"
588
  msgstr "Ignorér"
589
 
590
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:449
 
591
  msgid "Include in Posts and Feeds"
592
  msgstr "Inkludér i indlæg og feeds"
593
 
594
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:455
 
595
  msgid "includes podcast episodes previously created in PodPress"
596
  msgstr "inkluderer podcast-episoder, som tidligere er oprettet i PodPress"
597
 
598
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:462
 
599
  msgid "PodPress Stats Archive"
600
  msgstr "Arkiv med PodPress-statistik"
601
 
602
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:466
 
603
  msgid "Hide"
604
  msgstr "Skjul"
605
 
606
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:466
 
607
  msgid "Display"
608
  msgstr "Vis"
609
 
610
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:472
 
611
  msgid "display archive of old PodPress statistics"
612
  msgstr "vis arkiv over gammel PodPress-statistik"
613
 
614
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:508
 
615
  msgid "Ping iTunes requires OpenSSL in PHP. Please refer to your php.ini to enable the php_openssl module."
616
  msgstr "For at kunne pinge iTunes skal OpenSSL være installeret i PHP. Du kan aktivere php_openssl-modulet i din php.ini."
617
 
618
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:511
 
619
  msgid "iTunes Listing Information"
620
  msgstr "<span title=\"iTunes Listing Information\">Information om iTunes-katalogisering af dine podcasts</span>"
621
 
622
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:514
 
623
  msgid "iTunes Subscription URL"
624
  msgstr "<span title=\"iTunes Subscription URL\">URL til tegning af iTunes-abonnement</span>"
625
 
626
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:523
627
  #, php-format
 
628
  msgid "e.g. %s"
629
  msgstr "fx %s"
630
 
631
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:525
632
  #, php-format
 
633
  msgid "You may use the older style Subscription URL: %s"
634
  msgstr "Du kan bruge Tilmeldings-URL&#39;en i det gamle format: %s"
635
 
636
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:527
637
  #, php-format
 
638
  msgid "Click the following link to %s."
639
  msgstr "Klik på det følgende link til %s."
640
 
641
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:527
 
642
  msgid "Publish a Podcast on iTunes"
643
  msgstr "Udgiv en podcast på iTunes"
644
 
645
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:528
 
646
  msgid "iTunes will email your Subscription URL to the <em>iTunes Email</em> entered below when your podcast is accepted into the iTunes Directory."
647
  msgstr "iTunes vil sende en e-mail med tilmeldings-URL&#39;en til den <em>iTunes-e-mail</em>, der er indtastet nedenfor, så snart din podcast er accepteret af iTunes og optaget i <span title=\"iTunes Podcast Directory\">podcastoversigten</span>."
648
 
649
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:531
 
650
  msgid "Recommended feed to submit to iTunes: "
651
  msgstr "Anbefalet feed til indsendelse af podcast til iTunes: "
652
 
653
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:553
 
654
  msgid "Update iTunes Listing"
655
  msgstr "Opdatér <span title=\"iTunes Listing\">iTunes-katalogisering af dine podcasts</span>"
656
 
657
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:555
658
+ msgid "This option is no longer available."
659
+ msgstr "Denne indstilling findes ikke længere."
 
 
 
 
 
 
 
660
 
661
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:556
662
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1012
663
+ msgid "Learn more:"
664
+ msgstr "Få mere at vide: "
 
 
 
 
 
 
665
 
666
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:556
667
+ msgid "Apple Drops iTunes Podcast Directory Update Listing/Ping (pingPodcast) Function"
668
+ msgstr "Apple Drops iTunes Podcast Directory Update Listing/Ping (pingPodcast) Function"
 
 
 
 
 
 
669
 
670
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:655
671
+ msgid "Integrate Blubrry Services"
672
+ msgstr "Integrér Blubrry-tjenester"
 
 
 
673
 
674
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:655
675
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:743
676
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:567
677
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:574
678
+ msgid "optional"
679
+ msgstr "valgfri"
 
 
 
680
 
681
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:657
682
+ msgid "Add Blubrry Media Statistics to your WordPress dashboard."
683
+ msgstr "Tilføj Blubrry-mediestatistik i WordPress&#39; kontrolpanel."
684
+
685
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:660
686
+ msgid "Blubrry Media Hosting users can also quickly upload and publish media directly from their blog."
687
+ msgstr "Brugere på Blubrry Media Hosting kan også uploade og udgive medier hurtigt og direkte fra deres blog."
688
+
689
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:665
690
+ msgid "Have an account on Blubrry.com?"
691
+ msgstr "Har du en konto på Blubrry.com?"
692
+
693
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:668
694
+ msgid "Click here to configure your Blubrry settings"
695
+ msgstr "Klik her for at konfigurere dine BluBrry-indstillinger"
696
+
697
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:672
698
+ msgid "Display Blubrry Media Statistics in your dashboard"
699
+ msgstr "Vis Blubrry-mediestatistik i dit kontrolpanel"
700
+
701
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:675
702
+ msgid "Don't have an account at Blubrry.com?"
703
+ msgstr "Har du ikke en konto på Blubrry.com?"
704
+
705
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:679
706
+ #, php-format
707
+ msgid "%s offers an array of services to media creators including a %s %s. Our %s, which includes U.S. downloads, trending, exporting, is available for $5 month. Need a reliable place to host your media? %s media hosting packages start at $12. %s"
708
+ msgstr "%s tilbyder en række tjenester for medieskabere, herunder en %s %s. Vores %s, som inkluderer US-downloads, tendensvisning, eksportfunktion, kan fås for $5 om måneden. Har du brug for et pålideligt sted til hosting af dine medier? %s mediehostingpakker fås fra $12. %s"
709
 
710
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:681
711
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:809
712
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:821
713
+ msgid "FREE"
714
+ msgstr "GRATIS"
715
+
716
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:682
717
+ msgid "Basic Stats Service"
718
+ msgstr "Grundlæggende statistiktjeneste"
719
+
720
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:683
721
+ msgid "Premium Media Statistics"
722
+ msgstr "Betalingsmediestatistik"
723
+
724
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:684
725
  msgid "Blubrry Media Hosting"
726
  msgstr "Blubrrys mediehosting"
727
 
728
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:685
729
+ msgid "Learn More"
730
+ msgstr "Få mere at vide"
731
+
732
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:743
733
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:592
734
  msgid "Media Statistics"
735
  msgstr "Mediestatistik"
736
 
737
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:746
738
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:594
 
739
  msgid "Enter your Redirect URL issued by your media statistics service provider below."
740
  msgstr "Indtast den Redirect-URL, som du har fået af serviceleverandøren af din medie statistik, nedenfor."
741
 
742
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:753
 
743
  msgid "Redirect URL 1"
744
  msgstr "Redirect-URL 1"
745
 
746
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:762
747
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:781
 
748
  msgid "Add Another Redirect"
749
  msgstr "Tilføj endnu en redirect"
750
 
751
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:772
 
752
  msgid "Redirect URL 2"
753
  msgstr "Redirect-URL 2"
754
 
755
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:790
 
756
  msgid "Redirect URL 3"
757
  msgstr "Redirect-URL 3"
758
 
759
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:805
760
+ msgid "Need a media statistics provider?"
761
+ msgstr "Har du brug for en leverandør af mediestatistik?"
762
+
763
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:808
764
+ #, php-format
765
+ msgid "Blubrry.com offers %s access to the best statistics!"
766
+ msgstr "Blubrry.com tilbyder %s adgang til de bedste statistikker!"
767
+
768
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:817
769
+ msgid "Blubrry brings you the most all-inclusive digital media statistics service available. Gain unsurpassed insights into your audience. Find out who is linking to you, listener-base demographics and geographical data with worldwide mapping. Try us! You'll find our custom reports and daily email summaries are info you can trust, track and build your media program on."
770
+ msgstr "Blubrry giver dig en digital mediestatistiktjeneste næsten så altomfattende, som man kan få. Få uovertruffen indsigt i dit publikum. Find ud af, hvem der linker til dig, få demografiske og geografiske data baseret på en verdensomspændende kortlægning af din lytterbase. Prøv os! Du vil finde ud af, at vore brugerdefinerede rapporter og daglige e-mail-resumeer er informationer, dit medieprogram kan stole, bygge og holdes styr på."
771
+
772
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:820
773
+ #, php-format
774
+ msgid "* Get %s Media Statistics by taking a few minutes and adding your podcast to Blubrry.com. What's the catch? Nothing! For many, our free service is all you will need. But if you're looking to further your abilities with media download information, we hope you consider upgrading to our paid Premium Statistics Service."
775
+ msgstr "Få %s mediestatistik ved at bruge et par minutter på at tilføje din podcast til Blubrry.com. Hvad er bagtanken? Ingen! For mange er vores gratis service alt, hvad man vil få brug for. Men hvis du ønsker at udvide dine muligheder med information om mediedownloads, så håber vi, du vil overveje at opgradere til vores statistiske betalingstjenester."
776
+
777
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:825
778
+ msgid "Sign Up Now!"
779
+ msgstr "Registrér nu!"
780
+
781
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:826
782
+ msgid "* some restrictions apply"
783
+ msgstr "* der kan være begrænsninger"
784
 
785
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:826
786
+ msgid "learn more"
787
+ msgstr "lær mere"
788
+
789
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:856
790
  msgid "Default Podcast (podcast)"
791
  msgstr "Standardpodcast (podcast)"
792
 
793
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:869
794
+ msgid "Media Appearance Settings"
795
+ msgstr "Indstillinger for medieudseende"
796
+
797
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:878
798
+ msgid "Enable PowerPress Media Players and Links"
799
+ msgstr "Aktivér PowerPress-medieafspillere og -link"
800
+
801
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:878
802
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:905
803
+ msgid "default"
804
+ msgstr "standard"
805
+
806
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:881
807
+ msgid "PowerPress will add media players and links to your site."
808
+ msgstr "PowerPress vil tilføje medieafspillere og links til dit site."
809
+
810
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:885
811
+ msgid "Disable PowerPress Media Players and Links"
812
+ msgstr "Deaktivér PowerPress-medieafspillere og -link"
813
+
814
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:888
815
+ msgid "PowerPress will <u>not</u> add any media players or media links to your site. PowerPress will only be used to add podcasting support to your feeds."
816
+ msgstr "PowerPress vil <u>ikke</u> tilføje medieafspillere og links til dit site. PowerPress vil kun blive brugt til at tilføje podcasting-understøttelse til dine feeds."
817
+
818
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:898
819
+ msgid "Blog Posts and Pages"
820
+ msgstr "Blogindlæg og sider"
821
+
822
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:902
823
+ msgid "Display Media & Links"
824
+ msgstr "Vis medie & links"
825
+
826
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:905
827
+ msgid "Below page content"
828
+ msgstr "Under sideindhold"
829
+
830
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:908
831
+ msgid "Player and media links will appear <u>below</u> your post and page content."
832
+ msgstr "Afspiller og medielinks bliver vist <u>under</u> indholdet på dine indlæg og sider."
833
+
834
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:912
835
+ msgid "Above page content"
836
+ msgstr "Over sideindhold"
837
+
838
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:915
839
+ msgid "Player and media links will appear <u>above</u> your post and page content."
840
+ msgstr "Afspiller og medielinks bliver vist <u>over</u> indholdet på dine indlæg og sider."
841
+
842
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:918
843
+ msgid "Disable"
844
+ msgstr "Deaktivér"
845
+
846
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:921
847
+ msgid "Player and media links will <u>NOT</u> appear in your post and page content. Media player and links can be added manually by using the <i>shortcode</i> below."
848
+ msgstr "Afspiller og medielinks bliver <u>IKKE</u> vist i indholdet på dine indlæg og sider. Medieafspiller og links kan tilføjes manuelt med <i>kortkoderne</i> nedenfor."
849
 
850
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:925
 
851
  msgid "Display media / links in:"
852
  msgstr "Vis medie/links i:"
853
 
854
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:925
 
855
  msgid "WordPress Excerpts"
856
  msgstr "WordPress-uddrag"
857
 
858
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:925
 
859
  msgid "e.g. search results"
860
  msgstr "f.eks. søgeresultater"
861
 
862
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:931
863
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:941
 
864
  msgid "PowerPress Shortcode"
865
  msgstr "PowerPress-<span title=\"shortcode\">kortkode</span>"
866
 
867
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:934
868
+ #, php-format
869
+ msgid "The %s shortcode is used to position your media presentation (player and download links) exactly where you want within your post or page content."
870
+ msgstr "Kortkoden %s bruges til at placere din mediepræsentation (afspiller og downloadlinks) præcist, hvor du ønsker det i indholdet i dit indlæg eller på din side."
871
+
872
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:935
873
+ msgid "Simply insert the following code on a new line in your content."
874
+ msgstr "Indsæt ganske enkelt koden på en ny linje i dit indhold."
875
+
876
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:941
877
  #, php-format
 
878
  msgid "Please visit the %s page for additional options."
879
  msgstr "Gå til %s-siden for flere indstillinger."
880
 
881
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:948
882
+ msgid "Media Player"
883
+ msgstr "Medieafspiller"
884
+
885
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:951
886
+ msgid "Display Player"
887
+ msgstr "Vis afspiller"
888
+
889
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:955
890
+ msgid "Detected mobile and tablet devices use an HTML5 player with a fallback link to download the media."
891
+ msgstr "Enheder, der bestemmes som mobile eller som tablets, bruger en HTML5-afspiller med mulighed for at falde tilbage på et link til download af mediet."
892
+
893
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:968
894
+ msgid "Media Links"
895
+ msgstr "Medielinks"
896
+
897
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:970
898
+ msgid "Display Play in new Window Link"
899
+ msgstr "Vis \"Afspil i nyt vindue\"-link"
900
+
901
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:972
902
+ msgid "Display Download Link"
903
+ msgstr "Vis downloadlink"
904
+
905
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:974
906
+ msgid "Include file size"
907
+ msgstr "Medtag filstørrelse"
908
+
909
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:975
910
+ msgid "Include file size and duration"
911
+ msgstr "Medtag filstørrelse og varighed"
912
+
913
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:977
914
+ msgid "Display Player Embed Link"
915
+ msgstr "Vis link til indsættelse af afspiller"
916
+
917
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:979
918
+ msgid "Include embed in feeds"
919
+ msgstr "Medtag indsat medie i feeds"
920
+
921
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:981
922
+ msgid "Embed option only works for Flow Player Classic and HTML5 Video player."
923
+ msgstr "Indsætningsfunktionen virker kun i Flow Player Classic og HTML5-videoafspiller."
924
 
925
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:993
 
926
  msgid "Having Theme Issues?"
927
  msgstr "Har du problemer med temaet?"
928
 
929
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:997
 
930
  msgid "No, everything is working"
931
  msgstr "Nej, alt virker"
932
 
933
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:997
 
934
  msgid "Yes, please try to fix"
935
  msgstr "Ja, prøv venligst at løse problemet"
936
 
937
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1005
 
938
  msgid "Use this option if you are having problems with the players not appearing in your pages."
939
  msgstr "Brug denne indstilling, hvis du har problemer med, at afspillerne ikke vises på dine sider."
940
 
941
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1014
 
942
  msgid "Play in New Window Settings"
943
  msgstr "Indstillinger for afspilning i nyt vindue"
944
 
945
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1019
 
946
  msgid "New Window Width"
947
  msgstr "Brede på nyt vindue"
948
 
949
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1023
950
+ msgid "Width of new window (leave blank for 420 default)"
951
+ msgstr "Bredde på nyt vindue (udfyldes feltet ikke, bruges 420 som standard)"
952
+
953
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1029
954
  msgid "New Window Height"
955
  msgstr "Højde på nyt vindue"
956
 
957
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1033
 
958
  msgid "Height of new window (leave blank for 240 default)"
959
  msgstr "Højde på nyt vindue (udfyldes feltet ikke, bruges 240 som standard)"
960
 
961
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1040
962
+ msgid "Media Format Settings"
963
+ msgstr "Medieformatindstillinger"
 
964
 
965
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1045
966
+ msgid "AAC Audio (.m4a)"
967
+ msgstr "AAC-audio (.M4A)"
 
968
 
969
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1050
970
+ msgid "Use Flow Player Classic / HTML5 Audio player"
971
+ msgstr "Brug Flow Player Classic / HTML5-audioafspiller"
 
972
 
973
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1052
974
+ msgid "Leave this option unchecked if you want m4a chapter markers, images and information displayed."
975
+ msgstr "Sæt ikke noget kryds, hvis du ønsker kapitelmarkører, billeder og information i M4A vist."
 
976
 
977
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1053
978
+ msgid "When unchecked, m4a will be played with the quicktime video embed. Video player width/height settings apply."
979
+ msgstr "Når uafkrydset, afspilles M4A som indsat QuickTime-video. Indstillingerne for videoafspillers bredde/højde anvendes."
 
980
 
981
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1071
982
+ msgid "Blubrry PowerPress and Community Podcast"
983
+ msgstr "Blubrry PowerPress- og Community-podcasts"
 
984
 
985
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1074
986
+ msgid "Remove from dashboard"
987
+ msgstr "Fjern fra kontrolpanel"
 
988
 
989
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1079
990
+ msgid "Highlighted Topics"
991
+ msgstr "Fremhævede emner"
 
992
 
993
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1094
994
+ msgid "T.V. Settings"
995
+ msgstr "TV-indstillinger"
 
996
 
997
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1098
998
+ msgid "Parental Rating"
999
+ msgstr "Aldersgrænser"
 
 
1000
 
1001
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1100
1002
+ #, php-format
1003
+ msgid "A parental rating is used to display your content on %s applications available on Internet connected TV's. The TV Parental Rating applies to both audio and video media."
1004
+ msgstr "Aldersgrænserne bruges til (ikke) at vise dit indhold på %s-applikationer på tv&#39;er, der er sluttet til internettet. Aldersgrænserne anvendes for både audio- og videomedier."
 
 
1005
 
1006
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1102
1007
+ msgid "No rating specified"
1008
+ msgstr "Aldersgrænse ikke angivet"
1009
+
1010
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1103
1011
+ msgid "Children of all ages"
1012
+ msgstr "Børn i alle aldre"
1013
+
1014
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1104
1015
+ msgid "Children 7 years and older"
1016
+ msgstr "Børn på syv år og derover"
1017
+
1018
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1105
1019
+ msgid "Children 7 years and older [fantasy violence]"
1020
+ msgstr "Børn på 7 år og derover (fiktionsvold)"
1021
+
1022
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1106
1023
+ msgid "General audience"
1024
+ msgstr "For alle"
1025
+
1026
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1107
1027
+ msgid "Parental guidance suggested"
1028
+ msgstr "Forældrevejledning foreslås"
1029
+
1030
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1108
1031
+ msgid "May be unsuitable for children under 14 years of age"
1032
+ msgstr "Kan være uegnet for børn under 14 år"
1033
+
1034
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1109
1035
+ msgid "Mature audience - may be unsuitable for children under 17"
1036
+ msgstr "Modent publikum &ndash; kan være uegnet for børn under 17"
1037
+
1038
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1112
1039
+ msgid "Whether animated or live-action, the themes and elements in this program are specifically designed for a very young audience, including children from ages 2-6. These programs are not expected to frighten younger children. Examples of programs issued this rating include Sesame Street, Barney & Friends, Dora the Explorer, Go, Diego, Go! and The Backyardigans."
1040
+ msgstr "Uanset om der er tale om tegnefilm eller almindelige film, er temaerne og de enkelte dele i dette program specielt lavet til et meget ungt publikum, inkl. børn i alderen 2-6 år. Disse programmer forventes ikke at skræmme små børn. Eksempler på programmer med denne aldersgrænse er Sesamgade, Barney & Venner, Dora Udforskeren m.fl."
1041
+
1042
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1113
1043
+ msgid "These shows may or may not be appropriate for some children under the age of 7. This rating may include crude, suggestive humor, mild fantasy violence, or content considered too scary or controversial to be shown to children under seven. Examples include Foster's Home for Imaginary Friends, Johnny Test, and SpongeBob SquarePants."
1044
+ msgstr "Disse udsendelser kan i visse tilfælde være egnede for nogle børn under 7-års-alderen. Film i denne kategori kan indeholde rå, antydende humor, mild vold i fiktionsfilm, eller indhold, der vurderes til at være for skræmmende eller kontroversiel til at blive vist for børn under 7. Eksempler er Fosters hjem for fantasivenner, Johnny Test og SpongeBob SquarePants."
1045
+
1046
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1114
1047
+ msgid "When a show has noticeably more fantasy violence, it is assigned the TV-Y7-FV rating. Action-adventure shows such Pokemon series and the Power Rangers series are assigned a TV-Y7-FV rating."
1048
+ msgstr "Hvis en film har betydeligt mere fiktionsvold, får det en TV-Y7-FV-bedømmelse. Aktioneventyrfilm som Pokemon og Power Rangers hører til denne kategori."
1049
+
1050
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1115
1051
+ msgid "Although this rating does not signify a program designed specifically for children, most parents may let younger children watch this program unattended. It contains little or no violence, no strong language and little or no sexual dialogue or situation. Networks that air informational, how-to content, or generally inoffensive content."
1052
+ msgstr "Selv om denne kategori ikke omfatter programmer lavet specielt til børn, kan de fleste forældre lade deres yngre børn se disse programmer uden opsyn. De indeholder ingen eller næsten ingen vold, kun ordentligt sprog og ingen eller kun få seksuelle dialoger eller situationer. Eksempler er faktaprogrammer, konkret vejledninger eller udsendelser, der generelt ikke er anstødelige."
1053
+
1054
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1116
1055
+ msgid "This rating signifies that the program may be unsuitable for younger children without the guidance of a parent. Many parents may want to watch it with their younger children. Various game shows and most reality shows are rated TV-PG for their suggestive dialog, suggestive humor, and/or coarse language. Some prime-time sitcoms such as Everybody Loves Raymond, Fresh Prince of Bel-Air, The Simpsons, Futurama, and Seinfeld usually air with a TV-PG rating."
1056
+ msgstr "Denne kategori betyder, at programmet kan være uegnet for yngre børn, hvis ikke forældrene vejleder dem. Mange forældre vil ønske at se det sammen med deres yngre børn. Gameshows og reality tv får denne aldersgrænse på grund af deres vovede dialoger og humor og/eller råt sprog. Nogle situationskomedier (sitcoms) som fx Alle elsker Raymond, Rap Fyr i L.A., The Simpsons, Futurama og Seinfeld har normalt denne aldersgrænse."
1057
+
1058
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1117
1059
+ msgid "Parents are strongly urged to exercise greater care in monitoring this program and are cautioned against letting children of any age watch unattended. This rating may be accompanied by any of the following sub-ratings:"
1060
+ msgstr "Forældre opfordres indtrængende til at udvise større påpasselighed og holde øje med dette program og advares mod at lade børn se det uanset deres alder. Denne aldersgrænse kan suppleres af en af de følgende underkategorier:"
1061
+
1062
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-basic.php:1118
1063
+ msgid "A TV-MA rating means the program may be unsuitable for those below 17. The program may contain extreme graphic violence, strong profanity, overtly sexual dialogue, very coarse language, nudity and/or strong sexual content. The Sopranos is a popular example."
1064
+ msgstr "En TV-MA-bedømmelse betyder, at programmet kan være uegnet for dem under 17. Programmet kan indeholde ekstrem udpenslet vold, stærke bandeord, utilslørede seksuelle dialoger, meget råt sprog, nøgenhed og/eller direkte seksuel kontakt. Sopranos er et populært eksempel."
1065
+
1066
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:8
1067
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:59
1068
+ msgid "Category Name"
1069
+ msgstr "Kategorinavn"
1070
+
1071
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:9
1072
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:60
1073
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:9
1074
+ msgid "Slug"
1075
+ msgstr "Kort titel"
1076
+
1077
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:10
1078
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:61
1079
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:386
1080
  msgid "Feed URL"
1081
  msgstr "Feed-URL"
1082
 
1083
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:23
 
1084
  msgid "Category Podcasting adds custom podcast settings to specific blog category feeds, allowing you to organize episodes by topic."
1085
  msgstr "Kategoribaseret podcasting tilføjer brugerdefinerede podcast-indstillinger til de enkelte kategoribaserede blogfeeds, så du kan organisere episoder efter emne."
1086
 
1087
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:26
1088
  #, php-format
 
1089
  msgid "If you are looking to organize episodes by file or format, please use %s."
1090
  msgstr "Hvis du ønsker at organisere episoder efter filnavne eller -formater, så brug %s."
1091
 
1092
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:122
1093
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:116
1094
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:569
 
1095
  #, php-format
 
1096
  msgid "Edit \"%s\""
1097
  msgstr "Redigér \"%s\""
1098
 
1099
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:124
1100
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:118
1101
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:166
 
1102
  msgid "Edit"
1103
  msgstr "Redigér"
1104
 
1105
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:125
1106
  #, php-format
 
1107
  msgid ""
1108
  "You are about to remove podcast settings for category feed '%s'\n"
1109
  " 'Cancel' to stop, 'OK' to delete."
1111
  "Du er ved at fjerne podcast-indstillinger for kategorifeedet '%s'\n"
1112
  " 'Annullér' for at stoppe, 'OK' for at slette."
1113
 
1114
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:125
1115
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:148
 
1116
  msgid "Remove"
1117
  msgstr "Fjern"
1118
 
1119
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:141
1120
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:139
1121
  #, php-format
 
1122
  msgid "Visit %s"
1123
  msgstr "Besøg %s"
1124
 
1125
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:143
1126
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:141
 
1127
  msgid "Validate Feed"
1128
  msgstr "Validér feed"
1129
 
1130
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:171
 
1131
  msgid "Add Podcast Settings to existing Category Feed"
1132
  msgstr "Tilføj podcast-indstillinger til eksisterende kategorifeed"
1133
 
1134
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:179
 
1135
  msgid "Category"
1136
  msgstr "Kategori"
1137
 
1138
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:181
1139
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:869
1140
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:898
1141
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:918
 
1142
  msgid "Select Category"
1143
  msgstr "Vælg kategori"
1144
 
1145
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:187
 
1146
  msgid "Add Podcast Settings to Category Feed"
1147
  msgstr "Tilføj podcast-indstillinger til kategorifeed"
1148
 
1149
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:196
1150
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:202
 
1151
  msgid "Example Usage"
1152
  msgstr "Eksempler på brug"
1153
 
1154
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:198
 
1155
  msgid "Example 1: You have a podcast that covers two topics that sometimes share same posts and sometimes do not. Use your main podcast feed as a combined feed of both topics \tand use category feeds to distribute topic specific episodes."
1156
  msgstr "Eksempel 1: Du har en podcast, som dækker to emner, der sommetider omfatter de samme indlæg, sommetider ikke. Brug din hovedpodcastfeed som en kombineret feed med begge emner \tog brug kategorifeeds til at distribuere episoder inden for de enkelte emner."
1157
 
1158
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-categoryfeeds.php:201
 
1159
  msgid "Example 2: You want to use categories to keep episodes separate from each other. Each category can be used to distribute separate podcasts with the main podcast feed combining all categories to provide a network feed."
1160
  msgstr "Eksempel 2: Du ønsker at bruge kategorier til at holde episoder adskilt fra hinanden. Hver kategori kan bruges til at distribuere separate podcasts, mens hovedpodcastfeedet leverer et netværksfeed, der kombinerer alle kategorier."
1161
 
1162
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:8
 
1163
  msgid "Name"
1164
  msgstr "Navn"
1165
 
1166
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:10
 
1167
  msgid "Episodes"
1168
  msgstr "Episoder"
1169
 
1170
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:11
 
 
 
1171
  msgid "URL"
1172
  msgstr "URL"
1173
 
1174
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:25
 
1175
  msgid "Custom podcast Channels allow you to associate multiple media files and/or formats to one blog post."
1176
  msgstr "Brugerdefinerede podcastkanaler giver dig mulighed for at samle flere mediefiler og/eller formater i et blogindlæg."
1177
 
1178
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:28
1179
  #, php-format
 
1180
  msgid "If you are looking to organize episodes by topic, please use %s."
1181
  msgstr "Hvis du ønsker at organisere episoder efter emne, skal du bruge %s."
1182
 
1183
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:29
 
1184
  msgid "Category Podcast Feeds"
1185
  msgstr "Kategoribaserede podcastfeeds"
1186
 
1187
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:116
 
1188
  msgid "default channel"
1189
  msgstr "Standardkanal"
1190
 
1191
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:119
1192
  #, php-format
 
1193
  msgid ""
1194
  "You are about to delete feed '%s'\n"
1195
  " 'Cancel' to stop, 'OK' to delete."
1197
  "Du er ved at slette feedet '%s'\n"
1198
  " 'Annullér' for at stoppe, 'OK' for at slette."
1199
 
1200
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:119
1201
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:206
1202
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:260
 
1203
  msgid "Delete"
1204
  msgstr "Slet"
1205
 
1206
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:165
1207
  #, php-format
 
1208
  msgid "Note: The default channel \"Podcast\" is currently using global PowerPress settings. Click %s to customize the default \"Podcast\" channel."
1209
  msgstr "Bemærk: Standard-podcastkanalen bruger i øjeblikket globale WordPress-indstillinger. Klik %s for at tilpasse standard-podcastkanalen."
1210
 
1211
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:173
1212
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:193
 
1213
  msgid "Add Podcast Channel"
1214
  msgstr "Tilføj podcastkanal"
1215
 
1216
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:182
 
1217
  msgid "Feed Name"
1218
  msgstr "Navn på feed"
1219
 
1220
+ # TJEKKES
1221
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:184
 
1222
  msgid "The name is used for use within the administration area only."
1223
  msgstr "Navnet bruges kun i kontrolpanelet."
1224
 
1225
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:188
 
1226
  msgid "Feed Slug"
1227
  msgstr "Kort titel for feed"
1228
 
1229
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:190
 
1230
  msgid "The &#8220;slug&#8221; is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens."
1231
  msgstr "Den korte titel er den url-venlige udgave af navnet. Det er normalt skrevet med ene små bogstaver og indeholder kun bogstaver, tal og bindestreger."
1232
 
1233
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:204
 
1234
  msgid "Example 1: You want to distribute both an mp3 and an ogg version of your podcast. Use the default podcast channel for your mp3 media and create a custom channel for your ogg media."
1235
  msgstr "Eksempel 1: Du ønsker at distribuere både en MP3- og en OGG-version af din podcast. Brug standard-podcastkanalen til dine MP3-medier og opret en brugerdefineret kanal til dine OGG-medier."
1236
 
1237
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:207
 
1238
  msgid "Example 2: You have a video podcast with multiple file formats. Use the default podcast channel for the main media that you want to appear on your blog (e.g. m4v). Create additional channels for the remaining formats (e.g. wmv, mov, mpeg)."
1239
  msgstr "Eksempel 2: Du har en videopodcast i flere filformater. Brug standard-podcastkanalen for hovedmediet, du ønsker, der skal vises på din blog (fx M4V). Opret ekstra kanaler til de resterende formater (fx WMV, MOV og MPEG)."
1240
 
1241
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-customfeeds.php:210
1242
+ msgid "Example 3: You create two versions of your podcast, a 20 minute summary and a full 2 hour episode. Use the default channel for your 20 minute summary episodes and create a new custom channel for your full length episodes."
1243
+ msgstr "Eksempel 3: Du laver to versioner af dit podcast: et sammendrag på 20 minutter og en fuld episode på to timer. Brug standardkanalen for episoderne med dine 20-minutters sammendrag og opret en ny brugerdefineret kanal til episoden i fuld længde."
1244
+
1245
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-dashboard.php:112
1246
  #, php-format
 
1247
  msgid "Wait a sec! This feature is only available to Blubrry Podcast Community members. Join our community to get free podcast statistics and access to other valuable %s."
1248
  msgstr "Vent et øjeblik! Denne funktion er kun tilgængelig for medlemmer af Blubrry Podcast Community. Meld dig ind og få gratis podcast-statistik og adgang til andre værdifulde %s."
1249
 
1250
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-dashboard.php:113
 
1251
  msgid "Services"
1252
  msgstr "tjenester"
1253
 
1254
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-dashboard.php:115
1255
  #, php-format
 
1256
  msgid "Our %s integrated PowerPress makes podcast publishing simple. Check out the %s on our exciting three-step publishing system!"
1257
  msgstr "Vores PowerPress, som integrerer %s, har gjort det let at udgive podcasts. Tjek %s om vores spændende publiceringssystem i tre trin!"
1258
 
1259
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-dashboard.php:116
 
1260
  msgid "Podcast Hosting"
1261
  msgstr "Podcast Hosting"
1262
 
1263
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-dashboard.php:117
 
1264
  msgid "Video"
1265
  msgstr "videon"
1266
 
1267
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-dashboard.php:128
 
1268
  msgid "Error: An error occurred authenticating user."
1269
  msgstr "Fejl: Der forekom en fejl i forsøget på <span title=\"authenticating user\">at tjekke adgangsoplysninger for bruger</span>."
1270
 
1271
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-dashboard.php:140
 
1272
  msgid "Blubrry Media statistics"
1273
  msgstr "Blubrrys mediestatistik"
1274
 
1275
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-dashboard.php:140
1276
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:879
 
1277
  msgid "more"
1278
  msgstr "mere"
1279
 
1280
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-dashboard.php:189
1281
+ msgid "Blubrry PowerPress & Community Podcast"
1282
+ msgstr "Blubrry PowerPress & Community Podcast"
1283
+
1284
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-dashboard.php:192
1285
  msgid "Blubrry Podcast Statistics"
1286
  msgstr "Blubrrys poodcaststatistik"
1287
 
1288
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:23
 
1289
  msgid "Your web server supports the PHP cURL library."
1290
  msgstr "Din webserver understøtter cURL-biblioteket for PHP."
1291
 
1292
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:25
 
1293
  msgid "Your web server is also configured with the php.ini setting 'allow_url_fopen' enabled, but the cURL library takes precedence."
1294
  msgstr "Din webserver er også konfigureret med php.ini-indstillingen 'allow_url_fopen' slået til, men cURL-biblioteket har forrang."
1295
 
1296
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:30
 
1297
  msgid "Warning: Both php.ini settings 'safe_mode' and 'open_basedir' will prevent the cURL library from following redirects in URLs."
1298
  msgstr "Advarsel: Både php.ini-indstillingerne 'safe_mode' og 'open_basedir' forhindrer cURL-biblioteket i at følge URL-redirects."
1299
 
1300
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:35
 
1301
  msgid "Warning: The php.ini setting 'safe_mode' will prevent the cURL library from following redirects in URLs."
1302
  msgstr "Advarsel: php.ini-indstillingen 'safe_mode' forhindrer cURL-biblioteket i at følge URL-redirects."
1303
 
1304
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:40
 
1305
  msgid "Warning: The php.ini setting 'open_basedir' will prevent the cURL library from following redirects in URLs."
1306
  msgstr "Advarsel: php.ini-indstillingen 'open_basedir' forhindrer cURL-biblioteket i at følge URL-redirects."
1307
 
1308
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:45
 
1309
  msgid "Your web server is configured with the php.ini setting 'allow_url_fopen' enabled."
1310
  msgstr "Din webserver er konfigureret med php.ini-indstillingen 'allow_url_fopen' aktiveret."
1311
 
1312
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:50
 
1313
  msgid "Your server must either have the php.ini setting 'allow_url_fopen' enabled or have the PHP cURL library installed in order to detect media information."
1314
  msgstr "Din server skal enten have php.ini-indstillingen 'allow_url_fopen' aktiveret eller have cURL-biblioteket til PHP installeret for at kunne aflæse medieinformation."
1315
 
1316
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:71
 
1317
  msgid "The problem with 'Detecting Media Information' above needs to be resolved for this test to continue."
1318
  msgstr "Problemet med 'Aflæsning af information om medier' ovenfor skal løses, for at denne test kan fortsætte."
1319
 
1320
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:75
1321
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:84
 
1322
  msgid "Your web server supports secure HTTPS connections."
1323
  msgstr "Din webserver understøtter sikre HTTPS-forbindelser."
1324
 
1325
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:80
 
1326
  msgid "Your web server's cURL library does not support secure HTTPS connections."
1327
  msgstr "Din webservers cURL-bibliotek understøtter ikke sikre HTTPS-forbindelser."
1328
 
1329
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:89
 
1330
  msgid "Pinging iTunes requires the PHP OpenSSL library to be installed."
1331
  msgstr "For at kunne pinge iTunes skal <span title=\"PHP OpenSSL library\">OpenSSL-biblioteket for PHP</span> være installeret."
1332
 
1333
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:108
 
1334
  msgid "Your server requires the php.ini setting 'file_uploads' enabled in order to upload podcast artwork."
1335
  msgstr "Din server kræver, at php.ini-indstillingen 'file_uploads' er aktiveret, for at der kan uploades podcast-illustrationer."
1336
 
1337
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:116
1338
  #, php-format
 
1339
  msgid "Unable to create directory %s. Is its parent directory writable by the server?"
1340
  msgstr "Kunne ikke oprette mappen %s. Er overmappen skrivbar for serveren?"
1341
 
1342
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:123
1343
  #, php-format
 
1344
  msgid "PowerPress is unable to write to the %s directory."
1345
  msgstr "PowerPress kan ikke skrive til %s-mappen."
1346
 
1347
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:128
 
1348
  msgid "You are able to upload and save artwork images for your podcasts."
1349
  msgstr "Du kan uploade og gemme billeder med illustrationer til dine podcasts."
1350
 
1351
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:137
 
1352
  msgid "An error occurred obtaining the uploads directory from WordPress."
1353
  msgstr "En fejl forekom i forsøget på at aflæse navnet på uploads-mappen i WordPress."
1354
 
1355
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:166
1356
  #, php-format
 
1357
  msgid "Your version of PHP (%s) is OK!"
1358
  msgstr "Din version af PHP (%s) er OK!"
1359
 
1360
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:170
1361
  #, php-format
 
1362
  msgid "Your version of PHP (%s) is OK, though PHP 5.2 or newer is recommended."
1363
  msgstr "Din version af PHP (%s) er OK, selv om PHP 5.2 eller nyere anbefales."
1364
 
1365
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:174
1366
  #, php-format
 
1367
  msgid "Your version of PHP (%s) will work, but PHP 5.2 or newer is recommended."
1368
  msgstr "Din version af PHP (%s) vil fungere, men PHP 5.2 eller nyere anbefales."
1369
 
1370
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:182
 
1371
  msgid "Your scripts have no limit to the amount of memory they can use."
1372
  msgstr "Dine skripts har ingen begrænsninger på, hvor meget hukommelse de må bruge."
1373
 
1374
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:192
1375
  #, php-format
 
1376
  msgid "You are using %d%% (%.01fM of %.01dM) of available memory."
1377
  msgstr "Du bruger %d%% (%.01fM af %.01dM) af den tilgængelige hukommelse."
1378
 
1379
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:199
1380
  #, php-format
 
1381
  msgid "You are using %d%% (%.01fM of %dM) of available memory. Versions of PHP 5.2 or newer will give you a more accurate total of memory usage."
1382
  msgstr "Du bruger %d%% (%.01fM af %dM) den tilgængelige hukommelse. PHP 5.2 eller nyere versioner vil give dig mere en mere præcis opgørelse over hukommelsesforbruget."
1383
 
1384
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:203
1385
  #, php-format
 
1386
  msgid "Your scripts have a total of %dM."
1387
  msgstr "Dine skripts kan højst bruge %dM."
1388
 
1389
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:209
 
1390
  msgid "Warning:"
1391
  msgstr "Advarsel:"
1392
 
1393
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:211
1394
  #, php-format
 
1395
  msgid "We recommend that you have at least %dM (4M more that what is currently used) or more memory to accomodate all of your installed plugins."
1396
  msgstr "Vi anbefaler, at du som minimum har %dM (4M mere, end hvad der bruges for øjeblikket) eller mere hukommelse, så alle dine installerede plugins kan køre."
1397
 
1398
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:217
1399
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:226
1400
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:427
1401
+ msgid "Error:"
1402
+ msgstr "Fejl:"
1403
+
1404
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:217
1405
  msgid "No temporary directory available."
1406
  msgstr "Der er ingen mappe til midlertidige filer tilgængelig."
1407
 
1408
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:221
1409
  #, php-format
 
1410
  msgid "Temporary directory %s is writable."
1411
  msgstr "Mappen for midlertidige filer %s er skrivbar."
1412
 
1413
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:226
1414
  #, php-format
 
1415
  msgid "Temporary directory %s is not writable."
1416
  msgstr "Mappe til midlertidige filer %s er ikke skrivbar."
1417
 
1418
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:234
1419
  #, php-format
 
1420
  msgid "Diagnostic results sent to %s."
1421
  msgstr "Diagnostiske resultater sendt til %s."
1422
 
1423
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:244
 
1424
  msgid "Blog Title:"
1425
  msgstr "Blogtitel:"
1426
 
1427
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:245
 
1428
  msgid "Blog URL:"
1429
  msgstr "URL til blog"
1430
 
1431
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:246
 
1432
  msgid "WordPress Version:"
1433
  msgstr "WordPress-version:"
1434
 
1435
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:248
 
1436
  msgid "WordPress MU Version:"
1437
  msgstr "WordPress MU-Version:"
1438
 
1439
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:249
 
1440
  msgid "System:"
1441
  msgstr "System:"
1442
 
1443
+ # CHANGE typo?
1444
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:250
 
1445
  msgid "Safe node:"
1446
  msgstr "Safe mode:"
1447
 
1448
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:251
 
1449
  msgid "Open basedir:"
1450
  msgstr "Open basedir:"
1451
 
1452
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:255
 
1453
  msgid "Important PowerPress Settings"
1454
  msgstr "Vigtige WordPress-indstillinger"
1455
 
1456
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:256
 
1457
  msgid "PowerPress version:"
1458
  msgstr "WordPress-version:"
1459
 
1460
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:257
1461
+ msgid "episode box file size/duration fields:"
1462
+ msgstr "Felter til filstørrelse og varighed i episodepanel:"
1463
+
1464
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:257
1465
+ msgid "yes"
1466
+ msgstr "ja"
1467
+
1468
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:257
1469
+ msgid "no"
1470
+ msgstr "nej"
1471
+
1472
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:258
1473
  msgid "Podcasting capability:"
1474
  msgstr "Podcasting-rettigheder:"
1475
 
1476
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:258
1477
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:259
1478
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:260
1479
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:261
1480
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:262
 
1481
  msgid "Enabled"
1482
  msgstr "aktiveret"
1483
 
1484
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:259
 
1485
  msgid "Feed capability:"
1486
  msgstr "Feedrettigheder:"
1487
 
1488
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:260
 
1489
  msgid "Category Podcasting:"
1490
  msgstr "Kategoribaseret podcasting:"
1491
 
1492
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:261
 
1493
  msgid "Podcast Channels:"
1494
  msgstr "Podcastkanaler:"
1495
 
1496
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:262
 
1497
  msgid "Additional Player Options:"
1498
  msgstr "Flere indstillinger for afspiller:"
1499
 
1500
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:266
1501
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:401
 
1502
  msgid "Detecting Media Information"
1503
  msgstr "Aflæsning af information om medier"
1504
 
1505
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:267
1506
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:285
1507
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:294
 
1508
  msgid "success:"
1509
  msgstr "succes:"
1510
 
1511
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:268
1512
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:295
 
1513
  msgid "warning:"
1514
  msgstr "advarsel:"
1515
 
1516
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:269
 
1517
  msgid "allow_url_fopen:"
1518
  msgstr "allow_url_fopen:"
1519
 
1520
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:270
 
1521
  msgid "curl:"
1522
  msgstr "cURL:"
1523
 
1524
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:271
1525
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:289
1526
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:300
 
1527
  msgid "message:"
1528
  msgstr "besked:"
1529
 
1530
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:272
1531
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:301
 
1532
  msgid "message 2:"
1533
  msgstr "besked 2:"
1534
 
1535
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:284
1536
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:441
 
 
 
 
 
 
1537
  msgid "Uploading Artwork"
1538
  msgstr "Uploadning af illustrationer"
1539
 
1540
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:286
 
1541
  msgid "file_uploads:"
1542
  msgstr "file_uploads:"
1543
 
1544
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:287
 
1545
  msgid "writable:"
1546
  msgstr "skrivbar:"
1547
 
1548
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:288
 
1549
  msgid "upload_path:"
1550
  msgstr "upload_path:"
1551
 
1552
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:293
1553
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:454
 
1554
  msgid "System Information"
1555
  msgstr "Systeminformation"
1556
 
1557
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:296
 
1558
  msgid "php_version:"
1559
  msgstr "php_version:"
1560
 
1561
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:297
 
1562
  msgid "memory_limit:"
1563
  msgstr "memory_limit:"
1564
 
1565
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:298
 
1566
  msgid "memory_used:"
1567
  msgstr "memory_used:"
1568
 
1569
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:299
 
1570
  msgid "temp directory:"
1571
  msgstr "<span title=\"temp directory\">mappe til midlertidige filer</span>"
1572
 
1573
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:302
 
1574
  msgid "message 3:"
1575
  msgstr "besked 3:"
1576
 
1577
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:308
 
1578
  msgid "Active Plugins"
1579
  msgstr "Aktive plugins"
1580
 
1581
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:313
 
1582
  msgid "Title:"
1583
  msgstr "Titel:"
1584
 
1585
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:314
 
1586
  msgid "Relative Path:"
1587
  msgstr "Relativ sti:"
1588
 
1589
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:315
 
1590
  msgid "Version:"
1591
  msgstr "Version:"
1592
 
1593
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:316
 
1594
  msgid "Web Site:"
1595
  msgstr "Website:"
1596
 
1597
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:337
1598
  #, php-format
 
1599
  msgid "Blubrry PowerPress diagnostic results for %s"
1600
  msgstr "Diagnostiske resultater for Blubrry PowerPress på %s"
1601
 
1602
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:355
1603
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:314
 
1604
  msgid "Success"
1605
  msgstr "Succes"
1606
 
1607
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:360
1608
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:319
 
1609
  msgid "Failed"
1610
  msgstr "Mislykkedes"
1611
 
1612
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:366
 
1613
  msgid "Warning"
1614
  msgstr "Advarsel"
1615
 
1616
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:386
 
1617
  msgid "Blubrry PowerPress Diagnostics"
1618
  msgstr "Blubrrys PowerPress-diagnosticering"
1619
 
1620
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:388
 
 
1621
  msgid "The Diagnostics page checks to see if your server is configured to support all of the available features in Blubrry PowerPress."
1622
  msgstr "PowerPress-diagnosticering tjekker, om din server er konfigureret, så den understøtter alle de tilgængelige funktioner i Blubrry PowerPress."
1623
 
1624
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:395
 
1625
  msgid "Diagnostics Email Message"
1626
  msgstr "E-mail-besked med diagnostiske oplysninger"
1627
 
1628
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:403
 
1629
  msgid "The following test checks to see if your web server can make connections with other web servers to obtain file size and media duration information. The test checks to see if either the PHP cURL library is installed or the php.ini setting 'allow_url_fopen' enabled."
1630
  msgstr "De følgende test tjekker, om din webserver kan etablere forbindelse med andre webservere og hente informationer om filstørrelse og <span title=\"media duration\">medievarighed</span>. Testen tjekker, enten om cURL-biblioteket til PHP er installeret, eller om php.ini-indstillingen 'allow_url_fopen' er aktiveret."
1631
 
1632
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:415
 
1633
  msgid "If you are still having problems detecting media information, check with your web hosting provider if there is a firewall blocking your server."
1634
  msgstr "Hvis du stadig har problemer med at aflæse information om medier, så tjek med din leverandøren af din webserver, at der ikke er en firewall, der blokerer for din server."
1635
 
1636
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:417
1637
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:434
 
1638
  msgid "Contact your web hosting provider with the information above."
1639
  msgstr "Kontakt din leverandør af webserver med oplysningerne ovenfor."
1640
 
1641
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:424
1642
+ msgid "Pinging iTunes"
1643
+ msgstr "Pingning af iTunes"
1644
+
1645
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:425
1646
  msgid "The following test checks to see that your web server can make connections with Apple's secure ping server."
1647
  msgstr "Den følgende test tjekker, om din webserver kan etablere forbindelse med <span title=\"Apple's secure ping server\">Apples sikre ping-server</span>."
1648
 
1649
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:442
 
1650
  msgid "The following test checks to see that you can upload and store files on your web server."
1651
  msgstr "Den følgende test tjekker, om du kan uploade og gemme filer på din webserver."
1652
 
1653
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:455
 
1654
  msgid "The following test checks your version of PHP, memory usage and temporary directory access."
1655
  msgstr "Den følgende test tjekker versionen af din PHP, hukommelsesbrug og adgang til mappen for midlertidige filer."
1656
 
1657
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:462
1658
+ #, php-format
1659
+ msgid "WordPress Version %s"
1660
+ msgstr "WordPress version %s"
1661
+
1662
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:467
1663
  msgid "Contact your web hosting provider to inquire how to increase the PHP memory limit on your web server."
1664
  msgstr "Kontakt leverandøren af din webserver og find ud af, hvordan man øger <span title=\"PHP memory limit\">PHP's hukommelsesbegrænsning</span> på din webserver."
1665
 
1666
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:481
 
1667
  msgid "Email Results"
1668
  msgstr "E-mail resultater"
1669
 
1670
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:482
 
1671
  msgid "Send the results above to the specified Email address."
1672
  msgstr "Send resultaterne ovenfor til e-mail-adressen angivet nedenfor."
1673
 
1674
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:486
 
1675
  msgid "Email"
1676
  msgstr "E-mail"
1677
 
1678
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-diagnostics.php:497
 
1679
  msgid "Include list of active plugins in diagnostics results."
1680
  msgstr "Inkludér liste over aktive plugins i de diagnostiske resultater."
1681
 
1682
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:10
 
1683
  msgid "Afrikaans"
1684
  msgstr "Afrikaans"
1685
 
1686
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:11
 
1687
  msgid "Albanian"
1688
  msgstr "Albansk"
1689
 
1690
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:12
 
1691
  msgid "Arabic"
1692
  msgstr "Arabisk"
1693
 
1694
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:13
 
1695
  msgid "Arabic (Saudi Arabia)"
1696
  msgstr "Arabisk (Saudi-Arabien)"
1697
 
1698
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:14
 
1699
  msgid "Arabic (Egypt)"
1700
  msgstr "Arabisk (Egypten)"
1701
 
1702
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:15
 
1703
  msgid "Arabic (Algeria)"
1704
  msgstr "Arabisk (Algeriet)"
1705
 
1706
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:16
 
1707
  msgid "Arabic (Tunisia)"
1708
  msgstr "Arabisk (Tunesien)"
1709
 
1710
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:17
 
1711
  msgid "Arabic (Yemen)"
1712
  msgstr "Arabisk (Yemen)"
1713
 
1714
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:18
 
1715
  msgid "Arabic (Jordan)"
1716
  msgstr "Arabisk (Jordan)"
1717
 
1718
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:19
 
1719
  msgid "Arabic (Kuwait)"
1720
  msgstr "Arabisk (Kuwait)"
1721
 
1722
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:20
 
1723
  msgid "Arabic (Bahrain)"
1724
  msgstr "Arabisk (Bahrain)"
1725
 
1726
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:21
 
1727
  msgid "Basque"
1728
  msgstr "Baskisk"
1729
 
1730
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:22
 
1731
  msgid "Belarusian"
1732
  msgstr "Hviderussisk"
1733
 
1734
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:23
 
1735
  msgid "Bulgarian"
1736
  msgstr "Bulgarsk"
1737
 
1738
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:24
 
1739
  msgid "Catalan"
1740
  msgstr "Katalansk"
1741
 
1742
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:25
 
1743
  msgid "Chinese (Simplified)"
1744
  msgstr "Kinesisk (forsimplet)"
1745
 
1746
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:26
 
1747
  msgid "Chinese (Traditional)"
1748
  msgstr "Kinesisk (traditionel)"
1749
 
1750
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:27
 
1751
  msgid "Croatian"
1752
  msgstr "Kroatisk"
1753
 
1754
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:28
 
1755
  msgid "Czech"
1756
  msgstr "Tjekkisk"
1757
 
1758
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:29
 
1759
  msgid "Danish"
1760
  msgstr "Dansk"
1761
 
1762
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:30
 
1763
  msgid "Dutch"
1764
  msgstr "Nederlandsk"
1765
 
1766
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:31
 
1767
  msgid "Dutch (Belgium)"
1768
  msgstr "Nederlandsk (Belgien)"
1769
 
1770
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:32
 
1771
  msgid "Dutch (Netherlands)"
1772
  msgstr "Nederlandsk (Nederlandene)"
1773
 
1774
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:33
 
1775
  msgid "English"
1776
  msgstr "Engelsk"
1777
 
1778
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:34
 
1779
  msgid "English (Australia)"
1780
  msgstr "Engelsk (Australien)"
1781
 
1782
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:35
 
1783
  msgid "English (Belize)"
1784
  msgstr "Engelsk (Belize)"
1785
 
1786
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:36
 
1787
  msgid "English (Canada)"
1788
  msgstr "Engelsk (Canada)"
1789
 
1790
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:37
 
1791
  msgid "English (Ireland)"
1792
  msgstr "Engelsk (Irland)"
1793
 
1794
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:38
 
1795
  msgid "English (Jamaica)"
1796
  msgstr "Engelsk (Jamaica)"
1797
 
1798
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:39
 
1799
  msgid "English (New Zealand)"
1800
  msgstr "Engelsk (New Zealand)"
1801
 
1802
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:40
 
1803
  msgid "English (Phillipines)"
1804
  msgstr "Engelsk (Filippinerne)"
1805
 
1806
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:41
 
1807
  msgid "English (South Africa)"
1808
  msgstr "Engelsk (Sydafrika)"
1809
 
1810
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:42
 
1811
  msgid "English (Trinidad)"
1812
  msgstr "Engelsk (Trinidad)"
1813
 
1814
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:43
 
1815
  msgid "English (United Kingdom)"
1816
  msgstr "Engelsk (Storbritannien)"
1817
 
1818
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:44
 
1819
  msgid "English (United States)"
1820
  msgstr "Engelsk (USA)"
1821
 
1822
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:45
 
1823
  msgid "English (Zimbabwe)"
1824
  msgstr "Engelsk (Zimbabwe)"
1825
 
1826
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:46
 
1827
  msgid "Estonian"
1828
  msgstr "Estisk"
1829
 
1830
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:47
 
1831
  msgid "Faeroese"
1832
  msgstr "Færøsk"
1833
 
1834
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:48
 
1835
  msgid "Finnish"
1836
  msgstr "Finsk"
1837
 
1838
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:49
 
1839
  msgid "French"
1840
  msgstr "Fransk"
1841
 
1842
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:50
 
1843
  msgid "French (Belgium)"
1844
  msgstr "Fransk (Belgien)"
1845
 
1846
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:51
 
1847
  msgid "French (Canada)"
1848
  msgstr "Fransk (Canada)"
1849
 
1850
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:52
 
1851
  msgid "French (France)"
1852
  msgstr "Fransk (Frankrig)"
1853
 
1854
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:53
 
1855
  msgid "French (Luxembourg)"
1856
  msgstr "Fransk (Luxemburg)"
1857
 
1858
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:54
 
1859
  msgid "French (Monaco)"
1860
  msgstr "Fransk (Monaco)"
1861
 
1862
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:55
 
1863
  msgid "French (Switzerland)"
1864
  msgstr "Fransk (Schweiz)"
1865
 
1866
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:56
 
1867
  msgid "Galician"
1868
  msgstr "Galicisk"
1869
 
1870
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:57
 
1871
  msgid "Gaelic"
1872
  msgstr "Gælisk"
1873
 
1874
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:58
 
1875
  msgid "German"
1876
  msgstr "Tysk"
1877
 
1878
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:59
 
1879
  msgid "German (Austria)"
1880
  msgstr "Tysk (Østrig)"
1881
 
1882
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:60
 
1883
  msgid "German (Germany)"
1884
  msgstr "Tysk (Tyskland)"
1885
 
1886
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:61
 
1887
  msgid "German (Liechtenstein)"
1888
  msgstr "Tysk (Liechtenstein)"
1889
 
1890
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:62
 
1891
  msgid "German (Luxembourg)"
1892
  msgstr "Tysk (Luxemburg)"
1893
 
1894
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:63
 
1895
  msgid "German (Switzerland)"
1896
  msgstr "Tysk (Schweiz)"
1897
 
1898
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:64
 
1899
  msgid "Greek"
1900
  msgstr "Græsk"
1901
 
1902
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:65
 
1903
  msgid "Hawaiian"
1904
  msgstr "Hawaiiansk"
1905
 
1906
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:66
 
1907
  msgid "Hungarian"
1908
  msgstr "Ungarsk"
1909
 
1910
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:67
 
1911
  msgid "Icelandic"
1912
  msgstr "Islandsk"
1913
 
1914
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:68
 
1915
  msgid "Indonesian"
1916
  msgstr "Indonesisk"
1917
 
1918
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:69
 
1919
  msgid "Irish"
1920
  msgstr "Irsk"
1921
 
1922
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:70
 
1923
  msgid "Italian"
1924
  msgstr "Italiensk"
1925
 
1926
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:71
 
1927
  msgid "Italian (Italy)"
1928
  msgstr "Italiensk (Italien)"
1929
 
1930
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:72
 
1931
  msgid "Italian (Switzerland)"
1932
  msgstr "Italiensk (Schweiz)"
1933
 
1934
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:73
 
1935
  msgid "Japanese"
1936
  msgstr "Japansk"
1937
 
1938
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:74
 
1939
  msgid "Korean"
1940
  msgstr "Koreansk"
1941
 
1942
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:75
 
1943
  msgid "Macedonian"
1944
  msgstr "Makedonsk"
1945
 
1946
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:76
 
1947
  msgid "Norwegian"
1948
  msgstr "Norsk"
1949
 
1950
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:77
 
1951
  msgid "Polish"
1952
  msgstr "Polsk"
1953
 
1954
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:78
 
1955
  msgid "Portuguese"
1956
  msgstr "Portugisisk"
1957
 
1958
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:79
 
1959
  msgid "Portuguese (Brazil)"
1960
  msgstr "Portugisisk (Brasilien)"
1961
 
1962
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:80
 
1963
  msgid "Portuguese (Portugal)"
1964
  msgstr "Portugisisk (Portugal)"
1965
 
1966
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:81
 
1967
  msgid "Romanian"
1968
  msgstr "Rumænsk"
1969
 
1970
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:82
 
1971
  msgid "Romanian (Moldova)"
1972
  msgstr "Rumænsk (Moldova)"
1973
 
1974
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:83
 
1975
  msgid "Romanian (Romania)"
1976
  msgstr "Rumænsk (Rumænien)"
1977
 
1978
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:84
 
1979
  msgid "Russian"
1980
  msgstr "Russisk"
1981
 
1982
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:85
 
1983
  msgid "Russian (Moldova)"
1984
  msgstr "Russisk (Moldova)"
1985
 
1986
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:86
 
1987
  msgid "Russian (Russia)"
1988
  msgstr "Russisk (Rusland)"
1989
 
1990
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:87
 
1991
  msgid "Serbian"
1992
  msgstr "Serbisk"
1993
 
1994
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:88
 
1995
  msgid "Slovak"
1996
  msgstr "Slovakisk"
1997
 
1998
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:89
 
1999
  msgid "Slovenian"
2000
  msgstr "Slovensk"
2001
 
2002
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:90
 
2003
  msgid "Spanish"
2004
  msgstr "Spansk"
2005
 
2006
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:91
 
2007
  msgid "Spanish (Argentina)"
2008
  msgstr "Spansk (Argentina)"
2009
 
2010
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:92
 
2011
  msgid "Spanish (Bolivia)"
2012
  msgstr "Spansk (Bolivia)"
2013
 
2014
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:93
 
2015
  msgid "Spanish (Chile)"
2016
  msgstr "Spansk (Chile)"
2017
 
2018
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:94
 
2019
  msgid "Spanish (Colombia)"
2020
  msgstr "Spansk (Colombia)"
2021
 
2022
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:95
 
2023
  msgid "Spanish (Costa Rica)"
2024
  msgstr "Spansk (Costa Rica)"
2025
 
2026
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:96
 
2027
  msgid "Spanish (Dominican Republic)"
2028
  msgstr "Spansk (Dominikansk Republik)"
2029
 
2030
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:97
 
2031
  msgid "Spanish (Ecuador)"
2032
  msgstr "Spansk (Ecuador)"
2033
 
2034
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:98
 
2035
  msgid "Spanish (El Salvador)"
2036
  msgstr "Spansk (El Salvador)"
2037
 
2038
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:99
 
2039
  msgid "Spanish (Guatemala)"
2040
  msgstr "Spansk (Guatemala)"
2041
 
2042
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:100
 
2043
  msgid "Spanish (Honduras)"
2044
  msgstr "Spansk (Honduras)"
2045
 
2046
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:101
 
2047
  msgid "Spanish (Mexico)"
2048
  msgstr "Spansk (Mexico)"
2049
 
2050
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:102
 
2051
  msgid "Spanish (Nicaragua)"
2052
  msgstr "Spansk (Nicaragua)"
2053
 
2054
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:103
 
2055
  msgid "Spanish (Panama)"
2056
  msgstr "Spansk (Panama)"
2057
 
2058
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:104
 
2059
  msgid "Spanish (Paraguay)"
2060
  msgstr "Spansk (Paraguay)"
2061
 
2062
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:105
 
2063
  msgid "Spanish (Peru)"
2064
  msgstr "Spansk (Peru)"
2065
 
2066
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:106
 
2067
  msgid "Spanish (Puerto Rico)"
2068
  msgstr "Spansk (Puerto Rico)"
2069
 
2070
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:107
 
2071
  msgid "Spanish (Spain)"
2072
  msgstr "Spansk (Spanien)"
2073
 
2074
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:108
 
2075
  msgid "Spanish (Uruguay)"
2076
  msgstr "Spansk (Uruguay)"
2077
 
2078
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:109
 
2079
  msgid "Spanish (Venezuela)"
2080
  msgstr "Spansk (Venezuela)"
2081
 
2082
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:110
 
2083
  msgid "Swedish"
2084
  msgstr "Svensk"
2085
 
2086
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:111
 
2087
  msgid "Swedish (Finland)"
2088
  msgstr "Svensk (Finland)"
2089
 
2090
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:112
 
2091
  msgid "Swedish (Sweden)"
2092
  msgstr "Svensk (Sverige)"
2093
 
2094
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:113
 
2095
  msgid "Turkish"
2096
  msgstr "Tyrkisk"
2097
 
2098
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:114
 
2099
  msgid "Ukranian"
2100
  msgstr "Ukrainsk"
2101
 
2102
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:159
 
2103
  msgid "Podcast (default)"
2104
  msgstr "Podcast (standard)"
2105
 
2106
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:172
2107
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:195
2108
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:400
 
2109
  msgid "Feed Settings"
2110
  msgstr "Feed-indstillinger"
2111
 
2112
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:181
2113
  #, php-format
 
2114
  msgid "Edit Category Feed: %s"
2115
  msgstr "Redigér kategorifeed: %s"
2116
 
2117
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:196
 
2118
  msgid "iTunes Settings"
2119
  msgstr "iTunes-indstillinger"
2120
 
2121
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:200
2122
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:203
 
2123
  msgid "Other Settings"
2124
  msgstr "Andre indstillinger"
2125
 
2126
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:275
 
2127
  msgid "Configure your custom podcast feed."
2128
  msgstr "Konfigurér dit brugerdefinerede postcastfeed"
2129
 
2130
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:285
 
2131
  msgid "Configure your category feed to support podcasting."
2132
  msgstr "Konfigurér dit kategorifeed, så det understøtter podcasting."
2133
 
2134
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:299
 
2135
  msgid "Enhance Feeds"
2136
  msgstr "<span title=\"Enhance feed\">Udvid feedfunktionalitet</span>"
2137
 
2138
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:302
 
2139
  msgid "Enhance All Feeds"
2140
  msgstr "<span title=\"Enhance all feeds\">Udvid feedfunktionalitet for alle feeds</span>"
2141
 
2142
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:302
 
2143
  msgid "Recommended"
2144
  msgstr "Anbefalet"
2145
 
2146
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:305
 
2147
  msgid "Adds podcasting support to all feeds"
2148
  msgstr "Tilføjer podcastingsupport til alle feeds"
2149
 
2150
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:306
 
2151
  msgid "Allows for Category Podcasting"
2152
  msgstr "Tillad kategoribaseret podcasting"
2153
 
2154
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:306
 
2155
  msgid "Visitors may subscribe to your categories as a podcast"
2156
  msgstr "Besøgende må tilmelde sig din kategorier som podcast"
2157
 
2158
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:307
 
2159
  msgid "Allows for Tag/Keyword Casting"
2160
  msgstr "Giver mulighed for tags-/nøgleord-udsendelser"
2161
 
2162
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:307
 
2163
  msgid "Visitors may subscribe to your tags as a podcast"
2164
  msgstr "Besøgende må tilmelde sig dine tags som podcast"
2165
 
2166
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:310
 
2167
  msgid "Enhance Main Feed Only"
2168
  msgstr "<span title=\"Enhance main feed only\">Udvid kun feedfunktionalitet for hovedfeed</span>"
2169
 
2170
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:313
 
2171
  msgid "Adds podcasting support to your main feed only"
2172
  msgstr "Tilføjer kun podcastingsupport til dit hovedfeed"
2173
 
2174
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:316
 
2175
  msgid "Do Not Enhance Feeds"
2176
  msgstr "<span title=\"Do not Enhance feeds\">Udvid ikke feedfunktionalitet</span>"
2177
 
2178
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:319
 
2179
  msgid "Feed Settings below will only apply to your podcast channel feeds"
2180
  msgstr "Feedindstillingerne nedenfor anvendes kun på dine postcastede kanalfeeds"
2181
 
2182
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:329
 
2183
  msgid "Main Site Feed"
2184
  msgstr "Sitens hovedfeed"
2185
 
2186
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:331
 
2187
  msgid "Main RSS2 Feed"
2188
  msgstr "Sitens hovedfeed i RSS2-format"
2189
 
2190
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:331
 
2191
  msgid "Main RSS 2 Feed"
2192
  msgstr "Sitens hovedfeed i RSS2-format"
2193
 
2194
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:331
2195
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:355
2196
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:390
2197
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:392
 
2198
  msgid "validate"
2199
  msgstr "Validér"
2200
 
2201
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:332
2202
+ msgid "Note: We do not recommend submitting your main site feed to podcast directories such as iTunes. iTunes and many other podcast directories work best with feeds that do not have regular blog posts mixed in."
2203
+ msgstr "Note: Vi anbefaler ikke at indsende dit sites hovedfeed til podcast-kataloger som iTunes. iTunes og mange andre podcast-kataloger fungerer bedst med feeds, som ikke blandes med almindelige blogindlæg."
2204
+
2205
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:339
2206
+ msgid "Podcast Feeds"
2207
+ msgstr "Podcastfeeds"
2208
+
2209
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:344
2210
  msgid "Special Podcast only Feed"
2211
  msgstr "Specielt feed kun for podcasts"
2212
 
2213
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:357
 
2214
  msgid "Edit Podcast Channel"
2215
  msgstr "Redigér podcastkanal"
2216
 
2217
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:357
 
2218
  msgid "edit"
2219
  msgstr "redigér"
2220
 
2221
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:382
 
2222
  msgid "Feed Information"
2223
  msgstr "Feedinformation"
2224
 
2225
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:409
 
2226
  msgid "Feed Title"
2227
  msgstr "Feed-titel"
2228
 
2229
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:414
 
2230
  msgid "leave blank to use default category title"
2231
  msgstr "Udfyldes ikke, hvis du vil bruge standard-kategorititel"
2232
 
2233
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:416
 
2234
  msgid "leave blank to use blog title"
2235
  msgstr "Udfyldes ikke, hvis du vil bruge blogtitel"
2236
 
2237
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:422
 
2238
  msgid "Default Category title:"
2239
  msgstr "Standard-kategorititel:"
2240
 
2241
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:424
 
2242
  msgid "Blog title:"
2243
  msgstr "Blogtitel:"
2244
 
2245
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:430
 
2246
  msgid "Feed Description"
2247
  msgstr "Feedbeskrivelse"
2248
 
2249
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:435
 
2250
  msgid "leave blank to use category description"
2251
  msgstr "udfyldes det ikke, bruges kategoribeskrivelse"
2252
 
2253
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:437
 
2254
  msgid "leave blank to use blog description"
2255
  msgstr "udfyldes det ikke, bruges blogbeskrivelse"
2256
 
2257
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:444
 
2258
  msgid "Feed Landing Page URL"
2259
  msgstr "<span title=\"Feed Landing Page URL\">URL til side, hvor feed skal lande</span>"
2260
 
2261
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:449
 
2262
  msgid "leave blank to use category page"
2263
  msgstr "Udfyld ikke, hvis du vil bruge kategoriside"
2264
 
2265
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:451
 
2266
  msgid "leave blank to use home page"
2267
  msgstr "Udfyldes ikke, hvis du vil bruge Hjem-side"
2268
 
2269
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:454
 
2270
  msgid "Category page URL"
2271
  msgstr "URL til kategoriside"
2272
 
2273
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:463
 
2274
  msgid "FeedBurner Feed URL"
2275
  msgstr "URL for Feedburner-feed"
2276
 
2277
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:466
 
2278
  msgid "leave blank to use current feed"
2279
  msgstr "Udfyldes ikke, hvis du vil bruge aktuelle feed"
2280
 
2281
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:467
 
2282
  msgid "Use this option to redirect this feed to a hosted feed service such as FeedBurner."
2283
  msgstr "Brug denne indstilling til at videresende dette feed til en hostet feedservice så som FeedBurner."
2284
 
2285
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:479
 
2286
  msgid "Bypass Redirect URL"
2287
  msgstr "<span title=\"bypass redirect url\">Omgå redirect-URL</span>"
2288
 
2289
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:487
 
2290
  msgid "Show the most recent"
2291
  msgstr "Vis de seneste"
2292
 
2293
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:490
 
2294
  msgid "episodes / posts per feed (leave blank to use blog default"
2295
  msgstr "episoder/indlæg per feed (hvis det ikke udfyldes, bruges blogstandard"
2296
 
2297
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:492
 
2298
  msgid "Note: Setting above applies only to podcast channel feeds"
2299
  msgstr "Bemærk: Indstillingen overfor anvendes kun på podcastede kanalfeeds"
2300
 
2301
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:499
 
2302
  msgid "RSS2 Image"
2303
  msgstr "RSS2-billede"
2304
 
2305
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:503
2306
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:957
 
 
 
2307
  msgid "preview"
2308
  msgstr "preview"
2309
 
2310
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:505
 
2311
  msgid "Place the URL to the RSS image above."
2312
  msgstr "Indtast URL&#39;en til RSS-billedet ovenfor."
2313
 
2314
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:505
2315
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:959
2316
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:226
2317
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:234
 
 
2318
  msgid "Example"
2319
  msgstr "Eksempel"
2320
 
2321
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:506
 
2322
  msgid "RSS image should be at least 88 and at most 144 pixels wide and at least 31 and at most 400 pixels high in either .gif, .jpg and .png format. A square 144 x 144 pixel image is recommended."
2323
  msgstr "RSS-billedet bør mindst være 88 og højst 144px bred og mindst 31 og højst 400 pixels høj i enten GIF-, JPG- eller PNG-format. Et kvadratisk billede på 144 &times; 144 pixels anbefales."
2324
 
2325
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:509
2326
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:965
 
 
 
2327
  msgid "Upload new image"
2328
  msgstr "Upload nyt billede"
2329
 
2330
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:511
2331
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:967
 
 
 
2332
  msgid "Choose file"
2333
  msgstr "Vælg fil"
2334
 
2335
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:521
 
2336
  msgid "Feed Language"
2337
  msgstr "Feedsprog"
2338
 
2339
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:527
 
2340
  msgid "Blog Default Language"
2341
  msgstr "Bloggens standardsprog"
2342
 
2343
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:537
 
2344
  msgid "Blog Default"
2345
  msgstr "Blogstandard"
2346
 
2347
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:544
 
2348
  msgid "Copyright"
2349
  msgstr "Copyright"
2350
 
2351
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:561
2352
+ msgid "Basic Show Information"
2353
+ msgstr "Grundlæggende informationer om udsendelserne"
2354
+
2355
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:565
2356
+ msgid "Location"
2357
+ msgstr "Sted"
2358
+
2359
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:568
2360
+ msgid "e.g. Cleveland, Ohio"
2361
+ msgstr "fx Cleveland, Ohio"
2362
+
2363
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:572
2364
+ msgid "Episode Frequency"
2365
+ msgstr "Udgivelsesfrekvens for episoderne"
2366
+
2367
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:575
2368
+ msgid "e.g. Weekly"
2369
+ msgstr "fx ugentligt"
2370
+
2371
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:600
2372
  msgid "Redirect URL"
2373
  msgstr "Redirect-URL"
2374
 
2375
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:604
 
2376
  msgid "Note: Category Media Redirect URL is applied to category feeds and pages only. The redirect will also apply to single pages if this is the only category associated with the blog post."
2377
  msgstr "Bemærk: <span title=\"Category Media Redirect URL\">Kategoribaserede medieomdirigerings-URL&#39;er</span> anvendes kun for kategorifeeds og -sider. <span title=\"the redirect\">Omdirigeringen</span> anvendes også på enkelt-sider, hvis det er den eneste kategori, der er knyttet til blogindlægget."
2378
 
2379
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:614
 
2380
  msgid "Episode Entry Box"
2381
  msgstr "Episodepanel"
2382
 
2383
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:618
 
 
 
2384
  msgid "Background Color"
2385
  msgstr "Baggrundsfarve"
2386
 
2387
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:630
 
2388
  msgid "leave blank for default"
2389
  msgstr "Udfyldes ikke, hvis du vil bruge standard"
2390
 
2391
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:632
 
2392
  msgid "Use a distinctive background color for this podcast channel's episode box."
2393
  msgstr "Brug en særlig baggrundsfarve for episodepanelet til denne podcastede kanal."
2394
 
2395
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:643
 
2396
  msgid "Password Protect Podcast Channel"
2397
  msgstr "Kodeordsbeskyt podcastkanal"
2398
 
2399
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:645
 
2400
  msgid "Require visitors to have membership to your blog in order to gain access to this channel's Premium Content."
2401
  msgstr "Kræv, at besøgende skal være medlemmer på din blog, hvis de skal have adgang til denne kanals betalingsindhold."
2402
 
2403
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:651
 
2404
  msgid "Protect Content"
2405
  msgstr "Beskyt indhold"
2406
 
2407
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:653
 
2408
  msgid "Require user to be signed-in to access feed."
2409
  msgstr "Kræv, at bruger er logget ind for at få adgang til feedet."
2410
 
2411
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:655
 
2412
  msgid "User must have the following capability"
2413
  msgstr "Bruger skal have den følgende rettighed"
2414
 
2415
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:680
 
2416
  msgid "Sign In"
2417
  msgstr "Log på"
2418
 
2419
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:684
 
2420
  msgid "Use default label, are you sure?"
2421
  msgstr "Brug standardetiket, er du sikker?"
2422
 
2423
+ # USIKKER OVERSÆTTELSE - UNCERTAIN TRANSLATION
2424
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:700
 
2425
  msgid "Unauthorized Label"
2426
  msgstr "<span title=\"Unauthorized Label - Oversættelse usikker\">Etiket for manglende adgangstilladelse</span>"
2427
 
2428
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:704
 
2429
  msgid "Use default label"
2430
  msgstr "Brug standardetiket"
2431
 
2432
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:707
 
2433
  msgid "Protected Content"
2434
  msgstr "Beskyttet indhold"
2435
 
2436
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:710
 
2437
  msgid "Use a custom label"
2438
  msgstr "Brug standardetiket"
2439
 
2440
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:716
 
2441
  msgid "Add sign in link to message"
2442
  msgstr "Tilføj log på-link til indholdet"
2443
 
2444
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:719
 
2445
  msgid "Label above appears in place of the in-page player and links when the current signed-in user does not have access to the protected content."
2446
  msgstr "Etiketten ovenfor vises i stedet for en afspiller og links på siden, når den aktuelle indloggede bruger ikke har adgang til det beskyttede indhold."
2447
 
2448
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:735
2449
+ msgid "Appearance Settings"
2450
+ msgstr "Indstillinger for udseende"
2451
+
2452
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:739
2453
  msgid "Disable Player"
2454
  msgstr "Deaktivér afspiller"
2455
 
2456
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:742
 
2457
  msgid "Do not display web player or links for this podcast channel."
2458
  msgstr "Vis ikke webafspiller eller links for denne podcastede kanal."
2459
 
2460
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:778
 
2461
  msgid "iTunes Feed Settings"
2462
  msgstr "Indstillinger for iTunes-feed"
2463
 
2464
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:787
2465
+ msgid "Show Advanced iTunes Settings"
2466
+ msgstr "Vis Avancerede iTunes-indstillinger"
2467
+
2468
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:794
2469
  msgid "iTunes Program Subtitle"
2470
  msgstr "iTunes-programundertitel"
2471
 
2472
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:804
 
2473
  msgid "iTunes Program Summary"
2474
  msgstr "iTunes-programresumé"
2475
 
2476
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:806
 
2477
  msgid "Your summary may not contain HTML and cannot exceed 4,000 characters in length."
2478
  msgstr "Dit resumé må ikke indeholde HTML og må højst fylde 4000 tegn."
2479
 
2480
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:815
 
2481
  msgid "iTunes Episode Summary"
2482
  msgstr "iTunes-episoderesumé"
2483
 
2484
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:819
 
2485
  msgid "Optimize iTunes Summary from Blog Posts"
2486
  msgstr "Optimér iTunes-resumé fra blogindlæg"
2487
 
2488
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:819
 
2489
  msgid "We no longer recommend using this setting, see note below"
2490
  msgstr "Vi anbefaler ikke længere at bruge denne indstilling, jf. noten nedenfor"
2491
 
2492
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:822
 
2493
  msgid "Creates a friendlier view of your post/episode content by converting web links and images to clickable links in the iTunes application."
2494
  msgstr "Opretter en mere brugervenlig visning af dit indlægs/din episodes indhold ved at konvertere weblinks og -billeder til klikbare links i iTunes-programmet."
2495
 
2496
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:825
2497
+ msgid "Note: With the recent launch of iTunes web site during the summer of 2010, Optimize iTunes Summary's clickable links do not appear online in the same way they do in the iTunes application. For this reason, we no longer recommend using this feature."
2498
+ msgstr "Note: Med lanceringen af den nye iTunes-website i sommeren 2010, vises de klikbare links til Optimér iTunes-resumé ikke længere på samme måde online, som de gør i iTunes-programmet. Derfor anbefaler vi ikke længere, at man bruger denne funktion."
2499
+
2500
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:829
2501
  msgid "Option Not Available"
2502
  msgstr "Indstilling ikke tilgængelig"
2503
 
2504
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:832
 
2505
  msgid "This feature requires PHP version 5 or newer."
2506
  msgstr "Denne funktion kræver PHP version 5 eller nyere."
2507
 
2508
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:833
2509
  #, php-format
 
2510
  msgid "Your server's version of PHP is %s"
2511
  msgstr "Din servers version af PHP er %s"
2512
 
2513
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:845
 
2514
  msgid "iTunes Program Keywords"
2515
  msgstr "<span title=\"iTunes Program Keywords\">iTunes-programnøgleord</span>"
2516
 
2517
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:849
 
2518
  msgid "Enter up to 12 keywords separated by commas."
2519
  msgstr "Indtast op til 12 nøgleord adskilt af kommaer."
2520
 
2521
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:855
 
2522
  msgid "iTunes Category"
2523
  msgstr "<span title=\"iTunes Category\">iTunes-kategori</span>"
2524
 
2525
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:891
 
2526
  msgid "iTunes Category 2"
2527
  msgstr "<span title=\"iTunes Category 2\">iTunes-kategori 2</span>"
2528
 
2529
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:912
 
2530
  msgid "iTunes Category 3"
2531
  msgstr "<span title=\"iTunes Category 3\">iTunes-kategori 3</span>"
2532
 
2533
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:936
2534
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:373
 
2535
  msgid "iTunes Explicit"
2536
  msgstr "iTunes-<span title=\"eksplicit - upassende indhold\">Eksplicit</span>"
2537
 
2538
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:941
 
2539
  msgid "No - display nothing"
2540
  msgstr "Nej &ndash; vis intet"
2541
 
2542
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:941
 
2543
  msgid "Yes - explicit content"
2544
  msgstr "Ja &ndash; <span title=\"explicit content - upassende indhold\">eksplicit indhold</span>"
2545
 
2546
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:941
 
2547
  msgid "Clean - no explicit content"
2548
  msgstr "Ikke-upassende &ndash; <span title=\"no explicit content - upassende indhold\">intet eksplicit indhold</span>"
2549
 
2550
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:953
 
2551
  msgid "iTunes Image"
2552
  msgstr "iTunes-billede"
2553
 
2554
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:959
 
2555
  msgid "Place the URL to the iTunes image above."
2556
  msgstr "Indtast URL&#39;en til iTunes-billedet ovenfor."
2557
 
2558
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:960
 
2559
  msgid "iTunes prefers square .jpg or .png images that are at 600 x 600 pixels (prevously 300 x 300), which is different than what is specified for the standard RSS image."
2560
  msgstr "iTunes foretrækker kvadratiske JPG- eller PNG-billeder, som er 600 &times; 600 pixels (tidligere 300 &times; 300), hvilket adskiller sig fra, hvad der er specificeret for RSS-standardbillederne."
2561
 
2562
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:962
 
2563
  msgid "Note: It may take some time (days or even a month) for iTunes to cache modified or replaced iTunes images in the iTunes Podcast Directory."
2564
  msgstr "Bemærk: Det kan tage tid (dage eller endda en måned), før iTunes cacher ændrede eller erstattede iTunes-billeder i <span title=\"iTunes Podcast Directory\">iTunes' podcastoversigt</span>."
2565
 
2566
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:963
2567
  #, php-format
 
2568
  msgid "Please contact %s if you are having issues with your image changes not appearing in iTunes."
2569
  msgstr "Kontakt venligst %s, hvis du har problemer med, at dine billedændringer ikke vises på iTunes."
2570
 
2571
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:963
 
2572
  msgid "iTunes Support"
2573
  msgstr "iTunes-support"
2574
 
2575
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:977
 
2576
  msgid "iTunes Talent Name"
2577
  msgstr "iTunes-talentnavn"
2578
 
2579
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:981
 
2580
  msgid "Use blog post author's name for individual episodes."
2581
  msgstr "Brug indlægsforfatters navn som forfatter til individuelle episoder."
2582
 
2583
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:990
 
2584
  msgid "iTunes Email"
2585
  msgstr "iTunes-e-mail"
2586
 
2587
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:994
 
2588
  msgid "iTunes will email this address when your podcast is accepted into the iTunes Directory."
2589
  msgstr "iTunes vil e-maile til denne adresse, når dit podcast er optaget i <span title=\"iTunes Podcast Directory\">iTunes' podcastoversigt</span>."
2590
 
2591
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1002
 
2592
  msgid "iTunes New Feed URL"
2593
  msgstr "<span title=\"iTunes New Feed URL\">URL til nyt iTunes-feed</span>"
2594
 
2595
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1005
 
2596
  msgid "Set iTunes New Feed URL"
2597
  msgstr "Sæt ny feed-URL for iTunes"
2598
 
2599
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1007
2600
+ msgid "The iTunes New Feed URL option works primarily for Apple's iTunes application only, and should only be used if you are unable to implement a HTTP 301 redirect."
2601
+ msgstr "Funktionen Nyt iTunes-feed URL fungerer først og fremmest kun med Apples iTunes-program og bør kun bruges, hvis du ikke kan sætte en HTTP 301-redirect op."
2602
+
2603
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1008
2604
+ msgid "A 301 redirect will route <u>all podcast clients including iTunes</u> to your new feed address."
2605
+ msgstr "En 301-redirect viderestiller <u>alle podcastprogrammer inkl. iTunes</u> til din nye feedadresse."
2606
+
2607
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1012
2608
+ msgid "Changing Your Podcast RSS Feed Address (URL)"
2609
+ msgstr "Ændring af RSS-feedadresse (URL) for dine podcasts"
2610
+
2611
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1016
2612
  msgid "WARNING: Changes made here are permanent. If the New Feed URL entered is incorrect, you will lose subscribers and will no longer be able to update your listing in the iTunes Store."
2613
  msgstr "ADVARSEL: De ændringer, du laver her, er permanente. Hvis den URL'en for dit nye feed er forkert, vil du miste abonnenter og vil ikke længere være i stand til at opdatere <span title=\"your listing in the iTunes store\">iTunes-katalogiseringen af dine podcasts</span> i iTunes-butikken."
2614
 
2615
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1017
 
2616
  msgid "DO NOT MODIFY THIS SETTING UNLESS YOU ABSOLUTELY KNOW WHAT YOU ARE DOING."
2617
  msgstr "ÆNDR IKKE PÅ DENNE INDSTILLING, MED MINDRE DU ER 100 % SIKKER PÅ, HVAD DU ER VED AT GØRE."
2618
 
2619
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1019
2620
  #, php-format
 
2621
  msgid "Apple recommends you maintain the %s tag in your feed for at least two weeks to ensure that most subscribers will receive the new New Feed URL."
2622
  msgstr "Apple anbefaler, at du beholder %s-tagget i dit feed i mindst to uger, så du sikrer dig, at så mange abonnenter som muligt får den nye feed-URL."
2623
 
2624
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1023
 
2625
  msgid "Main RSS2 feed"
2626
  msgstr "Hovedfeed i RSS2-format"
2627
 
2628
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1028
2629
  #, php-format
 
2630
  msgid "%s category feed"
2631
  msgstr "Kategorifeed for %s"
2632
 
2633
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1037
 
2634
  msgid "feed"
2635
  msgstr "feed"
2636
 
2637
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1041
2638
  #, php-format
 
2639
  msgid "The New Feed URL value below will be applied to the %s (%s)."
2640
  msgstr "Værdien for den nye feed-URL nedenfor vil blive anvendt på %s (%s)."
2641
 
2642
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1045
 
2643
  msgid "New Feed URL"
2644
  msgstr "URL til nyt feed"
2645
 
2646
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1048
 
2647
  msgid "Leave blank for no New Feed URL"
2648
  msgstr "Udfyldes kun, hvis du ikke vil angive en ny feed-URL"
2649
 
2650
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1050
 
2651
  msgid "More information regarding the iTunes New Feed URL is available here."
2652
  msgstr "Flere informationer om iTunes' ny feed-URL findes her."
2653
 
2654
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1056
2655
  #, php-format
 
2656
  msgid "Please activate the 'Custom Podcast Channels' Advanced Option to set the new-feed-url for your podcast only feed (%s)"
2657
  msgstr "Aktivér venligst avancerede indstillinger for 'Brugerdefinerede podcastede kanaler' for at angive ny-feed-url&#39;en for feedet udelukkende med podcasts (%s)"
2658
 
2659
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:1058
2660
  #, php-format
 
2661
  msgid "Please navigate to the 'Custom Podcast Channels' section to set the new-feed-url for your podcast only feed (%s)"
2662
  msgstr "Gå venligst til sektionen med 'Brugerdefinerede podcastede kanaler' for at angive ny-feed-url&#39;en for feedet udelukkende med podcasts (%s)"
2663
 
2664
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:134
2665
  #, php-format
 
2666
  msgid "%d URLs updated successfully."
2667
  msgstr "%d URL'er opdateret med succes."
2668
 
2669
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:136
2670
  #, php-format
 
2671
  msgid "%d URLs were not updated."
2672
  msgstr "%d URL#&39;er blev ikke opdateret."
2673
 
2674
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:138
 
2675
  msgid "Nothing specified to find."
2676
  msgstr "Der blev ikke angivet noget at finde."
2677
 
2678
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:145
 
2679
  msgid "WARNING: Please backup your database before proceeding. Blubrry PowerPress is not responsibile for any lost or damaged data resulting from this Find and Replace tool."
2680
  msgstr "ADVARSEL: Tag venligst en sikkerhedskopi, inden du fortsætter. Blubrry PowerPress er ikke ansvarlig for tabte eller ødelagte data, som denne Find og erstat-funktion måtte medføre."
2681
 
2682
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:177
2683
+ msgid ""
2684
+ "WARNING: Verification prevents changes if the URL entered is invalid.\\n"
2685
+ "\\n"
2686
+ "Are you sure you do not want to verify the URLs?"
2687
+ msgstr ""
2688
+ "ADVARSEL: Bekræftelse forhindrer ændringer, hvis URL&#39;en er ugyldig.\\n"
2689
+ "\\n"
2690
+ "Er du sikker på, at du ikke vil bekræfte URL&#39;en?"
2691
+
2692
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:183
2693
+ msgid ""
2694
+ "WARNING: You are about to make permanent changes to your database.\\n"
2695
+ "\\n"
2696
+ "Are you sure you wish to continue?"
2697
+ msgstr ""
2698
+ "ADVARSEL: Du skal til at lave permanente ændringer i din database.\\n"
2699
+ "\\n"
2700
+ "Er du sikker på, du vil fortsætte?"
2701
+
2702
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:216
2703
  msgid "Find and Replace Episode URLs"
2704
  msgstr "Find og erstat i episode-URL&#39;er"
2705
 
2706
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:218
 
 
2707
  msgid "Find and replace complete or partial segments of media URLs. Useful if you move your media to a new web site or service."
2708
  msgstr "Find og erstat hele eller dele af medie-URL&#39;er. Kan bruges, hvis du flytter dine medier til et nyt website eller udbyder."
2709
 
2710
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:222
 
2711
  msgid "Find in URL"
2712
  msgstr "Find i URL"
2713
 
2714
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:225
2715
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:233
 
2716
  msgid "Modify"
2717
  msgstr "Ændr"
2718
 
2719
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:230
 
2720
  msgid "Replace with"
2721
  msgstr "Erstat med"
2722
 
2723
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:246
 
2724
  msgid "Preview Changes"
2725
  msgstr "Preview ændringer"
2726
 
2727
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:246
 
2728
  msgid "Change Results"
2729
  msgstr "<span title=\"Change Results\">Resultat efter ændringer</span>"
2730
 
2731
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:248
2732
  #, php-format
 
2733
  msgid "Found %d results with \"%s\""
2734
  msgstr "Fandt %d resultater med \"%s"
2735
 
2736
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:255
 
2737
  msgid "Edit Post"
2738
  msgstr "Redigér indlæg"
2739
 
2740
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:273
 
2741
  msgid "Found"
2742
  msgstr "Fundet"
2743
 
2744
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:276
 
2745
  msgid "Replace"
2746
  msgstr "Erstat"
2747
 
2748
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:277
 
2749
  msgid "test link"
2750
  msgstr "Test-link"
2751
 
2752
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:296
 
2753
  msgid "Verify modified URLs"
2754
  msgstr "Bekræft ændrede URL&#39;er"
2755
 
2756
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:297
 
2757
  msgid "Does not change media URL if link is not found or invalid"
2758
  msgstr "Ændrer ikke medie-URL&#39;er, hvis linket ikke findes eller er ugyldigt"
2759
 
2760
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:301
 
 
 
2761
  msgid "PowerPress Tools"
2762
  msgstr "PowerPress-værktøjer"
2763
 
2764
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:305
2765
  #, php-format
 
2766
  msgid "We recommend using the %s plugin to backup your database before using this Find and Replace tool."
2767
  msgstr "Vi anbefaler, at du bruger %s-pluginnet til at tage sikkerhedskopi af din database, førend du bruger denne Find og erstat-funktion."
2768
 
2769
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-find-replace.php:305
 
2770
  msgid "WP-DB-Backup"
2771
  msgstr "WP-DB-Backup"
2772
 
2773
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:78
2774
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:80
2775
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:89
2776
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:98
2777
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:100
2778
+ msgid "Blubrry Media Statistics"
2779
+ msgstr "Blubrrys mediestatistik"
2780
+
2781
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:81
2782
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:128
2783
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:312
2784
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:470
2785
  msgid "You do not have sufficient permission to manage options."
2786
  msgstr "Du har ikke tilstrækkelige rettigheder til at ændre indstillinger."
2787
 
2788
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:82
2789
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:129
2790
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:152
2791
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:300
2792
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:452
2793
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:456
2794
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:615
2795
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:646
 
2796
  msgid "Close"
2797
  msgstr "Luk"
2798
 
2799
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:90
 
2800
  msgid "You do not have sufficient permission to view media statistics."
2801
  msgstr "Du har ikke tilstrækkelige rettigheder til at se mediestatistikken."
2802
 
2803
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:111
2804
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:552
2805
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:625
 
2806
  msgid "You do not have sufficient permission to upload media."
2807
  msgstr "Du har ikke tilstrækkelige rettigheder til at uploade medier."
2808
 
2809
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:125
2810
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:127
2811
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:137
2812
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:139
2813
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:180
2814
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:211
 
2815
  msgid "Select Media"
2816
  msgstr "Vælg medie"
2817
 
2818
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:140
 
2819
  msgid "Wait a sec! This feature is only available to Blubrry Podcast paid hosting members."
2820
  msgstr "Vent et øjeblik! Denne funktion er kun tilgængelig for medlemmer, der betaler for at bruge Blubrry Podcast på vores server."
2821
 
2822
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:142
2823
  #, php-format
 
2824
  msgid "Join our community to get free podcast statistics and access to other valuable %s."
2825
  msgstr "Slut dig til vores fællesskab og få gratis podcast-statistik og adgang til andre værdifulde %s."
2826
 
2827
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:143
 
2828
  msgid "services"
2829
  msgstr "tjenester"
2830
 
2831
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:147
2832
  #, php-format
 
2833
  msgid "Our %s PowerPress makes podcast publishing simple. Check out the %s on our exciting three-step publishing system!"
2834
  msgstr "Vores %s PowerPress gør udgivelse af podcast simpelt. Tjek %s om vores fantastiske tretrins udgivelsessystem!"
2835
 
2836
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:148
 
2837
  msgid "podcast-hosting integrated"
2838
  msgstr "podcasthosting-integrerende"
2839
 
2840
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:149
 
2841
  msgid "video"
2842
  msgstr "video"
2843
 
2844
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:171
 
2845
  msgid "An unknown error occurred deleting media file."
2846
  msgstr "En ukendt fejl opstod i forsøget på at slette mediefil."
2847
 
2848
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:206
 
2849
  msgid "Are you sure you want to delete this media file?"
2850
  msgstr "Er du sikker på, at du vil slette denne mediefil?"
2851
 
2852
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:216
2853
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:273
 
2854
  msgid "Upload Media File"
2855
  msgstr "Upload mediefil"
2856
 
2857
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:217
 
2858
  msgid "Select from media files uploaded to blubrry.com"
2859
  msgstr "Vælg blandt mediefiler, der er uploadet til blubrry.com"
2860
 
2861
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:242
 
2862
  msgid "Media Published within the past 30 days"
2863
  msgstr "Mediefiler udgivet inden de sidste 30 dage"
2864
 
2865
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:253
 
2866
  msgid "Published on"
2867
  msgstr "Udgivet den"
2868
 
2869
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:257
2870
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:262
 
2871
  msgid "Select"
2872
  msgstr "Vælg"
2873
 
2874
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:279
2875
  #, php-format
 
2876
  msgid "You have uploaded %s (%s available) of your %s limit."
2877
  msgstr "Du har uploadet %s (%s til rådighed) af din kvote på %s."
2878
 
2879
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:286
2880
  #, php-format
 
2881
  msgid "You are hosting %s (%s available) of your %s/30 day limit."
2882
  msgstr "Du har %s liggende på serveren (%s til rådighed) af din 30-dages kvote på %s"
2883
 
2884
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:293
2885
  #, php-format
 
2886
  msgid "Your limit will adjust on %s to %s (%s available)."
2887
  msgstr "Din kvote vil blive ændret den %s til %s (%s til rådighed)."
2888
 
2889
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:360
 
2890
  msgid "currently not available"
2891
  msgstr "pt. ikke tilgængelig"
2892
 
2893
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:362
2894
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:580
 
2895
  msgid "Unable to find podcasts for this account."
2896
  msgstr "Kunne ikke finde denne kontos podcasts."
2897
 
2898
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:397
 
2899
  msgid "You must select a program to continue."
2900
  msgstr "Du skal vælge et program for at kunne fortsætte."
2901
 
2902
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:409
 
2903
  msgid "Please select your podcast program to continue."
2904
  msgstr "Vælg venligst dit podcastprogram for at kunne fortsætte."
2905
 
2906
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:417
 
2907
  msgid "No podcasts for this account are listed on blubrry.com."
2908
  msgstr "Denne konto har ingen podcasts listet på blubrry.com."
2909
 
2910
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:429
 
2911
  msgid "Authentication failed."
2912
  msgstr "<span title=\"authentication\">Brugerbekræftelse</span> mislykkedes."
2913
 
2914
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:434
2915
+ msgid "Click Here For Help"
2916
+ msgstr "Klik her for hjælp"
2917
+
2918
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:449
2919
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:453
2920
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:469
2921
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:478
2922
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:497
2923
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:504
2924
+ msgid "Blubrry Services Integration"
2925
+ msgstr "Blubrrys service-integration"
2926
+
2927
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:454
2928
  msgid "Settings Saved Successfully!"
2929
  msgstr "Indstillinger gemt!"
2930
 
2931
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:507
 
2932
  msgid "Blubrry User Name (Email)"
2933
  msgstr "Blubrry-brugernavn (e-mail)"
2934
 
2935
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:511
 
2936
  msgid "Blubrry Password"
2937
  msgstr "Blubrry-adgangskode"
2938
 
2939
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:514
 
2940
  msgid "Select Blubrry Services"
2941
  msgstr "Vælg Blubrry-tjenester"
2942
 
2943
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:516
 
2944
  msgid "Statistics Integration only"
2945
  msgstr "Kun statistikintegration"
2946
 
2947
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:519
 
2948
  msgid "Statistics and Hosting Integration (Requires Blubrry Hosting Account)"
2949
  msgstr "Integration af statistik og hosting (kræver en Blubrry-hostingkonto)"
2950
 
2951
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:526
 
2952
  msgid "Blubrry Program Keyword"
2953
  msgstr "<span title=\"Blubrry Program Keyword\">Blubrry-programnøgleord</span>"
2954
 
2955
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:528
 
2956
  msgid "Select Program"
2957
  msgstr "Vælg program"
2958
 
2959
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:537
 
2960
  msgid "Remove Blubrry Services Integration, are you sure?"
2961
  msgstr "Fjern Blubrry-serviceintegration &ndash; Er du sikker?"
2962
 
2963
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:538
 
2964
  msgid "Save"
2965
  msgstr "Gem"
2966
 
2967
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:539
2968
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:700
 
2969
  msgid "Cancel"
2970
  msgstr "Annullér"
2971
 
2972
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:551
2973
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:609
2974
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:610
2975
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:635
 
2976
  msgid "Uploader"
2977
  msgstr "Uploader"
2978
 
2979
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:564
 
2980
  msgid "This feature is available to Blubrry Hosting users only."
2981
  msgstr "Denne funktion er kun tilgængelig for brugere af Blubrry Hosting."
2982
 
2983
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:606
 
2984
  msgid "Unable to obtain upload session."
2985
  msgstr "Kunne ikke etablere upload-session."
2986
 
2987
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:634
 
2988
  msgid "Upload Complete"
2989
  msgstr "Upload fuldført"
2990
 
2991
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:639
2992
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:725
 
 
 
 
 
 
2993
  msgid "File"
2994
  msgstr "Fil"
2995
 
2996
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-jquery.php:677
 
2997
  msgid "WordPress"
2998
  msgstr "PowerPress"
2999
 
3000
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:132
 
3001
  msgid "Modify existing podcast episode"
3002
  msgstr "Redigér eksisterende podcastepisode"
3003
 
3004
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:151
 
3005
  msgid "Podcast episode will be removed from this post upon save"
3006
  msgstr "Podcastepisode vil blive fjernet fra dette indlæg, når det gemmes"
3007
 
3008
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:165
 
 
 
 
 
 
 
3009
  msgid "Browse Media File"
3010
  msgstr "Gennemse for mediefil"
3011
 
3012
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:165
 
3013
  msgid "Browse Media Files"
3014
  msgstr "Gennemse for mediefiler"
3015
 
3016
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:167
 
3017
  msgid "Verify"
3018
  msgstr "Bekræft"
3019
 
3020
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:167
 
3021
  msgid "Verify Media"
3022
  msgstr "Tjek medie"
3023
 
3024
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:168
 
3025
  msgid "Checking Media"
3026
  msgstr "Tjekker medie"
3027
 
3028
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:171
 
3029
  msgid "Media file hosted by blubrry.com."
3030
  msgstr "Mediefil hostet af blubrry.com"
3031
 
3032
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:172
 
3033
  msgid "Remove Blubrry.com hosted media file"
3034
  msgstr "Fjern mediefil hostet på Blubrry.com"
3035
 
3036
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:172
 
3037
  msgid "remove"
3038
  msgstr "fjern"
3039
 
3040
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:177
3041
+ msgid "Video is HD (720p/1080i/1080p)"
3042
+ msgstr "Video er HD (720p/1080i/1080p)"
3043
+
3044
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:185
3045
  msgid "Do not display player and media links"
3046
  msgstr "Vis ikke afspiller og medielinks"
3047
 
3048
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:191
 
3049
  msgid "Do not display player"
3050
  msgstr "Vis ikke afspiller"
3051
 
3052
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:197
 
3053
  msgid "Do not display media links"
3054
  msgstr "Vis ikke medielinks"
3055
 
3056
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:206
3057
+ msgid "Alt WebM URL"
3058
+ msgstr "Alternativ WebM-URL"
3059
+
3060
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:211
3061
+ msgid "For HTML5 Video fallback, enter an alternative WebM media URL above. (optional)"
3062
+ msgstr "For HTML5-afspiller med mulighed for at falde tilbage til downloadlink, indtast en URL til en alternativ WebM-medie ovenfor. (valgfri)"
3063
+
3064
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:219
3065
  msgid "File Size"
3066
  msgstr "Filstørrelse"
3067
 
3068
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:227
3069
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:242
 
 
 
3070
  msgid "Specify"
3071
  msgstr "Angiv"
3072
 
3073
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:229
 
3074
  msgid "in bytes"
3075
  msgstr "i bytes"
3076
 
3077
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:249
 
3078
  msgid "Not specified"
3079
  msgstr "Ikke-angivet"
3080
 
3081
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:269
3082
+ msgid "Poster Image"
3083
+ msgstr "Plakatbillede"
3084
+
3085
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:272
3086
+ msgid "Select Poster Image"
3087
+ msgstr "Vælg plakatbillede"
3088
+
3089
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:275
3090
+ msgid "Poster image for video (m4v, mp4, ogv, webm, etc..). e.g. http://example.com/path/to/image.jpg"
3091
+ msgstr "Plakatbillede for video (m4v, mp4, ogv, webm, osv.). fx http://eksempel.dk/sti/til/billede.jpg"
3092
+
3093
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:286
3094
+ msgid "Player Size"
3095
+ msgstr "Afspillerstørrelse"
3096
+
3097
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:301
3098
  msgid "Media Embed"
3099
  msgstr "<span title=\"media embed\">Indsættelse af medie</span>"
3100
 
3101
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:313
 
3102
  msgid "iTunes Keywords"
3103
  msgstr "<span title=\"iTunes keywords\">iTunes-nøgleord</span>"
3104
 
3105
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:318
 
3106
  msgid "Enter up to 12 keywords separated by commas. Leave blank to use your blog post tags."
3107
  msgstr "Indtast op til 12 kommaseparerede nøgleord. Dine blogindlægs tags bruges, hvis du ikke udfylder dette felt."
3108
 
3109
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:328
 
3110
  msgid "iTunes Subtitle"
3111
  msgstr "<span title=\"iTunes subtitle\">iTunes-undertitel</span>"
3112
 
3113
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:333
 
3114
  msgid "Your subtitle may not contain HTML and cannot exceed 250 characters in length. Leave blank to use the first 250 characters of your blog post."
3115
  msgstr "Din undertitel må ikke indeholde HTML, og længden kan højest være på 250 tegn. De første 250 tegn af dit blogindlæg bruges, hvis du ikke udfylder dette felt."
3116
 
3117
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:343
 
3118
  msgid "iTunes Summary"
3119
  msgstr "iTunes-resumé"
3120
 
3121
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:348
 
3122
  msgid "Your summary may not contain HTML and cannot exceed 4,000 characters in length. Leave blank to use your blog post."
3123
  msgstr "Dit resumé må ikke indeholde HTML, og længden må ikke overskride 4.000 tegn. Dit blogindlæg bruges, hvis du ikke udfylder feltet."
3124
 
3125
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:358
 
3126
  msgid "iTunes Author"
3127
  msgstr "<span title=\"iTunes author\">iTunes-forfatter</span>"
3128
 
3129
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:363
 
3130
  msgid "Leave blank to use post author name."
3131
  msgstr "Navnet på indlæggets forfatter bruges, hvis du ikke udfylder feltet."
3132
 
3133
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:377
 
3134
  msgid "Use feed's explicit setting"
3135
  msgstr "Brug feedets konkrete indstillinger"
3136
 
3137
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:377
 
3138
  msgid "no - display nothing"
3139
  msgstr "nej &ndash; vis intet"
3140
 
3141
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:377
 
3142
  msgid "yes - explicit content"
3143
  msgstr "Ja &ndash; <span title=\"explicit content - upassende indhold\">eksplicit indhold</span>"
3144
 
3145
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:377
 
3146
  msgid "clean - no explicit content"
3147
  msgstr "ren - ingen \"direkte sprog m.m."
3148
 
3149
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:502
3150
+ msgid "Select poster image from your computer."
3151
+ msgstr "Vælg billede med plakat på din computer."
3152
+
3153
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:10
3154
  msgid "Welcome to Blubrry PowerPress"
3155
  msgstr "Velkommen til Blubrry PowerPress"
3156
 
3157
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:13
 
3158
  msgid "Welcome to Blubrry PowerPress. In order to give each user the best experience, we designed two modes; Simple and Advanced. Please select the mode that is most appropriate for your needs."
3159
+ msgstr "Velkommen til Blubrry PowerPress. For at kunne give alle brugere den bedste oplevelse har vi lavet to niveauer: Simple funktioner og Avancerede funktioner. Vælg venligst det niveau, som passer bedst til dine behov."
3160
 
3161
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:18
 
3162
  msgid "Select Mode"
3163
  msgstr "Vælg niveau for funktioner"
3164
 
3165
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:21
 
3166
  msgid "Simple Mode"
3167
  msgstr "Simple funktioner"
3168
 
3169
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:22
 
3170
  msgid "Simple Mode is intended for podcasters who are just starting out and feel a bit intimidated by all of the possible options and settings. This mode is perfect for someone who is recording in one format (e.g. mp3) and wants to keep things simple."
3171
  msgstr "Simple funktioner er beregnet til podcasters, som lige er begyndt og føler sig en smule skræmt over alle de forskellige muligheder og indstillinger. Simple funktioner passer fint til den, der optager i et enkelt format (fx MP3) og ønsker, at tingene skal være simple."
3172
 
3173
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:23
3174
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:31
 
3175
  msgid "Features Include"
3176
  msgstr "Funktioner inkluderer"
3177
 
3178
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:24
 
3179
  msgid "Only the bare essential settings"
3180
  msgstr "Kun den helt nødvendige indstillinger"
3181
 
3182
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:25
 
3183
  msgid "Important feed and iTunes settings"
3184
  msgstr "Vigtige indstillinger for feeds og iTunes"
3185
 
3186
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:26
 
3187
  msgid "Player and download links added to bottom of episode posts"
3188
  msgstr "Afspiller og downloadlinks tilføjet i slutningen af episodeindlæg"
3189
 
3190
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:29
3191
+ msgid "Advanced Mode"
3192
+ msgstr "Avancerede funktioner"
3193
+
3194
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:30
3195
  msgid "Advanced Mode gives you all of the features packaged in Blubrry PowerPress. This mode is perfect for someone who may want to distribute multiple versions of their podcast, customize the web player and download links, or import data from a previous podcasting platform."
3196
  msgstr "Avancerede funktioner giver dig adgang til alle de funktioner, Blubrry PowerPress tilbyder. Avancerede funktioner passer fint til den, der måtte ønske at distribuere forskellige podcastversioner og tilpasse webafspilleren og downloadlinks, eller som måtte ønske at importere data fra en tidligere anvendt podcastingplatform."
3197
 
3198
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:32
 
3199
  msgid "Advanced Settings"
3200
  msgstr "Avancerede indstillinger"
3201
 
3202
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:32
 
3203
  msgid "Tweak additional settings."
3204
  msgstr "Tilpas flere indstillinger."
3205
 
3206
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:33
 
3207
  msgid "Presentation Settings"
3208
  msgstr "Indstillinger for præsentation"
3209
 
3210
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:33
 
3211
  msgid "Customize web player and media download links"
3212
  msgstr "Tilpas webafspiller og mediedownloadlinks"
3213
 
3214
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:34
 
3215
  msgid "Extensive Feed Settings"
3216
  msgstr "<span title=\"extensive feed settings\">Indstillinger for feeds med udvidet funktionalitet</span>"
3217
 
3218
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:34
 
3219
  msgid "Tweak all available feed settings"
3220
  msgstr "Tilpas alle tilgængelige feedindstillinger"
3221
 
3222
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mode.php:42
 
3223
  msgid "Set Mode and Continue"
3224
  msgstr "Vælg niveau for funktioner og fortsæt"
3225
 
3226
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:234
 
3227
  msgid "HTTP return code"
3228
  msgstr "HTTP's <span title=\"HTTP return code\">svarkode</span>"
3229
 
3230
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:248
3231
  #, php-format
 
3232
  msgid "Error importing %s for blog post %s:"
3233
  msgstr "Fejl under import af %s knyttet til blogindlægget %s:"
3234
 
3235
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:256
3236
  #, php-format
 
3237
  msgid "Episode %s for blog post %s imported to feed %s."
3238
  msgstr "Episode %s knyttet til blogindlægget %s importeret til feedet %s."
3239
 
3240
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:290
 
3241
  msgid "Duration of each mp3 detected."
3242
  msgstr "<span title=\"duration\">Varighed</span> for hver MP3 aflæst."
3243
 
3244
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:295
3245
  #, php-format
 
3246
  msgid "Imported %d episode(s)."
3247
  msgstr "Importerede %d episode(r)."
3248
 
3249
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:297
3250
  #, php-format
 
3251
  msgid "Found %d error(s)."
3252
  msgstr "Fandt %d fejl."
3253
 
3254
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:304
 
3255
  msgid "Episode Title"
3256
  msgstr "Episodetitel"
3257
 
3258
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:305
 
3259
  msgid "Date"
3260
  msgstr "Dato"
3261
 
3262
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:307
 
 
3263
  msgid "Feed: (podcast)"
3264
  msgstr "Feed: (podcast)"
3265
 
3266
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:314
 
 
 
 
3267
  msgid "Feed"
3268
  msgstr "Feed"
3269
 
3270
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:317
3271
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:733
 
 
 
3272
  msgid "No Import"
3273
  msgstr "Ingen import"
3274
 
3275
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:329
3276
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:331
3277
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:548
 
 
3278
  msgid "Podcast Feed (default)"
3279
  msgstr "Podcastfeed (standard)"
3280
 
3281
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:337
3282
  #, php-format
 
3283
  msgid "We found blog posts that have as many as %d media files. You may need to create %d more Custom Feed%s in order to import all of the media."
3284
  msgstr "Vi fandt blogindlæg, som har helt op til %d mediefiler. Du vil være nødt til at oprette %d flere brugerdefinerede feed%s for at kunne importere alle disse mediefiler."
3285
 
3286
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:395
 
 
3287
  msgid "Sorry, you may only select one media file per post per feed."
3288
  msgstr "Beklager, men du kan kun vælge én mediefil per indlæg per feed."
3289
 
3290
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:409
 
 
3291
  msgid "Select \"No Import\" option for all media files?"
3292
  msgstr "Vælg indstillingen \"Ingen import\" for alle mediefiler?"
3293
 
3294
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:452
 
 
 
 
 
3295
  msgid "Import Episodes"
3296
  msgstr "Importér episoder"
3297
 
3298
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:458
 
3299
  msgid "No episodes found to import."
3300
  msgstr "Der blev ikke fundet episoder, der kunne importeres."
3301
 
3302
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:465
 
 
3303
  msgid "Select the media file under each feed for each episode you wish to import."
3304
  msgstr "Vælge mediefilerne under hvert feed for hver episode du ønsker at importere."
3305
 
3306
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:653
 
 
3307
  msgid "present"
3308
  msgstr "findes"
3309
 
3310
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:655
 
 
3311
  msgid "imported"
3312
  msgstr "importeret"
3313
 
3314
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:712
 
3315
  #, php-format
 
3316
  msgid "Importable episodes highlighted in %s with asterisks *."
3317
  msgstr "Episoder, der kan importeres, er fremhævet i %s med asteriskerne *."
3318
 
3319
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:713
 
 
3320
  msgid "red"
3321
  msgstr "rød"
3322
 
3323
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:716
 
3324
  msgid "Select Only:"
3325
  msgstr "Vælg kun:"
3326
 
3327
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:738
 
3328
  msgid "Types of media found:"
3329
  msgstr "Medietyper fundet:"
3330
 
3331
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:762
3332
  #, php-format
 
3333
  msgid "There are %s media files that can be imported with a total of %d blog post podcast episodes."
3334
  msgstr "Der er %s mediefiler, som kan importeres, med i alt %d podcastepisoder knyttet til blogindlæggene."
3335
 
3336
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:773
 
3337
  msgid "Detect duration for mp3 media. (expect script to take a while with this option)"
3338
  msgstr "Aflæs <span title=\"duration\">varighed</span> for MP3-medier. (Forvent, at det tager nogen tid, når denne indstilling er valgt)"
3339
 
3340
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:780
 
 
3341
  msgid "Filter Results"
3342
  msgstr "Filtrering af resultater"
3343
 
3344
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:781
 
 
3345
  msgid "Include Only"
3346
  msgstr "Inkludér kun"
3347
 
3348
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:782
 
3349
  msgid "leave blank for all media"
3350
  msgstr "udfyldes ikke, hvis alle medier skal medtages"
3351
 
3352
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:783
 
3353
  msgid "Specify the file extensions to include separated by commas (e.g. mp3, m4v)."
3354
  msgstr "Angiv filtyperne, der skal inkluderes, adskilt af kommaerne (fx MP3, M4V)."
3355
 
3356
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-mt.php:786
 
3357
  msgid "Filter Episodes"
3358
  msgstr "Filtrér episoder"
3359
 
3360
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:18
 
3361
  msgid "Update services added successfully."
3362
  msgstr "Updatetjenester tilføjet med succes."
3363
 
3364
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:22
 
3365
  msgid "No update services selected to add."
3366
  msgstr "Du valgte ikke nogen updatetjenester til at blive tilføjet."
3367
 
3368
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:29
 
3369
  msgid "Ping-o-Matic!"
3370
  msgstr "Ping-o-Matic!"
3371
 
3372
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:30
 
3373
  msgid "Google Blog Search"
3374
  msgstr "Google Blogsøgning"
3375
 
3376
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:31
 
3377
  msgid "WebLogs"
3378
  msgstr "WebLogs"
3379
 
3380
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:33
 
3381
  msgid "WebLogs Audio"
3382
  msgstr "WebLogs Audio"
3383
 
3384
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:38
 
3385
  msgid "Add Update services / Ping Sites"
3386
  msgstr "Tilføj updatetjenester/pingsites"
3387
 
3388
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:40
 
3389
  msgid "Notify the following Update Services / Ping Sites when you create a new blog post / podcast episode."
3390
  msgstr "Giv de følgende updatetjenester/pingsites besked, når du opretter et nyt blogindlæg/podcastepisode"
3391
 
3392
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:44
 
3393
  msgid "Update Blog Searvices"
3394
  msgstr "Opdatér blogtjenester"
3395
 
3396
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:46
 
3397
  msgid "Select the blog service you would like to notify."
3398
  msgstr "Vælg de blogtjenester, du gerne vil give besked."
3399
 
3400
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:68
 
3401
  msgid "Update Podcast Searvices"
3402
  msgstr "Opdatér podcasttjenester"
3403
 
3404
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:70
 
3405
  msgid "Select the podcasting service you would like to notify."
3406
  msgstr "Vælg de podcastingtjenester, du gerne vil give besked."
3407
 
3408
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:93
 
3409
  msgid "You can manually add ping services by going to the to the \"Update Services\" section found in the <b>WordPress Settings</b> &gt; <b>Writing</b> page."
3410
  msgstr "Du kan selv tilføje pingtjenester ved at gå til \"Opdateringstjenester\" under <b>Skrivning</b> i <b>WordPress' Indstillinger</b>."
3411
 
3412
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-ping-sites.php:96
 
3413
  msgid "Add Selected Update Services"
3414
  msgstr "Tilføj valgte updatetjenester"
3415
 
3416
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:10
3417
+ msgid "Flow Player Classic is an open source flash player that supports both audio (mp3 and m4a) and video (mp4, m4v and flv) media files. It includes all the necessary features for playback including a play/pause button, scrollable position bar, ellapsed time, total time, mute button and volume control."
3418
+ msgstr "Flow Player Classic er en open source-flashafspiller, der understøtter såvel audio- (MP3 og M4A) som videomediefiler (MP4, M4V og FLV). Det har alle de nødvendige afspilningsfunktioner inkl. en afspil/pause-knap, en forløbsbjælke, hvor man selv kan flytte forløbsikonet, forløbet tid, tid i alt, en mute-knap og volumenkontrol."
3419
+
3420
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:14
3421
+ msgid "Flow Player Classic was chosen as the default player in Blubrry PowerPress because if its backwards compatibility with older versions of Flash and support for both audio and video."
3422
+ msgstr "Vi har valgt Flow Player Classic som standardafspilleren i Blubrry PowerPress, fordi den er bagudkompatibel med ældre versioner af Flash, og fordi den understøtter både audio og video."
3423
+
3424
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:177
3425
  msgid "Blubrry PowerPress Player Options"
3426
  msgstr "Indstillinger for Blubrry PowerPress' afspiller"
3427
 
3428
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:178
 
3429
  msgid "Select the media player you would like to use."
3430
  msgstr "Vælg den medieafspiller, du ønsker at bruge."
3431
 
3432
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:190
3433
+ msgid "Flow Player Classic"
3434
+ msgstr "Flow Player Classic"
3435
+
3436
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:191
3437
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:205
3438
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:282
3439
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:294
3440
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:306
3441
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:318
3442
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:332
3443
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:346
 
 
3444
  msgid "Activate and Configure Now"
3445
  msgstr "Aktivér og konfigurér nu"
3446
 
3447
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:204
3448
+ msgid "HTML5 Video Player"
3449
+ msgstr "HTML5-videafspiller"
3450
+
3451
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:214
3452
+ msgid "HTML5 Video is an element introduced in the latest HTML specification (HTML5) for the purpose of playing videos."
3453
+ msgstr "HTML5 Video er et element introduceret i den seneste HTML-specifikation (HTML5) til afspilning af videoer."
3454
+
3455
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:217
3456
+ msgid "HTML5 Video Player is not format specific. See table below for a list of browsers and supported formats."
3457
+ msgstr "HTML5-videoafspiller er ikke bundet til noget format. Se tabellen nedenfor for en liste med browsere og understøttede formater."
3458
+
3459
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:221
3460
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:362
3461
+ msgid "Browser"
3462
+ msgstr "Browser"
3463
+
3464
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:227
3465
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:368
3466
+ msgid "Internet Explorer"
3467
+ msgstr "Internet Explorer"
3468
+
3469
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:233
3470
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:374
3471
+ msgid "Firefox"
3472
+ msgstr "Firefox"
3473
+
3474
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:239
3475
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:380
3476
+ msgid "Chrome"
3477
+ msgstr "Chrome"
3478
+
3479
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:245
3480
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:386
3481
+ msgid "Opera"
3482
+ msgstr "Opera"
3483
+
3484
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:251
3485
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:392
3486
+ msgid "Safari"
3487
+ msgstr "Safari"
3488
+
3489
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:257
3490
+ msgid "Chrome supported H.264 in previous versions, but no longer supports the format."
3491
+ msgstr "Chrome understøttede H.264 i tidligere versioner, men gør det ikke længere."
3492
+
3493
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:258
3494
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:399
3495
+ msgid "Safari requires QuickTime installed for HTML5 playback."
3496
+ msgstr "Safari kræver QuickTime installeret for at kunne afspille HTML5."
3497
+
3498
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:260
3499
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:401
3500
+ msgid "Flow Player Classic is used when HTML5 support is not available."
3501
+ msgstr "Flow Player Classic bruges, når HTML5-understøttelse ikke er tilgængelig."
3502
+
3503
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:281
3504
+ msgid "Flow Player Classic (default)"
3505
+ msgstr "Flow Player Classic (standard)"
3506
+
3507
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:293
3508
  msgid "1 Pixel Out Audio Player"
3509
  msgstr "1 Pixel Out Audio Player"
3510
 
3511
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:301
 
3512
  msgid "1 Pixel Out Audio Player is a popular customizable audio (mp3 only) flash player. Features include an animated play/pause button, scrollable position bar, ellapsed/remaining time, volume control and color styling options."
3513
  msgstr "1 Pixel Out Audio Player er en populær audioflashafspiller, der kan tilpasses (understøtter kun MP3). Funktionerne inkluderer en animeret afspil/pause-knap, en forløbsbjælke, hvor man selv kan flytte forløbsikonet, forløbet tid, tid tilbage og volumenkontrol. Desuden er der indstillinger, så man kan tilpasse farverne."
3514
 
3515
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:305
 
3516
  msgid "Mp3 Player Maxi"
3517
  msgstr "Mp3 Player Maxi"
3518
 
3519
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:313
 
3520
  msgid "Flash Mp3 Maxi Player is a customizable open source audio (mp3 only) flash player. Features include pause/play/stop/file info buttons, scrollable position bar, volume control and color styling options."
3521
  msgstr "Flash MP3 Max Player er en open source-lyd-flashafspiller, der kan tilpasses af brugeren (understøtter kun MP3). Funktioner inkluderer knapper til pause/afspil/stop/filinfo, en forløbsbjælke, hvor man selv kan flytte forløbsikonet og volumenkontrol. Desuden er der indstillinger, så man kan tilpasse farverne."
3522
 
3523
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:317
 
3524
  msgid "Simple Flash MP3 Player"
3525
  msgstr "Simple Flash MP3 Player"
3526
 
3527
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:327
 
3528
  msgid "Simple Flash MP3 Player is a free and simple audio (mp3 only) flash player. Features include play/pause and stop buttons."
3529
  msgstr "Simple Flash MP3 Player er en gratis og simpel lyd-flashafspiller (understøtter kun MP3). Funktioner inkluderer afspil/pause- og stop-knapper."
3530
 
3531
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:331
 
3532
  msgid "AudioPlay"
3533
  msgstr "AudioPlay"
3534
 
3535
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:341
 
3536
  msgid "AudioPlay is one button freeware audio (mp3 only) flash player. Features include a play/stop or play/pause button available in two sizes in either black or white."
3537
  msgstr "AudioPlay er et freewareprogram til flashafspilning af lyd (kun MP3). Funktioner inkluderer en afspil/stop- eller en afspil/pause-knap i to størrelser i enten sort eller hvid."
3538
 
3539
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:345
3540
+ msgid "HTML5 Audio Player"
3541
+ msgstr "HTML5-audioafspiller"
3542
+
3543
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:355
3544
+ msgid "HTML5 audio is an element introduced in the latest HTML specification (HTML5) for the purpose of playing audio."
3545
+ msgstr "HTML5 audio er et element introduceret i den seneste HTML-specifikation (HTML5) til afspilning af lyd."
3546
+
3547
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:358
3548
+ msgid "HTML5 Audio Player is not format specific. See table below for a list of browsers and supported formats."
3549
+ msgstr "HTML5-audioafspiller er ikke bundet til noget format. Se tabellen nedenfor for en liste med browsere og understøttede formater."
3550
+
3551
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:398
3552
+ msgid "Chrome supported AAC in previous versions, but no longer supports the format."
3553
+ msgstr "Chrome understøttede AAC i tidligere versioner, men gør det ikke længere."
3554
+
3555
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:413
3556
  msgid "Click 'Save Changes' to activate and configure selected player."
3557
  msgstr "Klik 'Gem ændringer' for at aktivere og konfigurere valgte afspiller."
3558
 
3559
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:419
 
3560
  msgid "Configure Player"
3561
  msgstr "Konfigurér afspiller"
3562
 
3563
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:421
3564
+ msgid "Select a different audio player"
3565
+ msgstr "Vælg en anden audioafspiller"
3566
+
3567
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:423
3568
+ msgid "Select a different video player"
3569
+ msgstr "Vælg en anden videoafspiller"
3570
+
3571
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:526
3572
+ msgid ""
3573
+ "Set defaults, are you sure?\\n"
3574
+ "\\n"
3575
+ "All of the current settings will be overwritten!"
3576
+ msgstr ""
3577
+ "Sæt standardværdier, er du sikker?\\n"
3578
+ "\\n"
3579
+ "Alle de aktuelle indstillinger vil blive overskrevet!"
3580
+
3581
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:618
3582
  msgid "Configure the 1 pixel out Audio Player"
3583
+ msgstr "Konfigurér 1 Pixel Out Audio Player"
3584
+
3585
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:625
3586
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:944
3587
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1099
3588
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1483
3589
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1577
3590
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1610
3591
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1648
3592
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1668
 
3593
  msgid "Preview of Player"
3594
  msgstr "Forhåndsvisning af afspiller"
3595
 
3596
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:638
3597
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1114
 
3598
  msgid "Set Defaults"
3599
  msgstr "Sæt standardværdier"
3600
 
3601
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:642
3602
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:780
 
3603
  msgid "Progress Bar"
3604
  msgstr "Forløbsbjælke"
3605
 
3606
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:643
 
3607
  msgid "Volume Button"
3608
  msgstr "Volumenknap"
3609
 
3610
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:644
 
3611
  msgid "Play / Pause Button"
3612
  msgstr "Afspil/Pause-knap"
3613
 
3614
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:648
3615
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1124
3616
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1496
3617
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1622
 
3618
  msgid "General Settings"
3619
  msgstr "Generelle indstillinger"
3620
 
3621
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:652
 
3622
  msgid "Page Background Color"
3623
  msgstr "Baggrundsfarve på side"
3624
 
3625
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:660
3626
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1164
3627
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1508
 
3628
  msgid "leave blank for transparent"
3629
  msgstr "Hvis du ønsker gennemsigtig, så udfyld ikke"
3630
 
3631
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:664
 
3632
  msgid "Player Background Color"
3633
  msgstr "Baggrundsfarve for afspiller"
3634
 
3635
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:675
 
3636
  msgid "Width (in pixels)"
3637
  msgstr "Bredde (i pixels)"
3638
 
3639
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:679
 
3640
  msgid "width of the player. e.g. 290 (290 pixels) or 100%"
3641
  msgstr "bredde på afspilleren. Fx 290 (290 pixels) eller 100%"
3642
 
3643
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:684
 
3644
  msgid "Right-to-Left"
3645
  msgstr "Højre-mod-venstre"
3646
 
3647
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:689
3648
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:738
3649
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:753
3650
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1245
3651
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1260
3652
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1282
3653
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1339
3654
+ msgid "Yes"
3655
+ msgstr "Ja"
3656
+
3657
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:689
3658
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:738
3659
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:753
3660
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1245
3661
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1260
3662
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1282
3663
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1339
3664
+ msgid "No"
3665
+ msgstr "Nej"
3666
+
3667
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:692
3668
  msgid "switches the layout to animate from the right to the left"
3669
  msgstr "skifter layoutet, så animering foregår fra højre mod venstre"
3670
 
3671
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:698
 
3672
  msgid "Loading Bar Color"
3673
  msgstr "Bjælkefarve under indlæsning"
3674
 
3675
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:710
3676
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1169
 
3677
  msgid "Text Color"
3678
  msgstr "Tekstfarve"
3679
 
3680
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:722
 
3681
  msgid "Text In Player"
3682
  msgstr "Tekst i afspiller"
3683
 
3684
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:726
3685
  #, php-format
 
3686
  msgid "Enter '%s' to display track name from mp3. Only works if media is hosted on same server as blog."
3687
  msgstr "Indtast '%s' for at hente MP3-oplysninger og vise navn på nummeret. Virker kun, hvis mediefilerne hostes på samme server som bloggen."
3688
 
3689
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:732
 
3690
  msgid "Play Animation"
3691
  msgstr "Afspilningsanimation"
3692
 
3693
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:741
 
3694
  msgid "if no, player is always open"
3695
  msgstr "hvis nej, er afspiller altid åben"
3696
 
3697
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:747
 
3698
  msgid "Display Remaining Time"
3699
  msgstr "Vis resterende spilletid"
3700
 
3701
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:756
 
3702
  msgid "if yes, shows remaining track time rather than ellapsed time (default: no)"
3703
  msgstr "hvis ja, vises resterende spilletid på nummeret i stedet for forløbet tid (standard: nej)"
3704
 
3705
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:762
 
3706
  msgid "Buffering Time"
3707
  msgstr "Buffertid"
3708
 
3709
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:768
 
3710
  msgid "No buffering"
3711
  msgstr "Brug ikke buffer"
3712
 
3713
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:768
 
3714
  msgid "Default (5 seconds)"
3715
  msgstr "Standard (5 sekunder)"
3716
 
3717
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:768
 
3718
  msgid "10 seconds"
3719
  msgstr "10 sekunder"
3720
 
3721
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:768
 
3722
  msgid "15 seconds"
3723
  msgstr "15 sekunder"
3724
 
3725
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:768
 
3726
  msgid "20 seconds"
3727
  msgstr "20 sekunder"
3728
 
3729
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:768
 
3730
  msgid "30 seconds"
3731
  msgstr "30 sekunder"
3732
 
3733
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:768
 
3734
  msgid "60 seconds"
3735
  msgstr "60 sekunder"
3736
 
3737
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:771
 
3738
  msgid "buffering time in seconds"
3739
  msgstr "buffertid i sekunder"
3740
 
3741
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:784
 
3742
  msgid "Progress Bar Background"
3743
  msgstr "Baggrund for forløbsbjælke"
3744
 
3745
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:795
 
3746
  msgid "Progress Bar Color"
3747
  msgstr "Farve for forløbsbjælke"
3748
 
3749
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:806
 
3750
  msgid "Progress Bar Border"
3751
  msgstr "Ramme for forløbsbjælke"
3752
 
3753
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:820
 
3754
  msgid "Volume Button Settings"
3755
  msgstr "Indstillinger for volumenknap"
3756
 
3757
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:824
 
3758
  msgid "Initial Volume"
3759
  msgstr "Startvolumen"
3760
 
3761
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:835
 
3762
  msgid "initial volume level (default: 60)"
3763
  msgstr "Niveau for startvolumen (standard: 60)"
3764
 
3765
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:841
 
3766
  msgid "Volumn Background Color"
3767
  msgstr "Baggrundsfarve på volumen"
3768
 
3769
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:852
 
3770
  msgid "Speaker Icon Color"
3771
  msgstr "Farve på højtalerikon"
3772
 
3773
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:863
 
3774
  msgid "Volume Icon Background"
3775
  msgstr "Baggrund for volumenikon"
3776
 
3777
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:874
 
3778
  msgid "Volume Slider Color"
3779
  msgstr "Farve på volumenglider"
3780
 
3781
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:887
 
3782
  msgid "Play / Pause Button Settings"
3783
  msgstr "Indstillinger for afspil/pause-knap"
3784
 
3785
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:891
 
3786
  msgid "Play/Pause Background Color"
3787
  msgstr "Baggrundsfarve for Afspil/Pause"
3788
 
3789
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:902
 
3790
  msgid "Play/Pause Hover Color"
3791
  msgstr "<span title=\"hover\">Mus over</span>-farve for Afspil/Pause"
3792
 
3793
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:913
 
3794
  msgid "Play/Pause Icon Color"
3795
  msgstr "Farve på Afspil/Pause-ikon"
3796
 
3797
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:924
 
3798
  msgid "Play/Pause Icon Hover Color"
3799
  msgstr "<span title=\"hover\">Mus over</span>-farve for Afspil/Pause ikon"
3800
 
3801
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:960
 
3802
  msgid "Simple Flash Player has no additional settings."
3803
  msgstr "Simple Flash Player har ikke flere indstillinger."
3804
 
3805
+ # typo
3806
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1009
3807
+ msgid ""
3808
+ "Set defaults, are you sure?\\n"
3809
+ "\\n"
3810
+ "All of the current settings will be overwritten!'"
3811
+ msgstr ""
3812
+ "Sæt standardværdier, er du sikker?\\n"
3813
+ "\\n"
3814
+ "Alle de aktuelle indstillinger vil blive overskrevet!'"
3815
+
3816
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1094
3817
+ msgid "Configure Flash Mp3 Maxi Player"
3818
+ msgstr "Konfigurér Flash MP3 Maxi-afspiller"
3819
+
3820
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1118
3821
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1203
3822
+ msgid "Button Settings"
3823
+ msgstr "Knapindstillinger"
3824
+
3825
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1119
3826
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1271
3827
+ msgid "Volume Settings"
3828
+ msgstr "Volumenindstillinger"
3829
+
3830
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1120
3831
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1328
3832
+ msgid "Slider Settings"
3833
+ msgstr "Indstillinger for glider"
3834
+
3835
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1129
3836
  msgid "leave blank for default values"
3837
  msgstr "Hvis du ønsker standardværdier, skal du ikke udfylde feltet"
3838
 
3839
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1134
 
3840
  msgid "Player Gradient Color Top"
3841
  msgstr "Gradientfarve for afspillerens topfarve"
3842
 
3843
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1145
 
3844
  msgid "Player Gradient Color Bottom"
3845
  msgstr "Gradientfarve for afspillerens bundfarve"
3846
 
3847
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1181
 
3848
  msgid "Player Height (in pixels)"
3849
  msgstr "Højde på afspiller (i pixels)"
3850
 
3851
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1191
 
3852
  msgid "Player Width (in pixels)"
3853
  msgstr "Bredde på afspiller (i pixels)"
3854
 
3855
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1207
 
 
 
 
 
 
 
3856
  msgid "Button Color"
3857
  msgstr "Knapfarve"
3858
 
3859
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1218
 
3860
  msgid "Button Hover Color"
3861
  msgstr "Knappens mus-over-farve"
3862
 
3863
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1229
 
3864
  msgid "Button Width (in pixels)"
3865
  msgstr "Knapbredde (i pixels)"
3866
 
3867
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1239
 
3868
  msgid "Show Stop Button"
3869
  msgstr "Vis stopknap"
3870
 
3871
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1254
 
3872
  msgid "Show Info"
3873
  msgstr "Vis info"
3874
 
3875
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1276
 
 
 
 
 
 
 
3876
  msgid "Show Volume"
3877
  msgstr "Vis volumen"
3878
 
3879
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1291
 
3880
  msgid "Volume"
3881
  msgstr "Volume"
3882
 
3883
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1305
 
3884
  msgid "Volume Height (in pixels)"
3885
  msgstr "Højde på volumen (i pixels)"
3886
 
3887
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1315
 
3888
  msgid "Volume Width (in pixels)"
3889
  msgstr "Bredde på volumen (i pixels)"
3890
 
3891
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1333
 
 
 
 
 
 
 
3892
  msgid "Show Slider"
3893
  msgstr "Vis glider"
3894
 
3895
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1349
 
3896
  msgid "Slider Color Top"
3897
  msgstr "Gliderens topfarve"
3898
 
3899
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1360
 
3900
  msgid "Slider Color Bottom"
3901
  msgstr "Gliderens bundfarve"
3902
 
3903
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1372
 
3904
  msgid "Slider Hover Color"
3905
  msgstr "Gliderens mus-over-farve"
3906
 
3907
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1383
 
3908
  msgid "Slider Height (in pixels)"
3909
  msgstr "Højde på glider (i pixels)"
3910
 
3911
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1393
 
3912
  msgid "Slider Width (in pixels)"
3913
  msgstr "Bredde på glider (i pixels)"
3914
 
3915
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1404
 
3916
  msgid "Show Loading Buffer"
3917
  msgstr "Viser indlæsningsbuffer"
3918
 
3919
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1418
 
3920
  msgid "Loading Buffer Color"
3921
  msgstr "Farve på indlæsningsbuffer"
3922
 
3923
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1477
 
3924
  msgid "Configure the AudioPlay Player"
3925
  msgstr "Konfigurér AudioPlay-afspilleren"
3926
 
3927
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1513
 
3928
  msgid "Player Mode"
3929
  msgstr "Afspillerfunktion"
3930
 
3931
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1519
 
3932
  msgid "Play/Pause"
3933
  msgstr "Afspil/Pause"
3934
 
3935
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1519
 
3936
  msgid "Play/Stop"
3937
  msgstr "Afspil/Stop"
3938
 
3939
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1528
 
3940
  msgid "Player Button"
3941
  msgstr "Afspillerknap"
3942
 
3943
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1544
 
3944
  msgid "Small White"
3945
  msgstr "Lille hvid"
3946
 
3947
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1546
 
3948
  msgid "Large White"
3949
  msgstr "Stor hvid"
3950
 
3951
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1553
 
3952
  msgid "Small Black"
3953
  msgstr "Lille sort"
3954
 
3955
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1555
 
3956
  msgid "Large Black"
3957
  msgstr "Stor sort"
3958
 
3959
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1573
3960
+ msgid "Configure HTML5 Audio Player"
3961
+ msgstr "Konfigurér HTML5-audioafspiller"
 
3962
 
3963
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1592
3964
+ msgid "HTML5 Audio Player has no additional settings."
3965
+ msgstr "HTML5-audioafspiller har ikke flere indstillinger."
 
3966
 
3967
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1606
3968
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1644
3969
+ msgid "Configure Flow Player Classic"
3970
+ msgstr "Konfigurér Flow Player Classic"
3971
 
3972
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1626
3973
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1674
3974
+ msgid "Width"
3975
+ msgstr "Bredde"
3976
 
3977
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1630
3978
+ msgid "Width of Audio mp3 player (leave blank for 320 default)"
3979
+ msgstr "Bredde MP3-audioafspiller (udfyldes feltet ikke, bruges 320 som standard)"
 
3980
 
3981
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1664
3982
+ msgid "Configure HTML5 Video Player"
3983
+ msgstr "Konfigurér HTML5-videoafspiller"
 
 
3984
 
3985
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1689
3986
+ msgid "Common Settings"
3987
+ msgstr "Fælles indstillinger"
 
 
3988
 
3989
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1690
3990
+ msgid "The following video settings apply to the video player above as well as to classic video &lt;embed&gt; formats such as Microsoft Windows Media (.wmv), QuickTime (.mov) and RealPlayer."
3991
+ msgstr "De følgende videoindstillinger anvendes på videoafspilleren ovenfor så vel som på klassiske formater for indsatte videoer som fx Microsoft Windows Media (.wmv), QuickTime (.mov) og RealPlayer."
 
 
3992
 
3993
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1694
3994
+ msgid "Player Width"
3995
+ msgstr "Bredde på afspiller"
 
3996
 
3997
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1698
3998
+ msgid "Width of player (leave blank for 400 default)"
3999
+ msgstr "Bredde på afspiller (udfyldes feltet ikke, bruges 400 som standard)"
 
4000
 
4001
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1704
4002
+ msgid "Player Height"
4003
+ msgstr "Højde på afspiller"
 
4004
 
4005
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1708
4006
+ msgid "Height of player (leave blank for 225 default)"
4007
+ msgstr "Højde på afspiller (udfyldes feltet ikke, bruges 225 som standard)"
 
4008
 
4009
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1714
4010
+ msgid "QuickTime Scale"
4011
+ msgstr "QuickTimes Scale-parameter"
 
 
4012
 
4013
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1718
4014
+ msgid "ToFit (default)"
4015
+ msgstr "<span title=\"tilpas størrelse\">ToFit (standard)</span>"
 
4016
 
4017
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1718
4018
+ msgid "Aspect"
4019
+ msgstr "Proportional"
 
 
4020
 
4021
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1723
4022
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1725
4023
+ msgid "Custom"
4024
+ msgstr "Brugerdefineret"
4025
+
4026
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1736
4027
+ msgid "Scale:"
4028
+ msgstr "Scale:"
4029
+
4030
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1736
4031
+ msgid "e.g."
4032
+ msgstr "fx"
4033
+
4034
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1739
4035
+ msgid "If you do not see video, adjust the width, height and scale settings above."
4036
+ msgstr "Hvis du ikke ser videoen, så tilpas bredde, højde og scale-indstillinger ovenfor."
4037
+
4038
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1746
4039
+ msgid "Default Poster Image"
4040
+ msgstr "Standardbillede for plakater"
4041
+
4042
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1752
4043
+ msgid "Place the URL to the poster image above."
4044
+ msgstr "Indtast URL&#39;en til plakatbilledet ovenfor."
4045
+
4046
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1753
4047
+ msgid "Image should be at minimum the same width/height as the player above. Leave blank to use default black background image."
4048
+ msgstr "Billedet bør have mindst samme bredde/højde som afspilleren ovenfor. Den sorte standardbaggrundsbillede anvendes, hvis feltet er tomt."
4049
+
4050
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1761
4051
+ msgid "Include play icon over poster image when applicable"
4052
+ msgstr "Medtag Afspil-ikon oven på plakatbilledet, når passende"
4053
+
4054
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player-page.php:1762
4055
+ msgid "Use poster image, player width and height above for audio (Flow Player only)"
4056
+ msgstr "Brug plakatbillede og afspillerbredde og -højde ovenfor for audio (kun Flow Player)"
4057
+
4058
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player.php:31
4059
+ msgid "Player activated successfully."
4060
+ msgstr "Afspiller blev aktiveret med succes."
4061
+
4062
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player.php:38
4063
+ msgid "Audio Player settings saved successfully."
4064
+ msgstr "Indstillinger for audioafspiller gemt med succes."
4065
+
4066
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player.php:45
4067
+ msgid "Flash Mp3 Maxi settings saved successfully."
4068
+ msgstr "Flash MP3 Maxi-indstillinger gemt med succes."
4069
+
4070
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-player.php:52
4071
+ msgid "AudioPlay settings saved successfully."
4072
+ msgstr "AudioPlay-indstillinger gemt med succes."
4073
+
4074
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress-stats.php:19
4075
+ msgid "Archive of PodPress Stats"
4076
+ msgstr "Arkiv med PodPress-statistik"
4077
+
4078
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress-stats.php:20
4079
+ #, php-format
4080
+ msgid "Displaying %d - %d of %d total"
4081
+ msgstr "Viser %d - %d af %d i alt"
4082
+
4083
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress-stats.php:23
4084
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress-stats.php:27
4085
+ msgid "Web"
4086
+ msgstr "Web"
4087
+
4088
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress-stats.php:24
4089
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress-stats.php:28
4090
+ msgid "Total"
4091
+ msgstr "I alt"
4092
+
4093
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress-stats.php:51
4094
+ msgid "first"
4095
+ msgstr "første"
4096
+
4097
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress-stats.php:52
4098
+ msgid "prev"
4099
+ msgstr "forr"
4100
+
4101
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress-stats.php:55
4102
+ msgid "next"
4103
+ msgstr "næste"
4104
+
4105
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress-stats.php:56
4106
+ msgid "last"
4107
+ msgstr "sidste"
4108
+
4109
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:47
4110
+ #, php-format
4111
+ msgid "Unable to detect PodPress media URL setting. Using the PowerPress setting \"Default Media URL\" (%s) instead."
4112
+ msgstr "Kunne ikke aflæse indstilling for PodPress-medie-URL. Bruger i stedet PowerPress-indstillingen \"Standard-URL for medier (%s)\""
4113
+
4114
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:52
4115
+ msgid "Unable to detect PodPress media URL setting. Please set the \"Default Media URL\" setting in PowerPress to properly import podcast episodes."
4116
+ msgstr "Kunne ikke aflæse indstilling for PodPress-medie-URL. Sæt venligst PowerPress-indstillingen for \"Standard-URL for medier\", så det bliver muligt at importere podcastepisoder."
4117
+
4118
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:116
4119
+ #, php-format
4120
+ msgid "Error decoding PodPress data for post \"%s\""
4121
+ msgstr "Fejl under afkodning af PodPress-data for indlægget \"%s\""
4122
+
4123
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:229
4124
+ #, php-format
4125
  msgid "PodPress data deleted from database successfully. (%d database records removed)"
4126
  msgstr "PodPress-data blev slettet fra databasen med succes. (%d databaseposter blev fjernet)"
4127
 
4128
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:277
4129
  #, php-format
 
4130
  msgid "Podpress Episode \"%s\" for blog post \"%s\" imported to feed \"%s\""
4131
  msgstr "PodPress-episoden \"%s\" for blogindlægget \"%s\" blev importeret til feedet \"%s\""
4132
 
4133
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:296
 
4134
  msgid "If you are unsure about importing your PodPress data, try the option under Basic Settings titled 'PodPress Episodes' and set to 'Include in posts and feeds'."
4135
  msgstr "Hvis du er usikker på, hvordan dine PodPress-data importeres, så prøv indstillingen 'PodPress-episoder' under Grundindstillinger og sæt den til 'Inkludér i indlæg og feeds'."
4136
 
4137
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:297
 
4138
  msgid "Once you feel comfortable with PowerPress, you can use this screen to import your PodPress data."
4139
  msgstr "Når du føler dig hjemme i PowerPress, kan du bruge denne skærm til at importere dine PodPress-data."
4140
 
4141
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:302
 
4142
  msgid "PodPress Import Log"
4143
  msgstr "Log over PodPress-import"
4144
 
4145
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:305
4146
  #, php-format
 
4147
  msgid "Imported %d PodPress episode(s)."
4148
  msgstr "Importerede %d PodPress-episode(r)."
4149
 
4150
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:346
4151
  #, php-format
 
4152
  msgid "We found blog posts that have %d media files. You will need to create %d more Custom Feed%s in order to continue."
4153
  msgstr "Vi fandt blogindlæg, som har %d mediefiler. Du er nødt til at oprette yderligere %d brugerfeed%s for at kunne fortsætte."
4154
 
4155
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:454
4156
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:48
 
4157
  msgid "Import PodPress Episodes"
4158
  msgstr "Importér PodPress-episoder"
4159
 
4160
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:465
 
4161
  msgid "No PodPress episodes found to import."
4162
  msgstr "Der blev ikke fundet nogen PodPress-episoder, som kunne importeres."
4163
 
4164
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:705
 
4165
  msgid "Select Only"
4166
  msgstr "Vælg kun"
4167
 
4168
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:732
4169
  #, php-format
 
4170
  msgid "There are %d PodPress media files that can be imported."
4171
  msgstr "Der er %d PodPress-mediefiler, som kan importeres."
4172
 
4173
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:752
 
4174
  msgid "There are no PodPress episodes found to import."
4175
  msgstr "Der er ingen PodPress-episoder, der kan importeres."
4176
 
4177
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:787
4178
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:814
4179
  #, php-format
 
4180
  msgid "We found blog posts that have %d media files."
4181
  msgstr "Vi fandt blogindlæg, som har %d mediefiler."
4182
 
4183
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:790
4184
  #, php-format
 
4185
  msgid "You will need to create %d Podcast Channels to continue."
4186
  msgstr "Du skal oprette %d postcastkanaler for at fortsætte."
4187
 
4188
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:797
 
4189
  msgid "Blubrry PowerPress does not allow you to include multiple media files for one feed item (blog post)."
4190
  msgstr "Blubrry PowerPress tillader dig ikke at inkludere flere mediefiler for et enkelt feed (blogindlæg)."
4191
 
4192
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:798
 
4193
  msgid "This is because each podcatcher handles multiple enclosures in feeds differently. iTunes will download the first enclosure that it sees in the feed ignoring the rest."
4194
  msgstr "Det skyldes, at de forskellige podcast-læsere håndtere flere <span title=\"enclosures in feeds\">indsatte mediefiler i feeds</span> forskelligt."
4195
 
4196
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:799
 
4197
  msgid "Other podcatchers and podcasting directories either pick up the first enclosure or the last in each post item."
4198
  msgstr "Andre programmer og kataloger, som henter eller viser podcasts vælger enten den første <span title=\"enclosure\">indsatte mediefiler</span> eller den sidste i hvert blogindlæg."
4199
 
4200
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:800
4201
  #, php-format
 
4202
  msgid "This inconsistency combined with the fact that Dave Winer does not recommend multiple enclosures (%s) and FeedValidator.org (%s) recommendation against it is why Blubrry PowerPress does not support them."
4203
  msgstr "Denne inkonsistens, kombineret med den kendsgerning, at Dave Winer ikke anbefaler flere <span title=\"enclosures\">indsatte mediefiler</span> (%s), og FeedValidator.org (%s) fraråder dem, gør, at Blubrry PowerPress ikke understøtter dem."
4204
 
4205
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:801
4206
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:802
 
4207
  msgid "Link"
4208
  msgstr "Link"
4209
 
4210
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:806
4211
  #, php-format
 
4212
  msgid "As a alternative, PowerPress allows you to create additional %s to associate additional media files in a blog post to specific feed channels."
4213
  msgstr "Alternativt lader PowerPress dig oprette flere %s for at knytte yderligere mediefiler i et blogindlæg til separate feedkanaler."
4214
 
4215
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:816
4216
  #, php-format
 
4217
  msgid "You will need to create %d additional Podcast Channels in order to continue."
4218
  msgstr "Du skal oprette %d ekstra postcastkanaler for at fortsætte."
4219
 
4220
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:831
 
4221
  msgid "(leave blank for all media)"
4222
  msgstr "udfyldes feltet ikke, vises alle medier"
4223
 
4224
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-podpress.php:832
 
4225
  msgid "specify the file extensions to include separated by commas (e.g. mp3, m4v)."
4226
  msgstr "angiv filtyperne, der skal medtages, adskilt af kommaer (fx MP3, M4V)."
4227
 
4228
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:19
4229
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:978
 
4230
  msgid "MP3 Tags"
4231
  msgstr "MP3-tags"
4232
 
4233
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:21
 
4234
  msgid "Blubrry Hosting users can configure how to have the service write their MP3 ID3 Tags before publishing episodes."
4235
  msgstr "Blubrry Hosting-brugere kan konfigurere, hvordan de have tjenesten til at skrive deres MP3-ID3-tags, inden episoderne udgives."
4236
 
4237
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:25
 
4238
  msgid "ID3 tags contain useful information (title, artist, album, year, etc...) about your podcast as well as an image for display during playback in most media players."
4239
  msgstr "ID3-tags indeholder nyttig information (title, kunstner, album, år, osv.) om podcastet samt et billede, der vises under afspilning i de fleste medieafspillere."
4240
 
4241
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:27
4242
  #, php-format
 
4243
  msgid "Please visit the ID3 Tags (%s) section on PodcastFAQ.com to learn more about MP3 ID3 tags."
4244
  msgstr "Læs mere om ID3-tags (%s) i sektionen herom på PodcastFAQ.com for at lære mere om MP3-ID3-tags."
4245
 
4246
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:28
 
4247
  msgid "link"
4248
  msgstr "link"
4249
 
4250
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:38
4251
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:55
 
4252
  msgid "Write Tags"
4253
  msgstr "Skrivning af tags"
4254
 
4255
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:41
 
4256
  msgid "You must configure your Blubrry Services Account in the Blubrry PowerPress > Basic Settings page in order to utilize this feature."
4257
  msgstr "Du skal konfigurere din Blubrry Services-konto i Blubrry PowerPress&#39; Grundindstillinger for at kunne bruge denne funktion."
4258
 
4259
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:42
4260
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:59
 
4261
  msgid "Use Blubrry Hosting services to write MP3 ID3 tags to your media."
4262
  msgstr "Brug Blubrry Hosting-tjenesterne til at skrive MP3-ID3-tags ind i dine mediefiler."
4263
 
4264
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:69
 
4265
  msgid "Title Tag"
4266
  msgstr "Titel-tag"
4267
 
4268
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:69
 
4269
  msgid "Use blog post title"
4270
  msgstr "Brug titel på blogindlæg"
4271
 
4272
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:70
 
4273
  msgid "Artist Tag"
4274
  msgstr "Kunstner-tag"
4275
 
4276
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:70
4277
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:76
 
4278
  msgid "Use Feed Talent Name"
4279
  msgstr "Brug feedets talentnavn"
4280
 
4281
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:71
 
4282
  msgid "Album Tag"
4283
  msgstr "Album-tag"
4284
 
4285
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:71
 
4286
  msgid "Use blog title"
4287
  msgstr "Brug blogtitel"
4288
 
4289
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:72
 
4290
  msgid "Genre Tag"
4291
  msgstr "Genre-tag"
4292
 
4293
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:72
4294
+ msgid "Use genre 'Podcast'"
4295
+ msgstr "Brug genren 'Podcast'"
4296
+
4297
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:73
4298
  msgid "Year Tag"
4299
  msgstr "År-tag"
4300
 
4301
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:73
 
4302
  msgid "Use current year"
4303
  msgstr "Brug aktuelle år"
4304
 
4305
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:75
 
4306
  msgid "Track Tag"
4307
  msgstr "Nummer-tag"
4308
 
4309
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:75
 
4310
  msgid "Do not specify track number"
4311
  msgstr "Angiv ikke sporets nummer"
4312
 
4313
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:76
 
4314
  msgid "Composer Tag"
4315
  msgstr "Komponist-tag"
4316
 
4317
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:77
 
4318
  msgid "Copyright Tag"
4319
  msgstr "Copyright-tag"
4320
 
4321
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:77
 
4322
  msgid "Use &copy; Talent Name"
4323
  msgstr "Brug &copy; Talentnavn"
4324
 
4325
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:78
 
4326
  msgid "URL Tag"
4327
  msgstr "URL-tag"
4328
 
4329
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:78
 
4330
  msgid "Use main blog URL"
4331
  msgstr "Brug bloggens hoved-URL"
4332
 
4333
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:79
 
4334
  msgid "Coverart Tag"
4335
  msgstr "Coverbillede-tag"
4336
 
4337
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:140
 
4338
  msgid "Do not add a coverart image."
4339
  msgstr "Tilføj ikke et coverbillede."
4340
 
4341
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:146
 
4342
  msgid "Place the URL to the Coverart image above. e.g. http://mysite.com/images/coverart.jpg"
4343
  msgstr "Indtast URL&#39;en til coverbilledet ovenfor. Fx http://mitdomaene.dk/billeder/cover.jpg"
4344
 
4345
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:147
 
4346
  msgid "Coverart images may be saved as either .gif, .jpg or .png images of any size, though 300 x 300 or 600 x 600 in either png or jpg format is recommended."
4347
  msgstr "Coverbilleder kan gemmes som enten GIF-, JPG- eller PNG-billeder i enhver størrelse, men det er bedst med 300 x 300 eller 600 x 600 i enten PNG- eller JPG-format."
4348
 
4349
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:151
 
4350
  msgid "Click here to use your current iTunes image."
4351
  msgstr "Klik her for at bruge dit aktuelle iTunes-billede."
4352
 
4353
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tags.php:171
 
4354
  msgid "(value entered increments every episode)"
4355
  msgstr "(den værdi, du indtaster, forøges for hver episode)"
4356
 
4357
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:10
 
4358
  msgid "Useful utilities and tools."
4359
  msgstr "Nyttige utilities og værktøjer."
4360
 
4361
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:15
 
4362
  msgid "Podcasting Resources"
4363
  msgstr "Podcastingressourcer"
4364
 
4365
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:18
 
4366
  msgid "everything you need to know about podcasting."
4367
  msgstr "alt, hvad du har brug for at vide om podcasting."
4368
 
4369
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:20
 
4370
  msgid "PowerPress Documentation"
4371
  msgstr "PowerPress-dokumentation"
4372
 
4373
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:21
 
4374
  msgid "learn more about PowerPress."
4375
  msgstr "få mere at vide om PowerPress."
4376
 
4377
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:23
4378
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1903
 
4379
  msgid "Blubrry Forum"
4380
  msgstr "Blubrry-forum"
4381
 
4382
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:24
 
4383
  msgid "interact with other podcasters."
4384
  msgstr "få kontakt til andre, der podcaster."
4385
 
4386
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:29
 
4387
  msgid "Import Settings"
4388
  msgstr "Importér indstillinger"
4389
 
4390
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:33
4391
+ msgid ""
4392
+ "Import PodPress settings, are you sure?\\n"
4393
+ "\\n"
4394
+ "Existing PowerPress settings will be overwritten."
4395
+ msgstr ""
4396
+ "Importér PodPress-indstillinger, er du sikker?\\n"
4397
+ "\\n"
4398
+ "Eksisterende PowerPress-indstillinger vil blive overskrevet."
4399
+
4400
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:33
4401
  msgid "Import PodPress Settings"
4402
  msgstr "Importér PodPress-indstillinger"
4403
 
4404
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:34
 
4405
  msgid "Import settings from PodPress into PowerPress."
4406
  msgstr "Importér indstillinger fra PodPress til PowerPress."
4407
 
4408
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:38
 
4409
  msgid "Import Podcasting plugin settings, are you sure?"
4410
  msgstr "Importér indstillinger for Podcasting-plugins, er du sikker?"
4411
 
4412
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:38
 
4413
  msgid "Existing PowerPress settings will be overwritten."
4414
  msgstr "Eksisterende PowerPress-indstillinger vil blive overskrevet."
4415
 
4416
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:38
 
4417
  msgid "Import plugin \"Podcasting\" Settings"
4418
  msgstr "Importér indstillinger for pluginnet \"Podcasting\""
4419
 
4420
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:39
 
4421
  msgid "Import settings from the plugin \"Podcasting\" into PowerPress."
4422
  msgstr "Importér indstillinger fra pluginnet \"Podcasting\" til PowerPress."
4423
 
4424
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:40
 
4425
  msgid "Note: Episodes created using the plugin \"Podcasting\" do not require importing."
4426
  msgstr "Bemærk: Episoder oprettet med pluginnet \"Podcasting\" kræver ikke import."
4427
 
4428
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:49
 
4429
  msgid "Import PodPress created episodes to PowerPress."
4430
  msgstr "Importér episoder oprettet i PodPress til PowerPress."
4431
 
4432
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:51
 
4433
  msgid "Import from other Blogging Platform"
4434
  msgstr "Importér fra andet <span title=blogging platform\">blogsystem</span>"
4435
 
4436
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:51
 
4437
  msgid "(media linked in blog posts)"
4438
  msgstr "(mediefiler, som der linkes til i blogindlæg)"
4439
 
4440
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:52
 
4441
  msgid "Import from podcast episodes from blogging platforms such as Movable Type/Blogger/Joomla/TypePad (and most other blogging systems) to PowerPress."
4442
  msgstr "Importér podcastepisoder fra blogsystemer som Movable Type/Blogger/Joomla/TypePad (og de fleste andre blogsystemer) til PowerPress."
4443
 
4444
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:59
 
4445
  msgid "Add Update Services"
4446
  msgstr "Tilføj updatetjenester"
4447
 
4448
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:62
 
4449
  msgid "Add Update Services / Ping Sites"
4450
  msgstr "Tilføj updatetjenester/pingsites"
4451
 
4452
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:62
 
4453
  msgid "(notify podcast directories when you publish new episodes)"
4454
  msgstr "(giv besked til <span title=\"podcast directories\">podcastkataloger</span>)"
4455
 
4456
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:63
 
4457
  msgid "Add Update Services / Ping Sites geared towards podcasting."
4458
  msgstr "Tilføj updatetjenester/pingsites specialiseret i podcasting."
4459
 
4460
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:70
 
4461
  msgid "Find and Replace Media"
4462
  msgstr "Find og erstat mediefiler"
4463
 
4464
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:73
 
4465
  msgid "Find and Replace for Episode URLs"
4466
  msgstr "Find og erstat episode-URL&#39;er"
4467
 
4468
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:83
 
4469
  msgid "User Capabilities"
4470
  msgstr "Brugerrettigheder"
4471
 
4472
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:89
 
4473
  msgid "Remove PowerPress Podcasting Capabilities for User Role Management"
4474
  msgstr "Fjern PowerPress-podcasting-rettigheder fra håndtering af brugerroller"
4475
 
4476
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:91
 
4477
  msgid ""
4478
  "Podcasting capability allows administrators, editors and authors access to create and configure podcast episodes. \n"
4479
  "\tOnly administrators will be able to view media statistics from the WordPress Dashboard. Contributors, subscribers and other\n"
4484
  "\tbrugere har ikke adgang til at oprette podcastepisoder eller se statistik i kontrolpanelet. Da denne funktion\n"
4485
  "\ter temmelig kompleks, understøttes den ikke af Blubrry.com."
4486
 
4487
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:103
 
4488
  msgid "Add PowerPress Podcasting Capabilities for User Role Management"
4489
  msgstr "Tilføj PowerPress-podcasting-rettigheder til håndtering af brugerroller"
4490
 
4491
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:105
 
4492
  msgid ""
4493
  "Adding podcasting capability will allow administrators, editors and authors access to create and configure podcast episodes. \n"
4494
  "\tOnly administrators will be able to view media statistics from the WordPress Dashboard. Contributors, subscribers and other\n"
4500
  "\tbrugere har ikke adgang til at oprette podcastepisoder eller se statistik i kontrolpanelet. Da denne funktion\n"
4501
  "\ter temmelig kompleks, understøttes den ikke af Blubrry.com."
4502
 
4503
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:116
 
4504
  msgid "Remove Password Protection Capabilities for Control of Which Users can Access Your Podcasts"
4505
  msgstr "Fjern <span title=\"password protection capabilities\">kodeordsbeskyttelsesrettigheder</span>, der giver mulighed for at kontrollere, hvilke brugere der kan få adgang til dine podcasts"
4506
 
4507
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:116
4508
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:134
 
4509
  msgid "Also kown as Premium Content"
4510
  msgstr "Også kendt som <span title=\"premium content\">betalingsindhold</span>"
4511
 
4512
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:119
4513
  #, php-format
 
4514
  msgid "To use this feature, go to %s and create a new custom podcast channel. In the Edit Podcast Channel page, click the last tab labeled 'Other Settings'. Place a check in the box labled 'Protect Content' and then click 'Save Changes'."
4515
  msgstr "Hvis du vil bruge denne funktion, skal du gå til %s og oprette en ny brugerdefineret podcastkanal. På siden Redigér Podcastkanal, skal du klikke på den sidste fane med etiketten \"Andre indstillinger\". Markér i afkrydsningsfeltet med etiketten 'Beskyt indhold' og klik så på 'Gem ændringer'."
4516
 
4517
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:120
4518
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:970
 
4519
  msgid "Podcast Channels"
4520
  msgstr "Podcastkanaler"
4521
 
4522
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:124
 
4523
  msgid ""
4524
  "Password protection capabilities for custom podcast channel feeds lets you control who can listen and view your \n"
4525
  "\t\tpodcast. This feature allows you to password-protect custom podcast channels by adding a new role called \"Premium \n"
4531
  "\t\tKun brugere med denne rolle har adgang til dine kodeordsbeskyttede podcastkanaler.\n"
4532
  "\t\tFordi denne funktion er temmelig kompleks, understøttes den ikke af Blubrry.com."
4533
 
4534
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:134
 
4535
  msgid "Add Password Protection Capabilities for Control of Which Users can Access Your Podcasts"
4536
  msgstr "Tilføj <span title=\"password protection capabilities\">kodeordsbeskyttelsesrettigheder</span>, der giver mulighed for at kontrollere, hvilke brugere der kan få adgang til dine podcasts"
4537
 
4538
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:136
 
4539
  msgid ""
4540
  "Adding password protection capabilities for custom podcast channel feeds lets you control who can listen and view your \n"
4541
  "\t\tpodcast. This feature allows you to password-protect custom podcast channels by adding a new role called \"Premium \n"
4547
  "\t\tKun brugere med denne rolle har adgang til dine kodeordsbeskyttede podcastkanaler.\n"
4548
  "\t\tFordi denne funktion er temmelig kompleks, understøttes den ikke af Blubrry.com."
4549
 
4550
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:145
 
4551
  msgid "What are Roles and Capabilities?"
4552
  msgstr "Hvad er <span title=\"roles\">roller</span> og <span title=\"capabilities\">rettigheder</span>"
4553
 
4554
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:148
4555
  #, php-format
 
4556
  msgid ""
4557
  "The WordPress %s feature gives the blog owner the ability to control what users can and \n"
4558
  "\t\t\tcannot do in the blog. You will most likely need a roles and capabilities plugin such as %s, %s, or %s\n"
4563
  "\t\t\troller og rettigheder, så som %s, %s eller %s, for at gøre brug af disse funktioner.\n"
4564
  "\t\t\tFordi denne funktion er ret kompleks, understøttes den ikke af Blubrry.com."
4565
 
4566
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:151
 
4567
  msgid "Roles and Capabilities"
4568
  msgstr "Roller og <span title=\"capabilities\">rettigheder</span>"
4569
 
4570
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:152
 
4571
  msgid "Role Manager"
4572
  msgstr "Role Manager"
4573
 
4574
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:153
 
4575
  msgid "Capability Manager"
4576
  msgstr "Capability Manager"
4577
 
4578
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:154
 
4579
  msgid "Role Scoper"
4580
  msgstr "Role Scoper"
4581
 
4582
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:164
 
4583
  msgid "Update Plugins Cache"
4584
  msgstr "Opdatér plugins-cachen"
4585
 
4586
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:166
 
4587
  msgid "Clear Plugins Update Cache"
4588
  msgstr "Ryd cache med pluginopdateringsoplysninger"
4589
 
4590
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:169
4591
  #, php-format
 
4592
  msgid "The list of plugins on the plugins page will cache the plugin version numbers for up to 24 hours. Click the link above to clear the cache to get the latest versions of plugins listed on your %s page."
4593
  msgstr "Listen med plugins på Plugins-siden cacher pluginversionsnumrene i op til 24 timer. Klik på linket ovenfor for at rydde cachen og hente de seneste versioner af de plugins, der er med i listen på din %s-side."
4594
 
4595
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:170
 
4596
  msgid "plugins"
4597
  msgstr "plugins"
4598
 
4599
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:177
 
4600
  msgid "Translations"
4601
  msgstr "Oversættelser"
4602
 
4603
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:180
4604
+ msgid "Translate PowerPress to your language"
4605
+ msgstr "Oversæt PowerPress til dit sprog"
4606
+
4607
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:187
4608
  msgid "Diagnostics"
4609
  msgstr "Fejlfinding"
4610
 
4611
+ #: d:\wordpress\plugins\powerpress/powerpressadmin-tools.php:189
 
4612
  msgid "Diagnose Your PowerPress Installation"
4613
  msgstr "Fejlfind din PowerPress-installation"
4614
 
4615
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:75
 
4616
  msgid "Another podcasting plugin has been detected, PowerPress is currently disabled."
4617
  msgstr "Der findes et andet podcastingplugin, så PowerPress er deaktiveret for øjeblikket."
4618
 
4619
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:80
4620
+ msgid "Blubrry PowerPress requires Wordpress version 2.8 or greater."
4621
+ msgstr "Blubrry PowerPress kræver WordPress version 2.8 eller nyere."
4622
+
4623
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:84
4624
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2884
4625
+ msgid "The WP OS FLV plugin is not compatible with Blubrry PowerPress."
4626
+ msgstr "WP OS FLV-pluginnet er ikke kompatibelt med Blubrry PowerPress."
4627
+
4628
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:130
4629
  msgid "Invalid iTunes image"
4630
  msgstr "Ugyldigt iTunes-billede"
4631
 
4632
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:156
 
4633
  msgid "Invalid RSS image"
4634
  msgstr "Ugyldigt RSS-billede"
4635
 
4636
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:182
 
4637
  msgid "Invalid Coverat image"
4638
  msgstr "Ugyldigt coverbillede"
4639
 
4640
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:208
4641
+ msgid "Invalid poster image"
4642
+ msgstr "Ugyldigt plakatbillede"
4643
+
4644
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:359
4645
  msgid "Blubrry Hosting Error (updating coverart)"
4646
  msgstr "Blubrry Hosting-fejl (under opdatering af coverbillede)"
4647
 
4648
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:363
 
4649
  msgid "An error occurred updating the coverart with your Blubrry Services Account."
4650
  msgstr "Det skete en fejl, da coverbilledet skulle opdateres med din Blubrry Services-konto."
4651
 
4652
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:369
 
4653
  msgid "Coverart Image was not uploaded to your Blubrry Services Account. It will NOT be added to your mp3s."
4654
  msgstr "Coverbilledet blev ikke uploadet til din Blubrry Services-konto. Det vil IKKE blive tilføjet til dine MP3-filer."
4655
 
4656
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:424
 
4657
  msgid "Blubrry PowerPress settings saved successfully."
4658
  msgstr "Blubrry PowerPress-indstillinger blev gemt med succes."
4659
 
4660
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:427
 
4661
  msgid "Blubrry PowerPress Custom Feed settings saved."
4662
  msgstr "Indstillingerne for Blubrry PowerPress&#39; brugerdefinerede feeds blev gemt."
4663
 
4664
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:430
 
4665
  msgid "Blubrry PowerPress Category Feed settings saved."
4666
  msgstr "Indstillingerne for Blubrry PowerPress&#39; kategorifeeds blev gemt."
4667
 
4668
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:435
 
4669
  msgid "ATTENTION: You must configure your Blubrry Services in the Blubrry PowerPress &gt; Basic Settings page in order to utilize this feature."
4670
  msgstr "BEMÆRK: Du skal konfigurere dine Blubrry Services i Blubrry PowerPress under Grundindstillinger for at kunne bruge denne funktion."
4671
 
4672
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:437
 
4673
  msgid "Blubrry PowerPress MP3 Tag settings saved."
4674
  msgstr "Blubrry PowerPress&#39; MP3-tags-indstillinger blev gemt."
4675
 
4676
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:443
 
4677
  msgid "Blubrry PowerPress settings saved."
4678
  msgstr "Blubrry PowerPress-indstillinger gemt."
4679
 
4680
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:459
 
4681
  msgid "iTunes Ping Successful. Podcast Feed URL"
4682
  msgstr "iTunes-ping lykkedes. Podcast-feed-URL"
4683
 
4684
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:488
4685
  #, php-format
 
4686
  msgid "Feed slug \"%s\" is not valid."
4687
  msgstr "Feed-<span title=\"feed slug\">korttitel</span> \"%s\" er ikke gyldig."
4688
 
4689
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:492
4690
  #, php-format
 
4691
  msgid "Feed slug \"%s\" is not available."
4692
  msgstr "<span title=\"feed slug\">Feed-URL&#39;en</span> \"%s\" er ikke tilgængelig."
4693
 
4694
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:502
4695
  #, php-format
 
4696
  msgid "Podcast Feed \"%s\" added, please configure your new feed now."
4697
  msgstr "Podcastfeedet \"%s\" blev tilføjet. Konfigurér venligst dit nye feed nu."
4698
 
4699
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:526
 
4700
  msgid "You must select a category to continue."
4701
  msgstr "Du skal vælge en kategori for at kunne fortsætte."
4702
 
4703
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:530
4704
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:624
 
4705
  msgid "Error obtaining category information."
4706
  msgstr "Fejl i forsøget på at hente kategoriinformation."
4707
 
4708
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:543
4709
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:637
 
4710
  msgid "Please configure your category podcast feed now."
4711
  msgstr "Konfigurér venligst dit kategoripodcastfeed nu."
4712
 
4713
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:652
 
4714
  msgid "Cannot delete default podcast feed."
4715
  msgstr "Kan ikke slette standardpodcastfeed."
4716
 
4717
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:656
4718
  #, php-format
 
4719
  msgid "Cannot delete feed. Feed contains %d episode(s)."
4720
  msgstr "Kan ikke slette feed. Feedet indeholder %d episode(r)."
4721
 
4722
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:678
 
4723
  msgid "Feed deleted successfully."
4724
  msgstr "Feed slettet med succes."
4725
 
4726
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:694
 
4727
  msgid "Removed podcast settings for category feed successfully."
4728
  msgstr "Fjernede podcastindstillinger for kategorifeeds med succes."
4729
 
4730
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:701
 
4731
  msgid "Podpress settings imported successfully."
4732
  msgstr "Podpress-indstillinger blev importeret med succes."
4733
 
4734
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:703
 
4735
  msgid "No Podpress settings found."
4736
  msgstr "Ingen Podpress-indstillinger fundet."
4737
 
4738
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:711
 
4739
  msgid "Settings imported from the plugin \"Podcasting\" successfully."
4740
  msgstr "Indstillingerne fra pluginnet \"Podcasting\" blev importeret med succes."
4741
 
4742
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:713
 
4743
  msgid "No settings found for the plugin \"Podcasting\"."
4744
  msgstr "Der blev ikke fundet nogen indstillinger for pluginnet \"Podcasting\"."
4745
 
4746
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:731
 
4747
  msgid "PowerPress Roles and Capabilities added to WordPress Blog."
4748
  msgstr "PowerPress-roller og rettigheder blev tilføjet til din WordPress-blog."
4749
 
4750
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:748
 
4751
  msgid "PowerPress Roles and Capabilities removed from WordPress Blog"
4752
  msgstr "PowerPress-roller og rettigheder blev fjernet fra din WordPress-blog"
4753
 
4754
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:757
 
4755
  msgid "Premium Subscriber"
4756
  msgstr "<span title=\"premium subscriber\">Betalingsabonnent</span>"
4757
 
4758
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:773
 
4759
  msgid "Podcast Password Protection Capabilities for Custom Channel Feeds added successfully."
4760
  msgstr "Podcastkodeordsbeskyttelsesrettigheder for brugerdefinerede kanalfeeds blev tilføjet med succes."
4761
 
4762
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:791
 
4763
  msgid "Podcast Password Protection Capabilities for Custom Channel Feeds removed successfully."
4764
  msgstr "Podcastkodeordsbeskyttelsesrettigheder for brugerdefinerede kanalfeeds blev fjernet med succes."
4765
 
4766
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:798
4767
  #, php-format
 
4768
  msgid "Plugins Update Cache cleared successfully. You may now to go the %s page to see the latest plugin versions."
4769
  msgstr "Cachen over pluginopdateringer blev tømt med succes. Du kan nu gå til %s-siden for at se de seneste pluginversioner."
4770
 
4771
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:798
 
4772
  msgid "Manage Plugins"
4773
  msgstr "Plugins"
4774
 
4775
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:932
4776
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:954
 
4777
  msgid "Podcast Episode"
4778
  msgstr "Podcastepisode"
4779
 
4780
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:938
 
4781
  msgid "Podcast Episode (default)"
4782
  msgstr "Podcastepisode (standard)"
4783
 
4784
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:947
 
4785
  msgid "Podcast Episode for Custom Channel"
4786
  msgstr "Podcastepisode for brugerdefineret kanal"
4787
 
4788
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:962
 
4789
  msgid "PowerPress"
4790
  msgstr "PowerPress"
4791
 
4792
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:963
 
4793
  msgid "PowerPress Settings"
4794
  msgstr "PowerPress-indstillinger"
4795
 
4796
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:963
 
4797
  msgid "Settings"
4798
  msgstr "Indstillinger"
4799
 
4800
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:966
 
4801
  msgid "PowerPress Audio Player Options"
4802
+ msgstr "Indstillinger for PowerPress-audioafspiller"
4803
 
4804
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:966
 
4805
  msgid "Audio Player"
4806
+ msgstr "Audioafspiller"
4807
+
4808
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:967
4809
+ msgid "PowerPress Video Player Options"
4810
+ msgstr "Indstillinger for PowerPress-videoafspiller"
4811
+
4812
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:967
4813
+ msgid "Video Player"
4814
+ msgstr "Videoafspiller"
4815
 
4816
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:970
 
4817
  msgid "PowerPress Custom Podcast Channels"
4818
  msgstr "PowerPress&#39; brugerdefinerede podcastkanaler"
4819
 
4820
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:972
4821
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1854
4822
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1861
 
 
4823
  msgid "PowerPress Category Podcasting"
4824
  msgstr "PowerPress-kategoripodcasting"
4825
 
4826
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:974
 
4827
  msgid "PodPress Stats"
4828
  msgstr "PodPress-statistik"
4829
 
4830
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:978
 
4831
  msgid "PowerPress MP3 Tags"
4832
  msgstr "PowerPress-MP3-tags"
4833
 
4834
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:979
 
4835
  msgid "Tools"
4836
  msgstr "Værktøj"
4837
 
4838
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1057
4839
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1090
4840
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1105
4841
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1111
4842
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1191
4843
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1196
4844
+ msgid "Error"
4845
+ msgstr "Fejl"
4846
+
4847
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1057
4848
  msgid "Unable to determine content type of media (e.g. audio/mpeg). Verify file extension is correct and try again."
4849
  msgstr "Kunne ikke bestemme mediefilens indholdstype (fx audio/MPEG). Tjek, at filtypen er korrekt og prøv igen."
4850
 
4851
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1111
4852
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1196
 
4853
  msgid "Unable to obtain size of media."
4854
  msgstr "Kunne ikke hente størrelse på mediefil."
4855
 
4856
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1328
4857
+ msgid ""
4858
+ "WARNING: Changes made here are permanent. If the New Feed URL entered is incorrect, you will lose subscribers and will no longer be able to update your listing in the iTunes Store.\\n"
4859
+ "\\n"
4860
+ "DO NOT MODIFY THIS SETTING UNLESS YOU ABSOLUTELY KNOW WHAT YOU ARE DOING.\\n"
4861
+ "\\n"
4862
+ "Are you sure you want to continue?"
4863
+ msgstr ""
4864
+ "ADVARSEL: De ændringer, du laver her, er permanente. Hvis den URL'en for dit nye feed er forkert, vil du miste abonnenter og vil ikke længere være i stand til at opdatere <span title=\"your listing in the iTunes store\">iTunes-katalogiseringen af dine podcasts</span> i iTunes-butikken.\\n"
4865
+ "\\n"
4866
+ "LAD VÆRE AT ÆNDRE PÅ DENNE INDSTILLING, MEDMINDRE DU VED MED FULD SIKKERHED, HVAD DU ER VED AT GØRE.\\n"
4867
+ "\\n"
4868
+ "Er du sikker på, at du ønsker at fortsætte?"
4869
+
4870
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1475
4871
  msgid "Media URL contains characters that may cause problems for some clients. For maximum compatibility, only use letters, numbers, dash - and underscore _ characters only."
4872
  msgstr "Medie-URL&#39;en indeholder tegn, som kan give problemer for nogle programmer. Hvis flest muligt skal kunne bruge mediefilerne, skal du nøjes med bogstaver, tal, bindestregen - og understregningstegnet _."
4873
 
4874
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1490
 
4875
  msgid "PowerPress will not accept media URLs starting with https://.<br />Not all podcatching (podcast downloading) applications support secure http.<br />Please enter a different URL beginning with http://."
4876
  msgstr "PowerPress kan ikke bruge medie-URL&#39;er, der begynder med https://.<br />Ikke alle programmer, der henter podcasts (podcast-downloadere) understøtter sikker http.<br />Indtast venligst en anden URL, der begynder med http://."
4877
 
4878
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1499
 
4879
  msgid "Media URL should not start with https://.<br />Not all podcatching (podcast downloading) applications support secure http.<br />By using https://, you may limit the size of your audience."
4880
  msgstr "Medie-URL&#39;er bør ikke begynde med https://.<br />Ikke alle programmer, der henter podcasts (podcast-downloadere) understøtter sikker http.<br />Ved at bruge https:// begrænser du størrelsen af dit publikum."
4881
 
4882
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1589
 
4883
  msgid "Media verified successfully."
4884
  msgstr "Mediefil bekræftet med succes."
4885
 
4886
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1605
 
4887
  msgid "Unknown error occurred while checking Media URL."
4888
  msgstr "Der skete en ukendt fejl under forsøget på at tjekke medie-URL."
4889
 
4890
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1618
 
4891
  msgid "Operation timed out."
4892
  msgstr "Processen fik timeout."
4893
 
4894
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1620
4895
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1622
4896
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1624
 
4897
  msgid "AJAX Error"
4898
  msgstr "AJAX-fejl"
4899
 
4900
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1624
 
4901
  msgid "Unknown"
4902
  msgstr "Ukendt"
4903
 
4904
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1660
 
4905
  msgid "Are you sure you want to remove this media file?"
4906
  msgstr "Er du sikker på, at du vil fjerne denne mediefil?"
4907
 
4908
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1675
4909
+ msgid "Height"
4910
+ msgstr "Højde"
4911
+
4912
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1690
4913
+ msgid "Add Poster Image"
4914
+ msgstr "Tilføj plakatbillede"
4915
+
4916
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1772
4917
  msgid "Unknown error occurred looking up media information."
4918
  msgstr "Der skete en ukendt fejl i forsøget på at hente information om mediet."
4919
 
4920
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1807
 
4921
  msgid "Edit Blubrry PowerPress Podcast Settings"
4922
  msgstr "Redigér Blubrry PowerPress&#39; podcastindstillinger"
4923
 
4924
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1807
 
4925
  msgid "Podcast Settings"
4926
  msgstr "Podcast-indstillinger"
4927
 
4928
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1812
 
4929
  msgid "Add Blubrry PowerPress Podcasting Settings"
4930
  msgstr "Tilføj Blubrry PowerPress&#39; podcastindstillinger"
4931
 
4932
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1812
 
4933
  msgid "Add Podcasting"
4934
  msgstr "Tilføj podcasting"
4935
 
4936
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1855
 
4937
  msgid "Enable Category Podcasting"
4938
  msgstr "Aktivér kategoripodcasting"
4939
 
4940
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1855
 
4941
  msgid "if you would like to add specific podcasting settings to your blog categories."
4942
  msgstr "Hvis du vil tilføje specifikke podcastindstilling til dine blogkategorier."
4943
 
4944
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1862
 
4945
  msgid "PowerPress Category Podcasting is enabled. Select 'Add Podcasting' to add podcasting settings. Select <u>Podcast Settings</u> to edit existing podcast settings."
4946
  msgstr "PowerPress&#39; kategoripodcasting er aktiveret. Vælg 'Tilføj podcasting' for at tilføje indstillinger for podcasting. Vælg <u>Podcast-indstillinger</u> for at redigere eksisterende podcast-indstillinger."
4947
 
4948
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1896
 
4949
  msgid "Save Changes"
4950
  msgstr "Gem ændringer"
4951
 
4952
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1900
 
4953
  msgid "Blubrry PowerPress"
4954
  msgstr "Blubrry PowerPress"
4955
 
4956
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1901
 
4957
  msgid "PodcastFAQ.com"
4958
  msgstr "PodcastFAQ.com"
4959
 
4960
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1902
 
4961
  msgid "Blubrry PowerPress Documentation"
4962
  msgstr "Blubrry PowerPress-dokumentation"
4963
 
4964
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1902
 
4965
  msgid "Documentation"
4966
  msgstr "Dokumentation"
4967
 
4968
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1903
 
4969
  msgid "Forum"
4970
  msgstr "Forum"
4971
 
4972
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:1904
 
4973
  msgid "Follow Blubrry on Twitter"
4974
  msgstr "Følg Blubrry på Twitter"
4975
 
4976
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2158
 
4977
  msgid "iTunes URL required to ping iTunes."
4978
  msgstr "iTunes-URL er nødvendig for at kunne pinge iTunes."
4979
 
4980
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2169
 
4981
  msgid "Unable to connect to iTunes ping server."
4982
  msgstr "Kunne ikke etablere forbindelse til iTunes&#39; pingserver."
4983
 
4984
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2173
 
4985
  msgid "No Podcast Found from iTunes ping request."
4986
  msgstr "Ingen podcast fundet fra iTunes-pinganmodning."
4987
 
4988
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2362
 
4989
  msgid "Blubrry Hosting Error (media info)"
4990
  msgstr "Blubrry Hosting-fejl (mediefilsinfo)"
4991
 
4992
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2367
4993
  #, php-format
 
4994
  msgid "Blubrry Hosting Error (media info): An error occurred publishing media %s."
4995
  msgstr "Blubrry Hosting-fejl (mediefilsinfo): Der skete en fejl i forsøget på at udgive mediefilen %s."
4996
 
4997
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2369
4998
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2399
 
4999
  msgid "Display Error"
5000
  msgstr "Visningsfejl"
5001
 
5002
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2392
5003
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2398
 
5004
  msgid "Blubrry Hosting Error (publish)"
5005
  msgstr "Blubrry Hosting-fejl (udgivelse)"
5006
 
5007
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2398
5008
  #, php-format
 
5009
  msgid "An error occurred publishing media '%s'."
5010
  msgstr "Der skete en fejl i forsøget på at udgive mediefilen '%s'."
5011
 
5012
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2816
 
5013
  msgid "Error occurred writing MP3 ID3 Tags."
5014
  msgstr "Der skete en fejl under forsøget på at skrive MP3-ID3-tags."
5015
 
5016
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2833
5017
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2930
5018
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2976
 
5019
  msgid "Error occurred obtaining media information."
5020
  msgstr "Det skete en fejl i forsøget på at hente medieinformation."
5021
 
5022
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2898
5023
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2954
5024
  #, php-format
 
5025
  msgid "Warning, the Media URL %s contains %d redirects."
5026
  msgstr "Advarsel, mediefilens URL %s indeholder %d redirects (viderestillinger)."
5027
 
5028
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2899
5029
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2917
5030
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2955
5031
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2968
 
 
5032
  msgid "Help"
5033
  msgstr "Hjælp"
5034
 
5035
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2917
5036
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2968
5037
  #, php-format
 
5038
  msgid "Warning, Media URL %s"
5039
  msgstr "Advarsel, medie-URL %s"
5040
 
5041
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:2934
5042
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:3027
 
5043
  msgid "Error occurred obtaining media file size."
5044
  msgstr "Fejl under aflæsning af mediefilens størrelse."
5045
 
5046
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:3015
 
5047
  msgid "Error, HTTP"
5048
  msgstr "Fejl, HTTP"
5049
 
5050
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:3023
 
5051
  msgid "Unable to obtain file size of media file."
5052
  msgstr "Kunne ikke aflæse filstørrelsen på mediefilen."
5053
 
5054
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:3087
5055
+ msgid "new!"
5056
+ msgstr "ny!"
 
5057
 
5058
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:3100
5059
+ msgid "Error occurred retrieving news."
5060
+ msgstr "Der skete en fejl under forsøget på at hente nyheder."
 
 
5061
 
5062
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:3168
5063
+ msgid "Subscribe:"
5064
+ msgstr "Tilmeld:"
 
 
5065
 
5066
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:3170
5067
+ msgid "Blog"
5068
+ msgstr "Blog"
 
5069
 
5070
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:3176
5071
+ msgid "Zune"
5072
+ msgstr "Zune"
 
5073
 
5074
+ #: d:\wordpress\plugins\powerpress/powerpressadmin.php:3192
5075
+ msgid "Error occurred retrieving highlighted items."
5076
+ msgstr "Fejl under hentning af det fremhævede."
 
5077
 
5078
+ #~ msgid "Uncheck to display only the essential settings for podcasting."
5079
+ #~ msgstr ""
5080
+ #~ "Fjern afkrydsning, hvis du kun vil se de nødvendigste indstillinger for "
5081
+ #~ "podcasting."
5082
 
5083
+ #~ msgid "Simple"
5084
+ #~ msgstr "Simpel"
 
 
5085
 
5086
+ #~ msgid ""
5087
+ #~ "Episode entry box includes Media URL field only. File Size and Duration "
5088
+ #~ "will be auto detected upon saving the post."
5089
+ #~ msgstr ""
5090
+ #~ "Episodepanelet inkluderer kun felt til medie-URL. Filstørrelse og <span "
5091
+ #~ "title=\"duration\">varighed</span> vil automatisk blive aflæst, når "
5092
+ #~ "indlægget gemmes."
5093
 
5094
+ #~ msgid "Normal"
5095
+ #~ msgstr "Normal"
 
 
 
5096
 
5097
+ #~ msgid ""
5098
+ #~ "Episode entry box includes Media URL, File Size and Duration fields, plus:"
5099
+ #~ msgstr ""
5100
+ #~ "Episodepanel inkluderer felter for medie-URL, filstørrelse og <span title="
5101
+ #~ "\"duration\">varighed</span>, plus:"
5102
 
5103
+ #~ msgid "specify URL to image to display in place of QuickTime video"
5104
+ #~ msgstr ""
5105
+ #~ "Angiv URL til billede, der skal vises i stedet for QuickTime-videoen"
 
5106
 
5107
+ #~ msgid "Notify (ping) iTunes when you publish a new episode."
5108
+ #~ msgstr "Giv besked (ping) iTunes, når du har udgivet en ny episode."
 
 
5109
 
5110
+ #~ msgid "Test Update iTunes Listing (recommended)"
5111
+ #~ msgstr ""
5112
+ #~ "Test opdatering af <span title=\"iTunes Listing\">iTunes-katalogiseringen "
5113
+ #~ "af dine podcasts</span> (anbefalet)"
5114
 
5115
+ #~ msgid "You may also update your iTunes listing by using the following link:"
5116
+ #~ msgstr ""
5117
+ #~ "Du kan også opdatere <span title=\"iTunes listing\">iTunes-"
5118
+ #~ "katalogiseringen af dine podcasts</span> via følgende link:"
5119
 
5120
+ #~ msgid "Ping iTunes in New Window"
5121
+ #~ msgstr "Ping iTunes i nyt vindue"
 
 
5122
 
5123
+ #~ msgid "Latest Update iTunes Listing Status:"
5124
+ #~ msgstr ""
5125
+ #~ "Seneste opdatering af <span title=\"iTunes Listing Status\">status på "
5126
+ #~ "iTunes-katalogiseringen af dine podcasts</span>:"
5127
 
5128
+ #~ msgid "Successful"
5129
+ #~ msgstr "Gennemført"
 
 
5130
 
5131
+ #~ msgid "iTunes notified on %s at %s"
5132
+ #~ msgstr "iTunes fik besked %s kl. %s"
 
 
5133
 
5134
+ #~ msgid "for post:"
5135
+ #~ msgstr "for indlæg:"
 
 
5136
 
5137
+ #~ msgid "Feed pulled by iTunes:"
5138
+ #~ msgstr "Feed hentet af iTunes:"
 
 
5139
 
5140
+ #~ msgid "WordPress Dashboard"
5141
+ #~ msgstr "WordPress-kontrolpanel"
 
 
5142
 
5143
+ #~ msgid ""
5144
+ #~ "Note: <b>No membership or service is required</b> to use this free open "
5145
+ #~ "source podcasting plugin."
5146
+ #~ msgstr ""
5147
+ #~ "Bemærk: <b>Der kræves ikke medlemskab eller andre tjenesteydelser</b> for "
5148
+ #~ "at bruge dette gratis open source-podcastingplugin."
5149
 
5150
+ #~ msgid "Blubrry Services"
5151
+ #~ msgstr "Blubrry Services"
 
 
 
5152
 
5153
+ #~ msgid "Dashboard Integration"
5154
+ #~ msgstr "Kontrolpanel-integration"
 
 
5155
 
5156
+ #~ msgid "Sign Up For Free Media Statistics Now"
5157
+ #~ msgstr "Registrér og få gratis mediestatistik nu"
 
 
5158
 
5159
+ #~ msgid "hide"
5160
+ #~ msgstr "skjul"
 
 
 
 
 
5161
 
5162
+ #~ msgid "Learn About Free Blubrry Statistics"
5163
+ #~ msgstr "Læs mere om gratis Blubrry-statistik"
 
 
5164
 
5165
+ #~ msgid "Media Presentation"
5166
+ #~ msgstr "Mediepræsentation"
 
 
5167
 
5168
+ #~ msgid "Below Post"
5169
+ #~ msgstr "Nedenfor indlæg"
 
 
5170
 
5171
+ #~ msgid "Above Post"
5172
+ #~ msgstr "Ovenfor indlæg"
 
 
5173
 
5174
+ #~ msgid "None"
5175
+ #~ msgstr "Ingen"
 
 
5176
 
5177
+ #~ msgid "where media player and download links will be displayed"
5178
+ #~ msgstr "hvor medieafspiller og downloadlinks vises"
 
 
5179
 
5180
+ #~ msgid "On Page & New Window"
5181
+ #~ msgstr "På side og i nyt vindue"
 
 
 
5182
 
5183
+ #~ msgid "On Page Only"
5184
+ #~ msgstr "Kun på side"
 
 
5185
 
5186
+ #~ msgid "New Window Only"
5187
+ #~ msgstr "Kun nyt vindue"
 
 
5188
 
5189
+ #~ msgid "select where to display media flash player or embed code"
5190
+ #~ msgstr ""
5191
+ #~ "vælg hvor medieflashafspilleren skal vises eller koden skal indsættes"
 
 
5192
 
5193
+ #~ msgid "Disable Media Player for known mobile devices."
5194
+ #~ msgstr "Deaktivér medieafspiller for kendte mobilenheder."
 
 
5195
 
5196
+ #~ msgid "Display with file size"
5197
+ #~ msgstr "Vis med filstørrelse"
 
 
 
5198
 
5199
+ #~ msgid "Audio Player Settings"
5200
+ #~ msgstr "Indstillinger for lydafspiller"
 
 
5201
 
5202
+ #~ msgid "Default Player Width"
5203
+ #~ msgstr "Standardbredde for afspiller"
 
 
 
5204
 
5205
+ #~ msgid "advanced mode:"
5206
+ #~ msgstr "avancerede funktioner:"
 
 
5207
 
5208
+ #~ msgid "episode box mode:"
5209
+ #~ msgstr "Udgave af episodepanel:"
 
 
5210
 
5211
+ #~ msgid "normal"
5212
+ #~ msgstr "normal"
 
 
5213
 
5214
+ #~ msgid "simple"
5215
+ #~ msgstr "enkel"
 
 
5216
 
5217
+ #~ msgid "advanced"
5218
+ #~ msgstr "avanceret"
 
 
5219
 
5220
+ #~ msgid "curl_ssl:"
5221
+ #~ msgstr "curl_ssl:"
 
 
5222
 
5223
+ #~ msgid "openssl:"
5224
+ #~ msgstr "openssl:"
 
 
5225
 
5226
+ #~ msgid "Technorati"
5227
+ #~ msgstr "Technorati"
 
 
5228
 
5229
+ #~ msgid "Select Player"
5230
+ #~ msgstr "Vælg afspiller"
 
 
5231
 
5232
+ #~ msgid "Flow Player Classic has no additional settings."
5233
+ #~ msgstr "Flow Player Classic har ikke flere indstillinger."
 
 
5234
 
5235
+ #~ msgid ""
5236
+ #~ "You must have the Blubrry PowerPress version 1.0 or newer installed for "
5237
+ #~ "this plugin to work."
5238
+ #~ msgstr ""
5239
+ #~ "Du skal have Blubrry PowerPress version 1.0 eller nyere installeret, hvis "
5240
+ #~ "dette plugin skal virke."
5241
 
5242
+ #~ msgid ""
5243
+ #~ "Your copy of Blubrry PowerPress is out of date. You must have Blubrry "
5244
+ #~ "PowerPress version 1.0 or newer installed for this plugin to work."
5245
+ #~ msgstr ""
5246
+ #~ "Din udgave af Blubrry PowerPress er forældet. Du skal have Blubrry "
5247
+ #~ "PowerPress version 1.0 eller nyere installeret, hvis dette plugin skal "
5248
+ #~ "virke."
5249
 
5250
+ #~ msgid ""
5251
+ #~ "Blubrry would like to thank the following for translating PowerPress."
5252
+ #~ msgstr "Blubrry takker de følgende for at have oversat PowerPress."
 
5253
 
5254
+ #~ msgid "Translations coming soon"
5255
+ #~ msgstr "Oversættelser er på vej"
 
 
5256
 
5257
+ #~ msgid "versions %s by"
5258
+ #~ msgstr "versionerne %s af"
 
 
5259
 
5260
+ #~ msgid "You are now in Advanced Mode."
5261
+ #~ msgstr "Du bruger nu Avancerede funktioner."
 
 
 
5262
 
5263
+ #~ msgid "You are now in Simple Mode."
5264
+ #~ msgstr "Du bruger nu Simple funktioner."
 
 
5265
 
5266
+ #~ msgid "You must select a Mode to continue."
5267
+ #~ msgstr "Du skal vælge niveau for funktioner for at kunne fortsætte."
 
 
5268
 
5269
+ #~ msgid "Unable to parse response from server."
5270
+ #~ msgstr "Kunne ikke parse svaret fra serveren."
 
 
5271
 
5272
+ #~ msgid "Your version of WordPress is too outdated for this function."
5273
+ #~ msgstr ""
5274
+ #~ "Din version af WordPress er for gammel til, at denne funktion kan vendes."
 
5275
 
5276
+ #~ msgid "Unable to detect content type."
5277
+ #~ msgstr "Kunne ikke aflæse indholdstype."
 
 
5278
 
5279
+ #~ msgid "Send Results"
5280
+ #~ msgstr "Send resultater"
 
 
5281
 
5282
+ #~ msgid "iTunes URL"
5283
+ #~ msgstr "iTunes-URL"
 
 
5284
 
5285
+ #~ msgid "Click here to Publish a Podcast on iTunes"
5286
+ #~ msgstr "Klik her for at udgive et podcast på iTunes"
 
 
5287
 
5288
+ #~ msgid ""
5289
+ #~ "Once your podcast is listed on iTunes, enter your one-click subscription "
5290
+ #~ "URL above."
5291
+ #~ msgstr ""
5292
+ #~ "Når dit podcast vises på iTunes, skal du indtaste URL&#39;en til din et-"
5293
+ #~ "kliks-tilmelding ovenfor."
5294
 
5295
+ #~ msgid "Test Update iTunes Listing"
5296
+ #~ msgstr ""
5297
+ #~ "Test Opdatér <span title=\"iTunes Listing\">iTunes-katalogisering af dine "
5298
+ #~ "podcasts</span>"
5299
 
5300
+ #~ msgid "recommended"
5301
+ #~ msgstr "anbefalet"
 
 
5302
 
5303
+ #~ msgid "You may also update your iTunes listing by using the following link"
5304
+ #~ msgstr ""
5305
+ #~ "Du kan også opdatere <span title=\"iTunes listing\">iTunes-"
5306
+ #~ "katalogiseringen af dine podcasts</span> via følgende link"
5307
 
5308
+ #~ msgid "Update iTunes Listing in New Window"
5309
+ #~ msgstr ""
5310
+ #~ "Test Opdatér <span title=\"iTunes Listing\">iTunes-katalogisering af dine "
5311
+ #~ "podcasts</span> i nyt vindue"
5312
 
5313
+ #~ msgid "Latest Update iTunes Listing Status"
5314
+ #~ msgstr ""
5315
+ #~ "Seneste opdatering af <span title=\"iTunes Listing Status\">status på "
5316
+ #~ "iTunes-katalogiseringen af dine podcasts</span>"
5317
 
5318
+ #~ msgid "for post"
5319
+ #~ msgstr "for indlægget"
 
 
5320
 
5321
+ #~ msgid "Feed pulled by iTunes"
5322
+ #~ msgstr "Feed hentet af iTunes"
 
 
5323
 
5324
+ #~ msgid "What's this"
5325
+ #~ msgstr "Hvad er det"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5326
 
5327
+ #, fuzzy
5328
+ #~ msgid " for post: "
5329
+ #~ msgstr "til dette indlæg"
languages/powerpress-it_IT.mo CHANGED
Binary file
languages/powerpress-it_IT.po CHANGED
@@ -172,7 +172,7 @@ msgstr "Blubrry PowerPress Player"
172
  #@ powerpress
173
  #: powerpress-player.php:565
174
  msgid "Player Not Available"
175
- msgstr "Player Non Disponibile"
176
 
177
  #@ powerpress
178
  #: powerpress-player.php:971
@@ -300,7 +300,7 @@ msgstr "Opzioni Audio Player"
300
  #@ powerpress
301
  #: powerpressadmin-basic.php:144
302
  msgid "Select from 6 different web based audio players."
303
- msgstr "Seleziona tra sei diversi audio player web"
304
 
305
  #@ powerpress
306
  #: powerpressadmin-basic.php:145
@@ -313,12 +313,12 @@ msgstr "l'opzione apparirà nel menu di sinistra quando attivata"
313
  #@ powerpress
314
  #: powerpressadmin-basic.php:149
315
  msgid "Video Player Options"
316
- msgstr "Opzioni Video Player"
317
 
318
  #@ powerpress
319
  #: powerpressadmin-basic.php:150
320
  msgid "Select from 2 different web based video players."
321
- msgstr "Seleziona tra due diversi video player web"
322
 
323
  #@ powerpress
324
  #@ default
@@ -461,22 +461,22 @@ msgstr "Inserisci il codice di incorporazione da siti come YouTube, Viddler and
461
  #@ powerpress
462
  #: powerpressadmin-basic.php:234
463
  msgid "Replace Player with Embed"
464
- msgstr "Sostituisci il Player con l'Incorporazione"
465
 
466
  #@ powerpress
467
  #: powerpressadmin-basic.php:235
468
  msgid "Do not display default player if embed present for episode."
469
- msgstr "Non mostrare il player predefinito se esiste incorporazione per l'episodio."
470
 
471
  #@ powerpress
472
  #: powerpressadmin-basic.php:237
473
  msgid "Display Player and Links Options"
474
- msgstr "Mostra le Opzioni Player e Link"
475
 
476
  #@ powerpress
477
  #: powerpressadmin-basic.php:241
478
  msgid "No Player & Links Option"
479
- msgstr "Non ci sono Opzioni Player e Link"
480
 
481
  #@ powerpress
482
  #: powerpressadmin-basic.php:242
@@ -491,7 +491,7 @@ msgstr "- o -"
491
  #@ powerpress
492
  #: powerpressadmin-basic.php:246
493
  msgid "No Player Option"
494
- msgstr "Non ci sono Opzioni Player"
495
 
496
  #@ powerpress
497
  #: powerpressadmin-basic.php:247
@@ -521,12 +521,12 @@ msgstr "Specifica URL alla poster artwork specifica di ciascun episodio"
521
  #@ powerpress
522
  #: powerpressadmin-basic.php:257
523
  msgid "Player Width and Height"
524
- msgstr "Larghezza e Altezza del Player"
525
 
526
  #@ powerpress
527
  #: powerpressadmin-basic.php:258
528
  msgid "Customize player width and height on a per episode basis"
529
- msgstr "Personalizza larghezza e altezza del player su una base per episodi"
530
 
531
  #@ powerpress
532
  #: powerpressadmin-basic.php:260
@@ -1027,7 +1027,7 @@ msgstr "Contenuto sotto la pagina"
1027
  #@ powerpress
1028
  #: powerpressadmin-basic.php:883
1029
  msgid "Player and media links will appear <u>below</u> your post and page content."
1030
- msgstr "Player e media link appariranno <u>sotto</u> i tuoi post e contenuti di pagina."
1031
 
1032
  #@ powerpress
1033
  #: powerpressadmin-basic.php:887
@@ -1037,7 +1037,7 @@ msgstr "Contenuto sopra la pagina"
1037
  #@ powerpress
1038
  #: powerpressadmin-basic.php:890
1039
  msgid "Player and media links will appear <u>above</u> your post and page content."
1040
- msgstr "Player e media link appariranno <u>sopra</u> i tuoi post e contenuti di pagina."
1041
 
1042
  #@ powerpress
1043
  #: powerpressadmin-basic.php:893
@@ -1047,7 +1047,7 @@ msgstr "Disabilita"
1047
  #@ powerpress
1048
  #: powerpressadmin-basic.php:896
1049
  msgid "Player and media links will <u>NOT</u> appear in your post and page content. Media player and links can be added manually by using the <i>shortcode</i> below."
1050
- msgstr "Player e media linkl <u>NON</u> nel tuo post o contenuto pagina. Media player e link possono essere aggiunti manualmente usando lo <i>shortcode</i> qui sotto."
1051
 
1052
  #@ powerpress
1053
  #: powerpressadmin-basic.php:900
@@ -1074,7 +1074,7 @@ msgstr "PowerPress Shortcode"
1074
  #: powerpressadmin-basic.php:909
1075
  #, php-format
1076
  msgid "The %s shortcode is used to position your media presentation (player and download links) exactly where you want within your post or page content."
1077
- msgstr "Lo %s shortcode si usa per posizionare la presentazione dei media (player e download link) esattamente dove vuoi all'interno del post o del contenuto pagina."
1078
 
1079
  #@ powerpress
1080
  #: powerpressadmin-basic.php:910
@@ -1095,12 +1095,12 @@ msgstr "Media Player"
1095
  #@ powerpress
1096
  #: powerpressadmin-basic.php:926
1097
  msgid "Display Player"
1098
- msgstr "Mostra Player"
1099
 
1100
  #@ powerpress
1101
  #: powerpressadmin-basic.php:930
1102
  msgid "Detected mobile and tablet devices use an HTML5 player with a fallback link to download the media."
1103
- msgstr "Identificati dispositivi mobile e tablet: usate un player HTML 5 con un link fallback per scaricare il media."
1104
 
1105
  #@ powerpress
1106
  #: powerpressadmin-basic.php:943
@@ -1130,7 +1130,7 @@ msgstr "Includi dimensione del file e durata"
1130
  #@ powerpress
1131
  #: powerpressadmin-basic.php:952
1132
  msgid "Display Player Embed Link"
1133
- msgstr "Mostra Link Incorpora Player"
1134
 
1135
  #@ powerpress
1136
  #: powerpressadmin-basic.php:954
@@ -1140,7 +1140,7 @@ msgstr "Includi l'incorporato nei feed"
1140
  #@ powerpress
1141
  #: powerpressadmin-basic.php:956
1142
  msgid "Embed option only works for Flow Player Classic and HTML5 Video player."
1143
- msgstr "L'opzione Incorpora funziona solo con Flow Player Classic e Video player HTML5."
1144
 
1145
  #@ powerpress
1146
  #: powerpressadmin-basic.php:968
@@ -1160,7 +1160,7 @@ msgstr "Sì, per favore tenta di sistemare"
1160
  #@ powerpress
1161
  #: powerpressadmin-basic.php:980
1162
  msgid "Use this option if you are having problems with the players not appearing in your pages."
1163
- msgstr "Usate questa opzione se incontrate problemi nella visualizzazione dei Player nelle Vostre pagine."
1164
 
1165
  #@ powerpress
1166
  #: powerpressadmin-basic.php:989
@@ -1210,7 +1210,7 @@ msgstr "Lasciate senza spunta questa opzione se volete mostrare i marcatori di c
1210
  #@ powerpress
1211
  #: powerpressadmin-basic.php:1028
1212
  msgid "When unchecked, m4a will be played with the quicktime video embed. Video player width/height settings apply."
1213
- msgstr "Quando senza spunta, gli m4a saranno riprodotti con l'incorporazione video quicktime.Si applicano le impostazioni larghezza/altezza del Video player."
1214
 
1215
  #@ powerpress
1216
  #: powerpressadmin-basic.php:1046
@@ -1845,7 +1845,7 @@ msgstr "Canali podcast:"
1845
  #@ powerpress
1846
  #: powerpressadmin-diagnostics.php:262
1847
  msgid "Additional Player Options:"
1848
- msgstr "Opzioni Addizionali del Player:"
1849
 
1850
  #@ powerpress
1851
  #: powerpressadmin-diagnostics.php:266
@@ -3032,7 +3032,7 @@ msgstr "Aggiungi firma nel link al messaggio"
3032
  #@ powerpress
3033
  #: powerpressadmin-editfeed.php:719
3034
  msgid "Label above appears in place of the in-page player and links when the current signed-in user does not have access to the protected content."
3035
- msgstr "L'etichetta qui sopra appare al posto del player o dei link in-page quando l'Utente connesso non ha i permessi per visualizzare contenuti protetti."
3036
 
3037
  #@ powerpress
3038
  #: powerpressadmin-editfeed.php:735
@@ -3042,12 +3042,12 @@ msgstr "Impostazioni Aspetto"
3042
  #@ powerpress
3043
  #: powerpressadmin-editfeed.php:739
3044
  msgid "Disable Player"
3045
- msgstr "Disabilita il Player"
3046
 
3047
  #@ powerpress
3048
  #: powerpressadmin-editfeed.php:742
3049
  msgid "Do not display web player or links for this podcast channel."
3050
- msgstr "Non mostrare il web player o i link in questo Canale podcast."
3051
 
3052
  #@ powerpress
3053
  #: powerpressadmin-editfeed.php:778
@@ -3225,33 +3225,33 @@ msgstr "Imposta URL Nuovo Feed iTunes"
3225
  #@ powerpress
3226
  #: powerpressadmin-editfeed.php:1007
3227
  msgid "The iTunes New Feed URL option works primarily for Apple's iTunes application only, and should only be used if you are unable to implement a HTTP 301 redirect."
3228
- msgstr ""
3229
 
3230
  #@ powerpress
3231
  #: powerpressadmin-editfeed.php:1008
3232
  msgid "A 301 redirect will route <u>all podcast clients including iTunes</u> to your new feed address."
3233
- msgstr ""
3234
 
3235
  #@ powerpress
3236
  #: powerpressadmin-editfeed.php:1012
3237
  msgid "Changing Your Podcast RSS Feed Address (URL)"
3238
- msgstr ""
3239
 
3240
  #@ powerpress
3241
  #: powerpressadmin-editfeed.php:1016
3242
  msgid "WARNING: Changes made here are permanent. If the New Feed URL entered is incorrect, you will lose subscribers and will no longer be able to update your listing in the iTunes Store."
3243
- msgstr ""
3244
 
3245
  #@ powerpress
3246
  #: powerpressadmin-editfeed.php:1017
3247
  msgid "DO NOT MODIFY THIS SETTING UNLESS YOU ABSOLUTELY KNOW WHAT YOU ARE DOING."
3248
- msgstr ""
3249
 
3250
  #@ powerpress
3251
  #: powerpressadmin-editfeed.php:1019
3252
  #, php-format
3253
  msgid "Apple recommends you maintain the %s tag in your feed for at least two weeks to ensure that most subscribers will receive the new New Feed URL."
3254
- msgstr ""
3255
 
3256
  #@ powerpress
3257
  #: powerpressadmin-editfeed.php:1023
@@ -3273,7 +3273,7 @@ msgstr "feed"
3273
  #: powerpressadmin-editfeed.php:1041
3274
  #, php-format
3275
  msgid "The New Feed URL value below will be applied to the %s (%s)."
3276
- msgstr ""
3277
 
3278
  #@ powerpress
3279
  #: powerpressadmin-editfeed.php:1045
@@ -3283,36 +3283,36 @@ msgstr "URL Nuovo Feed"
3283
  #@ powerpress
3284
  #: powerpressadmin-editfeed.php:1048
3285
  msgid "Leave blank for no New Feed URL"
3286
- msgstr ""
3287
 
3288
  #@ powerpress
3289
  #: powerpressadmin-editfeed.php:1050
3290
  msgid "More information regarding the iTunes New Feed URL is available here."
3291
- msgstr ""
3292
 
3293
  #@ powerpress
3294
  #: powerpressadmin-editfeed.php:1056
3295
  #, php-format
3296
  msgid "Please activate the 'Custom Podcast Channels' Advanced Option to set the new-feed-url for your podcast only feed (%s)"
3297
- msgstr ""
3298
 
3299
  #@ powerpress
3300
  #: powerpressadmin-editfeed.php:1058
3301
  #, php-format
3302
  msgid "Please navigate to the 'Custom Podcast Channels' section to set the new-feed-url for your podcast only feed (%s)"
3303
- msgstr ""
3304
 
3305
  #@ powerpress
3306
  #: powerpressadmin-find-replace.php:134
3307
  #, php-format
3308
  msgid "%d URLs updated successfully."
3309
- msgstr ""
3310
 
3311
  #@ powerpress
3312
  #: powerpressadmin-find-replace.php:136
3313
  #, php-format
3314
  msgid "%d URLs were not updated."
3315
- msgstr ""
3316
 
3317
  #@ powerpress
3318
  #: powerpressadmin-find-replace.php:138
@@ -3322,7 +3322,7 @@ msgstr "Nessun termine di ricerca specificato."
3322
  #@ powerpress
3323
  #: powerpressadmin-find-replace.php:145
3324
  msgid "WARNING: Please backup your database before proceeding. Blubrry PowerPress is not responsibile for any lost or damaged data resulting from this Find and Replace tool."
3325
- msgstr ""
3326
 
3327
  #@ powerpress
3328
  #: powerpressadmin-find-replace.php:177
@@ -3331,6 +3331,9 @@ msgid ""
3331
  "\n"
3332
  "Are you sure you do not want to verify the URLs?"
3333
  msgstr ""
 
 
 
3334
 
3335
  #@ powerpress
3336
  #: powerpressadmin-find-replace.php:185
@@ -3339,6 +3342,9 @@ msgid ""
3339
  "\n"
3340
  "Are you sure you wish to continue?"
3341
  msgstr ""
 
 
 
3342
 
3343
  #@ powerpress
3344
  #: powerpressadmin-find-replace.php:220
@@ -3349,7 +3355,7 @@ msgstr "Trova e Sostituisci gli URL degli episodi"
3349
  #: powerpressadmin-find-replace.php:222
3350
  #: powerpressadmin-tools.php:77
3351
  msgid "Find and replace complete or partial segments of media URLs. Useful if you move your media to a new web site or service."
3352
- msgstr ""
3353
 
3354
  #@ powerpress
3355
  #: powerpressadmin-find-replace.php:226
@@ -3486,13 +3492,13 @@ msgstr "Seleziona Media"
3486
  #@ powerpress
3487
  #: powerpressadmin-jquery.php:140
3488
  msgid "Wait a sec! This feature is only available to Blubrry Podcast paid hosting members."
3489
- msgstr ""
3490
 
3491
  #@ powerpress
3492
  #: powerpressadmin-jquery.php:142
3493
  #, php-format
3494
  msgid "Join our community to get free podcast statistics and access to other valuable %s."
3495
- msgstr ""
3496
 
3497
  #@ powerpress
3498
  #: powerpressadmin-jquery.php:143
@@ -3503,12 +3509,12 @@ msgstr "servizi"
3503
  #: powerpressadmin-jquery.php:147
3504
  #, php-format
3505
  msgid "Our %s PowerPress makes podcast publishing simple. Check out the %s on our exciting three-step publishing system!"
3506
- msgstr ""
3507
 
3508
  #@ powerpress
3509
  #: powerpressadmin-jquery.php:148
3510
  msgid "podcast-hosting integrated"
3511
- msgstr ""
3512
 
3513
  #@ powerpress
3514
  #: powerpressadmin-jquery.php:149
@@ -3518,12 +3524,12 @@ msgstr "video"
3518
  #@ powerpress
3519
  #: powerpressadmin-jquery.php:171
3520
  msgid "An unknown error occurred deleting media file."
3521
- msgstr ""
3522
 
3523
  #@ powerpress
3524
  #: powerpressadmin-jquery.php:206
3525
  msgid "Are you sure you want to delete this media file?"
3526
- msgstr ""
3527
 
3528
  #@ powerpress
3529
  #: powerpressadmin-jquery.php:216
@@ -3534,12 +3540,12 @@ msgstr "Invia Media File"
3534
  #@ powerpress
3535
  #: powerpressadmin-jquery.php:217
3536
  msgid "Select from media files uploaded to blubrry.com"
3537
- msgstr ""
3538
 
3539
  #@ powerpress
3540
  #: powerpressadmin-jquery.php:242
3541
  msgid "Media Published within the past 30 days"
3542
- msgstr ""
3543
 
3544
  #@ powerpress
3545
  #: powerpressadmin-jquery.php:253
@@ -3556,50 +3562,50 @@ msgstr "Seleziona"
3556
  #: powerpressadmin-jquery.php:279
3557
  #, php-format
3558
  msgid "You have uploaded %s (%s available) of your %s limit."
3559
- msgstr ""
3560
 
3561
  #@ powerpress
3562
  #: powerpressadmin-jquery.php:286
3563
  #, php-format
3564
  msgid "You are hosting %s (%s available) of your %s/30 day limit."
3565
- msgstr ""
3566
 
3567
  #@ powerpress
3568
  #: powerpressadmin-jquery.php:293
3569
  #, php-format
3570
  msgid "Your limit will adjust on %s to %s (%s available)."
3571
- msgstr ""
3572
 
3573
  #@ powerpress
3574
  #: powerpressadmin-jquery.php:360
3575
  msgid "currently not available"
3576
- msgstr ""
3577
 
3578
  #@ powerpress
3579
  #: powerpressadmin-jquery.php:362
3580
  #: powerpressadmin-jquery.php:580
3581
  msgid "Unable to find podcasts for this account."
3582
- msgstr ""
3583
 
3584
  #@ powerpress
3585
  #: powerpressadmin-jquery.php:397
3586
  msgid "You must select a program to continue."
3587
- msgstr ""
3588
 
3589
  #@ powerpress
3590
  #: powerpressadmin-jquery.php:409
3591
  msgid "Please select your podcast program to continue."
3592
- msgstr ""
3593
 
3594
  #@ powerpress
3595
  #: powerpressadmin-jquery.php:417
3596
  msgid "No podcasts for this account are listed on blubrry.com."
3597
- msgstr ""
3598
 
3599
  #@ powerpress
3600
  #: powerpressadmin-jquery.php:429
3601
  msgid "Authentication failed."
3602
- msgstr ""
3603
 
3604
  #@ powerpress
3605
  #: powerpressadmin-jquery.php:434
@@ -3614,17 +3620,17 @@ msgstr "Clicca qui per Aiuto"
3614
  #: powerpressadmin-jquery.php:497
3615
  #: powerpressadmin-jquery.php:504
3616
  msgid "Blubrry Services Integration"
3617
- msgstr ""
3618
 
3619
  #@ powerpress
3620
  #: powerpressadmin-jquery.php:454
3621
  msgid "Settings Saved Successfully!"
3622
- msgstr ""
3623
 
3624
  #@ powerpress
3625
  #: powerpressadmin-jquery.php:507
3626
  msgid "Blubrry User Name (Email)"
3627
- msgstr ""
3628
 
3629
  #@ powerpress
3630
  #: powerpressadmin-jquery.php:511
@@ -3634,22 +3640,22 @@ msgstr "Password Blubrry"
3634
  #@ powerpress
3635
  #: powerpressadmin-jquery.php:514
3636
  msgid "Select Blubrry Services"
3637
- msgstr ""
3638
 
3639
  #@ powerpress
3640
  #: powerpressadmin-jquery.php:516
3641
  msgid "Statistics Integration only"
3642
- msgstr ""
3643
 
3644
  #@ powerpress
3645
  #: powerpressadmin-jquery.php:519
3646
  msgid "Statistics and Hosting Integration (Requires Blubrry Hosting Account)"
3647
- msgstr ""
3648
 
3649
  #@ powerpress
3650
  #: powerpressadmin-jquery.php:526
3651
  msgid "Blubrry Program Keyword"
3652
- msgstr ""
3653
 
3654
  #@ powerpress
3655
  #: powerpressadmin-jquery.php:528
@@ -3714,82 +3720,82 @@ msgstr "WordPress"
3714
  #@ powerpress
3715
  #: powerpressadmin-metabox.php:132
3716
  msgid "Modify existing podcast episode"
3717
- msgstr ""
3718
 
3719
  #@ powerpress
3720
  #: powerpressadmin-metabox.php:151
3721
  msgid "Podcast episode will be removed from this post upon save"
3722
- msgstr ""
3723
 
3724
  #@ powerpress
3725
  #: powerpressadmin-metabox.php:165
3726
  msgid "Browse Media File"
3727
- msgstr ""
3728
 
3729
  #@ powerpress
3730
  #: powerpressadmin-metabox.php:165
3731
  msgid "Browse Media Files"
3732
- msgstr ""
3733
 
3734
  #@ powerpress
3735
  #: powerpressadmin-metabox.php:167
3736
  msgid "Verify"
3737
- msgstr ""
3738
 
3739
  #@ powerpress
3740
  #: powerpressadmin-metabox.php:167
3741
  msgid "Verify Media"
3742
- msgstr ""
3743
 
3744
  #@ powerpress
3745
  #: powerpressadmin-metabox.php:168
3746
  msgid "Checking Media"
3747
- msgstr ""
3748
 
3749
  #@ powerpress
3750
  #: powerpressadmin-metabox.php:171
3751
  msgid "Media file hosted by blubrry.com."
3752
- msgstr ""
3753
 
3754
  #@ powerpress
3755
  #: powerpressadmin-metabox.php:172
3756
  msgid "Remove Blubrry.com hosted media file"
3757
- msgstr ""
3758
 
3759
  #@ powerpress
3760
  #: powerpressadmin-metabox.php:172
3761
  msgid "remove"
3762
- msgstr ""
3763
 
3764
  #@ powerpress
3765
  #: powerpressadmin-metabox.php:177
3766
  msgid "Video is HD (720p/1080i/1080p)"
3767
- msgstr ""
3768
 
3769
  #@ powerpress
3770
  #: powerpressadmin-metabox.php:185
3771
  msgid "Do not display player and media links"
3772
- msgstr ""
3773
 
3774
  #@ powerpress
3775
  #: powerpressadmin-metabox.php:191
3776
  msgid "Do not display player"
3777
- msgstr ""
3778
 
3779
  #@ powerpress
3780
  #: powerpressadmin-metabox.php:197
3781
  msgid "Do not display media links"
3782
- msgstr ""
3783
 
3784
  #@ powerpress
3785
  #: powerpressadmin-metabox.php:206
3786
  msgid "Alt WebM URL"
3787
- msgstr ""
3788
 
3789
  #@ powerpress
3790
  #: powerpressadmin-metabox.php:211
3791
  msgid "For HTML5 Video fallback, enter an alternative WebM media URL above. (optional)"
3792
- msgstr ""
3793
 
3794
  #@ powerpress
3795
  #: powerpressadmin-metabox.php:219
@@ -3827,92 +3833,92 @@ msgstr "Seleziona Immagine Poster"
3827
  #@ powerpress
3828
  #: powerpressadmin-metabox.php:275
3829
  msgid "Poster image for video (m4v, mp4, ogv, webm, etc..). e.g. http://example.com/path/to/image.jpg"
3830
- msgstr ""
3831
 
3832
  #@ powerpress
3833
  #: powerpressadmin-metabox.php:286
3834
  msgid "Player Size"
3835
- msgstr "Dimensioni Player"
3836
 
3837
  #@ powerpress
3838
  #: powerpressadmin-metabox.php:301
3839
  msgid "Media Embed"
3840
- msgstr ""
3841
 
3842
  #@ powerpress
3843
  #: powerpressadmin-metabox.php:313
3844
  msgid "iTunes Keywords"
3845
- msgstr ""
3846
 
3847
  #@ powerpress
3848
  #: powerpressadmin-metabox.php:318
3849
  msgid "Enter up to 12 keywords separated by commas. Leave blank to use your blog post tags."
3850
- msgstr ""
3851
 
3852
  #@ powerpress
3853
  #: powerpressadmin-metabox.php:328
3854
  msgid "iTunes Subtitle"
3855
- msgstr ""
3856
 
3857
  #@ powerpress
3858
  #: powerpressadmin-metabox.php:333
3859
  msgid "Your subtitle may not contain HTML and cannot exceed 250 characters in length. Leave blank to use the first 250 characters of your blog post."
3860
- msgstr ""
3861
 
3862
  #@ powerpress
3863
  #: powerpressadmin-metabox.php:343
3864
  msgid "iTunes Summary"
3865
- msgstr ""
3866
 
3867
  #@ powerpress
3868
  #: powerpressadmin-metabox.php:348
3869
  msgid "Your summary may not contain HTML and cannot exceed 4,000 characters in length. Leave blank to use your blog post."
3870
- msgstr ""
3871
 
3872
  #@ powerpress
3873
  #: powerpressadmin-metabox.php:358
3874
  msgid "iTunes Author"
3875
- msgstr ""
3876
 
3877
  #@ powerpress
3878
  #: powerpressadmin-metabox.php:363
3879
  msgid "Leave blank to use post author name."
3880
- msgstr ""
3881
 
3882
  #@ powerpress
3883
  #: powerpressadmin-metabox.php:377
3884
  msgid "Use feed's explicit setting"
3885
- msgstr ""
3886
 
3887
  #@ powerpress
3888
  #: powerpressadmin-metabox.php:377
3889
  msgid "no - display nothing"
3890
- msgstr ""
3891
 
3892
  #@ powerpress
3893
  #: powerpressadmin-metabox.php:377
3894
  msgid "yes - explicit content"
3895
- msgstr ""
3896
 
3897
  #@ powerpress
3898
  #: powerpressadmin-metabox.php:377
3899
  msgid "clean - no explicit content"
3900
- msgstr ""
3901
 
3902
  #@ powerpress
3903
  #: powerpressadmin-metabox.php:499
3904
  msgid "Select poster image from your computer."
3905
- msgstr ""
3906
 
3907
  #@ powerpress
3908
  #: powerpressadmin-mode.php:10
3909
  msgid "Welcome to Blubrry PowerPress"
3910
- msgstr ""
3911
 
3912
  #@ powerpress
3913
  #: powerpressadmin-mode.php:13
3914
  msgid "Welcome to Blubrry PowerPress. In order to give each user the best experience, we designed two modes; Simple and Advanced. Please select the mode that is most appropriate for your needs."
3915
- msgstr ""
3916
 
3917
  #@ powerpress
3918
  #: powerpressadmin-mode.php:18
@@ -3927,112 +3933,112 @@ msgstr "Modalità Semplice"
3927
  #@ powerpress
3928
  #: powerpressadmin-mode.php:22
3929
  msgid "Simple Mode is intended for podcasters who are just starting out and feel a bit intimidated by all of the possible options and settings. This mode is perfect for someone who is recording in one format (e.g. mp3) and wants to keep things simple."
3930
- msgstr ""
3931
 
3932
  #@ powerpress
3933
  #: powerpressadmin-mode.php:23
3934
  #: powerpressadmin-mode.php:31
3935
  msgid "Features Include"
3936
- msgstr ""
3937
 
3938
  #@ powerpress
3939
  #: powerpressadmin-mode.php:24
3940
  msgid "Only the bare essential settings"
3941
- msgstr ""
3942
 
3943
  #@ powerpress
3944
  #: powerpressadmin-mode.php:25
3945
  msgid "Important feed and iTunes settings"
3946
- msgstr ""
3947
 
3948
  #@ powerpress
3949
  #: powerpressadmin-mode.php:26
3950
  msgid "Player and download links added to bottom of episode posts"
3951
- msgstr ""
3952
 
3953
  #@ powerpress
3954
  #: powerpressadmin-mode.php:29
3955
  msgid "Advanced Mode"
3956
- msgstr ""
3957
 
3958
  #@ powerpress
3959
  #: powerpressadmin-mode.php:30
3960
  msgid "Advanced Mode gives you all of the features packaged in Blubrry PowerPress. This mode is perfect for someone who may want to distribute multiple versions of their podcast, customize the web player and download links, or import data from a previous podcasting platform."
3961
- msgstr ""
3962
 
3963
  #@ powerpress
3964
  #: powerpressadmin-mode.php:32
3965
  msgid "Advanced Settings"
3966
- msgstr ""
3967
 
3968
  #@ powerpress
3969
  #: powerpressadmin-mode.php:32
3970
  msgid "Tweak additional settings."
3971
- msgstr ""
3972
 
3973
  #@ powerpress
3974
  #: powerpressadmin-mode.php:33
3975
  msgid "Presentation Settings"
3976
- msgstr ""
3977
 
3978
  #@ powerpress
3979
  #: powerpressadmin-mode.php:33
3980
  msgid "Customize web player and media download links"
3981
- msgstr ""
3982
 
3983
  #@ powerpress
3984
  #: powerpressadmin-mode.php:34
3985
  msgid "Extensive Feed Settings"
3986
- msgstr ""
3987
 
3988
  #@ powerpress
3989
  #: powerpressadmin-mode.php:34
3990
  msgid "Tweak all available feed settings"
3991
- msgstr ""
3992
 
3993
  #@ powerpress
3994
  #: powerpressadmin-mode.php:42
3995
  msgid "Set Mode and Continue"
3996
- msgstr ""
3997
 
3998
  #@ powerpress
3999
  #: powerpressadmin-mt.php:234
4000
  msgid "HTTP return code"
4001
- msgstr ""
4002
 
4003
  #@ powerpress
4004
  #: powerpressadmin-mt.php:248
4005
  #, php-format
4006
  msgid "Error importing %s for blog post %s:"
4007
- msgstr ""
4008
 
4009
  #@ powerpress
4010
  #: powerpressadmin-mt.php:256
4011
  #, php-format
4012
  msgid "Episode %s for blog post %s imported to feed %s."
4013
- msgstr ""
4014
 
4015
  #@ powerpress
4016
  #: powerpressadmin-mt.php:290
4017
  msgid "Duration of each mp3 detected."
4018
- msgstr ""
4019
 
4020
  #@ powerpress
4021
  #: powerpressadmin-mt.php:295
4022
  #, php-format
4023
  msgid "Imported %d episode(s)."
4024
- msgstr ""
4025
 
4026
  #@ powerpress
4027
  #: powerpressadmin-mt.php:297
4028
  #, php-format
4029
  msgid "Found %d error(s)."
4030
- msgstr ""
4031
 
4032
  #@ powerpress
4033
  #: powerpressadmin-mt.php:304
4034
  msgid "Episode Title"
4035
- msgstr ""
4036
 
4037
  #@ powerpress
4038
  #: powerpressadmin-mt.php:305
@@ -4059,7 +4065,7 @@ msgstr "Feed"
4059
  #: powerpressadmin-podpress.php:325
4060
  #: powerpressadmin-podpress.php:721
4061
  msgid "No Import"
4062
- msgstr ""
4063
 
4064
  #@ powerpress
4065
  #: powerpressadmin-mt.php:329
@@ -4073,19 +4079,19 @@ msgstr "Podcast Feed (predefinito)"
4073
  #: powerpressadmin-mt.php:337
4074
  #, php-format
4075
  msgid "We found blog posts that have as many as %d media files. You may need to create %d more Custom Feed%s in order to import all of the media."
4076
- msgstr ""
4077
 
4078
  #@ powerpress
4079
  #: powerpressadmin-mt.php:395
4080
  #: powerpressadmin-podpress.php:397
4081
  msgid "Sorry, you may only select one media file per post per feed."
4082
- msgstr ""
4083
 
4084
  #@ powerpress
4085
  #: powerpressadmin-mt.php:409
4086
  #: powerpressadmin-podpress.php:411
4087
  msgid "Select \"No Import\" option for all media files?"
4088
- msgstr ""
4089
 
4090
  #@ powerpress
4091
  #: powerpressadmin-mt.php:452
@@ -4094,37 +4100,37 @@ msgstr ""
4094
  #: powerpressadmin-podpress.php:813
4095
  #: powerpressadmin-tools.php:47
4096
  msgid "Import Episodes"
4097
- msgstr ""
4098
 
4099
  #@ powerpress
4100
  #: powerpressadmin-mt.php:458
4101
  msgid "No episodes found to import."
4102
- msgstr ""
4103
 
4104
  #@ powerpress
4105
  #: powerpressadmin-mt.php:465
4106
  #: powerpressadmin-podpress.php:472
4107
  msgid "Select the media file under each feed for each episode you wish to import."
4108
- msgstr ""
4109
 
4110
  #@ powerpress
4111
  #: powerpressadmin-mt.php:653
4112
  #: powerpressadmin-podpress.php:644
4113
  msgid "present"
4114
- msgstr ""
4115
 
4116
  #@ powerpress
4117
  #: powerpressadmin-mt.php:655
4118
  #: powerpressadmin-podpress.php:646
4119
  msgid "imported"
4120
- msgstr ""
4121
 
4122
  #@ powerpress
4123
  #: powerpressadmin-mt.php:712
4124
  #: powerpressadmin-podpress.php:702
4125
  #, php-format
4126
  msgid "Importable episodes highlighted in %s with asterisks *."
4127
- msgstr ""
4128
 
4129
  #@ powerpress
4130
  #: powerpressadmin-mt.php:713
@@ -4135,45 +4141,45 @@ msgstr "letto"
4135
  #@ powerpress
4136
  #: powerpressadmin-mt.php:716
4137
  msgid "Select Only:"
4138
- msgstr ""
4139
 
4140
  #@ powerpress
4141
  #: powerpressadmin-mt.php:738
4142
  msgid "Types of media found:"
4143
- msgstr ""
4144
 
4145
  #@ powerpress
4146
  #: powerpressadmin-mt.php:762
4147
  #, php-format
4148
  msgid "There are %s media files that can be imported with a total of %d blog post podcast episodes."
4149
- msgstr ""
4150
 
4151
  #@ powerpress
4152
  #: powerpressadmin-mt.php:773
4153
  msgid "Detect duration for mp3 media. (expect script to take a while with this option)"
4154
- msgstr ""
4155
 
4156
  #@ powerpress
4157
  #: powerpressadmin-mt.php:780
4158
  #: powerpressadmin-podpress.php:830
4159
  msgid "Filter Results"
4160
- msgstr ""
4161
 
4162
  #@ powerpress
4163
  #: powerpressadmin-mt.php:781
4164
  #: powerpressadmin-podpress.php:831
4165
  msgid "Include Only"
4166
- msgstr ""
4167
 
4168
  #@ powerpress
4169
  #: powerpressadmin-mt.php:782
4170
  msgid "leave blank for all media"
4171
- msgstr ""
4172
 
4173
  #@ powerpress
4174
  #: powerpressadmin-mt.php:783
4175
  msgid "Specify the file extensions to include separated by commas (e.g. mp3, m4v)."
4176
- msgstr ""
4177
 
4178
  #@ powerpress
4179
  #: powerpressadmin-mt.php:786
@@ -4183,12 +4189,12 @@ msgstr "Filtra Episodi"
4183
  #@ powerpress
4184
  #: powerpressadmin-ping-sites.php:18
4185
  msgid "Update services added successfully."
4186
- msgstr ""
4187
 
4188
  #@ powerpress
4189
  #: powerpressadmin-ping-sites.php:22
4190
  msgid "No update services selected to add."
4191
- msgstr ""
4192
 
4193
  #@ powerpress
4194
  #: powerpressadmin-ping-sites.php:29
@@ -4213,67 +4219,67 @@ msgstr "WebLogs Audio"
4213
  #@ powerpress
4214
  #: powerpressadmin-ping-sites.php:38
4215
  msgid "Add Update services / Ping Sites"
4216
- msgstr ""
4217
 
4218
  #@ powerpress
4219
  #: powerpressadmin-ping-sites.php:40
4220
  msgid "Notify the following Update Services / Ping Sites when you create a new blog post / podcast episode."
4221
- msgstr ""
4222
 
4223
  #@ powerpress
4224
  #: powerpressadmin-ping-sites.php:44
4225
  msgid "Update Blog Searvices"
4226
- msgstr ""
4227
 
4228
  #@ powerpress
4229
  #: powerpressadmin-ping-sites.php:46
4230
  msgid "Select the blog service you would like to notify."
4231
- msgstr ""
4232
 
4233
  #@ powerpress
4234
  #: powerpressadmin-ping-sites.php:68
4235
  msgid "Update Podcast Searvices"
4236
- msgstr ""
4237
 
4238
  #@ powerpress
4239
  #: powerpressadmin-ping-sites.php:70
4240
  msgid "Select the podcasting service you would like to notify."
4241
- msgstr ""
4242
 
4243
  #@ powerpress
4244
  #: powerpressadmin-ping-sites.php:93
4245
  msgid "You can manually add ping services by going to the to the \"Update Services\" section found in the <b>WordPress Settings</b> &gt; <b>Writing</b> page."
4246
- msgstr ""
4247
 
4248
  #@ powerpress
4249
  #: powerpressadmin-ping-sites.php:96
4250
  msgid "Add Selected Update Services"
4251
- msgstr ""
4252
 
4253
  #@ powerpress
4254
  #: powerpressadmin-player-page.php:10
4255
  msgid "Flow Player Classic is an open source flash player that supports both audio (mp3 and m4a) and video (mp4, m4v and flv) media files. It includes all the necessary features for playback including a play/pause button, scrollable position bar, ellapsed time, total time, mute button and volume control."
4256
- msgstr ""
4257
 
4258
  #@ powerpress
4259
  #: powerpressadmin-player-page.php:14
4260
  msgid "Flow Player Classic was chosen as the default player in Blubrry PowerPress because if its backwards compatibility with older versions of Flash and support for both audio and video."
4261
- msgstr ""
4262
 
4263
  #@ powerpress
4264
  #: powerpressadmin-player-page.php:177
4265
  msgid "Blubrry PowerPress Player Options"
4266
- msgstr ""
4267
 
4268
  #@ powerpress
4269
  #: powerpressadmin-player-page.php:178
4270
  msgid "Select the media player you would like to use."
4271
- msgstr ""
4272
 
4273
  #@ powerpress
4274
  #: powerpressadmin-player-page.php:190
4275
  msgid "Flow Player Classic"
4276
- msgstr ""
4277
 
4278
  #@ powerpress
4279
  #: powerpressadmin-player-page.php:191
@@ -4285,22 +4291,22 @@ msgstr ""
4285
  #: powerpressadmin-player-page.php:332
4286
  #: powerpressadmin-player-page.php:346
4287
  msgid "Activate and Configure Now"
4288
- msgstr ""
4289
 
4290
  #@ powerpress
4291
  #: powerpressadmin-player-page.php:204
4292
  msgid "HTML5 Video Player"
4293
- msgstr ""
4294
 
4295
  #@ powerpress
4296
  #: powerpressadmin-player-page.php:214
4297
  msgid "HTML5 Video is an element introduced in the latest HTML specification (HTML5) for the purpose of playing videos."
4298
- msgstr ""
4299
 
4300
  #@ powerpress
4301
  #: powerpressadmin-player-page.php:217
4302
  msgid "HTML5 Video Player is not format specific. See table below for a list of browsers and supported formats."
4303
- msgstr ""
4304
 
4305
  #@ powerpress
4306
  #: powerpressadmin-player-page.php:221
@@ -4341,54 +4347,54 @@ msgstr "Safari"
4341
  #@ powerpress
4342
  #: powerpressadmin-player-page.php:257
4343
  msgid "Chrome supported H.264 in previous versions, but no longer supports the format."
4344
- msgstr ""
4345
 
4346
  #@ powerpress
4347
  #: powerpressadmin-player-page.php:258
4348
  #: powerpressadmin-player-page.php:399
4349
  msgid "Safari requires QuickTime installed for HTML5 playback."
4350
- msgstr ""
4351
 
4352
  #@ powerpress
4353
  #: powerpressadmin-player-page.php:260
4354
  #: powerpressadmin-player-page.php:401
4355
  msgid "Flow Player Classic is used when HTML5 support is not available."
4356
- msgstr ""
4357
 
4358
  #@ powerpress
4359
  #: powerpressadmin-player-page.php:281
4360
  msgid "Flow Player Classic (default)"
4361
- msgstr ""
4362
 
4363
  #@ powerpress
4364
  #: powerpressadmin-player-page.php:293
4365
  msgid "1 Pixel Out Audio Player"
4366
- msgstr ""
4367
 
4368
  #@ powerpress
4369
  #: powerpressadmin-player-page.php:301
4370
  msgid "1 Pixel Out Audio Player is a popular customizable audio (mp3 only) flash player. Features include an animated play/pause button, scrollable position bar, ellapsed/remaining time, volume control and color styling options."
4371
- msgstr ""
4372
 
4373
  #@ powerpress
4374
  #: powerpressadmin-player-page.php:305
4375
  msgid "Mp3 Player Maxi"
4376
- msgstr ""
4377
 
4378
  #@ powerpress
4379
  #: powerpressadmin-player-page.php:313
4380
  msgid "Flash Mp3 Maxi Player is a customizable open source audio (mp3 only) flash player. Features include pause/play/stop/file info buttons, scrollable position bar, volume control and color styling options."
4381
- msgstr ""
4382
 
4383
  #@ powerpress
4384
  #: powerpressadmin-player-page.php:317
4385
  msgid "Simple Flash MP3 Player"
4386
- msgstr ""
4387
 
4388
  #@ powerpress
4389
  #: powerpressadmin-player-page.php:327
4390
  msgid "Simple Flash MP3 Player is a free and simple audio (mp3 only) flash player. Features include play/pause and stop buttons."
4391
- msgstr ""
4392
 
4393
  #@ powerpress
4394
  #: powerpressadmin-player-page.php:331
@@ -4398,47 +4404,47 @@ msgstr "AudioPlay"
4398
  #@ powerpress
4399
  #: powerpressadmin-player-page.php:341
4400
  msgid "AudioPlay is one button freeware audio (mp3 only) flash player. Features include a play/stop or play/pause button available in two sizes in either black or white."
4401
- msgstr ""
4402
 
4403
  #@ powerpress
4404
  #: powerpressadmin-player-page.php:345
4405
  msgid "HTML5 Audio Player"
4406
- msgstr ""
4407
 
4408
  #@ powerpress
4409
  #: powerpressadmin-player-page.php:355
4410
  msgid "HTML5 audio is an element introduced in the latest HTML specification (HTML5) for the purpose of playing audio."
4411
- msgstr ""
4412
 
4413
  #@ powerpress
4414
  #: powerpressadmin-player-page.php:358
4415
  msgid "HTML5 Audio Player is not format specific. See table below for a list of browsers and supported formats."
4416
- msgstr ""
4417
 
4418
  #@ powerpress
4419
  #: powerpressadmin-player-page.php:398
4420
  msgid "Chrome supported AAC in previous versions, but no longer supports the format."
4421
- msgstr ""
4422
 
4423
  #@ powerpress
4424
  #: powerpressadmin-player-page.php:413
4425
  msgid "Click 'Save Changes' to activate and configure selected player."
4426
- msgstr ""
4427
 
4428
  #@ powerpress
4429
  #: powerpressadmin-player-page.php:419
4430
  msgid "Configure Player"
4431
- msgstr ""
4432
 
4433
  #@ powerpress
4434
  #: powerpressadmin-player-page.php:421
4435
  msgid "Select a different audio player"
4436
- msgstr ""
4437
 
4438
  #@ powerpress
4439
  #: powerpressadmin-player-page.php:423
4440
  msgid "Select a different video player"
4441
- msgstr ""
4442
 
4443
  #@ powerpress
4444
  #: powerpressadmin-player-page.php:526
@@ -4446,12 +4452,12 @@ msgid ""
4446
  "Set defaults, are you sure?\\\n"
4447
  "\\\n"
4448
  "All of the current settings will be overwritten!"
4449
- msgstr ""
4450
 
4451
  #@ powerpress
4452
  #: powerpressadmin-player-page.php:618
4453
  msgid "Configure the 1 pixel out Audio Player"
4454
- msgstr ""
4455
 
4456
  #@ powerpress
4457
  #: powerpressadmin-player-page.php:625
@@ -4463,7 +4469,7 @@ msgstr ""
4463
  #: powerpressadmin-player-page.php:1648
4464
  #: powerpressadmin-player-page.php:1668
4465
  msgid "Preview of Player"
4466
- msgstr ""
4467
 
4468
  #@ powerpress
4469
  #: powerpressadmin-player-page.php:638
@@ -4475,7 +4481,7 @@ msgstr "Imposta valori predefiniti"
4475
  #: powerpressadmin-player-page.php:642
4476
  #: powerpressadmin-player-page.php:780
4477
  msgid "Progress Bar"
4478
- msgstr ""
4479
 
4480
  #@ powerpress
4481
  #: powerpressadmin-player-page.php:643
@@ -4498,29 +4504,29 @@ msgstr "Impostazioni Generali"
4498
  #@ powerpress
4499
  #: powerpressadmin-player-page.php:652
4500
  msgid "Page Background Color"
4501
- msgstr ""
4502
 
4503
  #@ powerpress
4504
  #: powerpressadmin-player-page.php:660
4505
  #: powerpressadmin-player-page.php:1164
4506
  #: powerpressadmin-player-page.php:1508
4507
  msgid "leave blank for transparent"
4508
- msgstr ""
4509
 
4510
  #@ powerpress
4511
  #: powerpressadmin-player-page.php:664
4512
  msgid "Player Background Color"
4513
- msgstr ""
4514
 
4515
  #@ powerpress
4516
  #: powerpressadmin-player-page.php:675
4517
  msgid "Width (in pixels)"
4518
- msgstr ""
4519
 
4520
  #@ powerpress
4521
  #: powerpressadmin-player-page.php:679
4522
  msgid "width of the player. e.g. 290 (290 pixels) or 100%"
4523
- msgstr ""
4524
 
4525
  #@ powerpress
4526
  #: powerpressadmin-player-page.php:684
@@ -4552,64 +4558,64 @@ msgstr "No"
4552
  #@ powerpress
4553
  #: powerpressadmin-player-page.php:692
4554
  msgid "switches the layout to animate from the right to the left"
4555
- msgstr ""
4556
 
4557
  #@ powerpress
4558
  #: powerpressadmin-player-page.php:698
4559
  msgid "Loading Bar Color"
4560
- msgstr ""
4561
 
4562
  #@ powerpress
4563
  #: powerpressadmin-player-page.php:710
4564
  #: powerpressadmin-player-page.php:1169
4565
  msgid "Text Color"
4566
- msgstr ""
4567
 
4568
  #@ powerpress
4569
  #: powerpressadmin-player-page.php:722
4570
  msgid "Text In Player"
4571
- msgstr ""
4572
 
4573
  #@ powerpress
4574
  #: powerpressadmin-player-page.php:726
4575
  #, php-format
4576
  msgid "Enter '%s' to display track name from mp3. Only works if media is hosted on same server as blog."
4577
- msgstr ""
4578
 
4579
  #@ powerpress
4580
  #: powerpressadmin-player-page.php:732
4581
  msgid "Play Animation"
4582
- msgstr ""
4583
 
4584
  #@ powerpress
4585
  #: powerpressadmin-player-page.php:741
4586
  msgid "if no, player is always open"
4587
- msgstr ""
4588
 
4589
  #@ powerpress
4590
  #: powerpressadmin-player-page.php:747
4591
  msgid "Display Remaining Time"
4592
- msgstr ""
4593
 
4594
  #@ powerpress
4595
  #: powerpressadmin-player-page.php:756
4596
  msgid "if yes, shows remaining track time rather than ellapsed time (default: no)"
4597
- msgstr ""
4598
 
4599
  #@ powerpress
4600
  #: powerpressadmin-player-page.php:762
4601
  msgid "Buffering Time"
4602
- msgstr ""
4603
 
4604
  #@ powerpress
4605
  #: powerpressadmin-player-page.php:768
4606
  msgid "No buffering"
4607
- msgstr ""
4608
 
4609
  #@ powerpress
4610
  #: powerpressadmin-player-page.php:768
4611
  msgid "Default (5 seconds)"
4612
- msgstr ""
4613
 
4614
  #@ powerpress
4615
  #: powerpressadmin-player-page.php:768
@@ -4639,27 +4645,27 @@ msgstr "60 secondi"
4639
  #@ powerpress
4640
  #: powerpressadmin-player-page.php:771
4641
  msgid "buffering time in seconds"
4642
- msgstr ""
4643
 
4644
  #@ powerpress
4645
  #: powerpressadmin-player-page.php:784
4646
  msgid "Progress Bar Background"
4647
- msgstr ""
4648
 
4649
  #@ powerpress
4650
  #: powerpressadmin-player-page.php:795
4651
  msgid "Progress Bar Color"
4652
- msgstr ""
4653
 
4654
  #@ powerpress
4655
  #: powerpressadmin-player-page.php:806
4656
  msgid "Progress Bar Border"
4657
- msgstr ""
4658
 
4659
  #@ powerpress
4660
  #: powerpressadmin-player-page.php:820
4661
  msgid "Volume Button Settings"
4662
- msgstr ""
4663
 
4664
  #@ powerpress
4665
  #: powerpressadmin-player-page.php:824
@@ -4669,57 +4675,57 @@ msgstr "Volume Iniziale"
4669
  #@ powerpress
4670
  #: powerpressadmin-player-page.php:835
4671
  msgid "initial volume level (default: 60)"
4672
- msgstr ""
4673
 
4674
  #@ powerpress
4675
  #: powerpressadmin-player-page.php:841
4676
  msgid "Volumn Background Color"
4677
- msgstr ""
4678
 
4679
  #@ powerpress
4680
  #: powerpressadmin-player-page.php:852
4681
  msgid "Speaker Icon Color"
4682
- msgstr ""
4683
 
4684
  #@ powerpress
4685
  #: powerpressadmin-player-page.php:863
4686
  msgid "Volume Icon Background"
4687
- msgstr ""
4688
 
4689
  #@ powerpress
4690
  #: powerpressadmin-player-page.php:874
4691
  msgid "Volume Slider Color"
4692
- msgstr ""
4693
 
4694
  #@ powerpress
4695
  #: powerpressadmin-player-page.php:887
4696
  msgid "Play / Pause Button Settings"
4697
- msgstr ""
4698
 
4699
  #@ powerpress
4700
  #: powerpressadmin-player-page.php:891
4701
  msgid "Play/Pause Background Color"
4702
- msgstr ""
4703
 
4704
  #@ powerpress
4705
  #: powerpressadmin-player-page.php:902
4706
  msgid "Play/Pause Hover Color"
4707
- msgstr ""
4708
 
4709
  #@ powerpress
4710
  #: powerpressadmin-player-page.php:913
4711
  msgid "Play/Pause Icon Color"
4712
- msgstr ""
4713
 
4714
  #@ powerpress
4715
  #: powerpressadmin-player-page.php:924
4716
  msgid "Play/Pause Icon Hover Color"
4717
- msgstr ""
4718
 
4719
  #@ powerpress
4720
  #: powerpressadmin-player-page.php:960
4721
  msgid "Simple Flash Player has no additional settings."
4722
- msgstr ""
4723
 
4724
  #@ powerpress
4725
  #: powerpressadmin-player-page.php:1009
@@ -4728,11 +4734,14 @@ msgid ""
4728
  "\\\n"
4729
  "All of the current settings will be overwritten!'"
4730
  msgstr ""
 
 
 
4731
 
4732
  #@ powerpress
4733
  #: powerpressadmin-player-page.php:1094
4734
  msgid "Configure Flash Mp3 Maxi Player"
4735
- msgstr ""
4736
 
4737
  #@ powerpress
4738
  #: powerpressadmin-player-page.php:1118
@@ -4750,32 +4759,32 @@ msgstr "Impostazioni Volume"
4750
  #: powerpressadmin-player-page.php:1120
4751
  #: powerpressadmin-player-page.php:1328
4752
  msgid "Slider Settings"
4753
- msgstr ""
4754
 
4755
  #@ powerpress
4756
  #: powerpressadmin-player-page.php:1129
4757
  msgid "leave blank for default values"
4758
- msgstr ""
4759
 
4760
  #@ powerpress
4761
  #: powerpressadmin-player-page.php:1134
4762
  msgid "Player Gradient Color Top"
4763
- msgstr ""
4764
 
4765
  #@ powerpress
4766
  #: powerpressadmin-player-page.php:1145
4767
  msgid "Player Gradient Color Bottom"
4768
- msgstr ""
4769
 
4770
  #@ powerpress
4771
  #: powerpressadmin-player-page.php:1181
4772
  msgid "Player Height (in pixels)"
4773
- msgstr ""
4774
 
4775
  #@ powerpress
4776
  #: powerpressadmin-player-page.php:1191
4777
  msgid "Player Width (in pixels)"
4778
- msgstr ""
4779
 
4780
  #@ powerpress
4781
  #: powerpressadmin-player-page.php:1207
@@ -4785,17 +4794,17 @@ msgstr "Colore Pulsante"
4785
  #@ powerpress
4786
  #: powerpressadmin-player-page.php:1218
4787
  msgid "Button Hover Color"
4788
- msgstr ""
4789
 
4790
  #@ powerpress
4791
  #: powerpressadmin-player-page.php:1229
4792
  msgid "Button Width (in pixels)"
4793
- msgstr ""
4794
 
4795
  #@ powerpress
4796
  #: powerpressadmin-player-page.php:1239
4797
  msgid "Show Stop Button"
4798
- msgstr ""
4799
 
4800
  #@ powerpress
4801
  #: powerpressadmin-player-page.php:1254
@@ -4815,62 +4824,62 @@ msgstr "Volume"
4815
  #@ powerpress
4816
  #: powerpressadmin-player-page.php:1305
4817
  msgid "Volume Height (in pixels)"
4818
- msgstr ""
4819
 
4820
  #@ powerpress
4821
  #: powerpressadmin-player-page.php:1315
4822
  msgid "Volume Width (in pixels)"
4823
- msgstr ""
4824
 
4825
  #@ powerpress
4826
  #: powerpressadmin-player-page.php:1333
4827
  msgid "Show Slider"
4828
- msgstr ""
4829
 
4830
  #@ powerpress
4831
  #: powerpressadmin-player-page.php:1349
4832
  msgid "Slider Color Top"
4833
- msgstr ""
4834
 
4835
  #@ powerpress
4836
  #: powerpressadmin-player-page.php:1360
4837
  msgid "Slider Color Bottom"
4838
- msgstr ""
4839
 
4840
  #@ powerpress
4841
  #: powerpressadmin-player-page.php:1372
4842
  msgid "Slider Hover Color"
4843
- msgstr ""
4844
 
4845
  #@ powerpress
4846
  #: powerpressadmin-player-page.php:1383
4847
  msgid "Slider Height (in pixels)"
4848
- msgstr ""
4849
 
4850
  #@ powerpress
4851
  #: powerpressadmin-player-page.php:1393
4852
  msgid "Slider Width (in pixels)"
4853
- msgstr ""
4854
 
4855
  #@ powerpress
4856
  #: powerpressadmin-player-page.php:1404
4857
  msgid "Show Loading Buffer"
4858
- msgstr ""
4859
 
4860
  #@ powerpress
4861
  #: powerpressadmin-player-page.php:1418
4862
  msgid "Loading Buffer Color"
4863
- msgstr ""
4864
 
4865
  #@ powerpress
4866
  #: powerpressadmin-player-page.php:1477
4867
  msgid "Configure the AudioPlay Player"
4868
- msgstr ""
4869
 
4870
  #@ powerpress
4871
  #: powerpressadmin-player-page.php:1513
4872
  msgid "Player Mode"
4873
- msgstr "Modalità Player"
4874
 
4875
  #@ powerpress
4876
  #: powerpressadmin-player-page.php:1519
@@ -4885,99 +4894,99 @@ msgstr "Play/Stop"
4885
  #@ powerpress
4886
  #: powerpressadmin-player-page.php:1528
4887
  msgid "Player Button"
4888
- msgstr "Pulsante Player"
4889
 
4890
  #@ powerpress
4891
  #: powerpressadmin-player-page.php:1544
4892
  msgid "Small White"
4893
- msgstr ""
4894
 
4895
  #@ powerpress
4896
  #: powerpressadmin-player-page.php:1546
4897
  msgid "Large White"
4898
- msgstr ""
4899
 
4900
  #@ powerpress
4901
  #: powerpressadmin-player-page.php:1553
4902
  msgid "Small Black"
4903
- msgstr ""
4904
 
4905
  #@ powerpress
4906
  #: powerpressadmin-player-page.php:1555
4907
  msgid "Large Black"
4908
- msgstr ""
4909
 
4910
  #@ powerpress
4911
  #: powerpressadmin-player-page.php:1573
4912
  msgid "Configure HTML5 Audio Player"
4913
- msgstr ""
4914
 
4915
  #@ powerpress
4916
  #: powerpressadmin-player-page.php:1592
4917
  msgid "HTML5 Audio Player has no additional settings."
4918
- msgstr ""
4919
 
4920
  #@ powerpress
4921
  #: powerpressadmin-player-page.php:1606
4922
  #: powerpressadmin-player-page.php:1644
4923
  msgid "Configure Flow Player Classic"
4924
- msgstr ""
4925
 
4926
  #@ powerpress
4927
  #: powerpressadmin-player-page.php:1626
4928
  #: powerpressadmin.php:1656
4929
  msgid "Width"
4930
- msgstr ""
4931
 
4932
  #@ powerpress
4933
  #: powerpressadmin-player-page.php:1630
4934
  msgid "Width of Audio mp3 player (leave blank for 320 default)"
4935
- msgstr ""
4936
 
4937
  #@ powerpress
4938
  #: powerpressadmin-player-page.php:1664
4939
  msgid "Configure HTML5 Video Player"
4940
- msgstr ""
4941
 
4942
  #@ powerpress
4943
  #: powerpressadmin-player-page.php:1689
4944
  msgid "Common Settings"
4945
- msgstr ""
4946
 
4947
  #@ powerpress
4948
  #: powerpressadmin-player-page.php:1690
4949
  msgid "The following video settings apply to the video player above as well as to classic video &lt;embed&gt; formats such as Microsoft Windows Media (.wmv), QuickTime (.mov) and RealPlayer."
4950
- msgstr ""
4951
 
4952
  #@ powerpress
4953
  #: powerpressadmin-player-page.php:1694
4954
  msgid "Player Width"
4955
- msgstr ""
4956
 
4957
  #@ powerpress
4958
  #: powerpressadmin-player-page.php:1698
4959
  msgid "Width of player (leave blank for 400 default)"
4960
- msgstr ""
4961
 
4962
  #@ powerpress
4963
  #: powerpressadmin-player-page.php:1704
4964
  msgid "Player Height"
4965
- msgstr ""
4966
 
4967
  #@ powerpress
4968
  #: powerpressadmin-player-page.php:1708
4969
  msgid "Height of player (leave blank for 225 default)"
4970
- msgstr ""
4971
 
4972
  #@ powerpress
4973
  #: powerpressadmin-player-page.php:1714
4974
  msgid "QuickTime Scale"
4975
- msgstr ""
4976
 
4977
  #@ powerpress
4978
  #: powerpressadmin-player-page.php:1718
4979
  msgid "ToFit (default)"
4980
- msgstr ""
4981
 
4982
  #@ powerpress
4983
  #: powerpressadmin-player-page.php:1718
@@ -4988,7 +4997,7 @@ msgstr "Aspetto"
4988
  #: powerpressadmin-player-page.php:1723
4989
  #: powerpressadmin-player-page.php:1725
4990
  msgid "Custom"
4991
- msgstr ""
4992
 
4993
  #@ powerpress
4994
  #: powerpressadmin-player-page.php:1736
@@ -4998,68 +5007,68 @@ msgstr "Scala:"
4998
  #@ powerpress
4999
  #: powerpressadmin-player-page.php:1736
5000
  msgid "e.g."
5001
- msgstr ""
5002
 
5003
  #@ powerpress
5004
  #: powerpressadmin-player-page.php:1739
5005
  msgid "If you do not see video, adjust the width, height and scale settings above."
5006
- msgstr ""
5007
 
5008
  #@ powerpress
5009
  #: powerpressadmin-player-page.php:1746
5010
  msgid "Default Poster Image"
5011
- msgstr ""
5012
 
5013
  #@ powerpress
5014
  #: powerpressadmin-player-page.php:1752
5015
  msgid "Place the URL to the poster image above."
5016
- msgstr ""
5017
 
5018
  #@ powerpress
5019
  #: powerpressadmin-player-page.php:1753
5020
  msgid "Image should be at minimum the same width/height as the player above. Leave blank to use default black background image."
5021
- msgstr ""
5022
 
5023
  #@ powerpress
5024
  #: powerpressadmin-player-page.php:1761
5025
  msgid "Include play icon over poster image when applicable"
5026
- msgstr ""
5027
 
5028
  #@ powerpress
5029
  #: powerpressadmin-player-page.php:1762
5030
  msgid "Use poster image, player width and height above for audio (Flow Player only)"
5031
- msgstr ""
5032
 
5033
  #@ powerpress
5034
  #: powerpressadmin-player.php:31
5035
  msgid "Player activated successfully."
5036
- msgstr ""
5037
 
5038
  #@ powerpress
5039
  #: powerpressadmin-player.php:38
5040
  msgid "Audio Player settings saved successfully."
5041
- msgstr ""
5042
 
5043
  #@ powerpress
5044
  #: powerpressadmin-player.php:45
5045
  msgid "Flash Mp3 Maxi settings saved successfully."
5046
- msgstr ""
5047
 
5048
  #@ powerpress
5049
  #: powerpressadmin-player.php:52
5050
  msgid "AudioPlay settings saved successfully."
5051
- msgstr ""
5052
 
5053
  #@ powerpress
5054
  #: powerpressadmin-podpress-stats.php:19
5055
  msgid "Archive of PodPress Stats"
5056
- msgstr ""
5057
 
5058
  #@ powerpress
5059
  #: powerpressadmin-podpress-stats.php:20
5060
  #, php-format
5061
  msgid "Displaying %d - %d of %d total"
5062
- msgstr ""
5063
 
5064
  #@ powerpress
5065
  #: powerpressadmin-podpress-stats.php:23
@@ -5097,118 +5106,118 @@ msgstr "ultimo"
5097
  #: powerpressadmin-podpress.php:47
5098
  #, php-format
5099
  msgid "Unable to detect PodPress media URL setting. Using the PowerPress setting \"Default Media URL\" (%s) instead."
5100
- msgstr ""
5101
 
5102
  #@ powerpress
5103
  #: powerpressadmin-podpress.php:52
5104
  msgid "Unable to detect PodPress media URL setting. Please set the \"Default Media URL\" setting in PowerPress to properly import podcast episodes."
5105
- msgstr ""
5106
 
5107
  #@ powerpress
5108
  #: powerpressadmin-podpress.php:116
5109
  #, php-format
5110
  msgid "Error decoding PodPress data for post \"%s\""
5111
- msgstr ""
5112
 
5113
  #@ powerpress
5114
  #: powerpressadmin-podpress.php:229
5115
  #, php-format
5116
  msgid "PodPress data deleted from database successfully. (%d database records removed)"
5117
- msgstr ""
5118
 
5119
  #@ powerpress
5120
  #: powerpressadmin-podpress.php:277
5121
  #, php-format
5122
  msgid "Podpress Episode \"%s\" for blog post \"%s\" imported to feed \"%s\""
5123
- msgstr ""
5124
 
5125
  #@ powerpress
5126
  #: powerpressadmin-podpress.php:296
5127
  msgid "If you are unsure about importing your PodPress data, try the option under Basic Settings titled 'PodPress Episodes' and set to 'Include in posts and feeds'."
5128
- msgstr ""
5129
 
5130
  #@ powerpress
5131
  #: powerpressadmin-podpress.php:297
5132
  msgid "Once you feel comfortable with PowerPress, you can use this screen to import your PodPress data."
5133
- msgstr ""
5134
 
5135
  #@ powerpress
5136
  #: powerpressadmin-podpress.php:302
5137
  msgid "PodPress Import Log"
5138
- msgstr ""
5139
 
5140
  #@ powerpress
5141
  #: powerpressadmin-podpress.php:305
5142
  #, php-format
5143
  msgid "Imported %d PodPress episode(s)."
5144
- msgstr ""
5145
 
5146
  #@ powerpress
5147
  #: powerpressadmin-podpress.php:346
5148
  #, php-format
5149
  msgid "We found blog posts that have %d media files. You will need to create %d more Custom Feed%s in order to continue."
5150
- msgstr ""
5151
 
5152
  #@ powerpress
5153
  #: powerpressadmin-podpress.php:454
5154
  #: powerpressadmin-tools.php:50
5155
  msgid "Import PodPress Episodes"
5156
- msgstr ""
5157
 
5158
  #@ powerpress
5159
  #: powerpressadmin-podpress.php:465
5160
  msgid "No PodPress episodes found to import."
5161
- msgstr ""
5162
 
5163
  #@ powerpress
5164
  #: powerpressadmin-podpress.php:705
5165
  msgid "Select Only"
5166
- msgstr ""
5167
 
5168
  #@ powerpress
5169
  #: powerpressadmin-podpress.php:732
5170
  #, php-format
5171
  msgid "There are %d PodPress media files that can be imported."
5172
- msgstr ""
5173
 
5174
  #@ powerpress
5175
  #: powerpressadmin-podpress.php:752
5176
  msgid "There are no PodPress episodes found to import."
5177
- msgstr ""
5178
 
5179
  #@ powerpress
5180
  #: powerpressadmin-podpress.php:787
5181
  #: powerpressadmin-podpress.php:814
5182
  #, php-format
5183
  msgid "We found blog posts that have %d media files."
5184
- msgstr ""
5185
 
5186
  #@ powerpress
5187
  #: powerpressadmin-podpress.php:790
5188
  #, php-format
5189
  msgid "You will need to create %d Podcast Channels to continue."
5190
- msgstr ""
5191
 
5192
  #@ powerpress
5193
  #: powerpressadmin-podpress.php:797
5194
  msgid "Blubrry PowerPress does not allow you to include multiple media files for one feed item (blog post)."
5195
- msgstr ""
5196
 
5197
  #@ powerpress
5198
  #: powerpressadmin-podpress.php:798
5199
  msgid "This is because each podcatcher handles multiple enclosures in feeds differently. iTunes will download the first enclosure that it sees in the feed ignoring the rest."
5200
- msgstr ""
5201
 
5202
  #@ powerpress
5203
  #: powerpressadmin-podpress.php:799
5204
  msgid "Other podcatchers and podcasting directories either pick up the first enclosure or the last in each post item."
5205
- msgstr ""
5206
 
5207
  #@ powerpress
5208
  #: powerpressadmin-podpress.php:800
5209
  #, php-format
5210
  msgid "This inconsistency combined with the fact that Dave Winer does not recommend multiple enclosures (%s) and FeedValidator.org (%s) recommendation against it is why Blubrry PowerPress does not support them."
5211
- msgstr ""
5212
 
5213
  #@ powerpress
5214
  #: powerpressadmin-podpress.php:801
@@ -5220,45 +5229,45 @@ msgstr "Link"
5220
  #: powerpressadmin-podpress.php:806
5221
  #, php-format
5222
  msgid "As a alternative, PowerPress allows you to create additional %s to associate additional media files in a blog post to specific feed channels."
5223
- msgstr ""
5224
 
5225
  #@ powerpress
5226
  #: powerpressadmin-podpress.php:816
5227
  #, php-format
5228
  msgid "You will need to create %d additional Podcast Channels in order to continue."
5229
- msgstr ""
5230
 
5231
  #@ powerpress
5232
  #: powerpressadmin-podpress.php:831
5233
  msgid "(leave blank for all media)"
5234
- msgstr ""
5235
 
5236
  #@ powerpress
5237
  #: powerpressadmin-podpress.php:832
5238
  msgid "specify the file extensions to include separated by commas (e.g. mp3, m4v)."
5239
- msgstr ""
5240
 
5241
  #@ powerpress
5242
  #: powerpressadmin-tags.php:19
5243
  #: powerpressadmin.php:978
5244
  msgid "MP3 Tags"
5245
- msgstr ""
5246
 
5247
  #@ powerpress
5248
  #: powerpressadmin-tags.php:21
5249
  msgid "Blubrry Hosting users can configure how to have the service write their MP3 ID3 Tags before publishing episodes."
5250
- msgstr ""
5251
 
5252
  #@ powerpress
5253
  #: powerpressadmin-tags.php:25
5254
  msgid "ID3 tags contain useful information (title, artist, album, year, etc...) about your podcast as well as an image for display during playback in most media players."
5255
- msgstr ""
5256
 
5257
  #@ powerpress
5258
  #: powerpressadmin-tags.php:27
5259
  #, php-format
5260
  msgid "Please visit the ID3 Tags (%s) section on PodcastFAQ.com to learn more about MP3 ID3 tags."
5261
- msgstr ""
5262
 
5263
  #@ powerpress
5264
  #: powerpressadmin-tags.php:28
@@ -5274,170 +5283,170 @@ msgstr "Scrivi Tags"
5274
  #@ powerpress
5275
  #: powerpressadmin-tags.php:41
5276
  msgid "You must configure your Blubrry Services Account in the Blubrry PowerPress > Basic Settings page in order to utilize this feature."
5277
- msgstr ""
5278
 
5279
  #@ powerpress
5280
  #: powerpressadmin-tags.php:42
5281
  #: powerpressadmin-tags.php:59
5282
  msgid "Use Blubrry Hosting services to write MP3 ID3 tags to your media."
5283
- msgstr ""
5284
 
5285
  #@ powerpress
5286
  #: powerpressadmin-tags.php:69
5287
  msgid "Title Tag"
5288
- msgstr ""
5289
 
5290
  #@ powerpress
5291
  #: powerpressadmin-tags.php:69
5292
  msgid "Use blog post title"
5293
- msgstr ""
5294
 
5295
  #@ powerpress
5296
  #: powerpressadmin-tags.php:70
5297
  msgid "Artist Tag"
5298
- msgstr ""
5299
 
5300
  #@ powerpress
5301
  #: powerpressadmin-tags.php:70
5302
  #: powerpressadmin-tags.php:76
5303
  msgid "Use Feed Talent Name"
5304
- msgstr ""
5305
 
5306
  #@ powerpress
5307
  #: powerpressadmin-tags.php:71
5308
  msgid "Album Tag"
5309
- msgstr ""
5310
 
5311
  #@ powerpress
5312
  #: powerpressadmin-tags.php:71
5313
  msgid "Use blog title"
5314
- msgstr ""
5315
 
5316
  #@ powerpress
5317
  #: powerpressadmin-tags.php:72
5318
  msgid "Genre Tag"
5319
- msgstr ""
5320
 
5321
  #@ powerpress
5322
  #: powerpressadmin-tags.php:72
5323
  msgid "Use genre 'Podcast\\"
5324
- msgstr ""
5325
 
5326
  #@ powerpress
5327
  #: powerpressadmin-tags.php:73
5328
  msgid "Year Tag"
5329
- msgstr ""
5330
 
5331
  #@ powerpress
5332
  #: powerpressadmin-tags.php:73
5333
  msgid "Use current year"
5334
- msgstr ""
5335
 
5336
  #@ powerpress
5337
  #: powerpressadmin-tags.php:75
5338
  msgid "Track Tag"
5339
- msgstr ""
5340
 
5341
  #@ powerpress
5342
  #: powerpressadmin-tags.php:75
5343
  msgid "Do not specify track number"
5344
- msgstr ""
5345
 
5346
  #@ powerpress
5347
  #: powerpressadmin-tags.php:76
5348
  msgid "Composer Tag"
5349
- msgstr ""
5350
 
5351
  #@ powerpress
5352
  #: powerpressadmin-tags.php:77
5353
  msgid "Copyright Tag"
5354
- msgstr ""
5355
 
5356
  #@ powerpress
5357
  #: powerpressadmin-tags.php:77
5358
  msgid "Use &copy; Talent Name"
5359
- msgstr ""
5360
 
5361
  #@ powerpress
5362
  #: powerpressadmin-tags.php:78
5363
  msgid "URL Tag"
5364
- msgstr ""
5365
 
5366
  #@ powerpress
5367
  #: powerpressadmin-tags.php:78
5368
  msgid "Use main blog URL"
5369
- msgstr ""
5370
 
5371
  #@ powerpress
5372
  #: powerpressadmin-tags.php:79
5373
  msgid "Coverart Tag"
5374
- msgstr ""
5375
 
5376
  #@ powerpress
5377
  #: powerpressadmin-tags.php:140
5378
  msgid "Do not add a coverart image."
5379
- msgstr ""
5380
 
5381
  #@ powerpress
5382
  #: powerpressadmin-tags.php:146
5383
  msgid "Place the URL to the Coverart image above. e.g. http://mysite.com/images/coverart.jpg"
5384
- msgstr ""
5385
 
5386
  #@ powerpress
5387
  #: powerpressadmin-tags.php:147
5388
  msgid "Coverart images may be saved as either .gif, .jpg or .png images of any size, though 300 x 300 or 600 x 600 in either png or jpg format is recommended."
5389
- msgstr ""
5390
 
5391
  #@ powerpress
5392
  #: powerpressadmin-tags.php:151
5393
  msgid "Click here to use your current iTunes image."
5394
- msgstr ""
5395
 
5396
  #@ powerpress
5397
  #: powerpressadmin-tags.php:171
5398
  msgid "(value entered increments every episode)"
5399
- msgstr ""
5400
 
5401
  #@ powerpress
5402
  #: powerpressadmin-tools.php:10
5403
  msgid "Useful utilities and tools."
5404
- msgstr ""
5405
 
5406
  #@ powerpress
5407
  #: powerpressadmin-tools.php:15
5408
  msgid "Podcasting Resources"
5409
- msgstr ""
5410
 
5411
  #@ powerpress
5412
  #: powerpressadmin-tools.php:18
5413
  msgid "everything you need to know about podcasting."
5414
- msgstr ""
5415
 
5416
  #@ powerpress
5417
  #: powerpressadmin-tools.php:20
5418
  msgid "PowerPress Documentation"
5419
- msgstr ""
5420
 
5421
  #@ powerpress
5422
  #: powerpressadmin-tools.php:21
5423
  msgid "learn more about PowerPress."
5424
- msgstr ""
5425
 
5426
  #@ powerpress
5427
  #: powerpressadmin-tools.php:23
5428
  #: powerpressadmin.php:1885
5429
  msgid "Blubrry Forum"
5430
- msgstr ""
5431
 
5432
  #@ powerpress
5433
  #: powerpressadmin-tools.php:24
5434
  msgid "interact with other podcasters."
5435
- msgstr ""
5436
 
5437
  #@ powerpress
5438
  #: powerpressadmin-tools.php:29
5439
  msgid "Import Settings"
5440
- msgstr ""
5441
 
5442
  #@ powerpress
5443
  #: powerpressadmin-tools.php:33
@@ -5445,102 +5454,102 @@ msgid ""
5445
  "Import PodPress settings, are you sure?\n"
5446
  "\n"
5447
  "Existing PowerPress settings will be overwritten."
5448
- msgstr ""
5449
 
5450
  #@ powerpress
5451
  #: powerpressadmin-tools.php:35
5452
  msgid "Import PodPress Settings"
5453
- msgstr ""
5454
 
5455
  #@ powerpress
5456
  #: powerpressadmin-tools.php:36
5457
  msgid "Import settings from PodPress into PowerPress."
5458
- msgstr ""
5459
 
5460
  #@ powerpress
5461
  #: powerpressadmin-tools.php:40
5462
  msgid "Import Podcasting plugin settings, are you sure?"
5463
- msgstr ""
5464
 
5465
  #@ powerpress
5466
  #: powerpressadmin-tools.php:40
5467
  msgid "Existing PowerPress settings will be overwritten."
5468
- msgstr ""
5469
 
5470
  #@ powerpress
5471
  #: powerpressadmin-tools.php:40
5472
  msgid "Import plugin \"Podcasting\" Settings"
5473
- msgstr ""
5474
 
5475
  #@ powerpress
5476
  #: powerpressadmin-tools.php:41
5477
  msgid "Import settings from the plugin \"Podcasting\" into PowerPress."
5478
- msgstr ""
5479
 
5480
  #@ powerpress
5481
  #: powerpressadmin-tools.php:42
5482
  msgid "Note: Episodes created using the plugin \"Podcasting\" do not require importing."
5483
- msgstr ""
5484
 
5485
  #@ powerpress
5486
  #: powerpressadmin-tools.php:51
5487
  msgid "Import PodPress created episodes to PowerPress."
5488
- msgstr ""
5489
 
5490
  #@ powerpress
5491
  #: powerpressadmin-tools.php:53
5492
  msgid "Import from other Blogging Platform"
5493
- msgstr ""
5494
 
5495
  #@ powerpress
5496
  #: powerpressadmin-tools.php:53
5497
  msgid "(media linked in blog posts)"
5498
- msgstr ""
5499
 
5500
  #@ powerpress
5501
  #: powerpressadmin-tools.php:54
5502
  msgid "Import from podcast episodes from blogging platforms such as Movable Type/Blogger/Joomla/TypePad (and most other blogging systems) to PowerPress."
5503
- msgstr ""
5504
 
5505
  #@ powerpress
5506
  #: powerpressadmin-tools.php:61
5507
  msgid "Add Update Services"
5508
- msgstr ""
5509
 
5510
  #@ powerpress
5511
  #: powerpressadmin-tools.php:64
5512
  msgid "Add Update Services / Ping Sites"
5513
- msgstr ""
5514
 
5515
  #@ powerpress
5516
  #: powerpressadmin-tools.php:64
5517
  msgid "(notify podcast directories when you publish new episodes)"
5518
- msgstr ""
5519
 
5520
  #@ powerpress
5521
  #: powerpressadmin-tools.php:65
5522
  msgid "Add Update Services / Ping Sites geared towards podcasting."
5523
- msgstr ""
5524
 
5525
  #@ powerpress
5526
  #: powerpressadmin-tools.php:72
5527
  msgid "Find and Replace Media"
5528
- msgstr ""
5529
 
5530
  #@ powerpress
5531
  #: powerpressadmin-tools.php:75
5532
  msgid "Find and Replace for Episode URLs"
5533
- msgstr ""
5534
 
5535
  #@ powerpress
5536
  #: powerpressadmin-tools.php:85
5537
  msgid "User Capabilities"
5538
- msgstr ""
5539
 
5540
  #@ powerpress
5541
  #: powerpressadmin-tools.php:91
5542
  msgid "Remove PowerPress Podcasting Capabilities for User Role Management"
5543
- msgstr ""
5544
 
5545
  #@ powerpress
5546
  #: powerpressadmin-tools.php:93
@@ -5549,12 +5558,12 @@ msgid ""
5549
  "\tOnly administrators will be able to view media statistics from the WordPress Dashboard. Contributors, subscribers and other\n"
5550
  "\tcustom users will not have access to create podcast episodes or view statistics from the dashboard. Due to this feature's\n"
5551
  "\tcomplexity, it is not supported by Blubrry.com."
5552
- msgstr ""
5553
 
5554
  #@ powerpress
5555
  #: powerpressadmin-tools.php:105
5556
  msgid "Add PowerPress Podcasting Capabilities for User Role Management"
5557
- msgstr ""
5558
 
5559
  #@ powerpress
5560
  #: powerpressadmin-tools.php:107
@@ -5563,30 +5572,30 @@ msgid ""
5563
  "\tOnly administrators will be able to view media statistics from the WordPress Dashboard. Contributors, subscribers and other\n"
5564
  "\tcustom users will not have access to create podcast episodes or view statistics from the dashboard. Due to this feature's\n"
5565
  "\tcomplexity, it is not supported by Blubrry.com."
5566
- msgstr ""
5567
 
5568
  #@ powerpress
5569
  #: powerpressadmin-tools.php:118
5570
  msgid "Remove Password Protection Capabilities for Control of Which Users can Access Your Podcasts"
5571
- msgstr ""
5572
 
5573
  #@ powerpress
5574
  #: powerpressadmin-tools.php:118
5575
  #: powerpressadmin-tools.php:136
5576
  msgid "Also kown as Premium Content"
5577
- msgstr ""
5578
 
5579
  #@ powerpress
5580
  #: powerpressadmin-tools.php:121
5581
  #, php-format
5582
  msgid "To use this feature, go to %s and create a new custom podcast channel. In the Edit Podcast Channel page, click the last tab labeled 'Other Settings'. Place a check in the box labled 'Protect Content' and then click 'Save Changes'."
5583
- msgstr ""
5584
 
5585
  #@ powerpress
5586
  #: powerpressadmin-tools.php:122
5587
  #: powerpressadmin.php:970
5588
  msgid "Podcast Channels"
5589
- msgstr ""
5590
 
5591
  #@ powerpress
5592
  #: powerpressadmin-tools.php:126
@@ -5596,11 +5605,15 @@ msgid ""
5596
  "\t\tSubscriber.\" Only users with the \"Premium Subscriber\" role have access to your password protected custom podcast\n"
5597
  "\t\tchannels. Due to this feature's complexity, it is not supported by Blubrry.com."
5598
  msgstr ""
 
 
 
 
5599
 
5600
  #@ powerpress
5601
  #: powerpressadmin-tools.php:136
5602
  msgid "Add Password Protection Capabilities for Control of Which Users can Access Your Podcasts"
5603
- msgstr ""
5604
 
5605
  #@ powerpress
5606
  #: powerpressadmin-tools.php:138
@@ -5610,11 +5623,15 @@ msgid ""
5610
  "\t\tSubscriber.\" Only users with the \"Premium Subscriber\" role have access to your password protected custom podcast\n"
5611
  "\t\tchannels. Due to this feature's complexity, it is not supported by Blubrry.com."
5612
  msgstr ""
 
 
 
 
5613
 
5614
  #@ powerpress
5615
  #: powerpressadmin-tools.php:147
5616
  msgid "What are Roles and Capabilities?"
5617
- msgstr ""
5618
 
5619
  #@ powerpress
5620
  #: powerpressadmin-tools.php:150
@@ -5624,42 +5641,45 @@ msgid ""
5624
  "\t\t\tcannot do in the blog. You will most likely need a roles and capabilities plugin such as %s, %s, or %s\n"
5625
  "\t\t\tto take advantage of these features. Due to this feature's complexity, it is not supported by Blubrry.com."
5626
  msgstr ""
 
 
 
5627
 
5628
  #@ powerpress
5629
  #: powerpressadmin-tools.php:153
5630
  msgid "Roles and Capabilities"
5631
- msgstr ""
5632
 
5633
  #@ powerpress
5634
  #: powerpressadmin-tools.php:154
5635
  msgid "Role Manager"
5636
- msgstr ""
5637
 
5638
  #@ powerpress
5639
  #: powerpressadmin-tools.php:155
5640
  msgid "Capability Manager"
5641
- msgstr ""
5642
 
5643
  #@ powerpress
5644
  #: powerpressadmin-tools.php:156
5645
  msgid "Role Scoper"
5646
- msgstr ""
5647
 
5648
  #@ powerpress
5649
  #: powerpressadmin-tools.php:166
5650
  msgid "Update Plugins Cache"
5651
- msgstr ""
5652
 
5653
  #@ powerpress
5654
  #: powerpressadmin-tools.php:168
5655
  msgid "Clear Plugins Update Cache"
5656
- msgstr ""
5657
 
5658
  #@ powerpress
5659
  #: powerpressadmin-tools.php:171
5660
  #, php-format
5661
  msgid "The list of plugins on the plugins page will cache the plugin version numbers for up to 24 hours. Click the link above to clear the cache to get the latest versions of plugins listed on your %s page."
5662
- msgstr ""
5663
 
5664
  #@ powerpress
5665
  #: powerpressadmin-tools.php:172
@@ -5674,7 +5694,7 @@ msgstr "Traduzioni"
5674
  #@ powerpress
5675
  #: powerpressadmin-tools.php:182
5676
  msgid "Translate PowerPress to your language"
5677
- msgstr ""
5678
 
5679
  #@ powerpress
5680
  #: powerpressadmin-tools.php:189
@@ -5684,200 +5704,200 @@ msgstr "Diagnostica"
5684
  #@ powerpress
5685
  #: powerpressadmin-tools.php:191
5686
  msgid "Diagnose Your PowerPress Installation"
5687
- msgstr ""
5688
 
5689
  #@ powerpress
5690
  #: powerpressadmin.php:75
5691
  msgid "Another podcasting plugin has been detected, PowerPress is currently disabled."
5692
- msgstr ""
5693
 
5694
  #@ powerpress
5695
  #: powerpressadmin.php:80
5696
  msgid "Blubrry PowerPress requires Wordpress version 2.8 or greater."
5697
- msgstr ""
5698
 
5699
  #@ powerpress
5700
  #: powerpressadmin.php:84
5701
  #: powerpressadmin.php:2866
5702
  msgid "The WP OS FLV plugin is not compatible with Blubrry PowerPress."
5703
- msgstr ""
5704
 
5705
  #@ powerpress
5706
  #: powerpressadmin.php:130
5707
  msgid "Invalid iTunes image"
5708
- msgstr ""
5709
 
5710
  #@ powerpress
5711
  #: powerpressadmin.php:156
5712
  msgid "Invalid RSS image"
5713
- msgstr ""
5714
 
5715
  #@ powerpress
5716
  #: powerpressadmin.php:182
5717
  msgid "Invalid Coverat image"
5718
- msgstr ""
5719
 
5720
  #@ powerpress
5721
  #: powerpressadmin.php:208
5722
  msgid "Invalid poster image"
5723
- msgstr ""
5724
 
5725
  #@ powerpress
5726
  #: powerpressadmin.php:359
5727
  msgid "Blubrry Hosting Error (updating coverart)"
5728
- msgstr ""
5729
 
5730
  #@ powerpress
5731
  #: powerpressadmin.php:363
5732
  msgid "An error occurred updating the coverart with your Blubrry Services Account."
5733
- msgstr ""
5734
 
5735
  #@ powerpress
5736
  #: powerpressadmin.php:369
5737
  msgid "Coverart Image was not uploaded to your Blubrry Services Account. It will NOT be added to your mp3s."
5738
- msgstr ""
5739
 
5740
  #@ powerpress
5741
  #: powerpressadmin.php:424
5742
  msgid "Blubrry PowerPress settings saved successfully."
5743
- msgstr ""
5744
 
5745
  #@ powerpress
5746
  #: powerpressadmin.php:427
5747
  msgid "Blubrry PowerPress Custom Feed settings saved."
5748
- msgstr ""
5749
 
5750
  #@ powerpress
5751
  #: powerpressadmin.php:430
5752
  msgid "Blubrry PowerPress Category Feed settings saved."
5753
- msgstr ""
5754
 
5755
  #@ powerpress
5756
  #: powerpressadmin.php:435
5757
  msgid "ATTENTION: You must configure your Blubrry Services in the Blubrry PowerPress &gt; Basic Settings page in order to utilize this feature."
5758
- msgstr ""
5759
 
5760
  #@ powerpress
5761
  #: powerpressadmin.php:437
5762
  msgid "Blubrry PowerPress MP3 Tag settings saved."
5763
- msgstr ""
5764
 
5765
  #@ powerpress
5766
  #: powerpressadmin.php:443
5767
  msgid "Blubrry PowerPress settings saved."
5768
- msgstr ""
5769
 
5770
  #@ powerpress
5771
  #: powerpressadmin.php:459
5772
  msgid "iTunes Ping Successful. Podcast Feed URL"
5773
- msgstr ""
5774
 
5775
  #@ powerpress
5776
  #: powerpressadmin.php:488
5777
  #, php-format
5778
  msgid "Feed slug \"%s\" is not valid."
5779
- msgstr ""
5780
 
5781
  #@ powerpress
5782
  #: powerpressadmin.php:492
5783
  #, php-format
5784
  msgid "Feed slug \"%s\" is not available."
5785
- msgstr ""
5786
 
5787
  #@ powerpress
5788
  #: powerpressadmin.php:502
5789
  #, php-format
5790
  msgid "Podcast Feed \"%s\" added, please configure your new feed now."
5791
- msgstr ""
5792
 
5793
  #@ powerpress
5794
  #: powerpressadmin.php:526
5795
  msgid "You must select a category to continue."
5796
- msgstr ""
5797
 
5798
  #@ powerpress
5799
  #: powerpressadmin.php:530
5800
  #: powerpressadmin.php:624
5801
  msgid "Error obtaining category information."
5802
- msgstr ""
5803
 
5804
  #@ powerpress
5805
  #: powerpressadmin.php:543
5806
  #: powerpressadmin.php:637
5807
  msgid "Please configure your category podcast feed now."
5808
- msgstr ""
5809
 
5810
  #@ powerpress
5811
  #: powerpressadmin.php:652
5812
  msgid "Cannot delete default podcast feed."
5813
- msgstr ""
5814
 
5815
  #@ powerpress
5816
  #: powerpressadmin.php:656
5817
  #, php-format
5818
  msgid "Cannot delete feed. Feed contains %d episode(s)."
5819
- msgstr ""
5820
 
5821
  #@ powerpress
5822
  #: powerpressadmin.php:678
5823
  msgid "Feed deleted successfully."
5824
- msgstr ""
5825
 
5826
  #@ powerpress
5827
  #: powerpressadmin.php:694
5828
  msgid "Removed podcast settings for category feed successfully."
5829
- msgstr ""
5830
 
5831
  #@ powerpress
5832
  #: powerpressadmin.php:701
5833
  msgid "Podpress settings imported successfully."
5834
- msgstr ""
5835
 
5836
  #@ powerpress
5837
  #: powerpressadmin.php:703
5838
  msgid "No Podpress settings found."
5839
- msgstr ""
5840
 
5841
  #@ powerpress
5842
  #: powerpressadmin.php:711
5843
  msgid "Settings imported from the plugin \"Podcasting\" successfully."
5844
- msgstr ""
5845
 
5846
  #@ powerpress
5847
  #: powerpressadmin.php:713
5848
  msgid "No settings found for the plugin \"Podcasting\"."
5849
- msgstr ""
5850
 
5851
  #@ powerpress
5852
  #: powerpressadmin.php:731
5853
  msgid "PowerPress Roles and Capabilities added to WordPress Blog."
5854
- msgstr ""
5855
 
5856
  #@ powerpress
5857
  #: powerpressadmin.php:748
5858
  msgid "PowerPress Roles and Capabilities removed from WordPress Blog"
5859
- msgstr ""
5860
 
5861
  #@ powerpress
5862
  #: powerpressadmin.php:757
5863
  msgid "Premium Subscriber"
5864
- msgstr ""
5865
 
5866
  #@ powerpress
5867
  #: powerpressadmin.php:773
5868
  msgid "Podcast Password Protection Capabilities for Custom Channel Feeds added successfully."
5869
- msgstr ""
5870
 
5871
  #@ powerpress
5872
  #: powerpressadmin.php:791
5873
  msgid "Podcast Password Protection Capabilities for Custom Channel Feeds removed successfully."
5874
- msgstr ""
5875
 
5876
  #@ powerpress
5877
  #: powerpressadmin.php:798
5878
  #, php-format
5879
  msgid "Plugins Update Cache cleared successfully. You may now to go the %s page to see the latest plugin versions."
5880
- msgstr ""
5881
 
5882
  #@ powerpress
5883
  #: powerpressadmin.php:798
@@ -5893,12 +5913,12 @@ msgstr "Episodio Podcast"
5893
  #@ powerpress
5894
  #: powerpressadmin.php:938
5895
  msgid "Podcast Episode (default)"
5896
- msgstr ""
5897
 
5898
  #@ powerpress
5899
  #: powerpressadmin.php:947
5900
  msgid "Podcast Episode for Custom Channel"
5901
- msgstr ""
5902
 
5903
  #@ powerpress
5904
  #: powerpressadmin.php:962
@@ -5923,7 +5943,7 @@ msgstr "Opzioni PowerPress Audio Player"
5923
  #@ powerpress
5924
  #: powerpressadmin.php:966
5925
  msgid "Audio Player"
5926
- msgstr "Audio Player"
5927
 
5928
  #@ powerpress
5929
  #: powerpressadmin.php:967
@@ -5933,7 +5953,7 @@ msgstr "Opzioni PowerPress Video Player"
5933
  #@ powerpress
5934
  #: powerpressadmin.php:967
5935
  msgid "Video Player"
5936
- msgstr "Video Player"
5937
 
5938
  #@ powerpress
5939
  #: powerpressadmin.php:970
@@ -5946,7 +5966,7 @@ msgstr "Canali personalizzati podcast in PowerPress"
5946
  #: powerpressadmin.php:1836
5947
  #: powerpressadmin.php:1843
5948
  msgid "PowerPress Category Podcasting"
5949
- msgstr ""
5950
 
5951
  #@ powerpress
5952
  #: powerpressadmin.php:974
@@ -5992,22 +6012,22 @@ msgid ""
5992
  "DO NOT MODIFY THIS SETTING UNLESS YOU ABSOLUTELY KNOW WHAT YOU ARE DOING.\n"
5993
  "\n"
5994
  "Are you sure you want to continue?"
5995
- msgstr ""
5996
 
5997
  #@ powerpress
5998
  #: powerpressadmin.php:1475
5999
  msgid "Media URL contains characters that may cause problems for some clients. For maximum compatibility, only use letters, numbers, dash - and underscore _ characters only."
6000
- msgstr ""
6001
 
6002
  #@ powerpress
6003
  #: powerpressadmin.php:1490
6004
  msgid "PowerPress will not accept media URLs starting with https://.<br />Not all podcatching (podcast downloading) applications support secure http.<br />Please enter a different URL beginning with http://."
6005
- msgstr ""
6006
 
6007
  #@ powerpress
6008
  #: powerpressadmin.php:1499
6009
  msgid "Media URL should not start with https://.<br />Not all podcatching (podcast downloading) applications support secure http.<br />By using https://, you may limit the size of your audience."
6010
- msgstr ""
6011
 
6012
  #@ powerpress
6013
  #: powerpressadmin.php:1574
172
  #@ powerpress
173
  #: powerpress-player.php:565
174
  msgid "Player Not Available"
175
+ msgstr "Lettore Non Disponibile"
176
 
177
  #@ powerpress
178
  #: powerpress-player.php:971
300
  #@ powerpress
301
  #: powerpressadmin-basic.php:144
302
  msgid "Select from 6 different web based audio players."
303
+ msgstr "Seleziona tra sei diversi lettori audio web"
304
 
305
  #@ powerpress
306
  #: powerpressadmin-basic.php:145
313
  #@ powerpress
314
  #: powerpressadmin-basic.php:149
315
  msgid "Video Player Options"
316
+ msgstr "Opzioni Lettore Video"
317
 
318
  #@ powerpress
319
  #: powerpressadmin-basic.php:150
320
  msgid "Select from 2 different web based video players."
321
+ msgstr "Seleziona tra due diversi lettori video web"
322
 
323
  #@ powerpress
324
  #@ default
461
  #@ powerpress
462
  #: powerpressadmin-basic.php:234
463
  msgid "Replace Player with Embed"
464
+ msgstr "Sostituisci il Lettore con l'Incorporazione"
465
 
466
  #@ powerpress
467
  #: powerpressadmin-basic.php:235
468
  msgid "Do not display default player if embed present for episode."
469
+ msgstr "Non mostrare il lettore predefinito se esiste incorporazione per l'episodio."
470
 
471
  #@ powerpress
472
  #: powerpressadmin-basic.php:237
473
  msgid "Display Player and Links Options"
474
+ msgstr "Mostra le Opzioni lettore e Link"
475
 
476
  #@ powerpress
477
  #: powerpressadmin-basic.php:241
478
  msgid "No Player & Links Option"
479
+ msgstr "Non ci sono Opzioni Lettore e Link"
480
 
481
  #@ powerpress
482
  #: powerpressadmin-basic.php:242
491
  #@ powerpress
492
  #: powerpressadmin-basic.php:246
493
  msgid "No Player Option"
494
+ msgstr "Non ci sono Opzioni Lettore"
495
 
496
  #@ powerpress
497
  #: powerpressadmin-basic.php:247
521
  #@ powerpress
522
  #: powerpressadmin-basic.php:257
523
  msgid "Player Width and Height"
524
+ msgstr "Larghezza e Altezza del Lettore"
525
 
526
  #@ powerpress
527
  #: powerpressadmin-basic.php:258
528
  msgid "Customize player width and height on a per episode basis"
529
+ msgstr "Personalizza larghezza e altezza del lettore su una base per episodi"
530
 
531
  #@ powerpress
532
  #: powerpressadmin-basic.php:260
1027
  #@ powerpress
1028
  #: powerpressadmin-basic.php:883
1029
  msgid "Player and media links will appear <u>below</u> your post and page content."
1030
+ msgstr "Lettore e media link appariranno <u>sotto</u> i tuoi post e contenuti di pagina."
1031
 
1032
  #@ powerpress
1033
  #: powerpressadmin-basic.php:887
1037
  #@ powerpress
1038
  #: powerpressadmin-basic.php:890
1039
  msgid "Player and media links will appear <u>above</u> your post and page content."
1040
+ msgstr "Lettore e media link appariranno <u>sopra</u> i tuoi post e contenuti di pagina."
1041
 
1042
  #@ powerpress
1043
  #: powerpressadmin-basic.php:893
1047
  #@ powerpress
1048
  #: powerpressadmin-basic.php:896
1049
  msgid "Player and media links will <u>NOT</u> appear in your post and page content. Media player and links can be added manually by using the <i>shortcode</i> below."
1050
+ msgstr "Lettore e media link <u>NON</u> nel tuo post o contenuto pagina. Media player e link possono essere aggiunti manualmente usando lo <i>shortcode</i> qui sotto."
1051
 
1052
  #@ powerpress
1053
  #: powerpressadmin-basic.php:900
1074
  #: powerpressadmin-basic.php:909
1075
  #, php-format
1076
  msgid "The %s shortcode is used to position your media presentation (player and download links) exactly where you want within your post or page content."
1077
+ msgstr "Lo %s shortcode si usa per posizionare la presentazione dei media (lettore e download link) esattamente dove vuoi all'interno del post o del contenuto pagina."
1078
 
1079
  #@ powerpress
1080
  #: powerpressadmin-basic.php:910
1095
  #@ powerpress
1096
  #: powerpressadmin-basic.php:926
1097
  msgid "Display Player"
1098
+ msgstr "Mostra Lettore"
1099
 
1100
  #@ powerpress
1101
  #: powerpressadmin-basic.php:930
1102
  msgid "Detected mobile and tablet devices use an HTML5 player with a fallback link to download the media."
1103
+ msgstr "Identificati dispositivi mobile e tablet: usate un Lettore HTML 5 con un link fallback per scaricare il media."
1104
 
1105
  #@ powerpress
1106
  #: powerpressadmin-basic.php:943
1130
  #@ powerpress
1131
  #: powerpressadmin-basic.php:952
1132
  msgid "Display Player Embed Link"
1133
+ msgstr "Mostra Link Incorpora Lettore"
1134
 
1135
  #@ powerpress
1136
  #: powerpressadmin-basic.php:954
1140
  #@ powerpress
1141
  #: powerpressadmin-basic.php:956
1142
  msgid "Embed option only works for Flow Player Classic and HTML5 Video player."
1143
+ msgstr "L'opzione Incorpora funziona solo con Flow Player Classic e Video Player HTML5."
1144
 
1145
  #@ powerpress
1146
  #: powerpressadmin-basic.php:968
1160
  #@ powerpress
1161
  #: powerpressadmin-basic.php:980
1162
  msgid "Use this option if you are having problems with the players not appearing in your pages."
1163
+ msgstr "Usate questa opzione se incontrate problemi nella visualizzazione dei Lettore nelle Vostre pagine."
1164
 
1165
  #@ powerpress
1166
  #: powerpressadmin-basic.php:989
1210
  #@ powerpress
1211
  #: powerpressadmin-basic.php:1028
1212
  msgid "When unchecked, m4a will be played with the quicktime video embed. Video player width/height settings apply."
1213
+ msgstr "Quando senza spunta, gli m4a saranno riprodotti con l'incorporazione video quicktime.Si applicano le impostazioni larghezza/altezza del Video Lettore."
1214
 
1215
  #@ powerpress
1216
  #: powerpressadmin-basic.php:1046
1845
  #@ powerpress
1846
  #: powerpressadmin-diagnostics.php:262
1847
  msgid "Additional Player Options:"
1848
+ msgstr "Opzioni Addizionali del Lettore:"
1849
 
1850
  #@ powerpress
1851
  #: powerpressadmin-diagnostics.php:266
3032
  #@ powerpress
3033
  #: powerpressadmin-editfeed.php:719
3034
  msgid "Label above appears in place of the in-page player and links when the current signed-in user does not have access to the protected content."
3035
+ msgstr "L'etichetta qui sopra appare al posto del lettore o dei link in-page quando l'Utente connesso non ha i permessi per visualizzare contenuti protetti."
3036
 
3037
  #@ powerpress
3038
  #: powerpressadmin-editfeed.php:735
3042
  #@ powerpress
3043
  #: powerpressadmin-editfeed.php:739
3044
  msgid "Disable Player"
3045
+ msgstr "Disabilita il Lettore"
3046
 
3047
  #@ powerpress
3048
  #: powerpressadmin-editfeed.php:742
3049
  msgid "Do not display web player or links for this podcast channel."
3050
+ msgstr "Non mostrare il lettore web o i link in questo Canale podcast."
3051
 
3052
  #@ powerpress
3053
  #: powerpressadmin-editfeed.php:778
3225
  #@ powerpress
3226
  #: powerpressadmin-editfeed.php:1007
3227
  msgid "The iTunes New Feed URL option works primarily for Apple's iTunes application only, and should only be used if you are unable to implement a HTTP 301 redirect."
3228
+ msgstr "L'opzione New Feed URL di iTunes funziona principalmente per le sole applicazioni iTunes della Apple, e dovrebbe essere usata solo se non potete implementare un redirect HTTP 301."
3229
 
3230
  #@ powerpress
3231
  #: powerpressadmin-editfeed.php:1008
3232
  msgid "A 301 redirect will route <u>all podcast clients including iTunes</u> to your new feed address."
3233
+ msgstr "Un redirect 301inoltrerà <u>tutti i client podcast incluso iTunes</u> al tuo nuovo indirizzo feed."
3234
 
3235
  #@ powerpress
3236
  #: powerpressadmin-editfeed.php:1012
3237
  msgid "Changing Your Podcast RSS Feed Address (URL)"
3238
+ msgstr "Sto cambiando il tuo indirizzo Podcast RSS Feed (URL)"
3239
 
3240
  #@ powerpress
3241
  #: powerpressadmin-editfeed.php:1016
3242
  msgid "WARNING: Changes made here are permanent. If the New Feed URL entered is incorrect, you will lose subscribers and will no longer be able to update your listing in the iTunes Store."
3243
+ msgstr "ATTENZIONE: Queste modifiche sono permanenti. Se il Nuovo URL Feed inserito non è corretto, perderai gli Utenti registrati e non avrai più la possibilità di aggiornare gli elenchi nell'iTunes Store."
3244
 
3245
  #@ powerpress
3246
  #: powerpressadmin-editfeed.php:1017
3247
  msgid "DO NOT MODIFY THIS SETTING UNLESS YOU ABSOLUTELY KNOW WHAT YOU ARE DOING."
3248
+ msgstr "NON MODIFICARE QUESTE IMPOSTAZIONI SE NON SAI PERFETTAMENTE QUELLO CHE FAI."
3249
 
3250
  #@ powerpress
3251
  #: powerpressadmin-editfeed.php:1019
3252
  #, php-format
3253
  msgid "Apple recommends you maintain the %s tag in your feed for at least two weeks to ensure that most subscribers will receive the new New Feed URL."
3254
+ msgstr "Apple raccomanda di mantenere la tag %s nel tuo feed per almeno due settimane per essere sicuri che la maggior parte degli Utenti riceverà l'URL New Feed."
3255
 
3256
  #@ powerpress
3257
  #: powerpressadmin-editfeed.php:1023
3273
  #: powerpressadmin-editfeed.php:1041
3274
  #, php-format
3275
  msgid "The New Feed URL value below will be applied to the %s (%s)."
3276
+ msgstr "L'URL New Feed qui sotto sarà applicato a %s (%s)."
3277
 
3278
  #@ powerpress
3279
  #: powerpressadmin-editfeed.php:1045
3283
  #@ powerpress
3284
  #: powerpressadmin-editfeed.php:1048
3285
  msgid "Leave blank for no New Feed URL"
3286
+ msgstr "Lascia in bianco per nessun URL New Feed."
3287
 
3288
  #@ powerpress
3289
  #: powerpressadmin-editfeed.php:1050
3290
  msgid "More information regarding the iTunes New Feed URL is available here."
3291
+ msgstr "La maggior parte delle informazioni sull'URL New Feed di iTunes è disponibile qui."
3292
 
3293
  #@ powerpress
3294
  #: powerpressadmin-editfeed.php:1056
3295
  #, php-format
3296
  msgid "Please activate the 'Custom Podcast Channels' Advanced Option to set the new-feed-url for your podcast only feed (%s)"
3297
+ msgstr "Attiva l'Opzione Avanzata 'Canali Podcast Personalizzati' per impostare l'url-new-feed solo per il feed nel tuo podcast (%s)"
3298
 
3299
  #@ powerpress
3300
  #: powerpressadmin-editfeed.php:1058
3301
  #, php-format
3302
  msgid "Please navigate to the 'Custom Podcast Channels' section to set the new-feed-url for your podcast only feed (%s)"
3303
+ msgstr "Aprite la sezione \"Canali Podcast personalizzati\" per impostare l'url-new-feed solo per il feed nel tuo podcast (%s)"
3304
 
3305
  #@ powerpress
3306
  #: powerpressadmin-find-replace.php:134
3307
  #, php-format
3308
  msgid "%d URLs updated successfully."
3309
+ msgstr "%d URL aggiornati con successo."
3310
 
3311
  #@ powerpress
3312
  #: powerpressadmin-find-replace.php:136
3313
  #, php-format
3314
  msgid "%d URLs were not updated."
3315
+ msgstr "%d URL non sono stati aggiornati"
3316
 
3317
  #@ powerpress
3318
  #: powerpressadmin-find-replace.php:138
3322
  #@ powerpress
3323
  #: powerpressadmin-find-replace.php:145
3324
  msgid "WARNING: Please backup your database before proceeding. Blubrry PowerPress is not responsibile for any lost or damaged data resulting from this Find and Replace tool."
3325
+ msgstr "ATTENZIONE: Effettua un backup del tuo database prima di procedere. Blubrrry PowerPress non è responsabile per perdite o danneggiamento di dati causate da questo strumento Trova e Sostituisci."
3326
 
3327
  #@ powerpress
3328
  #: powerpressadmin-find-replace.php:177
3331
  "\n"
3332
  "Are you sure you do not want to verify the URLs?"
3333
  msgstr ""
3334
+ "ATTENZIONE: LA verifica blocca le modifiche se l'URL inserito non è valido.\n"
3335
+ "\n"
3336
+ "Sei sicuro di non volere verificare gli URL?"
3337
 
3338
  #@ powerpress
3339
  #: powerpressadmin-find-replace.php:185
3342
  "\n"
3343
  "Are you sure you wish to continue?"
3344
  msgstr ""
3345
+ "ATTENZIONE: Stai per effettuare modifiche permanenti al database.\n"
3346
+ "\n"
3347
+ "Sei sicuro di voler continuare?"
3348
 
3349
  #@ powerpress
3350
  #: powerpressadmin-find-replace.php:220
3355
  #: powerpressadmin-find-replace.php:222
3356
  #: powerpressadmin-tools.php:77
3357
  msgid "Find and replace complete or partial segments of media URLs. Useful if you move your media to a new web site or service."
3358
+ msgstr "Cerca e sostituisce media URL completi o loro segmenti parziali. Utile se sposti i tuoi media su un nuovo sito o servizio Web."
3359
 
3360
  #@ powerpress
3361
  #: powerpressadmin-find-replace.php:226
3492
  #@ powerpress
3493
  #: powerpressadmin-jquery.php:140
3494
  msgid "Wait a sec! This feature is only available to Blubrry Podcast paid hosting members."
3495
+ msgstr "Un attimo! Questa funzionalità è disponibile solo ai membri Blubrry Podcast hosting a pagamento."
3496
 
3497
  #@ powerpress
3498
  #: powerpressadmin-jquery.php:142
3499
  #, php-format
3500
  msgid "Join our community to get free podcast statistics and access to other valuable %s."
3501
+ msgstr "Unisciti alla nostra comunità per ottenere statistiche podcast gratuite e accesso ai interessanti %s."
3502
 
3503
  #@ powerpress
3504
  #: powerpressadmin-jquery.php:143
3509
  #: powerpressadmin-jquery.php:147
3510
  #, php-format
3511
  msgid "Our %s PowerPress makes podcast publishing simple. Check out the %s on our exciting three-step publishing system!"
3512
+ msgstr "Il nostro %s PowerPress rende semplice la pubblicazione di podcast. Prova il %s nel nostro emozionante sistema di pubblicazione in tre passi!"
3513
 
3514
  #@ powerpress
3515
  #: powerpressadmin-jquery.php:148
3516
  msgid "podcast-hosting integrated"
3517
+ msgstr "podcast-hosting integrato"
3518
 
3519
  #@ powerpress
3520
  #: powerpressadmin-jquery.php:149
3524
  #@ powerpress
3525
  #: powerpressadmin-jquery.php:171
3526
  msgid "An unknown error occurred deleting media file."
3527
+ msgstr "Errore non identificato durante la cancellazione del file media."
3528
 
3529
  #@ powerpress
3530
  #: powerpressadmin-jquery.php:206
3531
  msgid "Are you sure you want to delete this media file?"
3532
+ msgstr "Sei sicuro di voler cancellare questo file media?"
3533
 
3534
  #@ powerpress
3535
  #: powerpressadmin-jquery.php:216
3540
  #@ powerpress
3541
  #: powerpressadmin-jquery.php:217
3542
  msgid "Select from media files uploaded to blubrry.com"
3543
+ msgstr "Seleziona tra i media file caricati su blubrry.com"
3544
 
3545
  #@ powerpress
3546
  #: powerpressadmin-jquery.php:242
3547
  msgid "Media Published within the past 30 days"
3548
+ msgstr "Media pubblicati negli ultimi 30 giorni"
3549
 
3550
  #@ powerpress
3551
  #: powerpressadmin-jquery.php:253
3562
  #: powerpressadmin-jquery.php:279
3563
  #, php-format
3564
  msgid "You have uploaded %s (%s available) of your %s limit."
3565
+ msgstr "Hai caricatoil %s (%s disponibile) del tuo limite %s ."
3566
 
3567
  #@ powerpress
3568
  #: powerpressadmin-jquery.php:286
3569
  #, php-format
3570
  msgid "You are hosting %s (%s available) of your %s/30 day limit."
3571
+ msgstr "Stai depositando il %s (%s disponibile) del tuo limite nei %s/30 giorni."
3572
 
3573
  #@ powerpress
3574
  #: powerpressadmin-jquery.php:293
3575
  #, php-format
3576
  msgid "Your limit will adjust on %s to %s (%s available)."
3577
+ msgstr "Il tuo limite si aggiorna da %s a %s (%s disponibile)."
3578
 
3579
  #@ powerpress
3580
  #: powerpressadmin-jquery.php:360
3581
  msgid "currently not available"
3582
+ msgstr "attualmente non disponibile"
3583
 
3584
  #@ powerpress
3585
  #: powerpressadmin-jquery.php:362
3586
  #: powerpressadmin-jquery.php:580
3587
  msgid "Unable to find podcasts for this account."
3588
+ msgstr "Non trovo podcast per questo account."
3589
 
3590
  #@ powerpress
3591
  #: powerpressadmin-jquery.php:397
3592
  msgid "You must select a program to continue."
3593
+ msgstr "Devi selezionare un programma per continuare."
3594
 
3595
  #@ powerpress
3596
  #: powerpressadmin-jquery.php:409
3597
  msgid "Please select your podcast program to continue."
3598
+ msgstr "Seleziona il tuo programma podcast per continuare."
3599
 
3600
  #@ powerpress
3601
  #: powerpressadmin-jquery.php:417
3602
  msgid "No podcasts for this account are listed on blubrry.com."
3603
+ msgstr "Non ci sono podcast per questo account negli elenchi in blubrry.com"
3604
 
3605
  #@ powerpress
3606
  #: powerpressadmin-jquery.php:429
3607
  msgid "Authentication failed."
3608
+ msgstr "Autenticazione fallita."
3609
 
3610
  #@ powerpress
3611
  #: powerpressadmin-jquery.php:434
3620
  #: powerpressadmin-jquery.php:497
3621
  #: powerpressadmin-jquery.php:504
3622
  msgid "Blubrry Services Integration"
3623
+ msgstr "Integrazione servizi Blubrry"
3624
 
3625
  #@ powerpress
3626
  #: powerpressadmin-jquery.php:454
3627
  msgid "Settings Saved Successfully!"
3628
+ msgstr "Impostazioni Salvate con Successo"
3629
 
3630
  #@ powerpress
3631
  #: powerpressadmin-jquery.php:507
3632
  msgid "Blubrry User Name (Email)"
3633
+ msgstr "Nome Utente Blubrry (Email)"
3634
 
3635
  #@ powerpress
3636
  #: powerpressadmin-jquery.php:511
3640
  #@ powerpress
3641
  #: powerpressadmin-jquery.php:514
3642
  msgid "Select Blubrry Services"
3643
+ msgstr "Seleziona i Servizi Blubrry"
3644
 
3645
  #@ powerpress
3646
  #: powerpressadmin-jquery.php:516
3647
  msgid "Statistics Integration only"
3648
+ msgstr "Solo Integrazione Statistiche"
3649
 
3650
  #@ powerpress
3651
  #: powerpressadmin-jquery.php:519
3652
  msgid "Statistics and Hosting Integration (Requires Blubrry Hosting Account)"
3653
+ msgstr "Integrazione di Statistiche e Hosting (Richiede un Account Hosting Blubrry)"
3654
 
3655
  #@ powerpress
3656
  #: powerpressadmin-jquery.php:526
3657
  msgid "Blubrry Program Keyword"
3658
+ msgstr "Programma Keyword Blubrry"
3659
 
3660
  #@ powerpress
3661
  #: powerpressadmin-jquery.php:528
3720
  #@ powerpress
3721
  #: powerpressadmin-metabox.php:132
3722
  msgid "Modify existing podcast episode"
3723
+ msgstr "Modifica episodio podcast esistente"
3724
 
3725
  #@ powerpress
3726
  #: powerpressadmin-metabox.php:151
3727
  msgid "Podcast episode will be removed from this post upon save"
3728
+ msgstr "Con il salvataggio l'episodio podcast sarà rimosso dal post"
3729
 
3730
  #@ powerpress
3731
  #: powerpressadmin-metabox.php:165
3732
  msgid "Browse Media File"
3733
+ msgstr "Sfoglia File Media"
3734
 
3735
  #@ powerpress
3736
  #: powerpressadmin-metabox.php:165
3737
  msgid "Browse Media Files"
3738
+ msgstr "Sfoglia File Media"
3739
 
3740
  #@ powerpress
3741
  #: powerpressadmin-metabox.php:167
3742
  msgid "Verify"
3743
+ msgstr "Verifica"
3744
 
3745
  #@ powerpress
3746
  #: powerpressadmin-metabox.php:167
3747
  msgid "Verify Media"
3748
+ msgstr "Verifica Media"
3749
 
3750
  #@ powerpress
3751
  #: powerpressadmin-metabox.php:168
3752
  msgid "Checking Media"
3753
+ msgstr "Sto controllando il Media"
3754
 
3755
  #@ powerpress
3756
  #: powerpressadmin-metabox.php:171
3757
  msgid "Media file hosted by blubrry.com."
3758
+ msgstr "File media ospitato su blubrry.com."
3759
 
3760
  #@ powerpress
3761
  #: powerpressadmin-metabox.php:172
3762
  msgid "Remove Blubrry.com hosted media file"
3763
+ msgstr "Rimuovi il file media ospitato su blubrry.com."
3764
 
3765
  #@ powerpress
3766
  #: powerpressadmin-metabox.php:172
3767
  msgid "remove"
3768
+ msgstr "rimuovi"
3769
 
3770
  #@ powerpress
3771
  #: powerpressadmin-metabox.php:177
3772
  msgid "Video is HD (720p/1080i/1080p)"
3773
+ msgstr "Il video è HD (720p/1080i/1080p)"
3774
 
3775
  #@ powerpress
3776
  #: powerpressadmin-metabox.php:185
3777
  msgid "Do not display player and media links"
3778
+ msgstr "Non mostrare il lettore e i link ai media"
3779
 
3780
  #@ powerpress
3781
  #: powerpressadmin-metabox.php:191
3782
  msgid "Do not display player"
3783
+ msgstr "Non mostrare il lettore"
3784
 
3785
  #@ powerpress
3786
  #: powerpressadmin-metabox.php:197
3787
  msgid "Do not display media links"
3788
+ msgstr "Non mostrare i link ai media"
3789
 
3790
  #@ powerpress
3791
  #: powerpressadmin-metabox.php:206
3792
  msgid "Alt WebM URL"
3793
+ msgstr "Alt WebM URL"
3794
 
3795
  #@ powerpress
3796
  #: powerpressadmin-metabox.php:211
3797
  msgid "For HTML5 Video fallback, enter an alternative WebM media URL above. (optional)"
3798
+ msgstr "Per l' HTML5 Video fallback, inserisci un WebM media URL alternativo qui sopra (opzionale)."
3799
 
3800
  #@ powerpress
3801
  #: powerpressadmin-metabox.php:219
3833
  #@ powerpress
3834
  #: powerpressadmin-metabox.php:275
3835
  msgid "Poster image for video (m4v, mp4, ogv, webm, etc..). e.g. http://example.com/path/to/image.jpg"
3836
+ msgstr "Immagine poster per video (m4v, mp4, ogv, webm, etc..). es. http://example.com/path/to/image.jpg"
3837
 
3838
  #@ powerpress
3839
  #: powerpressadmin-metabox.php:286
3840
  msgid "Player Size"
3841
+ msgstr "Dimensioni Lettore"
3842
 
3843
  #@ powerpress
3844
  #: powerpressadmin-metabox.php:301
3845
  msgid "Media Embed"
3846
+ msgstr "Incorpora media"
3847
 
3848
  #@ powerpress
3849
  #: powerpressadmin-metabox.php:313
3850
  msgid "iTunes Keywords"
3851
+ msgstr "Keywords per iTunes"
3852
 
3853
  #@ powerpress
3854
  #: powerpressadmin-metabox.php:318
3855
  msgid "Enter up to 12 keywords separated by commas. Leave blank to use your blog post tags."
3856
+ msgstr "Inserisci fino a 12 keywords separate da virgole. Lascia vuoto per usare le tag del tuo blog-post."
3857
 
3858
  #@ powerpress
3859
  #: powerpressadmin-metabox.php:328
3860
  msgid "iTunes Subtitle"
3861
+ msgstr "Sottotitolo per iTunes"
3862
 
3863
  #@ powerpress
3864
  #: powerpressadmin-metabox.php:333
3865
  msgid "Your subtitle may not contain HTML and cannot exceed 250 characters in length. Leave blank to use the first 250 characters of your blog post."
3866
+ msgstr "Il sottotitolo non può contenere tag HTML e non deve superare i 250 caratteri. Lascia vuoto per usare i primi 250 caratteri del blog-post."
3867
 
3868
  #@ powerpress
3869
  #: powerpressadmin-metabox.php:343
3870
  msgid "iTunes Summary"
3871
+ msgstr "Sommario iTunes"
3872
 
3873
  #@ powerpress
3874
  #: powerpressadmin-metabox.php:348
3875
  msgid "Your summary may not contain HTML and cannot exceed 4,000 characters in length. Leave blank to use your blog post."
3876
+ msgstr "Il sommario non può contenere HTML e non deve superare i 4000 caratteri. Lascia vuoto per usare il blog-post."
3877
 
3878
  #@ powerpress
3879
  #: powerpressadmin-metabox.php:358
3880
  msgid "iTunes Author"
3881
+ msgstr "Autore iTunes"
3882
 
3883
  #@ powerpress
3884
  #: powerpressadmin-metabox.php:363
3885
  msgid "Leave blank to use post author name."
3886
+ msgstr "Lasciare bianco per usare il nome dell'Autore del post."
3887
 
3888
  #@ powerpress
3889
  #: powerpressadmin-metabox.php:377
3890
  msgid "Use feed's explicit setting"
3891
+ msgstr "Usare le impostazioni esplicite del feed"
3892
 
3893
  #@ powerpress
3894
  #: powerpressadmin-metabox.php:377
3895
  msgid "no - display nothing"
3896
+ msgstr "no - non mostrare"
3897
 
3898
  #@ powerpress
3899
  #: powerpressadmin-metabox.php:377
3900
  msgid "yes - explicit content"
3901
+ msgstr "sì - contenuto esplicito"
3902
 
3903
  #@ powerpress
3904
  #: powerpressadmin-metabox.php:377
3905
  msgid "clean - no explicit content"
3906
+ msgstr "pulito, nessun contenuto esplicito"
3907
 
3908
  #@ powerpress
3909
  #: powerpressadmin-metabox.php:499
3910
  msgid "Select poster image from your computer."
3911
+ msgstr "Seleziona l'immagine poster dal tuo computer."
3912
 
3913
  #@ powerpress
3914
  #: powerpressadmin-mode.php:10
3915
  msgid "Welcome to Blubrry PowerPress"
3916
+ msgstr "Benvenuti a Blubrry PowerPress"
3917
 
3918
  #@ powerpress
3919
  #: powerpressadmin-mode.php:13
3920
  msgid "Welcome to Blubrry PowerPress. In order to give each user the best experience, we designed two modes; Simple and Advanced. Please select the mode that is most appropriate for your needs."
3921
+ msgstr "Benvenuti a Blubrry PowerPress. In ordine a fornire ad ognuno l'esperienza migliore, abbiamo disegnato due modi; Semplice e Avanzato. Seleziona il modo più adatto alle tue necessità."
3922
 
3923
  #@ powerpress
3924
  #: powerpressadmin-mode.php:18
3933
  #@ powerpress
3934
  #: powerpressadmin-mode.php:22
3935
  msgid "Simple Mode is intended for podcasters who are just starting out and feel a bit intimidated by all of the possible options and settings. This mode is perfect for someone who is recording in one format (e.g. mp3) and wants to keep things simple."
3936
+ msgstr "La modalità semplice è indicata per i neofiti del podcasting, che si sentono un poco intimiditi dalle molteplici opzioni e impostazioni. Questo modo è adatto per chi registra in un solo formato (es. mp3) e vuole mantenere semplici le cose."
3937
 
3938
  #@ powerpress
3939
  #: powerpressadmin-mode.php:23
3940
  #: powerpressadmin-mode.php:31
3941
  msgid "Features Include"
3942
+ msgstr "Funzionalità Include"
3943
 
3944
  #@ powerpress
3945
  #: powerpressadmin-mode.php:24
3946
  msgid "Only the bare essential settings"
3947
+ msgstr "Solo le impostazioni essenziali"
3948
 
3949
  #@ powerpress
3950
  #: powerpressadmin-mode.php:25
3951
  msgid "Important feed and iTunes settings"
3952
+ msgstr "Impostazioni importanti per il feed e iTunes"
3953
 
3954
  #@ powerpress
3955
  #: powerpressadmin-mode.php:26
3956
  msgid "Player and download links added to bottom of episode posts"
3957
+ msgstr "Il lettore e i link di download sono aggiunti in fondo ai post di episodi"
3958
 
3959
  #@ powerpress
3960
  #: powerpressadmin-mode.php:29
3961
  msgid "Advanced Mode"
3962
+ msgstr "Modalità Avanzata"
3963
 
3964
  #@ powerpress
3965
  #: powerpressadmin-mode.php:30
3966
  msgid "Advanced Mode gives you all of the features packaged in Blubrry PowerPress. This mode is perfect for someone who may want to distribute multiple versions of their podcast, customize the web player and download links, or import data from a previous podcasting platform."
3967
+ msgstr "La modalità Avanzata ti offre tutte le funzioni contenute in Blubrry PowerPress. Questo modo è adatto a chi voglia distribuire versioni multiple dei propri podcast, personalizzare il lettore Web e i link di download, o importare dati da precedenti piattaforme di podcasting."
3968
 
3969
  #@ powerpress
3970
  #: powerpressadmin-mode.php:32
3971
  msgid "Advanced Settings"
3972
+ msgstr "Impostazioni Avanzate"
3973
 
3974
  #@ powerpress
3975
  #: powerpressadmin-mode.php:32
3976
  msgid "Tweak additional settings."
3977
+ msgstr "Messa a punto di impostazioni addizionali."
3978
 
3979
  #@ powerpress
3980
  #: powerpressadmin-mode.php:33
3981
  msgid "Presentation Settings"
3982
+ msgstr "Impostazioni di Presentazione"
3983
 
3984
  #@ powerpress
3985
  #: powerpressadmin-mode.php:33
3986
  msgid "Customize web player and media download links"
3987
+ msgstr "Personalizza il lettore Web e i link di download"
3988
 
3989
  #@ powerpress
3990
  #: powerpressadmin-mode.php:34
3991
  msgid "Extensive Feed Settings"
3992
+ msgstr "Impostazioni estensive del feed"
3993
 
3994
  #@ powerpress
3995
  #: powerpressadmin-mode.php:34
3996
  msgid "Tweak all available feed settings"
3997
+ msgstr "Metti a punto tutte le impostazioni disponibili per il feed"
3998
 
3999
  #@ powerpress
4000
  #: powerpressadmin-mode.php:42
4001
  msgid "Set Mode and Continue"
4002
+ msgstr "Imposta la Modalità e Continua"
4003
 
4004
  #@ powerpress
4005
  #: powerpressadmin-mt.php:234
4006
  msgid "HTTP return code"
4007
+ msgstr "codice di ritorno HTTP"
4008
 
4009
  #@ powerpress
4010
  #: powerpressadmin-mt.php:248
4011
  #, php-format
4012
  msgid "Error importing %s for blog post %s:"
4013
+ msgstr "Errore nell'importazione di %s per il blog post %s:"
4014
 
4015
  #@ powerpress
4016
  #: powerpressadmin-mt.php:256
4017
  #, php-format
4018
  msgid "Episode %s for blog post %s imported to feed %s."
4019
+ msgstr "Episodio %s per blog post %s importato nel feed %s."
4020
 
4021
  #@ powerpress
4022
  #: powerpressadmin-mt.php:290
4023
  msgid "Duration of each mp3 detected."
4024
+ msgstr "Determinata la durata di ciascun mp3."
4025
 
4026
  #@ powerpress
4027
  #: powerpressadmin-mt.php:295
4028
  #, php-format
4029
  msgid "Imported %d episode(s)."
4030
+ msgstr "Importati(o) %d episodi(o)."
4031
 
4032
  #@ powerpress
4033
  #: powerpressadmin-mt.php:297
4034
  #, php-format
4035
  msgid "Found %d error(s)."
4036
+ msgstr "Trovo %d errore(i)."
4037
 
4038
  #@ powerpress
4039
  #: powerpressadmin-mt.php:304
4040
  msgid "Episode Title"
4041
+ msgstr "Titolo dell'episodio"
4042
 
4043
  #@ powerpress
4044
  #: powerpressadmin-mt.php:305
4065
  #: powerpressadmin-podpress.php:325
4066
  #: powerpressadmin-podpress.php:721
4067
  msgid "No Import"
4068
+ msgstr "Non Importare"
4069
 
4070
  #@ powerpress
4071
  #: powerpressadmin-mt.php:329
4079
  #: powerpressadmin-mt.php:337
4080
  #, php-format
4081
  msgid "We found blog posts that have as many as %d media files. You may need to create %d more Custom Feed%s in order to import all of the media."
4082
+ msgstr "Ci sono blog posts che contengono ben %d file media. Potresti dover creare %d nuovi Custom Feed%s per importare tutti i media."
4083
 
4084
  #@ powerpress
4085
  #: powerpressadmin-mt.php:395
4086
  #: powerpressadmin-podpress.php:397
4087
  msgid "Sorry, you may only select one media file per post per feed."
4088
+ msgstr "Spiacenti, puoi selezionare solo un media file per post per feed."
4089
 
4090
  #@ powerpress
4091
  #: powerpressadmin-mt.php:409
4092
  #: powerpressadmin-podpress.php:411
4093
  msgid "Select \"No Import\" option for all media files?"
4094
+ msgstr "Seleziona l'opzione \"Non Importare\" per tutti i file media?"
4095
 
4096
  #@ powerpress
4097
  #: powerpressadmin-mt.php:452
4100
  #: powerpressadmin-podpress.php:813
4101
  #: powerpressadmin-tools.php:47
4102
  msgid "Import Episodes"
4103
+ msgstr "Importa Episodi"
4104
 
4105
  #@ powerpress
4106
  #: powerpressadmin-mt.php:458
4107
  msgid "No episodes found to import."
4108
+ msgstr "Nessun episodio da importare"
4109
 
4110
  #@ powerpress
4111
  #: powerpressadmin-mt.php:465
4112
  #: powerpressadmin-podpress.php:472
4113
  msgid "Select the media file under each feed for each episode you wish to import."
4114
+ msgstr "Seleziona il file media sotto ogni feed per ciascun episodio che vuoi importare."
4115
 
4116
  #@ powerpress
4117
  #: powerpressadmin-mt.php:653
4118
  #: powerpressadmin-podpress.php:644
4119
  msgid "present"
4120
+ msgstr "presente"
4121
 
4122
  #@ powerpress
4123
  #: powerpressadmin-mt.php:655
4124
  #: powerpressadmin-podpress.php:646
4125
  msgid "imported"
4126
+ msgstr "importato"
4127
 
4128
  #@ powerpress
4129
  #: powerpressadmin-mt.php:712
4130
  #: powerpressadmin-podpress.php:702
4131
  #, php-format
4132
  msgid "Importable episodes highlighted in %s with asterisks *."
4133
+ msgstr "Gli episodi importabili sono evidenziati in %s con asterischi *."
4134
 
4135
  #@ powerpress
4136
  #: powerpressadmin-mt.php:713
4141
  #@ powerpress
4142
  #: powerpressadmin-mt.php:716
4143
  msgid "Select Only:"
4144
+ msgstr "Seleziona Solo:"
4145
 
4146
  #@ powerpress
4147
  #: powerpressadmin-mt.php:738
4148
  msgid "Types of media found:"
4149
+ msgstr "Tipi di media trovati:"
4150
 
4151
  #@ powerpress
4152
  #: powerpressadmin-mt.php:762
4153
  #, php-format
4154
  msgid "There are %s media files that can be imported with a total of %d blog post podcast episodes."
4155
+ msgstr "Ci sono %s file media che possono essere importati con un totale di %d blog post podcast episodi."
4156
 
4157
  #@ powerpress
4158
  #: powerpressadmin-mt.php:773
4159
  msgid "Detect duration for mp3 media. (expect script to take a while with this option)"
4160
+ msgstr "Calcola la durata per i media mp3 (con questa opzione lo script potrebbe essere lento)."
4161
 
4162
  #@ powerpress
4163
  #: powerpressadmin-mt.php:780
4164
  #: powerpressadmin-podpress.php:830
4165
  msgid "Filter Results"
4166
+ msgstr "FIltra i Risultati"
4167
 
4168
  #@ powerpress
4169
  #: powerpressadmin-mt.php:781
4170
  #: powerpressadmin-podpress.php:831
4171
  msgid "Include Only"
4172
+ msgstr "Includi Solo"
4173
 
4174
  #@ powerpress
4175
  #: powerpressadmin-mt.php:782
4176
  msgid "leave blank for all media"
4177
+ msgstr "lascia bianco per tutti i media"
4178
 
4179
  #@ powerpress
4180
  #: powerpressadmin-mt.php:783
4181
  msgid "Specify the file extensions to include separated by commas (e.g. mp3, m4v)."
4182
+ msgstr "Specifica le estensioni file da includere separate da virgole (p.e. mp3, m4v)."
4183
 
4184
  #@ powerpress
4185
  #: powerpressadmin-mt.php:786
4189
  #@ powerpress
4190
  #: powerpressadmin-ping-sites.php:18
4191
  msgid "Update services added successfully."
4192
+ msgstr "Servizi di aggiornamento aggiunti con successo."
4193
 
4194
  #@ powerpress
4195
  #: powerpressadmin-ping-sites.php:22
4196
  msgid "No update services selected to add."
4197
+ msgstr "Nessun servizio di aggiornamento selezionato da aggiungere."
4198
 
4199
  #@ powerpress
4200
  #: powerpressadmin-ping-sites.php:29
4219
  #@ powerpress
4220
  #: powerpressadmin-ping-sites.php:38
4221
  msgid "Add Update services / Ping Sites"
4222
+ msgstr "Aggiungi Servizi di aggiornamento / Siti Ping"
4223
 
4224
  #@ powerpress
4225
  #: powerpressadmin-ping-sites.php:40
4226
  msgid "Notify the following Update Services / Ping Sites when you create a new blog post / podcast episode."
4227
+ msgstr "Notifica la creazione di nuovi post blog / episodi podcast ai seguenti Servizi di Aggiornamento / Siti Ping"
4228
 
4229
  #@ powerpress
4230
  #: powerpressadmin-ping-sites.php:44
4231
  msgid "Update Blog Searvices"
4232
+ msgstr "Aggiorna i Servizi Blog"
4233
 
4234
  #@ powerpress
4235
  #: powerpressadmin-ping-sites.php:46
4236
  msgid "Select the blog service you would like to notify."
4237
+ msgstr "Seleziona il servizio blog a cui vuoi notificare."
4238
 
4239
  #@ powerpress
4240
  #: powerpressadmin-ping-sites.php:68
4241
  msgid "Update Podcast Searvices"
4242
+ msgstr "Servizi di Aggiornamento Podcast"
4243
 
4244
  #@ powerpress
4245
  #: powerpressadmin-ping-sites.php:70
4246
  msgid "Select the podcasting service you would like to notify."
4247
+ msgstr "Seleziona il servizio podcasting a cui vuoi notificare."
4248
 
4249
  #@ powerpress
4250
  #: powerpressadmin-ping-sites.php:93
4251
  msgid "You can manually add ping services by going to the to the \"Update Services\" section found in the <b>WordPress Settings</b> &gt; <b>Writing</b> page."
4252
+ msgstr "Puoi aggiungere manualmente i servizi ping nella sezione \"Servizi di Aggiornamento\" della pagina <b>Impostazioni WordPress</b> &gt; <b>Scrittura</b>."
4253
 
4254
  #@ powerpress
4255
  #: powerpressadmin-ping-sites.php:96
4256
  msgid "Add Selected Update Services"
4257
+ msgstr "Aggiungi i Servizi di Aggiornamento selezionati"
4258
 
4259
  #@ powerpress
4260
  #: powerpressadmin-player-page.php:10
4261
  msgid "Flow Player Classic is an open source flash player that supports both audio (mp3 and m4a) and video (mp4, m4v and flv) media files. It includes all the necessary features for playback including a play/pause button, scrollable position bar, ellapsed time, total time, mute button and volume control."
4262
+ msgstr "Flow Player Classic è un lettore open source in Flash che supporta sia i file media audio (mp3 e m4a) che video (mp4, m4v e flv). Comprende tutte le funzioni necessarie per la riproduzione, inclusi: bottone play/pausa, barra di scorrimento per la posizione del lettore, tempo trascorso, tempo totale, bottone di muto e controlli di volume."
4263
 
4264
  #@ powerpress
4265
  #: powerpressadmin-player-page.php:14
4266
  msgid "Flow Player Classic was chosen as the default player in Blubrry PowerPress because if its backwards compatibility with older versions of Flash and support for both audio and video."
4267
+ msgstr "Flow Player Classic è stato scelto come visualizzatore predefinito in Blubrry PowerPress per la sua compatibilità con vecchie versioni di Flash e perché supporta sia audio che video."
4268
 
4269
  #@ powerpress
4270
  #: powerpressadmin-player-page.php:177
4271
  msgid "Blubrry PowerPress Player Options"
4272
+ msgstr "Opzioni Blubrry PowerPress Player"
4273
 
4274
  #@ powerpress
4275
  #: powerpressadmin-player-page.php:178
4276
  msgid "Select the media player you would like to use."
4277
+ msgstr "Seleziona il lettore media che vuoi usare."
4278
 
4279
  #@ powerpress
4280
  #: powerpressadmin-player-page.php:190
4281
  msgid "Flow Player Classic"
4282
+ msgstr "Flow Player Classico"
4283
 
4284
  #@ powerpress
4285
  #: powerpressadmin-player-page.php:191
4291
  #: powerpressadmin-player-page.php:332
4292
  #: powerpressadmin-player-page.php:346
4293
  msgid "Activate and Configure Now"
4294
+ msgstr "Attiva e Configura adesso"
4295
 
4296
  #@ powerpress
4297
  #: powerpressadmin-player-page.php:204
4298
  msgid "HTML5 Video Player"
4299
+ msgstr "HTML5 Video Player"
4300
 
4301
  #@ powerpress
4302
  #: powerpressadmin-player-page.php:214
4303
  msgid "HTML5 Video is an element introduced in the latest HTML specification (HTML5) for the purpose of playing videos."
4304
+ msgstr "HTML5 Video è un elemento introdotto con le specifiche HTML5 allo scopo di riprodurre video."
4305
 
4306
  #@ powerpress
4307
  #: powerpressadmin-player-page.php:217
4308
  msgid "HTML5 Video Player is not format specific. See table below for a list of browsers and supported formats."
4309
+ msgstr "HTML5 Video Player è polivalente. Vedi la tabella qui sotto per la lista dei browser e formati supportati."
4310
 
4311
  #@ powerpress
4312
  #: powerpressadmin-player-page.php:221
4347
  #@ powerpress
4348
  #: powerpressadmin-player-page.php:257
4349
  msgid "Chrome supported H.264 in previous versions, but no longer supports the format."
4350
+ msgstr " H.264 non è più supportato in Chrome."
4351
 
4352
  #@ powerpress
4353
  #: powerpressadmin-player-page.php:258
4354
  #: powerpressadmin-player-page.php:399
4355
  msgid "Safari requires QuickTime installed for HTML5 playback."
4356
+ msgstr "Safari richiede QuickTime installato per la riproduzione in HTML5."
4357
 
4358
  #@ powerpress
4359
  #: powerpressadmin-player-page.php:260
4360
  #: powerpressadmin-player-page.php:401
4361
  msgid "Flow Player Classic is used when HTML5 support is not available."
4362
+ msgstr "Quando non è disponibile il supporto HTML5, viene usato Flow Player Classic."
4363
 
4364
  #@ powerpress
4365
  #: powerpressadmin-player-page.php:281
4366
  msgid "Flow Player Classic (default)"
4367
+ msgstr "Flow Player Classico (default)"
4368
 
4369
  #@ powerpress
4370
  #: powerpressadmin-player-page.php:293
4371
  msgid "1 Pixel Out Audio Player"
4372
+ msgstr "1 Pixel Out Audio Player"
4373
 
4374
  #@ powerpress
4375
  #: powerpressadmin-player-page.php:301
4376
  msgid "1 Pixel Out Audio Player is a popular customizable audio (mp3 only) flash player. Features include an animated play/pause button, scrollable position bar, ellapsed/remaining time, volume control and color styling options."
4377
+ msgstr "1 Pixel Out Audio Player è un lettore audio in Flash (solo mp3) personalizzabile e molto diffuso. Offre un bottone play/pause animato, barra di posizione scorrevole, tempo trascorso/rimanente, controllo di volume e opzioni per lo stile dei colori."
4378
 
4379
  #@ powerpress
4380
  #: powerpressadmin-player-page.php:305
4381
  msgid "Mp3 Player Maxi"
4382
+ msgstr "Mp3 Player Maxi"
4383
 
4384
  #@ powerpress
4385
  #: powerpressadmin-player-page.php:313
4386
  msgid "Flash Mp3 Maxi Player is a customizable open source audio (mp3 only) flash player. Features include pause/play/stop/file info buttons, scrollable position bar, volume control and color styling options."
4387
+ msgstr "Flash Mp3 Maxi Player è un lettore audio (solo mp3) open source in flash personalizzabile. Le funzioni includono i bottoni di pausa/play/stop, barra di scorrimento per la posizione, controlli di volume e opzioni per i colori dell'interfaccia."
4388
 
4389
  #@ powerpress
4390
  #: powerpressadmin-player-page.php:317
4391
  msgid "Simple Flash MP3 Player"
4392
+ msgstr "Semplice Lettore Flash MP3"
4393
 
4394
  #@ powerpress
4395
  #: powerpressadmin-player-page.php:327
4396
  msgid "Simple Flash MP3 Player is a free and simple audio (mp3 only) flash player. Features include play/pause and stop buttons."
4397
+ msgstr "Simple Flash MP3 Player è un lettore audio (solo mp3) semplice e freeware. Le funzioni includono i bottoni play/pausa e stop."
4398
 
4399
  #@ powerpress
4400
  #: powerpressadmin-player-page.php:331
4404
  #@ powerpress
4405
  #: powerpressadmin-player-page.php:341
4406
  msgid "AudioPlay is one button freeware audio (mp3 only) flash player. Features include a play/stop or play/pause button available in two sizes in either black or white."
4407
+ msgstr "AudioPlay è un lettore audio (solo mp3) in flash freeware e con un solo bottone per le funzioni di play/stop o play/pausa disponibile in due misure sia bianco che nero."
4408
 
4409
  #@ powerpress
4410
  #: powerpressadmin-player-page.php:345
4411
  msgid "HTML5 Audio Player"
4412
+ msgstr "HTML5 Audio Player"
4413
 
4414
  #@ powerpress
4415
  #: powerpressadmin-player-page.php:355
4416
  msgid "HTML5 audio is an element introduced in the latest HTML specification (HTML5) for the purpose of playing audio."
4417
+ msgstr "HTML5 audio è un elemento introdotto nelle più recenti specifiche HTML (HTML5), allo scopo di riprodurre audio."
4418
 
4419
  #@ powerpress
4420
  #: powerpressadmin-player-page.php:358
4421
  msgid "HTML5 Audio Player is not format specific. See table below for a list of browsers and supported formats."
4422
+ msgstr "HTML5 Audio Player non è per un formato specifico. Vedi la tabella qui sotto per l'elenco dei browser e dei formati supportati."
4423
 
4424
  #@ powerpress
4425
  #: powerpressadmin-player-page.php:398
4426
  msgid "Chrome supported AAC in previous versions, but no longer supports the format."
4427
+ msgstr "Chrome non supporta più il formato AAC."
4428
 
4429
  #@ powerpress
4430
  #: powerpressadmin-player-page.php:413
4431
  msgid "Click 'Save Changes' to activate and configure selected player."
4432
+ msgstr "Clicca \"Salva Modifiche\" per attivare e configurare il player selezionato."
4433
 
4434
  #@ powerpress
4435
  #: powerpressadmin-player-page.php:419
4436
  msgid "Configure Player"
4437
+ msgstr "Configura il Lettore"
4438
 
4439
  #@ powerpress
4440
  #: powerpressadmin-player-page.php:421
4441
  msgid "Select a different audio player"
4442
+ msgstr "Seleziona un lettore audio differente"
4443
 
4444
  #@ powerpress
4445
  #: powerpressadmin-player-page.php:423
4446
  msgid "Select a different video player"
4447
+ msgstr "Seleziona un lettore video differente"
4448
 
4449
  #@ powerpress
4450
  #: powerpressadmin-player-page.php:526
4452
  "Set defaults, are you sure?\\\n"
4453
  "\\\n"
4454
  "All of the current settings will be overwritten!"
4455
+ msgstr "Imposto i valori predefiniti, sei sicuro?\\\n"
4456
 
4457
  #@ powerpress
4458
  #: powerpressadmin-player-page.php:618
4459
  msgid "Configure the 1 pixel out Audio Player"
4460
+ msgstr "Configura 1 pixel out Audio Player"
4461
 
4462
  #@ powerpress
4463
  #: powerpressadmin-player-page.php:625
4469
  #: powerpressadmin-player-page.php:1648
4470
  #: powerpressadmin-player-page.php:1668
4471
  msgid "Preview of Player"
4472
+ msgstr "Anteprima del Lettore"
4473
 
4474
  #@ powerpress
4475
  #: powerpressadmin-player-page.php:638
4481
  #: powerpressadmin-player-page.php:642
4482
  #: powerpressadmin-player-page.php:780
4483
  msgid "Progress Bar"
4484
+ msgstr "Barra di Avanzamento"
4485
 
4486
  #@ powerpress
4487
  #: powerpressadmin-player-page.php:643
4504
  #@ powerpress
4505
  #: powerpressadmin-player-page.php:652
4506
  msgid "Page Background Color"
4507
+ msgstr "Colore sfondo pagina"
4508
 
4509
  #@ powerpress
4510
  #: powerpressadmin-player-page.php:660
4511
  #: powerpressadmin-player-page.php:1164
4512
  #: powerpressadmin-player-page.php:1508
4513
  msgid "leave blank for transparent"
4514
+ msgstr "lascia vuoto per trasparente"
4515
 
4516
  #@ powerpress
4517
  #: powerpressadmin-player-page.php:664
4518
  msgid "Player Background Color"
4519
+ msgstr "Colore di Sfondo del Player"
4520
 
4521
  #@ powerpress
4522
  #: powerpressadmin-player-page.php:675
4523
  msgid "Width (in pixels)"
4524
+ msgstr "Larghezza (in pixel)"
4525
 
4526
  #@ powerpress
4527
  #: powerpressadmin-player-page.php:679
4528
  msgid "width of the player. e.g. 290 (290 pixels) or 100%"
4529
+ msgstr "Larghezza del player. Es. 290 (290 pixel) oppure 100%"
4530
 
4531
  #@ powerpress
4532
  #: powerpressadmin-player-page.php:684
4558
  #@ powerpress
4559
  #: powerpressadmin-player-page.php:692
4560
  msgid "switches the layout to animate from the right to the left"
4561
+ msgstr "Inverte il layout da animare dalla destra alla sinistra"
4562
 
4563
  #@ powerpress
4564
  #: powerpressadmin-player-page.php:698
4565
  msgid "Loading Bar Color"
4566
+ msgstr "Colore Barra di Caricamento"
4567
 
4568
  #@ powerpress
4569
  #: powerpressadmin-player-page.php:710
4570
  #: powerpressadmin-player-page.php:1169
4571
  msgid "Text Color"
4572
+ msgstr "Colore Testo"
4573
 
4574
  #@ powerpress
4575
  #: powerpressadmin-player-page.php:722
4576
  msgid "Text In Player"
4577
+ msgstr "Text In Player"
4578
 
4579
  #@ powerpress
4580
  #: powerpressadmin-player-page.php:726
4581
  #, php-format
4582
  msgid "Enter '%s' to display track name from mp3. Only works if media is hosted on same server as blog."
4583
+ msgstr "Scrivi '%s' per vedere il nome della traccia dall' mp3. Funziona solo se il media è ospitato sullo stesso server del blog."
4584
 
4585
  #@ powerpress
4586
  #: powerpressadmin-player-page.php:732
4587
  msgid "Play Animation"
4588
+ msgstr "Riproduci Animazione"
4589
 
4590
  #@ powerpress
4591
  #: powerpressadmin-player-page.php:741
4592
  msgid "if no, player is always open"
4593
+ msgstr "se \"no\" il player è sempre aperto"
4594
 
4595
  #@ powerpress
4596
  #: powerpressadmin-player-page.php:747
4597
  msgid "Display Remaining Time"
4598
+ msgstr "Mostra il Tempo Rimanente"
4599
 
4600
  #@ powerpress
4601
  #: powerpressadmin-player-page.php:756
4602
  msgid "if yes, shows remaining track time rather than ellapsed time (default: no)"
4603
+ msgstr "se \"sì\" mostra il tempo rimanente invece di quello trascorso (predefinito: \"no\")."
4604
 
4605
  #@ powerpress
4606
  #: powerpressadmin-player-page.php:762
4607
  msgid "Buffering Time"
4608
+ msgstr "Tempo di Buffering"
4609
 
4610
  #@ powerpress
4611
  #: powerpressadmin-player-page.php:768
4612
  msgid "No buffering"
4613
+ msgstr "No buffering"
4614
 
4615
  #@ powerpress
4616
  #: powerpressadmin-player-page.php:768
4617
  msgid "Default (5 seconds)"
4618
+ msgstr "Predefinito (5 secondi)"
4619
 
4620
  #@ powerpress
4621
  #: powerpressadmin-player-page.php:768
4645
  #@ powerpress
4646
  #: powerpressadmin-player-page.php:771
4647
  msgid "buffering time in seconds"
4648
+ msgstr "tempo di buffering in secondi"
4649
 
4650
  #@ powerpress
4651
  #: powerpressadmin-player-page.php:784
4652
  msgid "Progress Bar Background"
4653
+ msgstr "Sfondo Barra di Avanzamento"
4654
 
4655
  #@ powerpress
4656
  #: powerpressadmin-player-page.php:795
4657
  msgid "Progress Bar Color"
4658
+ msgstr "Colore Barra di Avanzamento"
4659
 
4660
  #@ powerpress
4661
  #: powerpressadmin-player-page.php:806
4662
  msgid "Progress Bar Border"
4663
+ msgstr "Bordo Barra di Avanzamento"
4664
 
4665
  #@ powerpress
4666
  #: powerpressadmin-player-page.php:820
4667
  msgid "Volume Button Settings"
4668
+ msgstr "Impostazioni Bottone Volume"
4669
 
4670
  #@ powerpress
4671
  #: powerpressadmin-player-page.php:824
4675
  #@ powerpress
4676
  #: powerpressadmin-player-page.php:835
4677
  msgid "initial volume level (default: 60)"
4678
+ msgstr "Livello iniziale del volume (predefinito: 60)"
4679
 
4680
  #@ powerpress
4681
  #: powerpressadmin-player-page.php:841
4682
  msgid "Volumn Background Color"
4683
+ msgstr "Colore di Sfondo del Volume"
4684
 
4685
  #@ powerpress
4686
  #: powerpressadmin-player-page.php:852
4687
  msgid "Speaker Icon Color"
4688
+ msgstr "Colore Icona Altoparlanti"
4689
 
4690
  #@ powerpress
4691
  #: powerpressadmin-player-page.php:863
4692
  msgid "Volume Icon Background"
4693
+ msgstr "Sfondo Iicona del Volume"
4694
 
4695
  #@ powerpress
4696
  #: powerpressadmin-player-page.php:874
4697
  msgid "Volume Slider Color"
4698
+ msgstr "Colore del Cursore Volume"
4699
 
4700
  #@ powerpress
4701
  #: powerpressadmin-player-page.php:887
4702
  msgid "Play / Pause Button Settings"
4703
+ msgstr "Impostazioni del Bottone Play / Pausa"
4704
 
4705
  #@ powerpress
4706
  #: powerpressadmin-player-page.php:891
4707
  msgid "Play/Pause Background Color"
4708
+ msgstr "Colore di sfondo bottone Play/Pausa"
4709
 
4710
  #@ powerpress
4711
  #: powerpressadmin-player-page.php:902
4712
  msgid "Play/Pause Hover Color"
4713
+ msgstr "Colore onMouseOver di Play/Pausa "
4714
 
4715
  #@ powerpress
4716
  #: powerpressadmin-player-page.php:913
4717
  msgid "Play/Pause Icon Color"
4718
+ msgstr "Colore dell'icona Play/Pausa "
4719
 
4720
  #@ powerpress
4721
  #: powerpressadmin-player-page.php:924
4722
  msgid "Play/Pause Icon Hover Color"
4723
+ msgstr "Colore onMouseOver di Play/Pausa "
4724
 
4725
  #@ powerpress
4726
  #: powerpressadmin-player-page.php:960
4727
  msgid "Simple Flash Player has no additional settings."
4728
+ msgstr "Simple Flash Player non ha altre impostazioni."
4729
 
4730
  #@ powerpress
4731
  #: powerpressadmin-player-page.php:1009
4734
  "\\\n"
4735
  "All of the current settings will be overwritten!'"
4736
  msgstr ""
4737
+ "Imposto i valori predefiniti, sei sicuro?\\\n"
4738
+ "\\\n"
4739
+ "tutte le impostazioni correnti saranno sovrascritte!'"
4740
 
4741
  #@ powerpress
4742
  #: powerpressadmin-player-page.php:1094
4743
  msgid "Configure Flash Mp3 Maxi Player"
4744
+ msgstr "Configura Flash Mp3 Maxi Player"
4745
 
4746
  #@ powerpress
4747
  #: powerpressadmin-player-page.php:1118
4759
  #: powerpressadmin-player-page.php:1120
4760
  #: powerpressadmin-player-page.php:1328
4761
  msgid "Slider Settings"
4762
+ msgstr "Impostazioni Cursore"
4763
 
4764
  #@ powerpress
4765
  #: powerpressadmin-player-page.php:1129
4766
  msgid "leave blank for default values"
4767
+ msgstr "lascia vuoto per i valori predefiniti"
4768
 
4769
  #@ powerpress
4770
  #: powerpressadmin-player-page.php:1134
4771
  msgid "Player Gradient Color Top"
4772
+ msgstr "Sfumatura di Colore in Basso nel Player"
4773
 
4774
  #@ powerpress
4775
  #: powerpressadmin-player-page.php:1145
4776
  msgid "Player Gradient Color Bottom"
4777
+ msgstr "Sfumatura di Colore in Basso nel Player"
4778
 
4779
  #@ powerpress
4780
  #: powerpressadmin-player-page.php:1181
4781
  msgid "Player Height (in pixels)"
4782
+ msgstr "Altezza del Player (in pixel)"
4783
 
4784
  #@ powerpress
4785
  #: powerpressadmin-player-page.php:1191
4786
  msgid "Player Width (in pixels)"
4787
+ msgstr "Larghezza del Player (in pixel)"
4788
 
4789
  #@ powerpress
4790
  #: powerpressadmin-player-page.php:1207
4794
  #@ powerpress
4795
  #: powerpressadmin-player-page.php:1218
4796
  msgid "Button Hover Color"
4797
+ msgstr "Colore onMouseOver del Bottone"
4798
 
4799
  #@ powerpress
4800
  #: powerpressadmin-player-page.php:1229
4801
  msgid "Button Width (in pixels)"
4802
+ msgstr "Larghezza del Bottone (in pixel)"
4803
 
4804
  #@ powerpress
4805
  #: powerpressadmin-player-page.php:1239
4806
  msgid "Show Stop Button"
4807
+ msgstr "Mostra il Bottone Stop"
4808
 
4809
  #@ powerpress
4810
  #: powerpressadmin-player-page.php:1254
4824
  #@ powerpress
4825
  #: powerpressadmin-player-page.php:1305
4826
  msgid "Volume Height (in pixels)"
4827
+ msgstr "Altezza del Volume (in pixel)"
4828
 
4829
  #@ powerpress
4830
  #: powerpressadmin-player-page.php:1315
4831
  msgid "Volume Width (in pixels)"
4832
+ msgstr "Larghezza del Volume (in pixel)"
4833
 
4834
  #@ powerpress
4835
  #: powerpressadmin-player-page.php:1333
4836
  msgid "Show Slider"
4837
+ msgstr "Mostra Cursore"
4838
 
4839
  #@ powerpress
4840
  #: powerpressadmin-player-page.php:1349
4841
  msgid "Slider Color Top"
4842
+ msgstr "Colore del Cursore in Alto"
4843
 
4844
  #@ powerpress
4845
  #: powerpressadmin-player-page.php:1360
4846
  msgid "Slider Color Bottom"
4847
+ msgstr "Colore del Cursore in Basso"
4848
 
4849
  #@ powerpress
4850
  #: powerpressadmin-player-page.php:1372
4851
  msgid "Slider Hover Color"
4852
+ msgstr "Colore onMouseOver del Cursore"
4853
 
4854
  #@ powerpress
4855
  #: powerpressadmin-player-page.php:1383
4856
  msgid "Slider Height (in pixels)"
4857
+ msgstr "Altezza del Cursore (in pixel)"
4858
 
4859
  #@ powerpress
4860
  #: powerpressadmin-player-page.php:1393
4861
  msgid "Slider Width (in pixels)"
4862
+ msgstr "Larghezza del Cursore (in pixel)"
4863
 
4864
  #@ powerpress
4865
  #: powerpressadmin-player-page.php:1404
4866
  msgid "Show Loading Buffer"
4867
+ msgstr "Mostra Buffer di Caricamento"
4868
 
4869
  #@ powerpress
4870
  #: powerpressadmin-player-page.php:1418
4871
  msgid "Loading Buffer Color"
4872
+ msgstr "Colore del Buffer di Caricamento"
4873
 
4874
  #@ powerpress
4875
  #: powerpressadmin-player-page.php:1477
4876
  msgid "Configure the AudioPlay Player"
4877
+ msgstr "Configura il Lettore AudioPlay"
4878
 
4879
  #@ powerpress
4880
  #: powerpressadmin-player-page.php:1513
4881
  msgid "Player Mode"
4882
+ msgstr "Modalità Lettore"
4883
 
4884
  #@ powerpress
4885
  #: powerpressadmin-player-page.php:1519
4894
  #@ powerpress
4895
  #: powerpressadmin-player-page.php:1528
4896
  msgid "Player Button"
4897
+ msgstr "Pulsante Lettore"
4898
 
4899
  #@ powerpress
4900
  #: powerpressadmin-player-page.php:1544
4901
  msgid "Small White"
4902
+ msgstr "Piccolo Bianco"
4903
 
4904
  #@ powerpress
4905
  #: powerpressadmin-player-page.php:1546
4906
  msgid "Large White"
4907
+ msgstr "Grande Bianco"
4908
 
4909
  #@ powerpress
4910
  #: powerpressadmin-player-page.php:1553
4911
  msgid "Small Black"
4912
+ msgstr "Piccolo Nero"
4913
 
4914
  #@ powerpress
4915
  #: powerpressadmin-player-page.php:1555
4916
  msgid "Large Black"
4917
+ msgstr "Grande Nero"
4918
 
4919
  #@ powerpress
4920
  #: powerpressadmin-player-page.php:1573
4921
  msgid "Configure HTML5 Audio Player"
4922
+ msgstr "Configura HTML5 Audio Player"
4923
 
4924
  #@ powerpress
4925
  #: powerpressadmin-player-page.php:1592
4926
  msgid "HTML5 Audio Player has no additional settings."
4927
+ msgstr "HTML5 Audio Player non ha altre impostazioni."
4928
 
4929
  #@ powerpress
4930
  #: powerpressadmin-player-page.php:1606
4931
  #: powerpressadmin-player-page.php:1644
4932
  msgid "Configure Flow Player Classic"
4933
+ msgstr "Configura Flow Player Classic"
4934
 
4935
  #@ powerpress
4936
  #: powerpressadmin-player-page.php:1626
4937
  #: powerpressadmin.php:1656
4938
  msgid "Width"
4939
+ msgstr "Larghezza"
4940
 
4941
  #@ powerpress
4942
  #: powerpressadmin-player-page.php:1630
4943
  msgid "Width of Audio mp3 player (leave blank for 320 default)"
4944
+ msgstr "Larghezza dell' Audio mp3 player (lasciare vuoto per il valore predefinito di 320)"
4945
 
4946
  #@ powerpress
4947
  #: powerpressadmin-player-page.php:1664
4948
  msgid "Configure HTML5 Video Player"
4949
+ msgstr "Configura HTML5 Video Player"
4950
 
4951
  #@ powerpress
4952
  #: powerpressadmin-player-page.php:1689
4953
  msgid "Common Settings"
4954
+ msgstr "Impostazioni Comuni"
4955
 
4956
  #@ powerpress
4957
  #: powerpressadmin-player-page.php:1690
4958
  msgid "The following video settings apply to the video player above as well as to classic video &lt;embed&gt; formats such as Microsoft Windows Media (.wmv), QuickTime (.mov) and RealPlayer."
4959
+ msgstr "Le seguenti impostazioni video si applicano al lettore video qui sopra e ai formati video classici &lt;embed&gt; , come Microsoft Windows Media (.wmv), QuickTime (.mov) e RealPlayer."
4960
 
4961
  #@ powerpress
4962
  #: powerpressadmin-player-page.php:1694
4963
  msgid "Player Width"
4964
+ msgstr "Larghezza del Player"
4965
 
4966
  #@ powerpress
4967
  #: powerpressadmin-player-page.php:1698
4968
  msgid "Width of player (leave blank for 400 default)"
4969
+ msgstr "Larghezza del Player (lasciare vuoto per il predefinito di 400)"
4970
 
4971
  #@ powerpress
4972
  #: powerpressadmin-player-page.php:1704
4973
  msgid "Player Height"
4974
+ msgstr "Altezza del Player"
4975
 
4976
  #@ powerpress
4977
  #: powerpressadmin-player-page.php:1708
4978
  msgid "Height of player (leave blank for 225 default)"
4979
+ msgstr "Altezza del Player (lasciare vuoto per il predefinito di 225)"
4980
 
4981
  #@ powerpress
4982
  #: powerpressadmin-player-page.php:1714
4983
  msgid "QuickTime Scale"
4984
+ msgstr "Scala QuickTime"
4985
 
4986
  #@ powerpress
4987
  #: powerpressadmin-player-page.php:1718
4988
  msgid "ToFit (default)"
4989
+ msgstr "SpazioDisponibile (predefinito)"
4990
 
4991
  #@ powerpress
4992
  #: powerpressadmin-player-page.php:1718
4997
  #: powerpressadmin-player-page.php:1723
4998
  #: powerpressadmin-player-page.php:1725
4999
  msgid "Custom"
5000
+ msgstr "Personalizzato"
5001
 
5002
  #@ powerpress
5003
  #: powerpressadmin-player-page.php:1736
5007
  #@ powerpress
5008
  #: powerpressadmin-player-page.php:1736
5009
  msgid "e.g."
5010
+ msgstr "es."
5011
 
5012
  #@ powerpress
5013
  #: powerpressadmin-player-page.php:1739
5014
  msgid "If you do not see video, adjust the width, height and scale settings above."
5015
+ msgstr "Se non vedi il video, aggiusta le impostazioni di larghezza, altezza e scala qui sopra."
5016
 
5017
  #@ powerpress
5018
  #: powerpressadmin-player-page.php:1746
5019
  msgid "Default Poster Image"
5020
+ msgstr "Immagine Poster Predefinita"
5021
 
5022
  #@ powerpress
5023
  #: powerpressadmin-player-page.php:1752
5024
  msgid "Place the URL to the poster image above."
5025
+ msgstr "Inserisci l'URL per l'immagine poster qui sopra."
5026
 
5027
  #@ powerpress
5028
  #: powerpressadmin-player-page.php:1753
5029
  msgid "Image should be at minimum the same width/height as the player above. Leave blank to use default black background image."
5030
+ msgstr "L'immagine deve avere almeno la stessa larghezza/altezza del player qui sopra, Lascia vuoto per usare lo sfondo nero predefinito.."
5031
 
5032
  #@ powerpress
5033
  #: powerpressadmin-player-page.php:1761
5034
  msgid "Include play icon over poster image when applicable"
5035
+ msgstr "Includi l'icona play sull'immagine poster dove possibile."
5036
 
5037
  #@ powerpress
5038
  #: powerpressadmin-player-page.php:1762
5039
  msgid "Use poster image, player width and height above for audio (Flow Player only)"
5040
+ msgstr "Use poster image, player width and height above for audio (Flow Player only)"
5041
 
5042
  #@ powerpress
5043
  #: powerpressadmin-player.php:31
5044
  msgid "Player activated successfully."
5045
+ msgstr "Player attivato con successo."
5046
 
5047
  #@ powerpress
5048
  #: powerpressadmin-player.php:38
5049
  msgid "Audio Player settings saved successfully."
5050
+ msgstr "Impostazioni Audio Player salvate"
5051
 
5052
  #@ powerpress
5053
  #: powerpressadmin-player.php:45
5054
  msgid "Flash Mp3 Maxi settings saved successfully."
5055
+ msgstr "Impostazioni Flash Mp3 Maxi salvate"
5056
 
5057
  #@ powerpress
5058
  #: powerpressadmin-player.php:52
5059
  msgid "AudioPlay settings saved successfully."
5060
+ msgstr "Impostazioni AudioPlay salvate"
5061
 
5062
  #@ powerpress
5063
  #: powerpressadmin-podpress-stats.php:19
5064
  msgid "Archive of PodPress Stats"
5065
+ msgstr "Archivio Statistiche PodPress"
5066
 
5067
  #@ powerpress
5068
  #: powerpressadmin-podpress-stats.php:20
5069
  #, php-format
5070
  msgid "Displaying %d - %d of %d total"
5071
+ msgstr "Mostrato %d - %d di %d totali"
5072
 
5073
  #@ powerpress
5074
  #: powerpressadmin-podpress-stats.php:23
5106
  #: powerpressadmin-podpress.php:47
5107
  #, php-format
5108
  msgid "Unable to detect PodPress media URL setting. Using the PowerPress setting \"Default Media URL\" (%s) instead."
5109
+ msgstr "Impossibile trovare le impostazioni PodPress media URL. Applico le impostazioni PowerPress \" Media URL predefinito\" (%s)."
5110
 
5111
  #@ powerpress
5112
  #: powerpressadmin-podpress.php:52
5113
  msgid "Unable to detect PodPress media URL setting. Please set the \"Default Media URL\" setting in PowerPress to properly import podcast episodes."
5114
+ msgstr "Impossibile trovare le impostazioni PodPress media URL. Imposta \" Media URL predefinito\" in i PowerPress per importare correttamente episodi podcast."
5115
 
5116
  #@ powerpress
5117
  #: powerpressadmin-podpress.php:116
5118
  #, php-format
5119
  msgid "Error decoding PodPress data for post \"%s\""
5120
+ msgstr "Errore di decodifica dati PodPress per il post \"%s\""
5121
 
5122
  #@ powerpress
5123
  #: powerpressadmin-podpress.php:229
5124
  #, php-format
5125
  msgid "PodPress data deleted from database successfully. (%d database records removed)"
5126
+ msgstr "I dati PodPress sono stati cancellati dal database. . (rimossi %d elementi)"
5127
 
5128
  #@ powerpress
5129
  #: powerpressadmin-podpress.php:277
5130
  #, php-format
5131
  msgid "Podpress Episode \"%s\" for blog post \"%s\" imported to feed \"%s\""
5132
+ msgstr "L'Episodio Podpress \"%s\" per il blog post \"%s\" è stato importato nel feed \"%s\""
5133
 
5134
  #@ powerpress
5135
  #: powerpressadmin-podpress.php:296
5136
  msgid "If you are unsure about importing your PodPress data, try the option under Basic Settings titled 'PodPress Episodes' and set to 'Include in posts and feeds'."
5137
+ msgstr "Se non sei sicuro nell'importazione dei tuoi dati PodPress, prova l'opzione 'Episodi PodPress' nelle Impostazioni di base e seleziona 'Includi nei post e feed'."
5138
 
5139
  #@ powerpress
5140
  #: powerpressadmin-podpress.php:297
5141
  msgid "Once you feel comfortable with PowerPress, you can use this screen to import your PodPress data."
5142
+ msgstr "Quando avrai preso confidenza con PowerPress, usa questa pagina per importare i tuoi dati PodPress."
5143
 
5144
  #@ powerpress
5145
  #: powerpressadmin-podpress.php:302
5146
  msgid "PodPress Import Log"
5147
+ msgstr "Log di Importazione PodPress"
5148
 
5149
  #@ powerpress
5150
  #: powerpressadmin-podpress.php:305
5151
  #, php-format
5152
  msgid "Imported %d PodPress episode(s)."
5153
+ msgstr "Importati %d episodi(o) PodPress."
5154
 
5155
  #@ powerpress
5156
  #: powerpressadmin-podpress.php:346
5157
  #, php-format
5158
  msgid "We found blog posts that have %d media files. You will need to create %d more Custom Feed%s in order to continue."
5159
+ msgstr "Trovo blog post che hanno %d media file. Dovrai creare altri %d Feed%s personalizzati per continuare."
5160
 
5161
  #@ powerpress
5162
  #: powerpressadmin-podpress.php:454
5163
  #: powerpressadmin-tools.php:50
5164
  msgid "Import PodPress Episodes"
5165
+ msgstr "Importa episodi PodPress"
5166
 
5167
  #@ powerpress
5168
  #: powerpressadmin-podpress.php:465
5169
  msgid "No PodPress episodes found to import."
5170
+ msgstr "Non ci sono episodi PodPress da importare."
5171
 
5172
  #@ powerpress
5173
  #: powerpressadmin-podpress.php:705
5174
  msgid "Select Only"
5175
+ msgstr "Seleziona Solo"
5176
 
5177
  #@ powerpress
5178
  #: powerpressadmin-podpress.php:732
5179
  #, php-format
5180
  msgid "There are %d PodPress media files that can be imported."
5181
+ msgstr "Ci sono %d media file PodPressche possono essere importati."
5182
 
5183
  #@ powerpress
5184
  #: powerpressadmin-podpress.php:752
5185
  msgid "There are no PodPress episodes found to import."
5186
+ msgstr "Non ho trovato episodi PodPress da importare."
5187
 
5188
  #@ powerpress
5189
  #: powerpressadmin-podpress.php:787
5190
  #: powerpressadmin-podpress.php:814
5191
  #, php-format
5192
  msgid "We found blog posts that have %d media files."
5193
+ msgstr "Ho trovato blog post che hanno %d media file."
5194
 
5195
  #@ powerpress
5196
  #: powerpressadmin-podpress.php:790
5197
  #, php-format
5198
  msgid "You will need to create %d Podcast Channels to continue."
5199
+ msgstr "Devi creare %d Canali Podcast per continuare."
5200
 
5201
  #@ powerpress
5202
  #: powerpressadmin-podpress.php:797
5203
  msgid "Blubrry PowerPress does not allow you to include multiple media files for one feed item (blog post)."
5204
+ msgstr "Blubrry PowerPress non consente di includere media file multipli per un solo elemento feed (blog post)."
5205
 
5206
  #@ powerpress
5207
  #: powerpressadmin-podpress.php:798
5208
  msgid "This is because each podcatcher handles multiple enclosures in feeds differently. iTunes will download the first enclosure that it sees in the feed ignoring the rest."
5209
+ msgstr "Questo perché ciascun podcatcher gestisce le inclusioni multiple in modo differente. iTunes scaricherà la prima inclusione che trova nel feed ignorando il resto."
5210
 
5211
  #@ powerpress
5212
  #: powerpressadmin-podpress.php:799
5213
  msgid "Other podcatchers and podcasting directories either pick up the first enclosure or the last in each post item."
5214
+ msgstr "Altre cartelle podcatcher e podcasting preleveranno la prima o l'ultima inclusione in ciascun post."
5215
 
5216
  #@ powerpress
5217
  #: powerpressadmin-podpress.php:800
5218
  #, php-format
5219
  msgid "This inconsistency combined with the fact that Dave Winer does not recommend multiple enclosures (%s) and FeedValidator.org (%s) recommendation against it is why Blubrry PowerPress does not support them."
5220
+ msgstr "Questa inconsistenza, combinata con il fatto che Dave Winer e FeedValidator.org (%s) sconsigliano le inclusioni multiple (%s) è il motivo per cui Blubrry PowerPress non le supporta."
5221
 
5222
  #@ powerpress
5223
  #: powerpressadmin-podpress.php:801
5229
  #: powerpressadmin-podpress.php:806
5230
  #, php-format
5231
  msgid "As a alternative, PowerPress allows you to create additional %s to associate additional media files in a blog post to specific feed channels."
5232
+ msgstr "Come alternativa, PowerPress permette di creare %s per associare media file addizionali in un blog post con specifici canali feed."
5233
 
5234
  #@ powerpress
5235
  #: powerpressadmin-podpress.php:816
5236
  #, php-format
5237
  msgid "You will need to create %d additional Podcast Channels in order to continue."
5238
+ msgstr "Devi creare %d Canali Podcast addizionali per continuare."
5239
 
5240
  #@ powerpress
5241
  #: powerpressadmin-podpress.php:831
5242
  msgid "(leave blank for all media)"
5243
+ msgstr "(lascia vuoto per tutti i media)"
5244
 
5245
  #@ powerpress
5246
  #: powerpressadmin-podpress.php:832
5247
  msgid "specify the file extensions to include separated by commas (e.g. mp3, m4v)."
5248
+ msgstr "specifica le estensioni da includere separate da virgole (es. mp3, m4v)."
5249
 
5250
  #@ powerpress
5251
  #: powerpressadmin-tags.php:19
5252
  #: powerpressadmin.php:978
5253
  msgid "MP3 Tags"
5254
+ msgstr "Tags MPR"
5255
 
5256
  #@ powerpress
5257
  #: powerpressadmin-tags.php:21
5258
  msgid "Blubrry Hosting users can configure how to have the service write their MP3 ID3 Tags before publishing episodes."
5259
+ msgstr "Gli Utenti Blubrry Hosting possono configurare come il servizio scriverà le loro Tag MP3 ID3 prima di pubblicare gli episodi."
5260
 
5261
  #@ powerpress
5262
  #: powerpressadmin-tags.php:25
5263
  msgid "ID3 tags contain useful information (title, artist, album, year, etc...) about your podcast as well as an image for display during playback in most media players."
5264
+ msgstr "Le Tag ID3 contengono informazioni utiili (titolo, artista, album, anno, ecc.) sul tuo podcast assieme a un'immagine da mostrare durante la riproduzione nella maggior parte dei media player."
5265
 
5266
  #@ powerpress
5267
  #: powerpressadmin-tags.php:27
5268
  #, php-format
5269
  msgid "Please visit the ID3 Tags (%s) section on PodcastFAQ.com to learn more about MP3 ID3 tags."
5270
+ msgstr "Visita la sezione Tag ID3 (%s) su PodcastFAQ.com per saperne di più sulle tag MP3 ID3."
5271
 
5272
  #@ powerpress
5273
  #: powerpressadmin-tags.php:28
5283
  #@ powerpress
5284
  #: powerpressadmin-tags.php:41
5285
  msgid "You must configure your Blubrry Services Account in the Blubrry PowerPress > Basic Settings page in order to utilize this feature."
5286
+ msgstr "Devi configurare il tuo Account Servizi Blubrry nella pagina Blubrry PowerPress > Impostazioni di Base, per poter usare questa funzionalità."
5287
 
5288
  #@ powerpress
5289
  #: powerpressadmin-tags.php:42
5290
  #: powerpressadmin-tags.php:59
5291
  msgid "Use Blubrry Hosting services to write MP3 ID3 tags to your media."
5292
+ msgstr "Usa i servizi Hosting Blubrry per scrivere MP3ID3 tag sul tuo media."
5293
 
5294
  #@ powerpress
5295
  #: powerpressadmin-tags.php:69
5296
  msgid "Title Tag"
5297
+ msgstr "Tag Titolo"
5298
 
5299
  #@ powerpress
5300
  #: powerpressadmin-tags.php:69
5301
  msgid "Use blog post title"
5302
+ msgstr "Usa il titolo del post"
5303
 
5304
  #@ powerpress
5305
  #: powerpressadmin-tags.php:70
5306
  msgid "Artist Tag"
5307
+ msgstr "Tag Artista"
5308
 
5309
  #@ powerpress
5310
  #: powerpressadmin-tags.php:70
5311
  #: powerpressadmin-tags.php:76
5312
  msgid "Use Feed Talent Name"
5313
+ msgstr "Usa il Nome Talent Feed"
5314
 
5315
  #@ powerpress
5316
  #: powerpressadmin-tags.php:71
5317
  msgid "Album Tag"
5318
+ msgstr "Tag Album"
5319
 
5320
  #@ powerpress
5321
  #: powerpressadmin-tags.php:71
5322
  msgid "Use blog title"
5323
+ msgstr "Usa il Titolo del blog"
5324
 
5325
  #@ powerpress
5326
  #: powerpressadmin-tags.php:72
5327
  msgid "Genre Tag"
5328
+ msgstr "Tag Genere"
5329
 
5330
  #@ powerpress
5331
  #: powerpressadmin-tags.php:72
5332
  msgid "Use genre 'Podcast\\"
5333
+ msgstr "Use genere 'Podcast\\"
5334
 
5335
  #@ powerpress
5336
  #: powerpressadmin-tags.php:73
5337
  msgid "Year Tag"
5338
+ msgstr "Tag Anno"
5339
 
5340
  #@ powerpress
5341
  #: powerpressadmin-tags.php:73
5342
  msgid "Use current year"
5343
+ msgstr "Usa l'anno in corso"
5344
 
5345
  #@ powerpress
5346
  #: powerpressadmin-tags.php:75
5347
  msgid "Track Tag"
5348
+ msgstr "Tag Traccia"
5349
 
5350
  #@ powerpress
5351
  #: powerpressadmin-tags.php:75
5352
  msgid "Do not specify track number"
5353
+ msgstr "Non specificare il numero di traccia"
5354
 
5355
  #@ powerpress
5356
  #: powerpressadmin-tags.php:76
5357
  msgid "Composer Tag"
5358
+ msgstr "Tag Compositore"
5359
 
5360
  #@ powerpress
5361
  #: powerpressadmin-tags.php:77
5362
  msgid "Copyright Tag"
5363
+ msgstr "Tag Copyright"
5364
 
5365
  #@ powerpress
5366
  #: powerpressadmin-tags.php:77
5367
  msgid "Use &copy; Talent Name"
5368
+ msgstr "Usa &copy; Talent Name"
5369
 
5370
  #@ powerpress
5371
  #: powerpressadmin-tags.php:78
5372
  msgid "URL Tag"
5373
+ msgstr "Tag URL"
5374
 
5375
  #@ powerpress
5376
  #: powerpressadmin-tags.php:78
5377
  msgid "Use main blog URL"
5378
+ msgstr "Usa l'URL principale del blog"
5379
 
5380
  #@ powerpress
5381
  #: powerpressadmin-tags.php:79
5382
  msgid "Coverart Tag"
5383
+ msgstr "Tag Copertina"
5384
 
5385
  #@ powerpress
5386
  #: powerpressadmin-tags.php:140
5387
  msgid "Do not add a coverart image."
5388
+ msgstr "Non aggiungere un'immagine di copertina"
5389
 
5390
  #@ powerpress
5391
  #: powerpressadmin-tags.php:146
5392
  msgid "Place the URL to the Coverart image above. e.g. http://mysite.com/images/coverart.jpg"
5393
+ msgstr "Inserisci qui sopra l' URL dell'immagine Coverart, es.. http://mysite.com/images/coverart.jpg"
5394
 
5395
  #@ powerpress
5396
  #: powerpressadmin-tags.php:147
5397
  msgid "Coverart images may be saved as either .gif, .jpg or .png images of any size, though 300 x 300 or 600 x 600 in either png or jpg format is recommended."
5398
+ msgstr "Le immagini Coverart possono essere salvate come .gif, .jpg o .png in qualsiasi misura, ma si consiglia di usare i formati png o jpg in risoluzione di 300 x 300 o 600 x 600 px."
5399
 
5400
  #@ powerpress
5401
  #: powerpressadmin-tags.php:151
5402
  msgid "Click here to use your current iTunes image."
5403
+ msgstr "Clicca qui per usare la tua immagine iTunes corrente."
5404
 
5405
  #@ powerpress
5406
  #: powerpressadmin-tags.php:171
5407
  msgid "(value entered increments every episode)"
5408
+ msgstr "(il valore inserito incrementa tutti gli episodi)"
5409
 
5410
  #@ powerpress
5411
  #: powerpressadmin-tools.php:10
5412
  msgid "Useful utilities and tools."
5413
+ msgstr "Utilità e Strumenti."
5414
 
5415
  #@ powerpress
5416
  #: powerpressadmin-tools.php:15
5417
  msgid "Podcasting Resources"
5418
+ msgstr "Risorse Podcasting"
5419
 
5420
  #@ powerpress
5421
  #: powerpressadmin-tools.php:18
5422
  msgid "everything you need to know about podcasting."
5423
+ msgstr "tutto quello che ti serve sapere sul podcasting"
5424
 
5425
  #@ powerpress
5426
  #: powerpressadmin-tools.php:20
5427
  msgid "PowerPress Documentation"
5428
+ msgstr "Documentazione PowerPress"
5429
 
5430
  #@ powerpress
5431
  #: powerpressadmin-tools.php:21
5432
  msgid "learn more about PowerPress."
5433
+ msgstr "impara di più su PowerPress"
5434
 
5435
  #@ powerpress
5436
  #: powerpressadmin-tools.php:23
5437
  #: powerpressadmin.php:1885
5438
  msgid "Blubrry Forum"
5439
+ msgstr "Forum Blubrry"
5440
 
5441
  #@ powerpress
5442
  #: powerpressadmin-tools.php:24
5443
  msgid "interact with other podcasters."
5444
+ msgstr "interagisci con altri podcaster."
5445
 
5446
  #@ powerpress
5447
  #: powerpressadmin-tools.php:29
5448
  msgid "Import Settings"
5449
+ msgstr "Impostazioni Importazione"
5450
 
5451
  #@ powerpress
5452
  #: powerpressadmin-tools.php:33
5454
  "Import PodPress settings, are you sure?\n"
5455
  "\n"
5456
  "Existing PowerPress settings will be overwritten."
5457
+ msgstr "Sicuro di voler importare le impostazioni PodPress?\n"
5458
 
5459
  #@ powerpress
5460
  #: powerpressadmin-tools.php:35
5461
  msgid "Import PodPress Settings"
5462
+ msgstr "Impostazioni Importazione PodPress"
5463
 
5464
  #@ powerpress
5465
  #: powerpressadmin-tools.php:36
5466
  msgid "Import settings from PodPress into PowerPress."
5467
+ msgstr "Importa le impostazioni da PodPress a PowerPress."
5468
 
5469
  #@ powerpress
5470
  #: powerpressadmin-tools.php:40
5471
  msgid "Import Podcasting plugin settings, are you sure?"
5472
+ msgstr "Sicuro di voler importare le impostazioni del plugin Podcasting?"
5473
 
5474
  #@ powerpress
5475
  #: powerpressadmin-tools.php:40
5476
  msgid "Existing PowerPress settings will be overwritten."
5477
+ msgstr "Le impostazioni PowerPress esistenti saranno sovrascritte."
5478
 
5479
  #@ powerpress
5480
  #: powerpressadmin-tools.php:40
5481
  msgid "Import plugin \"Podcasting\" Settings"
5482
+ msgstr "Importa le impostazioni del plugin \"Podcasting\""
5483
 
5484
  #@ powerpress
5485
  #: powerpressadmin-tools.php:41
5486
  msgid "Import settings from the plugin \"Podcasting\" into PowerPress."
5487
+ msgstr "Importa le impostazioni dal plugin \"Podcasting\" in PowerPress."
5488
 
5489
  #@ powerpress
5490
  #: powerpressadmin-tools.php:42
5491
  msgid "Note: Episodes created using the plugin \"Podcasting\" do not require importing."
5492
+ msgstr "Nota: Gli episodi creati usando il plugin \"Podcasting\" non richiedono importazione."
5493
 
5494
  #@ powerpress
5495
  #: powerpressadmin-tools.php:51
5496
  msgid "Import PodPress created episodes to PowerPress."
5497
+ msgstr "Importa in PowerPress episodi creati da PodPress."
5498
 
5499
  #@ powerpress
5500
  #: powerpressadmin-tools.php:53
5501
  msgid "Import from other Blogging Platform"
5502
+ msgstr "Importa da altre Piattaforme di Blogging"
5503
 
5504
  #@ powerpress
5505
  #: powerpressadmin-tools.php:53
5506
  msgid "(media linked in blog posts)"
5507
+ msgstr "(media linkati in post del blog)"
5508
 
5509
  #@ powerpress
5510
  #: powerpressadmin-tools.php:54
5511
  msgid "Import from podcast episodes from blogging platforms such as Movable Type/Blogger/Joomla/TypePad (and most other blogging systems) to PowerPress."
5512
+ msgstr "Importa in PowerPress episodi podcast creati in piattaforme di blogging come Movable Type/Blogger/Joomla/TypePad (e dalla maggior parte degli altri sistemi di blogging)."
5513
 
5514
  #@ powerpress
5515
  #: powerpressadmin-tools.php:61
5516
  msgid "Add Update Services"
5517
+ msgstr "Aggiungi Servizi di Aggiornamento"
5518
 
5519
  #@ powerpress
5520
  #: powerpressadmin-tools.php:64
5521
  msgid "Add Update Services / Ping Sites"
5522
+ msgstr "Aggiungi Servizi di Aggiornamento / Siti Ping"
5523
 
5524
  #@ powerpress
5525
  #: powerpressadmin-tools.php:64
5526
  msgid "(notify podcast directories when you publish new episodes)"
5527
+ msgstr "(notifica alle cartelle podcast quando pubblichi nuovi episodi)"
5528
 
5529
  #@ powerpress
5530
  #: powerpressadmin-tools.php:65
5531
  msgid "Add Update Services / Ping Sites geared towards podcasting."
5532
+ msgstr "Aggiungi servizi di Aggiornamento / Siti Ping predisposti al podcasting."
5533
 
5534
  #@ powerpress
5535
  #: powerpressadmin-tools.php:72
5536
  msgid "Find and Replace Media"
5537
+ msgstr "Trova e Sostituisci Media"
5538
 
5539
  #@ powerpress
5540
  #: powerpressadmin-tools.php:75
5541
  msgid "Find and Replace for Episode URLs"
5542
+ msgstr "Cerca e sostituisci URL Episodi"
5543
 
5544
  #@ powerpress
5545
  #: powerpressadmin-tools.php:85
5546
  msgid "User Capabilities"
5547
+ msgstr "Permessi Utente"
5548
 
5549
  #@ powerpress
5550
  #: powerpressadmin-tools.php:91
5551
  msgid "Remove PowerPress Podcasting Capabilities for User Role Management"
5552
+ msgstr "Rimuovi i permessi di Podcasting PowerPress per la Gestione dei Ruoli Utente"
5553
 
5554
  #@ powerpress
5555
  #: powerpressadmin-tools.php:93
5558
  "\tOnly administrators will be able to view media statistics from the WordPress Dashboard. Contributors, subscribers and other\n"
5559
  "\tcustom users will not have access to create podcast episodes or view statistics from the dashboard. Due to this feature's\n"
5560
  "\tcomplexity, it is not supported by Blubrry.com."
5561
+ msgstr "Il permesso di Podcasting consente ad amministratori, editori e autori di creare e configurare episodi podcast. \n"
5562
 
5563
  #@ powerpress
5564
  #: powerpressadmin-tools.php:105
5565
  msgid "Add PowerPress Podcasting Capabilities for User Role Management"
5566
+ msgstr "Aggiungi le funzioni podcasting di PowerPress alla Gestione dei Ruoli Utente "
5567
 
5568
  #@ powerpress
5569
  #: powerpressadmin-tools.php:107
5572
  "\tOnly administrators will be able to view media statistics from the WordPress Dashboard. Contributors, subscribers and other\n"
5573
  "\tcustom users will not have access to create podcast episodes or view statistics from the dashboard. Due to this feature's\n"
5574
  "\tcomplexity, it is not supported by Blubrry.com."
5575
+ msgstr "Aggiungere le funzioni di podcasting permetterà ad amministratori, editori e autori di creare e configurare episodi di podcast. \n"
5576
 
5577
  #@ powerpress
5578
  #: powerpressadmin-tools.php:118
5579
  msgid "Remove Password Protection Capabilities for Control of Which Users can Access Your Podcasts"
5580
+ msgstr "Rimuovi le funzioni di Protezione con Password per il Controllo di Quali Utenti possono Accedere ai Tuoi Podcast"
5581
 
5582
  #@ powerpress
5583
  #: powerpressadmin-tools.php:118
5584
  #: powerpressadmin-tools.php:136
5585
  msgid "Also kown as Premium Content"
5586
+ msgstr "Anche noto come Premium Content"
5587
 
5588
  #@ powerpress
5589
  #: powerpressadmin-tools.php:121
5590
  #, php-format
5591
  msgid "To use this feature, go to %s and create a new custom podcast channel. In the Edit Podcast Channel page, click the last tab labeled 'Other Settings'. Place a check in the box labled 'Protect Content' and then click 'Save Changes'."
5592
+ msgstr "Per usare questa funzione, vai a %s e crea un nuovo canale podcast personalizzato. Nella pagina 'Modifica Canale Podcast', clicca l'ultima tab 'Altre Impostazioni''. Metti una spunta nella casella Proteggi Contenuto' e poi clicca 'Salva Modifiche''."
5593
 
5594
  #@ powerpress
5595
  #: powerpressadmin-tools.php:122
5596
  #: powerpressadmin.php:970
5597
  msgid "Podcast Channels"
5598
+ msgstr "Canali Podcast"
5599
 
5600
  #@ powerpress
5601
  #: powerpressadmin-tools.php:126
5605
  "\t\tSubscriber.\" Only users with the \"Premium Subscriber\" role have access to your password protected custom podcast\n"
5606
  "\t\tchannels. Due to this feature's complexity, it is not supported by Blubrry.com."
5607
  msgstr ""
5608
+ "Le funzioni di protezione con password dei feed da canali podcast personalizzati ti permette di controllare chi può ascoltare e vedere il tuo \n"
5609
+ "\t\tpodcast. Questa caratteristica ti permette di proteggere con password canali podcast personalizzati aggiungendo un nuovo ruolo chiamato \"Sottoscrittore \n"
5610
+ "\t\tPremium.\" Solo gli Utenti con il ruolo di \"Sottoscrittore Premium\" hanno accesso al tuo podcast personalizzato protetto da password\n"
5611
+ "\t\tchannels. Due to this feature's complexity, it is not supported by Blubrry.com."
5612
 
5613
  #@ powerpress
5614
  #: powerpressadmin-tools.php:136
5615
  msgid "Add Password Protection Capabilities for Control of Which Users can Access Your Podcasts"
5616
+ msgstr "Aggiungi le funzioni di Protezione con Password per il Controllo di Quali Utenti possono Accedere ai Tuoi Podcast"
5617
 
5618
  #@ powerpress
5619
  #: powerpressadmin-tools.php:138
5623
  "\t\tSubscriber.\" Only users with the \"Premium Subscriber\" role have access to your password protected custom podcast\n"
5624
  "\t\tchannels. Due to this feature's complexity, it is not supported by Blubrry.com."
5625
  msgstr ""
5626
+ "Aggiungendo le funzioni di Protezione con Password per i feed da canale podcast personalizzato ti permette di controllare chi può ascoltare e vedere i tuoi \n"
5627
+ "\t\tpodcast. Questa caratteristica ti permette di proteggere con password i canali podcast personalizzati aggiungendo un nuovo ruolo chiamato \"Sottoscrittore \n"
5628
+ "\t\tPremium.\" Solo gli Utenti con ruolo \"Sottoscrittore Premium\" hanno accesso al tuo canale podcast personalizzato protetto da password\n"
5629
+ "A causa della sua complessità questa funzione non è supportata da Blubrry.com.\t\tchannels. Due to this feature's complexity, it is not supported by Blubrry.com."
5630
 
5631
  #@ powerpress
5632
  #: powerpressadmin-tools.php:147
5633
  msgid "What are Roles and Capabilities?"
5634
+ msgstr "Cosa sono Ruoli e Permessi?"
5635
 
5636
  #@ powerpress
5637
  #: powerpressadmin-tools.php:150
5641
  "\t\t\tcannot do in the blog. You will most likely need a roles and capabilities plugin such as %s, %s, or %s\n"
5642
  "\t\t\tto take advantage of these features. Due to this feature's complexity, it is not supported by Blubrry.com."
5643
  msgstr ""
5644
+ "La funzione %s di WordPress dà al proprietario del blog la capacità di controllare quello che gli Utenti possono e \n"
5645
+ "\t\t\tnon possono fare nel blog. Probabilmente, ti servirà un plugin per ruoli e pemessi come %s, %s, o %s\n"
5646
+ "\t\t\tper poter usare queste funzioni. Per la sua complessità, questa funzione non è supportata da Blubrry.com."
5647
 
5648
  #@ powerpress
5649
  #: powerpressadmin-tools.php:153
5650
  msgid "Roles and Capabilities"
5651
+ msgstr "Ruoli e Permessi"
5652
 
5653
  #@ powerpress
5654
  #: powerpressadmin-tools.php:154
5655
  msgid "Role Manager"
5656
+ msgstr "Gestione Ruoli"
5657
 
5658
  #@ powerpress
5659
  #: powerpressadmin-tools.php:155
5660
  msgid "Capability Manager"
5661
+ msgstr "Gestione Permessi"
5662
 
5663
  #@ powerpress
5664
  #: powerpressadmin-tools.php:156
5665
  msgid "Role Scoper"
5666
+ msgstr "Role Scoper"
5667
 
5668
  #@ powerpress
5669
  #: powerpressadmin-tools.php:166
5670
  msgid "Update Plugins Cache"
5671
+ msgstr "Aggiorna la Cache dei Plugin"
5672
 
5673
  #@ powerpress
5674
  #: powerpressadmin-tools.php:168
5675
  msgid "Clear Plugins Update Cache"
5676
+ msgstr "Svuota Cache Aggiornamento Plugin"
5677
 
5678
  #@ powerpress
5679
  #: powerpressadmin-tools.php:171
5680
  #, php-format
5681
  msgid "The list of plugins on the plugins page will cache the plugin version numbers for up to 24 hours. Click the link above to clear the cache to get the latest versions of plugins listed on your %s page."
5682
+ msgstr "L'elenco dei plugin nella pagina plugin memorizza i numeri di versione plugin per 24 ore. Clicca sul link qui sopra per svuotare la cache e ottenere la versione più recente dei plugin elencati nella pagina %s ."
5683
 
5684
  #@ powerpress
5685
  #: powerpressadmin-tools.php:172
5694
  #@ powerpress
5695
  #: powerpressadmin-tools.php:182
5696
  msgid "Translate PowerPress to your language"
5697
+ msgstr "Traduci PowerPress nel tuo linguaggio"
5698
 
5699
  #@ powerpress
5700
  #: powerpressadmin-tools.php:189
5704
  #@ powerpress
5705
  #: powerpressadmin-tools.php:191
5706
  msgid "Diagnose Your PowerPress Installation"
5707
+ msgstr "Diagnostica della Tua Installazione PowerPress"
5708
 
5709
  #@ powerpress
5710
  #: powerpressadmin.php:75
5711
  msgid "Another podcasting plugin has been detected, PowerPress is currently disabled."
5712
+ msgstr "È stato rilevato un altro plugin per il podcasting. PowerPress è attualmente disabilitato."
5713
 
5714
  #@ powerpress
5715
  #: powerpressadmin.php:80
5716
  msgid "Blubrry PowerPress requires Wordpress version 2.8 or greater."
5717
+ msgstr "PowerPress per Blubrry richiede WordPress versione 2.8 o successiva."
5718
 
5719
  #@ powerpress
5720
  #: powerpressadmin.php:84
5721
  #: powerpressadmin.php:2866
5722
  msgid "The WP OS FLV plugin is not compatible with Blubrry PowerPress."
5723
+ msgstr "Il plugin WP OS FLV non è compatibile con Blubrry PowerPress."
5724
 
5725
  #@ powerpress
5726
  #: powerpressadmin.php:130
5727
  msgid "Invalid iTunes image"
5728
+ msgstr "Immagine iTune non valida"
5729
 
5730
  #@ powerpress
5731
  #: powerpressadmin.php:156
5732
  msgid "Invalid RSS image"
5733
+ msgstr "Immagine RSS non valida"
5734
 
5735
  #@ powerpress
5736
  #: powerpressadmin.php:182
5737
  msgid "Invalid Coverat image"
5738
+ msgstr "Immagine Coverart non valida"
5739
 
5740
  #@ powerpress
5741
  #: powerpressadmin.php:208
5742
  msgid "Invalid poster image"
5743
+ msgstr "Immagine Poster non valida"
5744
 
5745
  #@ powerpress
5746
  #: powerpressadmin.php:359
5747
  msgid "Blubrry Hosting Error (updating coverart)"
5748
+ msgstr "Errore Hosting Blubrry (aggiornamento coverart)"
5749
 
5750
  #@ powerpress
5751
  #: powerpressadmin.php:363
5752
  msgid "An error occurred updating the coverart with your Blubrry Services Account."
5753
+ msgstr "Si è verificato un errore aggiornando la coverart con il tuo Account Servizi Blubrry."
5754
 
5755
  #@ powerpress
5756
  #: powerpressadmin.php:369
5757
  msgid "Coverart Image was not uploaded to your Blubrry Services Account. It will NOT be added to your mp3s."
5758
+ msgstr "L'Immagine Coverart non è stata caricata nel tuo Account Servizi Blubrry. NON sarà aggiunta ai tuoi mp3."
5759
 
5760
  #@ powerpress
5761
  #: powerpressadmin.php:424
5762
  msgid "Blubrry PowerPress settings saved successfully."
5763
+ msgstr "Impostazioni Blubrry PowerPress salvate correttamente."
5764
 
5765
  #@ powerpress
5766
  #: powerpressadmin.php:427
5767
  msgid "Blubrry PowerPress Custom Feed settings saved."
5768
+ msgstr "Le impostazioni per il Feed Personalizzato Blubrry PowerPress sono state salvate."
5769
 
5770
  #@ powerpress
5771
  #: powerpressadmin.php:430
5772
  msgid "Blubrry PowerPress Category Feed settings saved."
5773
+ msgstr "Le impostazioni per il Feed di Categoria Blubrry PowerPress sono state salvate."
5774
 
5775
  #@ powerpress
5776
  #: powerpressadmin.php:435
5777
  msgid "ATTENTION: You must configure your Blubrry Services in the Blubrry PowerPress &gt; Basic Settings page in order to utilize this feature."
5778
+ msgstr "ATTENZIONE: Per utilizzare questa funzione devi configurare i tuoi Servizi Blubrry nella pagina Impostazioni di Base di Blubrry PowerPress &gt;"
5779
 
5780
  #@ powerpress
5781
  #: powerpressadmin.php:437
5782
  msgid "Blubrry PowerPress MP3 Tag settings saved."
5783
+ msgstr "Le impostazioni Tag MP3 di Blubrry PowerPress sono state salvate."
5784
 
5785
  #@ powerpress
5786
  #: powerpressadmin.php:443
5787
  msgid "Blubrry PowerPress settings saved."
5788
+ msgstr "Le impostazioni di Blubrry PowerPress sono state salvate."
5789
 
5790
  #@ powerpress
5791
  #: powerpressadmin.php:459
5792
  msgid "iTunes Ping Successful. Podcast Feed URL"
5793
+ msgstr "Ping a iTunes riuscito. Podcast Feed URL"
5794
 
5795
  #@ powerpress
5796
  #: powerpressadmin.php:488
5797
  #, php-format
5798
  msgid "Feed slug \"%s\" is not valid."
5799
+ msgstr "Il feed slug \"%s\" non è valido."
5800
 
5801
  #@ powerpress
5802
  #: powerpressadmin.php:492
5803
  #, php-format
5804
  msgid "Feed slug \"%s\" is not available."
5805
+ msgstr "Il feed slug \"%s\" non è disponibile."
5806
 
5807
  #@ powerpress
5808
  #: powerpressadmin.php:502
5809
  #, php-format
5810
  msgid "Podcast Feed \"%s\" added, please configure your new feed now."
5811
+ msgstr "Il Feed di Podcast\"%s\" è stato aggiunto, per favore configuralo adesso."
5812
 
5813
  #@ powerpress
5814
  #: powerpressadmin.php:526
5815
  msgid "You must select a category to continue."
5816
+ msgstr "Devi selezionare una categoria per continuare."
5817
 
5818
  #@ powerpress
5819
  #: powerpressadmin.php:530
5820
  #: powerpressadmin.php:624
5821
  msgid "Error obtaining category information."
5822
+ msgstr "Errore nell'ottenere informazioni di categoria."
5823
 
5824
  #@ powerpress
5825
  #: powerpressadmin.php:543
5826
  #: powerpressadmin.php:637
5827
  msgid "Please configure your category podcast feed now."
5828
+ msgstr "Configura adesso il tuo feed di podcast di categoria."
5829
 
5830
  #@ powerpress
5831
  #: powerpressadmin.php:652
5832
  msgid "Cannot delete default podcast feed."
5833
+ msgstr "Non posso cancellare il feed di podcast predefinito."
5834
 
5835
  #@ powerpress
5836
  #: powerpressadmin.php:656
5837
  #, php-format
5838
  msgid "Cannot delete feed. Feed contains %d episode(s)."
5839
+ msgstr "Non posso cancellare il feed perché contiene %d episodi(o)."
5840
 
5841
  #@ powerpress
5842
  #: powerpressadmin.php:678
5843
  msgid "Feed deleted successfully."
5844
+ msgstr "Feed cancellato."
5845
 
5846
  #@ powerpress
5847
  #: powerpressadmin.php:694
5848
  msgid "Removed podcast settings for category feed successfully."
5849
+ msgstr "Le impostazioni podcast per il feed di categoria sono state rimosse."
5850
 
5851
  #@ powerpress
5852
  #: powerpressadmin.php:701
5853
  msgid "Podpress settings imported successfully."
5854
+ msgstr "Impostazioni Podpress importate correttamente."
5855
 
5856
  #@ powerpress
5857
  #: powerpressadmin.php:703
5858
  msgid "No Podpress settings found."
5859
+ msgstr "Nessuna impostazione trovata per Podpress."
5860
 
5861
  #@ powerpress
5862
  #: powerpressadmin.php:711
5863
  msgid "Settings imported from the plugin \"Podcasting\" successfully."
5864
+ msgstr "Impostazioni dal plugin \"Podcasting\" importate correttamente."
5865
 
5866
  #@ powerpress
5867
  #: powerpressadmin.php:713
5868
  msgid "No settings found for the plugin \"Podcasting\"."
5869
+ msgstr "Nessuna impostazione trovata per il plugin \"Podcasting\"."
5870
 
5871
  #@ powerpress
5872
  #: powerpressadmin.php:731
5873
  msgid "PowerPress Roles and Capabilities added to WordPress Blog."
5874
+ msgstr "Ruoli e Permessi PowerPress aggiunti al Blog WordPress."
5875
 
5876
  #@ powerpress
5877
  #: powerpressadmin.php:748
5878
  msgid "PowerPress Roles and Capabilities removed from WordPress Blog"
5879
+ msgstr "Ruoli e Permessi PowerPress rimossi dal blog WordPress"
5880
 
5881
  #@ powerpress
5882
  #: powerpressadmin.php:757
5883
  msgid "Premium Subscriber"
5884
+ msgstr "Sottoscrittore Premium"
5885
 
5886
  #@ powerpress
5887
  #: powerpressadmin.php:773
5888
  msgid "Podcast Password Protection Capabilities for Custom Channel Feeds added successfully."
5889
+ msgstr "Le Funzioni di Protezione con Password del Podcast per i Feed di Canali Personalizzati sono state aggiunte correttamente."
5890
 
5891
  #@ powerpress
5892
  #: powerpressadmin.php:791
5893
  msgid "Podcast Password Protection Capabilities for Custom Channel Feeds removed successfully."
5894
+ msgstr "Le Funzioni di Protezione con Password del Podcast per i Feed di Canali Personalizzati sono state rimosse."
5895
 
5896
  #@ powerpress
5897
  #: powerpressadmin.php:798
5898
  #, php-format
5899
  msgid "Plugins Update Cache cleared successfully. You may now to go the %s page to see the latest plugin versions."
5900
+ msgstr "La Cache di Aggiornamento Plugin è stata svuotata. Adesso puoi andare alla pagina %s per vedere e più recenti versioni dei plugin."
5901
 
5902
  #@ powerpress
5903
  #: powerpressadmin.php:798
5913
  #@ powerpress
5914
  #: powerpressadmin.php:938
5915
  msgid "Podcast Episode (default)"
5916
+ msgstr "Episodio Podcast (predefinito)"
5917
 
5918
  #@ powerpress
5919
  #: powerpressadmin.php:947
5920
  msgid "Podcast Episode for Custom Channel"
5921
+ msgstr "Episodio Podcast per Canale Personalizzato"
5922
 
5923
  #@ powerpress
5924
  #: powerpressadmin.php:962
5943
  #@ powerpress
5944
  #: powerpressadmin.php:966
5945
  msgid "Audio Player"
5946
+ msgstr "Lettore Audio"
5947
 
5948
  #@ powerpress
5949
  #: powerpressadmin.php:967
5953
  #@ powerpress
5954
  #: powerpressadmin.php:967
5955
  msgid "Video Player"
5956
+ msgstr "Lettore Video"
5957
 
5958
  #@ powerpress
5959
  #: powerpressadmin.php:970
5966
  #: powerpressadmin.php:1836
5967
  #: powerpressadmin.php:1843
5968
  msgid "PowerPress Category Podcasting"
5969
+ msgstr "Podcasting di Categoria PowerPress"
5970
 
5971
  #@ powerpress
5972
  #: powerpressadmin.php:974
6012
  "DO NOT MODIFY THIS SETTING UNLESS YOU ABSOLUTELY KNOW WHAT YOU ARE DOING.\n"
6013
  "\n"
6014
  "Are you sure you want to continue?"
6015
+ msgstr "ATTENZIONE: QUeste modifiche sono permanenti. Se l'URL Nuovo Feed inserito non è corretto, perderete sottoscrittori e non sarete più in grado di aggiornare i vostri elenchi nell'iTunes Store.\n"
6016
 
6017
  #@ powerpress
6018
  #: powerpressadmin.php:1475
6019
  msgid "Media URL contains characters that may cause problems for some clients. For maximum compatibility, only use letters, numbers, dash - and underscore _ characters only."
6020
+ msgstr "l'URL del media contiene caratteri che possono causare problemi su alcuni client. Per la massima compatibilità, usa solo lettere, numeri, trattini e caratterri sottolineato _ ."
6021
 
6022
  #@ powerpress
6023
  #: powerpressadmin.php:1490
6024
  msgid "PowerPress will not accept media URLs starting with https://.<br />Not all podcatching (podcast downloading) applications support secure http.<br />Please enter a different URL beginning with http://."
6025
+ msgstr "PowerPress non accetta URL del media che cominciano con con https://.<br />Non tutte le applicazioni podcatching (download di podcast) supportano http sicuro.<br />Per favore inserisci un URL che cominci con http://."
6026
 
6027
  #@ powerpress
6028
  #: powerpressadmin.php:1499
6029
  msgid "Media URL should not start with https://.<br />Not all podcatching (podcast downloading) applications support secure http.<br />By using https://, you may limit the size of your audience."
6030
+ msgstr "L'URL del media non deve cominciare con https://.<br />Non tutte le applicazioni podcatching (download di podcast) supportano http sicuro.<br />Usando https://, Potresti limitare il numero dei tuoi Utenti."
6031
 
6032
  #@ powerpress
6033
  #: powerpressadmin.php:1574
languages/powerpress-ro_RO.mo ADDED
Binary file
languages/powerpress-ro_RO.po ADDED
@@ -0,0 +1,6266 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: \n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: \n"
7
+ "Last-Translator: \n"
8
+ "Language-Team: Web Geek\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
+ "X-Poedit-Language: Romanian\n"
14
+ "X-Poedit-Country: ROMANIA\n"
15
+ "X-Poedit-SourceCharset: utf-8\n"
16
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
17
+ "X-Textdomain-Support: yes\n"
18
+ "X-Poedit-SearchPath-0: .\n"
19
+
20
+ #@ powerpress
21
+ #: mp3info.class.php:103
22
+ #: powerpressadmin-jquery.php:479
23
+ msgid "Your server must either have the php.ini setting 'allow_url_fopen' enabled or have the PHP cURL library installed in order to continue."
24
+ msgstr "Serverul dvs. trebuie să fie setarea php.ini &quot;allow_url_fopen&quot;, au activat sau PHP bibliotecă cURL instalate pentru a continua."
25
+
26
+ #@ powerpress
27
+ #: mp3info.class.php:113
28
+ #, php-format
29
+ msgid "Media URL exceeded redirect limit of %d (fopen)."
30
+ msgstr "URL-ul mass-media a depăşit limita de redirecţionare% d (fopen)."
31
+
32
+ #@ powerpress
33
+ #: mp3info.class.php:124
34
+ msgid "Unable to obtain host name from URL."
35
+ msgstr "Imposibil de a obţine numele de gazdă din URL-ul."
36
+
37
+ #@ powerpress
38
+ #: mp3info.class.php:126
39
+ msgid "Unable to obtain host name from the URL:"
40
+ msgstr "Imposibil de a obţine numele de gazdă de la adresa URL:"
41
+
42
+ #@ powerpress
43
+ #: mp3info.class.php:226
44
+ msgid "Unable to obtain media size from web server."
45
+ msgstr "Imposibil de a obţine media dimensiune de la serverul de web."
46
+
47
+ #@ powerpress
48
+ #: mp3info.class.php:239
49
+ msgid "Unable to save media information to temporary directory."
50
+ msgstr "Imposibil de salvat mass-media informaţii director temporar."
51
+
52
+ #@ powerpress
53
+ #: mp3info.class.php:252
54
+ msgid "Unable to connect to host:"
55
+ msgstr "Imposibil de conectat la gazdă:"
56
+
57
+ #@ powerpress
58
+ #: mp3info.class.php:266
59
+ #, php-format
60
+ msgid "Media URL exceeded redirect limit of %d (cURL in safe mode)."
61
+ msgstr "URL-ul mass-media a depăşit limita de redirecţionare% d (cURL în modul de siguranţă)."
62
+
63
+ #@ powerpress
64
+ #: mp3info.class.php:308
65
+ #, php-format
66
+ msgid "Media URL exceeded redirect limit of %d (cURL)."
67
+ msgstr "URL-ul mass-media a depăşit limita de redirecţionare% d (cURL)."
68
+
69
+ #@ powerpress
70
+ #: mp3info.class.php:323
71
+ #, php-format
72
+ msgid "Unable to obtain HTTP %d redirect URL."
73
+ msgstr "Imposibil de a obţine HTTP% d redirecţionare URL."
74
+
75
+ #@ powerpress
76
+ #: mp3info.class.php:353
77
+ msgid "Unable to obtain media size from server."
78
+ msgstr "Imposibil de a obţine media dimensiune de la server."
79
+
80
+ #@ powerpress
81
+ #: mp3info.class.php:364
82
+ msgid "Unable to create temporary file for checking media information."
83
+ msgstr "Imposibil de a crea fişier temporar pentru verificarea mass-media informaţii."
84
+
85
+ #@ powerpress
86
+ #: mp3info.class.php:427
87
+ #: mp3info.class.php:437
88
+ msgid "Unable to download media."
89
+ msgstr "Imposibil de descărcat mass-media."
90
+
91
+ #@ powerpress
92
+ #: mp3info.class.php:435
93
+ msgid "Retrieving file info:"
94
+ msgstr "Preluarea meciului fişier:"
95
+
96
+ #@ powerpress
97
+ #: mp3info.class.php:483
98
+ msgid "PowerPress is unable to detect media information."
99
+ msgstr "PowerPress nu este în măsură să detecteze mass-media informaţii."
100
+
101
+ #@ powerpress
102
+ #: mp3info.class.php:502
103
+ #, php-format
104
+ msgid "Plugin '%s' has included a different version of the GetID3 library located in %s"
105
+ msgstr "Plugin &#39;% s&#39; a inclus o versiune diferită a bibliotecii GetID3 situate în% s"
106
+
107
+ #@ powerpress
108
+ #: mp3info.class.php:504
109
+ #, php-format
110
+ msgid "Another plugin has included a different version of the GetID3 library located in %s"
111
+ msgstr "Un alt plugin-ul a inclus o versiune diferită a bibliotecii GetID3 situate în% s"
112
+
113
+ #@ powerpress
114
+ #: mp3info.class.php:506
115
+ msgid "Another plugin has included a different version of the GetID3 library."
116
+ msgstr "Un alt plugin-ul a inclus o versiune diferită a bibliotecii GetID3."
117
+
118
+ #@ powerpress
119
+ #: mp3info.class.php:513
120
+ #: mp3info.class.php:519
121
+ msgid "Error occurred downloading media file."
122
+ msgstr "A apărut o eroare la descărcarea fişierului media."
123
+
124
+ #@ powerpress
125
+ #: mp3info.class.php:528
126
+ msgid "Downloaded media file is empty."
127
+ msgstr "Descărcat fişierul media este gol."
128
+
129
+ #@ powerpress
130
+ #: mp3info.class.php:568
131
+ #, php-format
132
+ msgid "Sample Rate %dKhz may cause playback issues, we recommend 22Khz or 44Khz for maximum player compatibility."
133
+ msgstr "Rata de propoziţii %dKhz poate provoca probleme de redare, vă recomandăm 22kHz sau 44kHz pentru compatibilitate maximă jucător."
134
+
135
+ #@ powerpress
136
+ #: mp3info.class.php:574
137
+ #, php-format
138
+ msgid "Channel Mode '%s' may cause playback issues, we recommend 'joint stereo' for maximum player compatibility."
139
+ msgstr "'%s' modul de canal poate provoca probleme de redare, vă recomandăm \"stereo comune\" pentru compatibilitate maximă jucător."
140
+
141
+ #@ powerpress
142
+ #: powerpress-feed-auth.php:22
143
+ msgid "Access Denied"
144
+ msgstr "Acces refuzat"
145
+
146
+ #@ powerpress
147
+ #: powerpress-feed-auth.php:26
148
+ msgid "Authorization Failed"
149
+ msgstr "Autorizarea a eşuat"
150
+
151
+ #@ powerpress
152
+ #: powerpress-feed-auth.php:32
153
+ msgid "Unauthorized"
154
+ msgstr "Neautorizat"
155
+
156
+ #@ powerpress
157
+ #: powerpress-player.php:304
158
+ #: powerpress-player.php:861
159
+ msgid "Best viewed with"
160
+ msgstr "Vizualizat cel mai bine cu"
161
+
162
+ #@ powerpress
163
+ #: powerpress-player.php:306
164
+ #: powerpress-player.php:863
165
+ msgid "Windows Media Player plugin for Firefox"
166
+ msgstr "Windows Media Player plugin pentru Firefox"
167
+
168
+ #@ powerpress
169
+ #: powerpress-player.php:499
170
+ #: powerpress-player.php:1103
171
+ msgid "Blubrry PowerPress Player"
172
+ msgstr "Blubrry PowerPress player"
173
+
174
+ #@ powerpress
175
+ #: powerpress-player.php:565
176
+ msgid "Player Not Available"
177
+ msgstr "Jucătorul nu Disponibil"
178
+
179
+ #@ powerpress
180
+ #: powerpress-player.php:971
181
+ msgid "Open in New Window"
182
+ msgstr "Open in New Window"
183
+
184
+ #@ powerpress
185
+ #: powerpress-player.php:1053
186
+ msgid "E-Book PDF"
187
+ msgstr "E-Book PDF"
188
+
189
+ #@ powerpress
190
+ #: powerpress-player.php:1121
191
+ msgid "Unable to retrieve media information."
192
+ msgstr "Imposibil de a prelua informaţiile media."
193
+
194
+ #@ powerpress
195
+ #: powerpress-player.php:1526
196
+ #: powerpressadmin-player-page.php:726
197
+ msgid "TRACK"
198
+ msgstr "TRACK"
199
+
200
+ #@ powerpress
201
+ #: powerpress.php:55
202
+ #: powerpressadmin-customfeeds.php:70
203
+ #: powerpressadmin-customfeeds.php:85
204
+ #: powerpressadmin-editfeed.php:1036
205
+ #: powerpressadmin.php:3154
206
+ msgid "Podcast"
207
+ msgstr "Podcast"
208
+
209
+ #@ powerpress
210
+ #: powerpress.php:57
211
+ #: powerpressadmin-metabox.php:234
212
+ msgid "Duration"
213
+ msgstr "Durată"
214
+
215
+ #@ powerpress
216
+ #: powerpress.php:59
217
+ msgid "Play in new window"
218
+ msgstr "Joacă în fereastră nouă"
219
+
220
+ #@ powerpress
221
+ #: powerpress.php:61
222
+ msgid "Download"
223
+ msgstr "Descarca"
224
+
225
+ #@ powerpress
226
+ #: powerpress.php:63
227
+ #: powerpressadmin-podpress-stats.php:24
228
+ #: powerpressadmin-podpress-stats.php:28
229
+ msgid "Play"
230
+ msgstr "Joacă"
231
+
232
+ #@ powerpress
233
+ #: powerpress.php:65
234
+ msgid "Embed"
235
+ msgstr "Încorporaţi"
236
+
237
+ #@ powerpress
238
+ #: powerpressadmin-basic.php:19
239
+ msgid "The redirect entered is not recongized as a supported statistics redirect service."
240
+ msgstr "Redirecţionare a intrat nu este recongized ca o statistica acceptat redirecţionare serviciu."
241
+
242
+ #@ powerpress
243
+ #: powerpressadmin-basic.php:19
244
+ msgid "Are you sure you wish to continue with this redirect url?"
245
+ msgstr "Sunteţi sigur că doriţi să continuaţi cu acest url redirect?"
246
+
247
+ #@ powerpress
248
+ #: powerpressadmin-basic.php:70
249
+ msgid "Blubrry PowerPress Settings"
250
+ msgstr "Blubrry PowerPress Setări"
251
+
252
+ #@ powerpress
253
+ #: powerpressadmin-basic.php:74
254
+ msgid "Welcome"
255
+ msgstr "Bun venit"
256
+
257
+ #@ powerpress
258
+ #: powerpressadmin-basic.php:75
259
+ #: powerpressadmin-player-page.php:641
260
+ #: powerpressadmin-player-page.php:1117
261
+ msgid "Basic Settings"
262
+ msgstr "Setări de bază"
263
+
264
+ #@ powerpress
265
+ #: powerpressadmin-basic.php:76
266
+ msgid "Services & Stats"
267
+ msgstr "Servicii &amp; Statistici"
268
+
269
+ #@ powerpress
270
+ #: powerpressadmin-basic.php:77
271
+ #: powerpressadmin-editfeed.php:199
272
+ msgid "Media Appearance"
273
+ msgstr "Media Aspect"
274
+
275
+ #@ powerpress
276
+ #: powerpressadmin-basic.php:78
277
+ msgid "Feeds"
278
+ msgstr "Fluxuri"
279
+
280
+ #@ powerpress
281
+ #: powerpressadmin-basic.php:79
282
+ #: powerpressadmin.php:3156
283
+ msgid "iTunes"
284
+ msgstr "iTunes"
285
+
286
+ #@ powerpress
287
+ #: powerpressadmin-basic.php:80
288
+ #: powerpressadmin-editfeed.php:197
289
+ msgid "T.V."
290
+ msgstr "Televizor"
291
+
292
+ #@ powerpress
293
+ #: powerpressadmin-basic.php:133
294
+ msgid "You must delete all of the Podcast Channels to disable this option."
295
+ msgstr "Trebuie să ştergeţi toate canalele de Podcast pentru a dezactiva această opţiune."
296
+
297
+ #@ powerpress
298
+ #: powerpressadmin-basic.php:143
299
+ msgid "Audio Player Options"
300
+ msgstr "Opţiuni Audio Player"
301
+
302
+ #@ powerpress
303
+ #: powerpressadmin-basic.php:144
304
+ msgid "Select from 6 different web based audio players."
305
+ msgstr "Selectaţi din 6 diferite web jucătorilor în funcţie audio."
306
+
307
+ #@ powerpress
308
+ #: powerpressadmin-basic.php:145
309
+ #: powerpressadmin-basic.php:151
310
+ #: powerpressadmin-basic.php:157
311
+ #: powerpressadmin-basic.php:163
312
+ msgid "feature will appear in left menu when enabled"
313
+ msgstr "caracteristică va apărea în meniul din stânga atunci când este activat"
314
+
315
+ #@ powerpress
316
+ #: powerpressadmin-basic.php:149
317
+ msgid "Video Player Options"
318
+ msgstr "Video Player Opţiuni"
319
+
320
+ #@ powerpress
321
+ #: powerpressadmin-basic.php:150
322
+ msgid "Select from 2 different web based video players."
323
+ msgstr "Selectaţi din 2 jucători diferiţi video bazate pe web."
324
+
325
+ #@ powerpress
326
+ #@ default
327
+ #: powerpressadmin-basic.php:155
328
+ #: powerpressadmin-categoryfeeds.php:27
329
+ #: powerpressadmin-customfeeds.php:23
330
+ #: powerpressadmin-podpress.php:807
331
+ msgid "Custom Podcast Channels"
332
+ msgstr "Particularizate Podcast Canale"
333
+
334
+ #@ powerpress
335
+ #: powerpressadmin-basic.php:156
336
+ msgid "Manage multiple media files and/or formats to one blog post."
337
+ msgstr "Gestionaţi mai multe fişiere media şi / sau formate la un post pe blog."
338
+
339
+ #@ powerpress
340
+ #: powerpressadmin-basic.php:161
341
+ #: powerpressadmin-categoryfeeds.php:21
342
+ #: powerpressadmin.php:972
343
+ msgid "Category Podcasting"
344
+ msgstr "Categorie Podcasting"
345
+
346
+ #@ powerpress
347
+ #: powerpressadmin-basic.php:162
348
+ msgid "Manage category podcast feeds."
349
+ msgstr "Administreaza categoria podcast feed-uri."
350
+
351
+ #@ powerpress
352
+ #: powerpressadmin-basic.php:173
353
+ msgid "Like The Plugin?"
354
+ msgstr "Ca Plugin?"
355
+
356
+ #@ powerpress
357
+ #: powerpressadmin-basic.php:175
358
+ msgid "This plugin is great, don't you think? If you like the plugin we'd be ever so grateful if you'd give it your support. Here's how:"
359
+ msgstr "Acest plugin este mare, nu crezi? Daca iti place acest plugin-ul ne-am fi vreodată atât de recunoscător dacă aş da-l de sprijinul dumneavoastra. Iată cum:"
360
+
361
+ #@ powerpress
362
+ #: powerpressadmin-basic.php:178
363
+ #, php-format
364
+ msgid "Rate this plugin 5 stars in the %s."
365
+ msgstr "Evaluaţi acest plugin 5 stele în% s."
366
+
367
+ #@ powerpress
368
+ #: powerpressadmin-basic.php:179
369
+ msgid "WordPress Plugins Directory"
370
+ msgstr "WordPress Plugin-uri director"
371
+
372
+ #@ powerpress
373
+ #: powerpressadmin-basic.php:183
374
+ msgid "Tell the world about PowerPress by writing about it on your blog"
375
+ msgstr "Spune lumii despre PowerPress de scris despre el pe blog-ul dvs."
376
+
377
+ #@ powerpress
378
+ #: powerpressadmin-basic.php:184
379
+ msgid "I'm podcasting with Blubrry PowerPress (http://blubrry.com/powerpress/) #powerpress #wordpress"
380
+ msgstr "Sunt podcasting cu PowerPress Blubrry (http://blubrry.com/powerpress/) # # powerpress WordPress"
381
+
382
+ #@ powerpress
383
+ #: powerpressadmin-basic.php:184
384
+ msgid "Twitter"
385
+ msgstr "Stare de nervozitate"
386
+
387
+ #@ powerpress
388
+ #: powerpressadmin-basic.php:185
389
+ msgid "I podcast with Blubrry PowerPress"
390
+ msgstr "Am podcast cu Blubrry PowerPress"
391
+
392
+ #@ powerpress
393
+ #: powerpressadmin-basic.php:185
394
+ msgid "Facebook"
395
+ msgstr "Facebook"
396
+
397
+ #@ powerpress
398
+ #: powerpressadmin-basic.php:186
399
+ msgid "Blubrry PowerPress Podcasting Plugin for WordPress"
400
+ msgstr "Blubrry Podcasting PowerPress Plugin pentru WordPress"
401
+
402
+ #@ powerpress
403
+ #: powerpressadmin-basic.php:186
404
+ msgid "Digg"
405
+ msgstr "Digg"
406
+
407
+ #@ powerpress
408
+ #: powerpressadmin-basic.php:188
409
+ msgid "Send us feedback"
410
+ msgstr "Trimiteţi-ne feedback-ul"
411
+
412
+ #@ powerpress
413
+ #: powerpressadmin-basic.php:188
414
+ msgid "we love getting suggestions for new features!"
415
+ msgstr "ne place obtinerea sugestii pentru noi caracteristici!"
416
+
417
+ #@ powerpress
418
+ #: powerpressadmin-basic.php:212
419
+ msgid "Episode Entry Options"
420
+ msgstr "Intrarea episod Opţiuni"
421
+
422
+ #@ powerpress
423
+ #: powerpressadmin-basic.php:219
424
+ msgid "Podcast Entry Box"
425
+ msgstr "Podcast intrare Box"
426
+
427
+ #@ powerpress
428
+ #: powerpressadmin-basic.php:222
429
+ msgid "Configure your podcast episode entry box with the options that fit your needs."
430
+ msgstr "Configurarea intrării episod podcast caseta cu opţiunile care se potrivesc nevoilor dumneavoastră."
431
+
432
+ #@ powerpress
433
+ #: powerpressadmin-basic.php:226
434
+ #: powerpressadmin-metabox.php:161
435
+ msgid "Media URL"
436
+ msgstr "URL-ul mass-media"
437
+
438
+ #@ powerpress
439
+ #: powerpressadmin-basic.php:227
440
+ msgid "Specify URL to episode's media file"
441
+ msgstr "Specificaţi URL-ul la dosarul episod mass-media"
442
+
443
+ #@ powerpress
444
+ #: powerpressadmin-basic.php:229
445
+ msgid "Media File Size and Duration"
446
+ msgstr "Mass-media Dimensiunea fişierului şi Durata"
447
+
448
+ #@ powerpress
449
+ #: powerpressadmin-basic.php:230
450
+ msgid "Specify episode's media file size and duration"
451
+ msgstr "Specifica dimensiunea episod al mass-media fişier şi durata"
452
+
453
+ #@ powerpress
454
+ #: powerpressadmin-basic.php:232
455
+ msgid "Embed Field"
456
+ msgstr "Încorporaţi câmp"
457
+
458
+ #@ powerpress
459
+ #: powerpressadmin-basic.php:233
460
+ msgid "Enter embed code from sites such as YouTube, Viddler and Blip.tv"
461
+ msgstr "Introduceti codul de embed de pe site-uri precum YouTube, Viddler şi Blip.tv"
462
+
463
+ #@ powerpress
464
+ #: powerpressadmin-basic.php:234
465
+ msgid "Replace Player with Embed"
466
+ msgstr "Înlocuiţi player cu Încorporaţi"
467
+
468
+ #@ powerpress
469
+ #: powerpressadmin-basic.php:235
470
+ msgid "Do not display default player if embed present for episode."
471
+ msgstr "Nu afişa playerul implicit dacă încorporaţi prezenţi la episod."
472
+
473
+ #@ powerpress
474
+ #: powerpressadmin-basic.php:237
475
+ msgid "Display Player and Links Options"
476
+ msgstr "Afişează Player şi Opţiuni Link-uri"
477
+
478
+ #@ powerpress
479
+ #: powerpressadmin-basic.php:241
480
+ msgid "No Player & Links Option"
481
+ msgstr "Nr Player &amp; Link-uri opţiunea"
482
+
483
+ #@ powerpress
484
+ #: powerpressadmin-basic.php:242
485
+ msgid "Disable media player and links on a per episode basis"
486
+ msgstr "Dezactivează media player si link-uri pe o bază per episod"
487
+
488
+ #@ powerpress
489
+ #: powerpressadmin-basic.php:244
490
+ msgid "- or -"
491
+ msgstr "- Sau -"
492
+
493
+ #@ powerpress
494
+ #: powerpressadmin-basic.php:246
495
+ msgid "No Player Option"
496
+ msgstr "Jucătorul nr Opţiunea"
497
+
498
+ #@ powerpress
499
+ #: powerpressadmin-basic.php:247
500
+ msgid "Disable media player on a per episode basis"
501
+ msgstr "Dezactivează Media Player pe un episod pe baza"
502
+
503
+ #@ powerpress
504
+ #: powerpressadmin-basic.php:249
505
+ msgid "No Links Option"
506
+ msgstr "Nr Link-uri Opţiunea"
507
+
508
+ #@ powerpress
509
+ #: powerpressadmin-basic.php:250
510
+ msgid "Disable media links on a per episode basis"
511
+ msgstr "Dezactivează link-uri mass-media pe o bază per episod"
512
+
513
+ #@ powerpress
514
+ #: powerpressadmin-basic.php:254
515
+ msgid "Video Poster Image"
516
+ msgstr "Video Poster Imagine"
517
+
518
+ #@ powerpress
519
+ #: powerpressadmin-basic.php:255
520
+ msgid "Specify URL to poster artwork specific to each episode"
521
+ msgstr "Specificaţi URL-ul pentru a opera de arta poster specifice pentru fiecare episod"
522
+
523
+ #@ powerpress
524
+ #: powerpressadmin-basic.php:257
525
+ msgid "Player Width and Height"
526
+ msgstr "Lăţime Player şi Înălţime"
527
+
528
+ #@ powerpress
529
+ #: powerpressadmin-basic.php:258
530
+ msgid "Customize player width and height on a per episode basis"
531
+ msgstr "Particularizarea lăţimea şi înălţimea jucător pe o bază per episod"
532
+
533
+ #@ powerpress
534
+ #: powerpressadmin-basic.php:260
535
+ msgid "iTunes Keywords Field"
536
+ msgstr "iTunes Cuvinte cheie câmp"
537
+
538
+ #@ powerpress
539
+ #: powerpressadmin-basic.php:261
540
+ msgid "Leave unchecked to use your blog post tags"
541
+ msgstr "Lasă necontrolate a utiliza tag-uri blog mesaj"
542
+
543
+ #@ powerpress
544
+ #: powerpressadmin-basic.php:262
545
+ msgid "iTunes Subtitle Field"
546
+ msgstr "iTunes subtitrare câmp"
547
+
548
+ #@ powerpress
549
+ #: powerpressadmin-basic.php:263
550
+ msgid "Leave unchecked to use the first 250 characters of your blog post"
551
+ msgstr "Lasă necontrolate de a utiliza primele 250 de caractere de post blog-ul dvs."
552
+
553
+ #@ powerpress
554
+ #: powerpressadmin-basic.php:264
555
+ msgid "iTunes Summary Field"
556
+ msgstr "iTunes Total câmp"
557
+
558
+ #@ powerpress
559
+ #: powerpressadmin-basic.php:265
560
+ msgid "Leave unchecked to use your blog post"
561
+ msgstr "Lasă necontrolate de a utiliza mesajul dumneavoastra pe blog"
562
+
563
+ #@ powerpress
564
+ #: powerpressadmin-basic.php:266
565
+ msgid "iTunes Author Field"
566
+ msgstr "iTunes Autor câmp"
567
+
568
+ #@ powerpress
569
+ #: powerpressadmin-basic.php:267
570
+ msgid "Leave unchecked to the post author name"
571
+ msgstr "Lăsaţi unchecked la numele autorului mesaj"
572
+
573
+ #@ powerpress
574
+ #: powerpressadmin-basic.php:268
575
+ msgid "iTunes Explicit Field"
576
+ msgstr "iTunes câmp explicită"
577
+
578
+ #@ powerpress
579
+ #: powerpressadmin-basic.php:269
580
+ msgid "Leave unchecked to use your feed's explicit setting"
581
+ msgstr "Lasă necontrolate de a utiliza setarea feed-ul dvs. explicită"
582
+
583
+ #@ powerpress
584
+ #: powerpressadmin-basic.php:271
585
+ msgid "NOTE: An invalid entry into any of the iTunes fields may cause problems with your iTunes listing. It is highly recommended that you validate your feed using feedvalidator.org everytime you modify any of the iTunes fields listed above."
586
+ msgstr "NOTĂ: O intrare nevalidă în oricare dintre domeniile iTunes poate cauza probleme cu listarea dvs. iTunes. Este foarte recomandat să vă validaţi feed-ul folosind de fiecare feedvalidator.org vă modifica oricare dintre domeniile enumerate mai sus iTunes."
587
+
588
+ #@ powerpress
589
+ #: powerpressadmin-basic.php:272
590
+ msgid "USE THE ITUNES FIELDS ABOVE AT YOUR OWN RISK."
591
+ msgstr "Utilizaţi câmpurile iTunes DE MAI SUS PE PROPRIUL RISC."
592
+
593
+ #@ powerpress
594
+ #: powerpressadmin-basic.php:301
595
+ msgid "Show Advanced Episode Entry Settings"
596
+ msgstr "Afişare Setări avansate Episodul intrare"
597
+
598
+ #@ powerpress
599
+ #: powerpressadmin-basic.php:307
600
+ msgid "Default Media URL"
601
+ msgstr "URL-ul implicit mass-media"
602
+
603
+ #@ powerpress
604
+ #: powerpressadmin-basic.php:310
605
+ msgid "e.g. http://example.com/mediafolder/"
606
+ msgstr "de exemplu, http://example.com/mediafolder/"
607
+
608
+ #@ powerpress
609
+ #: powerpressadmin-basic.php:311
610
+ msgid "URL above will prefix entered file names that do not start with 'http://'. URL above must end with a trailing slash. You may leave blank if you always enter the complete URL to your media when creating podcast episodes."
611
+ msgstr "URL-ul de mai sus vor prefixul înscrise nume de fişiere care nu încep cu &quot;http://&quot;. URL-ul de mai sus trebuie să se termine cu un slash de final. Puteţi lăsa necompletat dacă introduceţi întotdeauna URL-ul complet la mass-media atunci când crearea de episoade podcast."
612
+
613
+ #@ powerpress
614
+ #: powerpressadmin-basic.php:322
615
+ msgid "File Size Default"
616
+ msgstr "Dimensiune implicită"
617
+
618
+ #@ powerpress
619
+ #: powerpressadmin-basic.php:326
620
+ #: powerpressadmin-metabox.php:223
621
+ msgid "Auto detect file size"
622
+ msgstr "Detectaţi automat Dimensiune"
623
+
624
+ #@ powerpress
625
+ #: powerpressadmin-basic.php:326
626
+ #: powerpressadmin-basic.php:342
627
+ msgid "User specify"
628
+ msgstr "Ghid de utilizare specifica"
629
+
630
+ #@ powerpress
631
+ #: powerpressadmin-basic.php:332
632
+ msgid "specify default file size option when creating a new episode"
633
+ msgstr "specificaţi dimensiunea fişierului implicit opţiune atunci când creaţi un nou episod"
634
+
635
+ #@ powerpress
636
+ #: powerpressadmin-basic.php:338
637
+ msgid "Duration Default"
638
+ msgstr "Durata Implicit"
639
+
640
+ #@ powerpress
641
+ #: powerpressadmin-basic.php:342
642
+ #: powerpressadmin-metabox.php:238
643
+ msgid "Auto detect duration (mp3's only)"
644
+ msgstr "Detectaţi automat durata (numai mp3)"
645
+
646
+ #@ powerpress
647
+ #: powerpressadmin-basic.php:342
648
+ msgid "Not specified (not recommended)"
649
+ msgstr "Nu este specificat (nu se recomandă)"
650
+
651
+ #@ powerpress
652
+ #: powerpressadmin-basic.php:348
653
+ msgid "specify default duration option when creating a new episode"
654
+ msgstr "specifica durata opţiunea implicită atunci când creaţi un nou episod"
655
+
656
+ #@ powerpress
657
+ #: powerpressadmin-basic.php:357
658
+ msgid "Auto Add Media"
659
+ msgstr "Auto Add Media"
660
+
661
+ #@ powerpress
662
+ #: powerpressadmin-basic.php:361
663
+ #: powerpressadmin-diagnostics.php:258
664
+ #: powerpressadmin-diagnostics.php:259
665
+ #: powerpressadmin-diagnostics.php:260
666
+ #: powerpressadmin-diagnostics.php:261
667
+ #: powerpressadmin-diagnostics.php:262
668
+ msgid "Disabled (default)"
669
+ msgstr "Cu handicap (implicit)"
670
+
671
+ #@ powerpress
672
+ #: powerpressadmin-basic.php:361
673
+ msgid "First media link found in post content"
674
+ msgstr "Prima legătură într-media regasesc in continutul mesaj"
675
+
676
+ #@ powerpress
677
+ #: powerpressadmin-basic.php:361
678
+ msgid "Last media link found in post content"
679
+ msgstr "Ultima legătură într-media regasesc in continutul mesaj"
680
+
681
+ #@ powerpress
682
+ #: powerpressadmin-basic.php:368
683
+ msgid "When enabled, the first or last media link found in the post content is automatically added as your podcast episode."
684
+ msgstr "Când este activat, prima sau ultima mass-media legătură într găsite în conţinutul de post este adăugată automat ca episodul de podcast."
685
+
686
+ #@ powerpress
687
+ #: powerpressadmin-basic.php:369
688
+ msgid "NOTE: Use this feature with caution. Links to media files could unintentionally become podcast episodes."
689
+ msgstr "NOTĂ: Utilizaţi această caracteristică cu precauţie. Link-uri la fişiere media ar putea să devină involuntar episoade podcast."
690
+
691
+ #@ powerpress
692
+ #: powerpressadmin-basic.php:370
693
+ msgid "WARNING: Episodes created with this feature will <u>not</u> include Duration (total play time) information."
694
+ msgstr "AVERTISMENT: Episoade create cu această caracteristică <u>nu</u> va include Durata (timpul total de joc) de informaţii."
695
+
696
+ #@ powerpress
697
+ #: powerpressadmin-basic.php:380
698
+ msgid "Podcast Permalinks"
699
+ msgstr "Podcast Permalinks"
700
+
701
+ #@ powerpress
702
+ #: powerpressadmin-basic.php:384
703
+ msgid "Default WordPress Behavior"
704
+ msgstr "Comportamentul implicit WordPress"
705
+
706
+ #@ powerpress
707
+ #: powerpressadmin-basic.php:384
708
+ msgid "Match Feed Name to Page/Category"
709
+ msgstr "Nume flux de meci la pagina / Categorie"
710
+
711
+ #@ powerpress
712
+ #: powerpressadmin-basic.php:391
713
+ #, php-format
714
+ msgid "When configured, %s/podcast/ is matched to page/category named 'podcast'."
715
+ msgstr "Atunci când este configurată,% s / podcast / se potrivesc cu pagina / categoria denumită &quot;podcast&quot;."
716
+
717
+ #@ powerpress
718
+ #: powerpressadmin-basic.php:415
719
+ msgid "PodPress Options"
720
+ msgstr "PodPress Opţiuni"
721
+
722
+ #@ powerpress
723
+ #: powerpressadmin-basic.php:420
724
+ msgid "PodPress Episodes"
725
+ msgstr "PodPress Episoade"
726
+
727
+ #@ powerpress
728
+ #: powerpressadmin-basic.php:424
729
+ msgid "Ignore"
730
+ msgstr "Ignora"
731
+
732
+ #@ powerpress
733
+ #: powerpressadmin-basic.php:424
734
+ msgid "Include in Posts and Feeds"
735
+ msgstr "Includeţi în mesaje şi Feeds"
736
+
737
+ #@ powerpress
738
+ #: powerpressadmin-basic.php:430
739
+ msgid "includes podcast episodes previously created in PodPress"
740
+ msgstr "include episoade podcast creat anterior în PodPress"
741
+
742
+ #@ powerpress
743
+ #: powerpressadmin-basic.php:437
744
+ msgid "PodPress Stats Archive"
745
+ msgstr "PodPress Statistici Arhiva"
746
+
747
+ #@ powerpress
748
+ #: powerpressadmin-basic.php:441
749
+ msgid "Hide"
750
+ msgstr "Ascunde"
751
+
752
+ #@ powerpress
753
+ #: powerpressadmin-basic.php:441
754
+ msgid "Display"
755
+ msgstr "Afişa"
756
+
757
+ #@ powerpress
758
+ #: powerpressadmin-basic.php:447
759
+ msgid "display archive of old PodPress statistics"
760
+ msgstr "afişare arhiva de statistici PodPress vechi"
761
+
762
+ #@ powerpress
763
+ #: powerpressadmin-basic.php:483
764
+ msgid "Ping iTunes requires OpenSSL in PHP. Please refer to your php.ini to enable the php_openssl module."
765
+ msgstr "ITunes Ping nevoie de OpenSSL în PHP. Vă rugăm să consultaţi php.ini pentru a activa modulul php_openssl."
766
+
767
+ #@ powerpress
768
+ #: powerpressadmin-basic.php:486
769
+ msgid "iTunes Listing Information"
770
+ msgstr "iTunes Listarea Informaţii"
771
+
772
+ #@ powerpress
773
+ #: powerpressadmin-basic.php:489
774
+ msgid "iTunes Subscription URL"
775
+ msgstr "URL-ul iTunes de abonament"
776
+
777
+ #@ powerpress
778
+ #: powerpressadmin-basic.php:498
779
+ #, php-format
780
+ msgid "e.g. %s"
781
+ msgstr "I% s"
782
+
783
+ #@ powerpress
784
+ #: powerpressadmin-basic.php:500
785
+ #, php-format
786
+ msgid "You may use the older style Subscription URL: %s"
787
+ msgstr "Puteti folosi mai mari Abonamente URL stil:% s"
788
+
789
+ #@ powerpress
790
+ #: powerpressadmin-basic.php:502
791
+ #, php-format
792
+ msgid "Click the following link to %s."
793
+ msgstr "Faceţi clic pe următorul link pentru a% s."
794
+
795
+ #@ powerpress
796
+ #: powerpressadmin-basic.php:502
797
+ msgid "Publish a Podcast on iTunes"
798
+ msgstr "Publicarea unui Podcast pe iTunes"
799
+
800
+ #@ powerpress
801
+ #: powerpressadmin-basic.php:503
802
+ msgid "iTunes will email your Subscription URL to the <em>iTunes Email</em> entered below when your podcast is accepted into the iTunes Directory."
803
+ msgstr "iTunes va trimite URL-ul de abonare la <em>e-mail iTunes</em> a intrat de mai jos atunci când podcast dumneavoastră este acceptată în directorul iTunes."
804
+
805
+ #@ powerpress
806
+ #: powerpressadmin-basic.php:506
807
+ msgid "Recommended feed to submit to iTunes: "
808
+ msgstr "Recomandat pentru hrana animalelor să prezinte iTunes:"
809
+
810
+ #@ powerpress
811
+ #: powerpressadmin-basic.php:528
812
+ msgid "Update iTunes Listing"
813
+ msgstr "Actualizare iTunes Listarea"
814
+
815
+ #@ powerpress
816
+ #: powerpressadmin-basic.php:530
817
+ msgid "This option is no longer available."
818
+ msgstr "Această opţiune nu mai este disponibil."
819
+
820
+ #@ powerpress
821
+ #: powerpressadmin-basic.php:531
822
+ #: powerpressadmin-editfeed.php:1012
823
+ msgid "Learn more:"
824
+ msgstr "Aflaţi mai multe:"
825
+
826
+ #@ powerpress
827
+ #: powerpressadmin-basic.php:531
828
+ msgid "Apple Drops iTunes Podcast Directory Update Listing/Ping (pingPodcast) Function"
829
+ msgstr "Apple a Creeaza iTunes Podcast Directory Listing Actualizaţi / Ping (pingPodcast) Funcţia"
830
+
831
+ #@ powerpress
832
+ #: powerpressadmin-basic.php:630
833
+ msgid "Integrate Blubrry Services"
834
+ msgstr "Integrarea Blubrry Servicii"
835
+
836
+ #@ powerpress
837
+ #: powerpressadmin-basic.php:630
838
+ #: powerpressadmin-basic.php:718
839
+ #: powerpressadmin-editfeed.php:567
840
+ #: powerpressadmin-editfeed.php:574
841
+ msgid "optional"
842
+ msgstr "facultativ"
843
+
844
+ #@ powerpress
845
+ #: powerpressadmin-basic.php:632
846
+ msgid "Add Blubrry Media Statistics to your WordPress dashboard."
847
+ msgstr "Adaugă Blubrry Statistică mass-media la tabloul de bord WordPress."
848
+
849
+ #@ powerpress
850
+ #: powerpressadmin-basic.php:635
851
+ msgid "Blubrry Media Hosting users can also quickly upload and publish media directly from their blog."
852
+ msgstr "Blubrry Media Hosting utilizatorii pot, de asemenea, încărca rapid şi publică, mass-media direct de pe blog-ul lor."
853
+
854
+ #@ powerpress
855
+ #: powerpressadmin-basic.php:640
856
+ msgid "Have an account on Blubrry.com?"
857
+ msgstr "Au un cont pe Blubrry.com?"
858
+
859
+ #@ powerpress
860
+ #: powerpressadmin-basic.php:643
861
+ msgid "Click here to configure your Blubrry settings"
862
+ msgstr "Faceţi clic aici pentru a configura setările Blubrry"
863
+
864
+ #@ powerpress
865
+ #: powerpressadmin-basic.php:647
866
+ msgid "Display Blubrry Media Statistics in your dashboard"
867
+ msgstr "Afişează Blubrry Media Statistică în tabloul de bord"
868
+
869
+ #@ powerpress
870
+ #: powerpressadmin-basic.php:650
871
+ msgid "Don't have an account at Blubrry.com?"
872
+ msgstr "Nu aveţi un cont la Blubrry.com?"
873
+
874
+ #@ powerpress
875
+ #: powerpressadmin-basic.php:654
876
+ #, php-format
877
+ msgid "%s offers an array of services to media creators including a %s %s. Our %s, which includes U.S. downloads, trending, exporting, is available for $5 month. Need a reliable place to host your media? %s media hosting packages start at $12. %s"
878
+ msgstr "%s oferă o gamă largă de servicii pentru a creatorilor de media, inclusiv %s %s. Noastra %s, care include descărcări SUA, trend, exportatori, este disponibil pentru $ 5 luni. Aveti nevoie de un loc de încredere pentru a găzdui media? Pachete% s mass-media ce gazduieste încep de la $ 12. %s"
879
+
880
+ #@ powerpress
881
+ #: powerpressadmin-basic.php:656
882
+ #: powerpressadmin-basic.php:784
883
+ #: powerpressadmin-basic.php:796
884
+ msgid "FREE"
885
+ msgstr "GRATUIT"
886
+
887
+ #@ powerpress
888
+ #: powerpressadmin-basic.php:657
889
+ msgid "Basic Stats Service"
890
+ msgstr "Statistici de bază de servicii"
891
+
892
+ #@ powerpress
893
+ #: powerpressadmin-basic.php:658
894
+ msgid "Premium Media Statistics"
895
+ msgstr "Premium Media Statistici"
896
+
897
+ #@ powerpress
898
+ #: powerpressadmin-basic.php:659
899
+ msgid "Blubrry Media Hosting"
900
+ msgstr "Blubrry Media Hosting"
901
+
902
+ #@ powerpress
903
+ #: powerpressadmin-basic.php:660
904
+ #: powerpressadmin.php:3041
905
+ msgid "Learn More"
906
+ msgstr "Află mai multe"
907
+
908
+ #@ powerpress
909
+ #: powerpressadmin-basic.php:718
910
+ #: powerpressadmin-editfeed.php:592
911
+ msgid "Media Statistics"
912
+ msgstr "Media Statistici"
913
+
914
+ #@ powerpress
915
+ #: powerpressadmin-basic.php:721
916
+ #: powerpressadmin-editfeed.php:594
917
+ msgid "Enter your Redirect URL issued by your media statistics service provider below."
918
+ msgstr "Înregistraţi-vă pentru Redirect URL-ul emis de către furnizorul de servicii mass-media statisticile de mai jos."
919
+
920
+ #@ powerpress
921
+ #: powerpressadmin-basic.php:728
922
+ msgid "Redirect URL 1"
923
+ msgstr "Redirect URL-ul 1"
924
+
925
+ #@ powerpress
926
+ #: powerpressadmin-basic.php:737
927
+ #: powerpressadmin-basic.php:756
928
+ msgid "Add Another Redirect"
929
+ msgstr "Adăugaţi o altă Redirect"
930
+
931
+ #@ powerpress
932
+ #: powerpressadmin-basic.php:747
933
+ msgid "Redirect URL 2"
934
+ msgstr "Redirect URL-ul 2"
935
+
936
+ #@ powerpress
937
+ #: powerpressadmin-basic.php:765
938
+ msgid "Redirect URL 3"
939
+ msgstr "Redirect URL-ul 3"
940
+
941
+ #@ powerpress
942
+ #: powerpressadmin-basic.php:780
943
+ msgid "Need a media statistics provider?"
944
+ msgstr "Aveti nevoie de un suport media furnizor de statistici?"
945
+
946
+ #@ powerpress
947
+ #: powerpressadmin-basic.php:783
948
+ #, php-format
949
+ msgid "Blubrry.com offers %s access to the best statistics!"
950
+ msgstr "Blubrry.com oferă acces% s la cele mai bune statistici!"
951
+
952
+ #@ powerpress
953
+ #: powerpressadmin-basic.php:792
954
+ msgid "Blubrry brings you the most all-inclusive digital media statistics service available. Gain unsurpassed insights into your audience. Find out who is linking to you, listener-base demographics and geographical data with worldwide mapping. Try us! You'll find our custom reports and daily email summaries are info you can trust, track and build your media program on."
955
+ msgstr "Blubrry va aduce cel mai all-inclusive, media digitale Statistica de serviciu disponibil. Obţine perspective de neegalat în audienţa. Lucruri care se conectează la tine, ascultător de bază de date demografice şi geografice cu cartografiere în toată lumea. Încercaţi-ne! Veţi găsi, de rapoartele noastre personalizate şi rezumatele de zi cu zi e-mail sunt meciului care vă puteţi baza, urmări şi de a construi programul mass-media pe."
956
+
957
+ #@ powerpress
958
+ #: powerpressadmin-basic.php:795
959
+ #, php-format
960
+ msgid "* Get %s Media Statistics by taking a few minutes and adding your podcast to Blubrry.com. What's the catch? Nothing! For many, our free service is all you will need. But if you're looking to further your abilities with media download information, we hope you consider upgrading to our paid Premium Statistics Service."
961
+ msgstr "* Ia Statistică% s mass-media de a lua o câteva minute şi adăugarea podcast dvs. pentru a Blubrry.com. Ce este de captură? Nimic! Pentru mulţi, serviciul nostru gratuit este tot ce va trebuie. Dar dacă sunteţi în căutarea de a în continuare abilităţile dumneavoastră cu mass-media descărcaţi informaţii, noi sperăm că veţi lua în considerare actualizarea la Serviciul nostru de plătit Premium Statistică."
962
+
963
+ #@ powerpress
964
+ #: powerpressadmin-basic.php:800
965
+ msgid "Sign Up Now!"
966
+ msgstr "Înscrieţi-vă acum!"
967
+
968
+ #@ powerpress
969
+ #: powerpressadmin-basic.php:801
970
+ msgid "* some restrictions apply"
971
+ msgstr "* Unele restricţii se aplică"
972
+
973
+ #@ powerpress
974
+ #: powerpressadmin-basic.php:801
975
+ msgid "learn more"
976
+ msgstr "afla mai multe"
977
+
978
+ #@ powerpress
979
+ #: powerpressadmin-basic.php:831
980
+ msgid "Default Podcast (podcast)"
981
+ msgstr "Implicit Podcast (podcast)"
982
+
983
+ #@ powerpress
984
+ #: powerpressadmin-basic.php:844
985
+ msgid "Media Appearance Settings"
986
+ msgstr "Media Aspect Setări"
987
+
988
+ #@ powerpress
989
+ #: powerpressadmin-basic.php:853
990
+ msgid "Enable PowerPress Media Players and Links"
991
+ msgstr "Activează Media Playere PowerPress şi Link-uri"
992
+
993
+ #@ powerpress
994
+ #: powerpressadmin-basic.php:853
995
+ #: powerpressadmin-basic.php:880
996
+ msgid "default"
997
+ msgstr "implicit"
998
+
999
+ #@ powerpress
1000
+ #: powerpressadmin-basic.php:856
1001
+ msgid "PowerPress will add media players and links to your site."
1002
+ msgstr "PowerPress va adăuga playere multimedia şi link-uri către site-ul tău."
1003
+
1004
+ #@ powerpress
1005
+ #: powerpressadmin-basic.php:860
1006
+ msgid "Disable PowerPress Media Players and Links"
1007
+ msgstr "Dezactivează Media Playere PowerPress şi Link-uri"
1008
+
1009
+ #@ powerpress
1010
+ #: powerpressadmin-basic.php:863
1011
+ msgid "PowerPress will <u>not</u> add any media players or media links to your site. PowerPress will only be used to add podcasting support to your feeds."
1012
+ msgstr "PowerPress <u>nu</u> se va adăuga orice media playere media sau link-uri către site-ul tau. PowerPress vor fi folosite numai pentru a adăuga suport podcasting la feed-urile."
1013
+
1014
+ #@ powerpress
1015
+ #: powerpressadmin-basic.php:873
1016
+ msgid "Blog Posts and Pages"
1017
+ msgstr "Mesaje blog şi pagini"
1018
+
1019
+ #@ powerpress
1020
+ #: powerpressadmin-basic.php:877
1021
+ msgid "Display Media & Links"
1022
+ msgstr "Media Display &amp; Link-uri"
1023
+
1024
+ #@ powerpress
1025
+ #: powerpressadmin-basic.php:880
1026
+ msgid "Below page content"
1027
+ msgstr "De mai jos conţinutul paginii"
1028
+
1029
+ #@ powerpress
1030
+ #: powerpressadmin-basic.php:883
1031
+ msgid "Player and media links will appear <u>below</u> your post and page content."
1032
+ msgstr "Player şi link-uri mass-media vor apărea <u>de mai jos</u> posta dvs. şi conţinutul paginii."
1033
+
1034
+ #@ powerpress
1035
+ #: powerpressadmin-basic.php:887
1036
+ msgid "Above page content"
1037
+ msgstr "De mai sus conţinutul paginii"
1038
+
1039
+ #@ powerpress
1040
+ #: powerpressadmin-basic.php:890
1041
+ msgid "Player and media links will appear <u>above</u> your post and page content."
1042
+ msgstr "Player şi link-uri mass-media vor apărea <u>mai sus</u> posta dvs. şi conţinutul paginii."
1043
+
1044
+ #@ powerpress
1045
+ #: powerpressadmin-basic.php:893
1046
+ msgid "Disable"
1047
+ msgstr "Dezactivează"
1048
+
1049
+ #@ powerpress
1050
+ #: powerpressadmin-basic.php:896
1051
+ msgid "Player and media links will <u>NOT</u> appear in your post and page content. Media player and links can be added manually by using the <i>shortcode</i> below."
1052
+ msgstr "Player şi link-uri mass-media <u>nu</u> vor apărea în post şi conţinutul paginii. Media player şi link-uri pot fi adăugate manual prin utilizarea <i>shortcode</i> de mai jos."
1053
+
1054
+ #@ powerpress
1055
+ #: powerpressadmin-basic.php:900
1056
+ msgid "Display media / links in:"
1057
+ msgstr "Arată media / link-uri în:"
1058
+
1059
+ #@ powerpress
1060
+ #: powerpressadmin-basic.php:900
1061
+ msgid "WordPress Excerpts"
1062
+ msgstr "Extrase WordPress"
1063
+
1064
+ #@ powerpress
1065
+ #: powerpressadmin-basic.php:900
1066
+ msgid "e.g. search results"
1067
+ msgstr "de exemplu, rezultatele de căutare"
1068
+
1069
+ #@ powerpress
1070
+ #: powerpressadmin-basic.php:906
1071
+ #: powerpressadmin-basic.php:916
1072
+ msgid "PowerPress Shortcode"
1073
+ msgstr "PowerPress shortcode"
1074
+
1075
+ #@ powerpress
1076
+ #: powerpressadmin-basic.php:909
1077
+ #, php-format
1078
+ msgid "The %s shortcode is used to position your media presentation (player and download links) exactly where you want within your post or page content."
1079
+ msgstr "Shortcode% s este utilizat pentru poziţia prezentare media (player şi linkuri de descărcare), exact acolo unde doriţi în termen de posta sau de conţinutul paginii."
1080
+
1081
+ #@ powerpress
1082
+ #: powerpressadmin-basic.php:910
1083
+ msgid "Simply insert the following code on a new line in your content."
1084
+ msgstr "Pur şi simplu introduceţi codul de mai jos pe o linie nouă în conţinut."
1085
+
1086
+ #@ powerpress
1087
+ #: powerpressadmin-basic.php:916
1088
+ #, php-format
1089
+ msgid "Please visit the %s page for additional options."
1090
+ msgstr "Vă rugăm să vizitaţi pagina pentru% s opţiuni suplimentare."
1091
+
1092
+ #@ powerpress
1093
+ #: powerpressadmin-basic.php:923
1094
+ msgid "Media Player"
1095
+ msgstr "Media Player"
1096
+
1097
+ #@ powerpress
1098
+ #: powerpressadmin-basic.php:926
1099
+ msgid "Display Player"
1100
+ msgstr "Afişează player"
1101
+
1102
+ #@ powerpress
1103
+ #: powerpressadmin-basic.php:930
1104
+ msgid "Detected mobile and tablet devices use an HTML5 player with a fallback link to download the media."
1105
+ msgstr "Dispozitivele detectate mobile şi comprimat sa folosesti un jucator HTML5 cu un link de rezervă pentru a descărca mass-media."
1106
+
1107
+ #@ powerpress
1108
+ #: powerpressadmin-basic.php:943
1109
+ msgid "Media Links"
1110
+ msgstr "Media Link-uri"
1111
+
1112
+ #@ powerpress
1113
+ #: powerpressadmin-basic.php:945
1114
+ msgid "Display Play in new Window Link"
1115
+ msgstr "Afişează Joacă în Link new Window"
1116
+
1117
+ #@ powerpress
1118
+ #: powerpressadmin-basic.php:947
1119
+ msgid "Display Download Link"
1120
+ msgstr "Afişează Link pentru Download"
1121
+
1122
+ #@ powerpress
1123
+ #: powerpressadmin-basic.php:949
1124
+ msgid "Include file size"
1125
+ msgstr "Include dimensiunea fişierului"
1126
+
1127
+ #@ powerpress
1128
+ #: powerpressadmin-basic.php:950
1129
+ msgid "Include file size and duration"
1130
+ msgstr "Include dimensiunea fişierului şi de durata"
1131
+
1132
+ #@ powerpress
1133
+ #: powerpressadmin-basic.php:952
1134
+ msgid "Display Player Embed Link"
1135
+ msgstr "Afişează player Embed Link"
1136
+
1137
+ #@ powerpress
1138
+ #: powerpressadmin-basic.php:954
1139
+ msgid "Include embed in feeds"
1140
+ msgstr "Includeţi încorporaţi în feed-uri"
1141
+
1142
+ #@ powerpress
1143
+ #: powerpressadmin-basic.php:956
1144
+ msgid "Embed option only works for Flow Player Classic and HTML5 Video player."
1145
+ msgstr "Embed opţiune funcţionează numai pentru Flow Player Classic si Video player HTML5."
1146
+
1147
+ #@ powerpress
1148
+ #: powerpressadmin-basic.php:968
1149
+ msgid "Having Theme Issues?"
1150
+ msgstr "Având în Probleme Tema?"
1151
+
1152
+ #@ powerpress
1153
+ #: powerpressadmin-basic.php:972
1154
+ msgid "No, everything is working"
1155
+ msgstr "Nu, totul este de lucru"
1156
+
1157
+ #@ powerpress
1158
+ #: powerpressadmin-basic.php:972
1159
+ msgid "Yes, please try to fix"
1160
+ msgstr "Da, vă rugăm să încercaţi să se stabilească"
1161
+
1162
+ #@ powerpress
1163
+ #: powerpressadmin-basic.php:980
1164
+ msgid "Use this option if you are having problems with the players not appearing in your pages."
1165
+ msgstr "Utilizaţi această opţiune dacă aveţi probleme cu jucătorii care nu figurează în paginile dvs.."
1166
+
1167
+ #@ powerpress
1168
+ #: powerpressadmin-basic.php:989
1169
+ msgid "Play in New Window Settings"
1170
+ msgstr "Joacă în Setări New Window"
1171
+
1172
+ #@ powerpress
1173
+ #: powerpressadmin-basic.php:994
1174
+ msgid "New Window Width"
1175
+ msgstr "New Window Lăţime"
1176
+
1177
+ #@ powerpress
1178
+ #: powerpressadmin-basic.php:998
1179
+ msgid "Width of new window (leave blank for 420 default)"
1180
+ msgstr "Latimea fereastră nouă (lasati gol pentru implicit 420)"
1181
+
1182
+ #@ powerpress
1183
+ #: powerpressadmin-basic.php:1004
1184
+ msgid "New Window Height"
1185
+ msgstr "New Window Înălţime"
1186
+
1187
+ #@ powerpress
1188
+ #: powerpressadmin-basic.php:1008
1189
+ msgid "Height of new window (leave blank for 240 default)"
1190
+ msgstr "Înălţimea fereastră nouă (lasati gol pentru 240 implicit)"
1191
+
1192
+ #@ powerpress
1193
+ #: powerpressadmin-basic.php:1015
1194
+ msgid "Media Format Settings"
1195
+ msgstr "Media Format Setări"
1196
+
1197
+ #@ powerpress
1198
+ #: powerpressadmin-basic.php:1020
1199
+ msgid "AAC Audio (.m4a)"
1200
+ msgstr "Audio AAC (. M4A)"
1201
+
1202
+ #@ powerpress
1203
+ #: powerpressadmin-basic.php:1025
1204
+ msgid "Use Flow Player Classic / HTML5 Audio player"
1205
+ msgstr "Utilizaţi player Flow Classic / HTML5 Audio player"
1206
+
1207
+ #@ powerpress
1208
+ #: powerpressadmin-basic.php:1027
1209
+ msgid "Leave this option unchecked if you want m4a chapter markers, images and information displayed."
1210
+ msgstr "Lăsaţi această opţiune nebifată dacă doriţi M4A marcaje capitol, imagini şi informaţii afişate."
1211
+
1212
+ #@ powerpress
1213
+ #: powerpressadmin-basic.php:1028
1214
+ msgid "When unchecked, m4a will be played with the quicktime video embed. Video player width/height settings apply."
1215
+ msgstr "Când unchecked, m4a vor fi jucate cu video quicktime embed. Video player lăţime / înălţime setări se aplică."
1216
+
1217
+ #@ powerpress
1218
+ #: powerpressadmin-basic.php:1046
1219
+ msgid "Blubrry PowerPress and Community Podcast"
1220
+ msgstr "Blubrry PowerPress şi comunitare Podcast"
1221
+
1222
+ #@ powerpress
1223
+ #: powerpressadmin-basic.php:1049
1224
+ msgid "Remove from dashboard"
1225
+ msgstr "Eliminaţi de la tabloul de bord"
1226
+
1227
+ #@ powerpress
1228
+ #: powerpressadmin-basic.php:1054
1229
+ msgid "Highlighted Topics"
1230
+ msgstr "Subiecte evidenţiate"
1231
+
1232
+ #@ powerpress
1233
+ #: powerpressadmin-basic.php:1069
1234
+ msgid "T.V. Settings"
1235
+ msgstr "TV Setup"
1236
+
1237
+ #@ powerpress
1238
+ #: powerpressadmin-basic.php:1073
1239
+ msgid "Parental Rating"
1240
+ msgstr "Rating-ul parental"
1241
+
1242
+ #@ powerpress
1243
+ #: powerpressadmin-basic.php:1075
1244
+ #, php-format
1245
+ msgid "A parental rating is used to display your content on %s applications available on Internet connected TV's. The TV Parental Rating applies to both audio and video media."
1246
+ msgstr "Un rating parental este utilizat pentru a afişa conţinutul dvs. cu privire la cererile% s disponibile pe Internet TV conectat. Rating-ul TV parental se aplică atât audio şi video de mass-media."
1247
+
1248
+ #@ powerpress
1249
+ #: powerpressadmin-basic.php:1077
1250
+ msgid "No rating specified"
1251
+ msgstr "Nr evaluare specificate"
1252
+
1253
+ #@ powerpress
1254
+ #: powerpressadmin-basic.php:1078
1255
+ msgid "Children of all ages"
1256
+ msgstr "Copiii de toate vârstele"
1257
+
1258
+ #@ powerpress
1259
+ #: powerpressadmin-basic.php:1079
1260
+ msgid "Children 7 years and older"
1261
+ msgstr "Copii 7 ani şi mai mari"
1262
+
1263
+ #@ powerpress
1264
+ #: powerpressadmin-basic.php:1080
1265
+ msgid "Children 7 years and older [fantasy violence]"
1266
+ msgstr "Copii 7 ani şi mai mari [violenţă fantastică]"
1267
+
1268
+ #@ powerpress
1269
+ #: powerpressadmin-basic.php:1081
1270
+ msgid "General audience"
1271
+ msgstr "General audienţă"
1272
+
1273
+ #@ powerpress
1274
+ #: powerpressadmin-basic.php:1082
1275
+ msgid "Parental guidance suggested"
1276
+ msgstr "Recomandă acordul părinţilor"
1277
+
1278
+ #@ powerpress
1279
+ #: powerpressadmin-basic.php:1083
1280
+ msgid "May be unsuitable for children under 14 years of age"
1281
+ msgstr "Pot fi nepotrivite pentru copiii sub 14 ani"
1282
+
1283
+ #@ powerpress
1284
+ #: powerpressadmin-basic.php:1084
1285
+ msgid "Mature audience - may be unsuitable for children under 17"
1286
+ msgstr "Audienţă Cuplu - pot fi nepotrivite pentru copii sub 17 ani"
1287
+
1288
+ #@ powerpress
1289
+ #: powerpressadmin-basic.php:1087
1290
+ msgid "Whether animated or live-action, the themes and elements in this program are specifically designed for a very young audience, including children from ages 2-6. These programs are not expected to frighten younger children. Examples of programs issued this rating include Sesame Street, Barney & Friends, Dora the Explorer, Go, Diego, Go! and The Backyardigans."
1291
+ msgstr "Fie animate sau live-action, teme şi elemente din acest program sunt proiectate special pentru o audienta foarte mici, inclusiv a copiilor de la varste 2-6. Aceste programe nu sunt de aşteptat să sperii copiii mai mici. Exemple de programe emise de acest rating includ Sesame Street, Barney &amp; Friends, Dora Explorer, Du-te, Diego, Go! şi Backyardigans."
1292
+
1293
+ #@ powerpress
1294
+ #: powerpressadmin-basic.php:1088
1295
+ msgid "These shows may or may not be appropriate for some children under the age of 7. This rating may include crude, suggestive humor, mild fantasy violence, or content considered too scary or controversial to be shown to children under seven. Examples include Foster's Home for Imaginary Friends, Johnny Test, and SpongeBob SquarePants."
1296
+ msgstr "Acestea prezinta pot sau nu pot fi adecvate pentru unii copii sub vârsta de 7 ani. Această evaluare poate include umor crud, sugestiv, violenţă fantastică uşoară, sau conţinut considerat prea infricosatoare sau controversate fi indicat la copii sub şapte. Exemplele includ Acasă Foster pentru prieteni imaginari, de testare Johnny, şi SpongeBob SquarePants."
1297
+
1298
+ #@ powerpress
1299
+ #: powerpressadmin-basic.php:1089
1300
+ msgid "When a show has noticeably more fantasy violence, it is assigned the TV-Y7-FV rating. Action-adventure shows such Pokemon series and the Power Rangers series are assigned a TV-Y7-FV rating."
1301
+ msgstr "Atunci când un spectacol a violenţei fantezie considerabil mai mult, i se atribuie rating-ul TV-Y7-FV. De acţiune-aventură prezinta astfel de serie Pokemon and Power Rangers seria li se atribuie o evaluare TV-Y7-FV."
1302
+
1303
+ #@ powerpress
1304
+ #: powerpressadmin-basic.php:1090
1305
+ msgid "Although this rating does not signify a program designed specifically for children, most parents may let younger children watch this program unattended. It contains little or no violence, no strong language and little or no sexual dialogue or situation. Networks that air informational, how-to content, or generally inoffensive content."
1306
+ msgstr "Deşi această evaluare nu înseamnă un program conceput special pentru copii, cele mai multe parintii pot lasa copiii mai mici, urmăriţi acest program de nesupravegheat. Acesta conţine violenţă puţin sau deloc, nici un limbaj puternic şi dialog putin sau deloc sexual sau situaţie. Retele ca aerul informaţional, cum-la conţinut, sau, în general, conţinutul inofensive."
1307
+
1308
+ #@ powerpress
1309
+ #: powerpressadmin-basic.php:1091
1310
+ msgid "This rating signifies that the program may be unsuitable for younger children without the guidance of a parent. Many parents may want to watch it with their younger children. Various game shows and most reality shows are rated TV-PG for their suggestive dialog, suggestive humor, and/or coarse language. Some prime-time sitcoms such as Everybody Loves Raymond, Fresh Prince of Bel-Air, The Simpsons, Futurama, and Seinfeld usually air with a TV-PG rating."
1311
+ msgstr "Această evaluare indică faptul că programul ar putea fi nepotrivite pentru copiii mai mici, fără îndrumarea unui părinte. Mulţi părinţi ar putea dori să-l urmăriţi cu copiii lor mai tineri. Prezinta diferite de joc şi cele mai multe reality show sunt evaluat TV-PG pentru dialogul lor sugestive, umor sugestive, şi / sau limbaj grosier. Unele sitcom-uri de prime-time, cum ar fi Everybody Loves Raymond, Fresh Prince of Bel-Air, The Simpsons, Futurama, şi, de obicei aer Seinfeld, cu un rating PG-TV."
1312
+
1313
+ #@ powerpress
1314
+ #: powerpressadmin-basic.php:1092
1315
+ msgid "Parents are strongly urged to exercise greater care in monitoring this program and are cautioned against letting children of any age watch unattended. This rating may be accompanied by any of the following sub-ratings:"
1316
+ msgstr "Părinţii sunt îndemnate cu insistenţă să acorde o atenţie mai mare în acest program de monitorizare şi sunt avertizaţi împotriva permiţându copii de orice vârstă ceas nesupravegheat. Această evaluare poate fi însoţită de oricare dintre următoarele sub-evaluări:"
1317
+
1318
+ #@ powerpress
1319
+ #: powerpressadmin-basic.php:1093
1320
+ msgid "A TV-MA rating means the program may be unsuitable for those below 17. The program may contain extreme graphic violence, strong profanity, overtly sexual dialogue, very coarse language, nudity and/or strong sexual content. The Sopranos is a popular example."
1321
+ msgstr "Un rating TV-MA înseamnă programul pot fi nepotrivite pentru cei sub 17. Programul poate conţine violenţă extremă grafic, vulgare puternic, un dialog deschis sexuale, limbaj foarte aspru, nuditate şi / sau conţinutul sexuale puternice. Clanul Soprano este un exemplu foarte popular."
1322
+
1323
+ #@ powerpress
1324
+ #: powerpressadmin-categoryfeeds.php:8
1325
+ #: powerpressadmin-categoryfeeds.php:59
1326
+ msgid "Category Name"
1327
+ msgstr "Nume categorie"
1328
+
1329
+ #@ powerpress
1330
+ #: powerpressadmin-categoryfeeds.php:9
1331
+ #: powerpressadmin-categoryfeeds.php:60
1332
+ #: powerpressadmin-customfeeds.php:9
1333
+ msgid "Slug"
1334
+ msgstr "Melc"
1335
+
1336
+ #@ powerpress
1337
+ #: powerpressadmin-categoryfeeds.php:10
1338
+ #: powerpressadmin-categoryfeeds.php:61
1339
+ #: powerpressadmin-editfeed.php:386
1340
+ msgid "Feed URL"
1341
+ msgstr "URL-ul pentru hrana animalelor"
1342
+
1343
+ #@ powerpress
1344
+ #: powerpressadmin-categoryfeeds.php:23
1345
+ msgid "Category Podcasting adds custom podcast settings to specific blog category feeds, allowing you to organize episodes by topic."
1346
+ msgstr "Podcasting Categorie adaugă setări personalizate podcast la fluxuri specifice categoria blog, permiţându-vă să organizaţi episoade de către subiect."
1347
+
1348
+ #@ powerpress
1349
+ #: powerpressadmin-categoryfeeds.php:26
1350
+ #, php-format
1351
+ msgid "If you are looking to organize episodes by file or format, please use %s."
1352
+ msgstr "Dacă sunteţi în căutarea de a organiza episoade de fişierul sau format, va rugam sa folositi% s."
1353
+
1354
+ #@ powerpress
1355
+ #: powerpressadmin-categoryfeeds.php:122
1356
+ #: powerpressadmin-customfeeds.php:116
1357
+ #: powerpressadmin-mt.php:569
1358
+ #: powerpressadmin-podpress.php:572
1359
+ #, php-format
1360
+ msgid "Edit \"%s\""
1361
+ msgstr "Edit \"%s\""
1362
+
1363
+ #@ powerpress
1364
+ #: powerpressadmin-categoryfeeds.php:124
1365
+ #: powerpressadmin-customfeeds.php:118
1366
+ #: powerpressadmin-customfeeds.php:166
1367
+ msgid "Edit"
1368
+ msgstr "Edita"
1369
+
1370
+ #@ powerpress
1371
+ #: powerpressadmin-categoryfeeds.php:125
1372
+ #, php-format
1373
+ msgid ""
1374
+ "You are about to remove podcast settings for category feed '%s'\n"
1375
+ " 'Cancel' to stop, 'OK' to delete."
1376
+ msgstr ""
1377
+ "You are about to remove podcast settings for category feed '%s'\n"
1378
+ " 'Cancel' to stop, 'OK' to delete."
1379
+
1380
+ #@ powerpress
1381
+ #: powerpressadmin-categoryfeeds.php:125
1382
+ #: powerpressadmin-metabox.php:148
1383
+ msgid "Remove"
1384
+ msgstr "Îndepărta"
1385
+
1386
+ #@ powerpress
1387
+ #: powerpressadmin-categoryfeeds.php:141
1388
+ #: powerpressadmin-customfeeds.php:139
1389
+ #, php-format
1390
+ msgid "Visit %s"
1391
+ msgstr "Viziteaza% s"
1392
+
1393
+ #@ powerpress
1394
+ #: powerpressadmin-categoryfeeds.php:143
1395
+ #: powerpressadmin-customfeeds.php:141
1396
+ msgid "Validate Feed"
1397
+ msgstr "Validare RSS"
1398
+
1399
+ #@ powerpress
1400
+ #: powerpressadmin-categoryfeeds.php:171
1401
+ msgid "Add Podcast Settings to existing Category Feed"
1402
+ msgstr "Adaugă la Setări Podcast Feed existente"
1403
+
1404
+ #@ powerpress
1405
+ #: powerpressadmin-categoryfeeds.php:179
1406
+ msgid "Category"
1407
+ msgstr "Categorie"
1408
+
1409
+ #@ powerpress
1410
+ #: powerpressadmin-categoryfeeds.php:181
1411
+ #: powerpressadmin-editfeed.php:869
1412
+ #: powerpressadmin-editfeed.php:898
1413
+ #: powerpressadmin-editfeed.php:918
1414
+ msgid "Select Category"
1415
+ msgstr "Selectaţi Categorie"
1416
+
1417
+ #@ powerpress
1418
+ #: powerpressadmin-categoryfeeds.php:187
1419
+ msgid "Add Podcast Settings to Category Feed"
1420
+ msgstr "Adaugă la Setări Podcast Feed"
1421
+
1422
+ #@ powerpress
1423
+ #: powerpressadmin-categoryfeeds.php:196
1424
+ #: powerpressadmin-customfeeds.php:202
1425
+ msgid "Example Usage"
1426
+ msgstr "Exemplu de utilizare"
1427
+
1428
+ #@ powerpress
1429
+ #: powerpressadmin-categoryfeeds.php:198
1430
+ msgid "Example 1: You have a podcast that covers two topics that sometimes share same posts and sometimes do not. Use your main podcast feed as a combined feed of both topics \tand use category feeds to distribute topic specific episodes."
1431
+ msgstr ""
1432
+
1433
+ #@ powerpress
1434
+ #: powerpressadmin-categoryfeeds.php:201
1435
+ msgid "Example 2: You want to use categories to keep episodes separate from each other. Each category can be used to distribute separate podcasts with the main podcast feed combining all categories to provide a network feed."
1436
+ msgstr "Exemplul 2: Doriţi să utilizaţi categorii pentru a păstra episoade separate unele de altele. Fiecare categorie poate fi folosit pentru a distribui podcast-uri separate cu furaje podcast-ul principal care combină toate categoriile de a furniza un flux de reţea."
1437
+
1438
+ #@ powerpress
1439
+ #: powerpressadmin-customfeeds.php:8
1440
+ msgid "Name"
1441
+ msgstr "Nume"
1442
+
1443
+ #@ powerpress
1444
+ #: powerpressadmin-customfeeds.php:10
1445
+ msgid "Episodes"
1446
+ msgstr "Episoade"
1447
+
1448
+ #@ powerpress
1449
+ #: powerpressadmin-customfeeds.php:11
1450
+ #: powerpressadmin-podpress.php:590
1451
+ #: powerpressadmin-podpress.php:595
1452
+ msgid "URL"
1453
+ msgstr "URL-ul"
1454
+
1455
+ #@ powerpress
1456
+ #: powerpressadmin-customfeeds.php:25
1457
+ msgid "Custom podcast Channels allow you to associate multiple media files and/or formats to one blog post."
1458
+ msgstr "Particularizate Canale podcast vă permit să se asocieze mai multe fişiere media şi / sau formate pentru a posta pe blog unul."
1459
+
1460
+ #@ powerpress
1461
+ #: powerpressadmin-customfeeds.php:28
1462
+ #, php-format
1463
+ msgid "If you are looking to organize episodes by topic, please use %s."
1464
+ msgstr "Dacă sunteţi în căutarea de a organiza episoade de subiect, va rugam sa folositi% s."
1465
+
1466
+ #@ powerpress
1467
+ #: powerpressadmin-customfeeds.php:29
1468
+ msgid "Category Podcast Feeds"
1469
+ msgstr "Categorie Podcast Fluxuri"
1470
+
1471
+ #@ powerpress
1472
+ #: powerpressadmin-customfeeds.php:116
1473
+ msgid "default channel"
1474
+ msgstr "implicit canal"
1475
+
1476
+ #@ powerpress
1477
+ #: powerpressadmin-customfeeds.php:119
1478
+ #, php-format
1479
+ msgid ""
1480
+ "You are about to delete feed '%s'\n"
1481
+ " 'Cancel' to stop, 'OK' to delete."
1482
+ msgstr ""
1483
+ "You are about to delete feed '%s'\n"
1484
+ " 'Cancel' to stop, 'OK' to delete."
1485
+
1486
+ #@ powerpress
1487
+ #: powerpressadmin-customfeeds.php:119
1488
+ #: powerpressadmin-jquery.php:206
1489
+ #: powerpressadmin-jquery.php:260
1490
+ msgid "Delete"
1491
+ msgstr "Şterge"
1492
+
1493
+ #@ powerpress
1494
+ #: powerpressadmin-customfeeds.php:165
1495
+ #, php-format
1496
+ msgid "Note: The default channel \"Podcast\" is currently using global PowerPress settings. Click %s to customize the default \"Podcast\" channel."
1497
+ msgstr "Notă: canalul implicit \"Podcast \". Este prezent, folosind setările globale PowerPress Faceţi clic pe %s pentru a personaliza implicit \"Podcast\" canal."
1498
+
1499
+ #@ powerpress
1500
+ #: powerpressadmin-customfeeds.php:173
1501
+ #: powerpressadmin-customfeeds.php:193
1502
+ msgid "Add Podcast Channel"
1503
+ msgstr "Adaugă Podcast canal"
1504
+
1505
+ #@ powerpress
1506
+ #: powerpressadmin-customfeeds.php:182
1507
+ msgid "Feed Name"
1508
+ msgstr "Nume flux"
1509
+
1510
+ #@ powerpress
1511
+ #: powerpressadmin-customfeeds.php:184
1512
+ msgid "The name is used for use within the administration area only."
1513
+ msgstr "Numele este utilizat pentru utilizare în zona de administrare numai."
1514
+
1515
+ #@ powerpress
1516
+ #: powerpressadmin-customfeeds.php:188
1517
+ msgid "Feed Slug"
1518
+ msgstr "Furaje Slug"
1519
+
1520
+ #@ powerpress
1521
+ #: powerpressadmin-customfeeds.php:190
1522
+ msgid "The &#8220;slug&#8221; is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens."
1523
+ msgstr "&quot;Slug&quot; este versiunea URL-friendly a numelui. Acesta este, de obicei, toate cu litere mici şi conţine numai litere, numere, şi cratime."
1524
+
1525
+ #@ powerpress
1526
+ #: powerpressadmin-customfeeds.php:204
1527
+ msgid "Example 1: You want to distribute both an mp3 and an ogg version of your podcast. Use the default podcast channel for your mp3 media and create a custom channel for your ogg media."
1528
+ msgstr "Exemplul 1: Vrei sa distribui atât un mp3 si o versiune a fişierelor ogg podcast dumneavoastră. Utilizaţi canal podcast-ul implicit pentru mass-media ta mp3 şi a crea un canal personalizat pentru media ogg."
1529
+
1530
+ #@ powerpress
1531
+ #: powerpressadmin-customfeeds.php:207
1532
+ msgid "Example 2: You have a video podcast with multiple file formats. Use the default podcast channel for the main media that you want to appear on your blog (e.g. m4v). Create additional channels for the remaining formats (e.g. wmv, mov, mpeg)."
1533
+ msgstr "Exemplul 2: Aveţi un podcast video cu mai multe formate de fişier. Utilizaţi canal podcast-ul implicit pentru mass-media principale pe care doriţi să apară pe blog-ul dvs. (de exemplu, m4v). Creaţi canale suplimentare pentru formatele rămase (de exemplu, wmv, mov, mpeg)."
1534
+
1535
+ #@ powerpress
1536
+ #: powerpressadmin-customfeeds.php:210
1537
+ msgid "Example 3: You create two versions of your podcast, a 20 minute summary and a full 2 hour episode. Use the default channel for your 20 minute summary episodes and create a new custom channel for your full length episodes."
1538
+ msgstr "Exemplul 3: creaţi două versiuni ale podcast-ul tău, un rezumat 20 minute şi un plin 2 episod oră. Utilizaţi canalul implicit pentru 20 de episoade rezumat minute şi de a crea un nou canal personalizat pentru episoade dumneavoastră toată lungimea."
1539
+
1540
+ #@ powerpress
1541
+ #: powerpressadmin-dashboard.php:112
1542
+ #, php-format
1543
+ msgid "Wait a sec! This feature is only available to Blubrry Podcast Community members. Join our community to get free podcast statistics and access to other valuable %s."
1544
+ msgstr "Stai o secundă! Această caracteristică este disponibilă numai pentru Blubrry podcast membrilor Comunităţii. Alăturaţi-vă comunităţii noastre de a obţine statistici gratuit podcast-uri şi acces la alte valoroase% s."
1545
+
1546
+ #@ powerpress
1547
+ #: powerpressadmin-dashboard.php:113
1548
+ msgid "Services"
1549
+ msgstr "Servicii"
1550
+
1551
+ #@ powerpress
1552
+ #: powerpressadmin-dashboard.php:115
1553
+ #, php-format
1554
+ msgid "Our %s integrated PowerPress makes podcast publishing simple. Check out the %s on our exciting three-step publishing system!"
1555
+ msgstr "PowerPress %s noastre integrate de mărci de publicare podcast-uri simple. Check out %s privind sistemul nostru de interesanta publicarea a trei etape!"
1556
+
1557
+ #@ powerpress
1558
+ #: powerpressadmin-dashboard.php:116
1559
+ msgid "Podcast Hosting"
1560
+ msgstr "Podcast Hosting"
1561
+
1562
+ #@ powerpress
1563
+ #: powerpressadmin-dashboard.php:117
1564
+ msgid "Video"
1565
+ msgstr "Video"
1566
+
1567
+ #@ powerpress
1568
+ #: powerpressadmin-dashboard.php:128
1569
+ msgid "Error: An error occurred authenticating user."
1570
+ msgstr "Eroare: A apărut o eroare ghidul de autentificare."
1571
+
1572
+ #@ powerpress
1573
+ #: powerpressadmin-dashboard.php:140
1574
+ msgid "Blubrry Media statistics"
1575
+ msgstr "Blubrry Media statisticile"
1576
+
1577
+ #@ powerpress
1578
+ #: powerpressadmin-dashboard.php:140
1579
+ #: powerpressadmin-editfeed.php:879
1580
+ msgid "more"
1581
+ msgstr "mai mult"
1582
+
1583
+ #@ powerpress
1584
+ #: powerpressadmin-dashboard.php:189
1585
+ msgid "Blubrry PowerPress & Community Podcast"
1586
+ msgstr "Blubrry PowerPress &amp; Comunităţii Podcast"
1587
+
1588
+ #@ powerpress
1589
+ #: powerpressadmin-dashboard.php:192
1590
+ msgid "Blubrry Podcast Statistics"
1591
+ msgstr "Blubrry Podcast Statistici"
1592
+
1593
+ #@ powerpress
1594
+ #: powerpressadmin-diagnostics.php:23
1595
+ msgid "Your web server supports the PHP cURL library."
1596
+ msgstr "Server-ul dvs. web acceptă biblioteca PHP cURL."
1597
+
1598
+ #@ powerpress
1599
+ #: powerpressadmin-diagnostics.php:25
1600
+ msgid "Your web server is also configured with the php.ini setting 'allow_url_fopen' enabled, but the cURL library takes precedence."
1601
+ msgstr "Serverul dvs. de web este, de asemenea, configurat cu activarea &quot;allow_url_fopen&quot; setarea php.ini, dar biblioteca cURL are prioritate."
1602
+
1603
+ #@ powerpress
1604
+ #: powerpressadmin-diagnostics.php:30
1605
+ msgid "Warning: Both php.ini settings 'safe_mode' and 'open_basedir' will prevent the cURL library from following redirects in URLs."
1606
+ msgstr "Atenţie: Ambele setări php.ini &quot;safe_mode&quot; şi &quot;open_basedir&quot; va împiedica bibliotecă cURL de la următorul text redirecţionează în URL-uri."
1607
+
1608
+ #@ powerpress
1609
+ #: powerpressadmin-diagnostics.php:35
1610
+ msgid "Warning: The php.ini setting 'safe_mode' will prevent the cURL library from following redirects in URLs."
1611
+ msgstr "Atenţie: setări în php.ini &quot;safe_mode&quot; va împiedica bibliotecă cURL de la următorul text redirecţionează în URL-uri."
1612
+
1613
+ #@ powerpress
1614
+ #: powerpressadmin-diagnostics.php:40
1615
+ msgid "Warning: The php.ini setting 'open_basedir' will prevent the cURL library from following redirects in URLs."
1616
+ msgstr "Atenţie: setări în php.ini &quot;open_basedir&quot; va împiedica bibliotecă cURL de la următorul text redirecţionează în URL-uri."
1617
+
1618
+ #@ powerpress
1619
+ #: powerpressadmin-diagnostics.php:45
1620
+ msgid "Your web server is configured with the php.ini setting 'allow_url_fopen' enabled."
1621
+ msgstr "Serverul dvs. de web este configurat cu activarea &quot;allow_url_fopen&quot; setarea php.ini."
1622
+
1623
+ #@ powerpress
1624
+ #: powerpressadmin-diagnostics.php:50
1625
+ msgid "Your server must either have the php.ini setting 'allow_url_fopen' enabled or have the PHP cURL library installed in order to detect media information."
1626
+ msgstr "Serverul dvs. trebuie să fie setarea php.ini &quot;allow_url_fopen&quot;, au activat sau PHP cURL bibliotecă instalate în scopul de a detecta informaţiile media."
1627
+
1628
+ #@ powerpress
1629
+ #: powerpressadmin-diagnostics.php:71
1630
+ msgid "The problem with 'Detecting Media Information' above needs to be resolved for this test to continue."
1631
+ msgstr "Problema cu nevoile &quot;Detectarea mass-media de informare&quot; de mai sus să fie rezolvate pentru acest test pentru a continua."
1632
+
1633
+ #@ powerpress
1634
+ #: powerpressadmin-diagnostics.php:75
1635
+ #: powerpressadmin-diagnostics.php:84
1636
+ msgid "Your web server supports secure HTTPS connections."
1637
+ msgstr "Server-ul dvs. web acceptă conexiuni securizate HTTPS."
1638
+
1639
+ #@ powerpress
1640
+ #: powerpressadmin-diagnostics.php:80
1641
+ msgid "Your web server's cURL library does not support secure HTTPS connections."
1642
+ msgstr "Biblioteca server-ul dvs. de web cURL nu are suport pentru conexiuni securizate HTTPS."
1643
+
1644
+ #@ powerpress
1645
+ #: powerpressadmin-diagnostics.php:89
1646
+ msgid "Pinging iTunes requires the PHP OpenSSL library to be installed."
1647
+ msgstr "ITunes ping necesită PHP OpenSSL bibliotecă pentru a fi instalate."
1648
+
1649
+ #@ powerpress
1650
+ #: powerpressadmin-diagnostics.php:108
1651
+ msgid "Your server requires the php.ini setting 'file_uploads' enabled in order to upload podcast artwork."
1652
+ msgstr "Serverul dvs. necesită &quot;file_uploads&quot; setarea php.ini activat pentru a încărca podcast opera de arta."
1653
+
1654
+ #@ powerpress
1655
+ #: powerpressadmin-diagnostics.php:116
1656
+ #, php-format
1657
+ msgid "Unable to create directory %s. Is its parent directory writable by the server?"
1658
+ msgstr "Nu se poate crea directorul% s. Culegere de-mamă a acesteia este scris de server?"
1659
+
1660
+ #@ powerpress
1661
+ #: powerpressadmin-diagnostics.php:123
1662
+ #, php-format
1663
+ msgid "PowerPress is unable to write to the %s directory."
1664
+ msgstr "PowerPress este în imposibilitatea de a scrie în directorul% s."
1665
+
1666
+ #@ powerpress
1667
+ #: powerpressadmin-diagnostics.php:128
1668
+ msgid "You are able to upload and save artwork images for your podcasts."
1669
+ msgstr "Sunteţi capabil să încarce şi să salvaţi imagini opera de arta pentru podcast-urile dumneavoastră."
1670
+
1671
+ #@ powerpress
1672
+ #: powerpressadmin-diagnostics.php:137
1673
+ msgid "An error occurred obtaining the uploads directory from WordPress."
1674
+ msgstr "A apărut o eroare obţinerea imagini directorul de la WordPress."
1675
+
1676
+ #@ powerpress
1677
+ #: powerpressadmin-diagnostics.php:166
1678
+ #, php-format
1679
+ msgid "Your version of PHP (%s) is OK!"
1680
+ msgstr "Versiunea dvs. de PHP (% s) este în regulă!"
1681
+
1682
+ #@ powerpress
1683
+ #: powerpressadmin-diagnostics.php:170
1684
+ #, php-format
1685
+ msgid "Your version of PHP (%s) is OK, though PHP 5.2 or newer is recommended."
1686
+ msgstr "Versiunea dvs. de PHP (% s) este în regulă, deşi PHP 5.2 sau mai nou, se recomandă."
1687
+
1688
+ #@ powerpress
1689
+ #: powerpressadmin-diagnostics.php:174
1690
+ #, php-format
1691
+ msgid "Your version of PHP (%s) will work, but PHP 5.2 or newer is recommended."
1692
+ msgstr "Versiunea dvs. de PHP (% s) va funcţiona, dar PHP 5.2 sau mai nou, se recomandă."
1693
+
1694
+ #@ powerpress
1695
+ #: powerpressadmin-diagnostics.php:182
1696
+ msgid "Your scripts have no limit to the amount of memory they can use."
1697
+ msgstr "Script-urile nu au nici o limită la suma de memorie le poate folosi."
1698
+
1699
+ #@ powerpress
1700
+ #: powerpressadmin-diagnostics.php:192
1701
+ #, php-format
1702
+ msgid "You are using %d%% (%.01fM of %.01dM) of available memory."
1703
+ msgstr "Sunteţi Folosesti %d%% (%.01fM of %.01dM) de memorie disponibil."
1704
+
1705
+ #@ powerpress
1706
+ #: powerpressadmin-diagnostics.php:199
1707
+ #, php-format
1708
+ msgid "You are using %d%% (%.01fM of %dM) of available memory. Versions of PHP 5.2 or newer will give you a more accurate total of memory usage."
1709
+ msgstr "Sunteţi Folosesti %d%% (%.01fM of %dM) de memorie disponibil. Versiunile de PHP 5.2 sau mai nouă vă va oferi un total mai exactă de utilizare a memoriei."
1710
+
1711
+ #@ powerpress
1712
+ #: powerpressadmin-diagnostics.php:203
1713
+ #, php-format
1714
+ msgid "Your scripts have a total of %dM."
1715
+ msgstr "Script-urile au un total de% dM."
1716
+
1717
+ #@ powerpress
1718
+ #: powerpressadmin-diagnostics.php:209
1719
+ msgid "Warning:"
1720
+ msgstr "Atenţie:"
1721
+
1722
+ #@ powerpress
1723
+ #: powerpressadmin-diagnostics.php:211
1724
+ #, php-format
1725
+ msgid "We recommend that you have at least %dM (4M more that what is currently used) or more memory to accomodate all of your installed plugins."
1726
+ msgstr "Vă recomandăm să aveţi cel puţin% dM (4M mai mult că ceea ce este utilizat în prezent) sau mai multă memorie pentru a se potrivi toate de plugin-uri instalate."
1727
+
1728
+ #@ powerpress
1729
+ #: powerpressadmin-diagnostics.php:217
1730
+ #: powerpressadmin-diagnostics.php:226
1731
+ #: powerpressadmin-jquery.php:427
1732
+ msgid "Error:"
1733
+ msgstr "Eroare:"
1734
+
1735
+ #@ powerpress
1736
+ #: powerpressadmin-diagnostics.php:217
1737
+ msgid "No temporary directory available."
1738
+ msgstr "Nici un director temporar disponibile."
1739
+
1740
+ #@ powerpress
1741
+ #: powerpressadmin-diagnostics.php:221
1742
+ #, php-format
1743
+ msgid "Temporary directory %s is writable."
1744
+ msgstr "Temporare% s director are permisiuni de scriere."
1745
+
1746
+ #@ powerpress
1747
+ #: powerpressadmin-diagnostics.php:226
1748
+ #, php-format
1749
+ msgid "Temporary directory %s is not writable."
1750
+ msgstr "Temporare% s director nu poate fi scris."
1751
+
1752
+ #@ powerpress
1753
+ #: powerpressadmin-diagnostics.php:234
1754
+ #, php-format
1755
+ msgid "Diagnostic results sent to %s."
1756
+ msgstr "Rezultatele de diagnosticare a trimis la% s."
1757
+
1758
+ #@ powerpress
1759
+ #: powerpressadmin-diagnostics.php:244
1760
+ msgid "Blog Title:"
1761
+ msgstr "Blog Titlu:"
1762
+
1763
+ #@ powerpress
1764
+ #: powerpressadmin-diagnostics.php:245
1765
+ msgid "Blog URL:"
1766
+ msgstr "Blog URL:"
1767
+
1768
+ #@ powerpress
1769
+ #: powerpressadmin-diagnostics.php:246
1770
+ msgid "WordPress Version:"
1771
+ msgstr "WordPress Versiune:"
1772
+
1773
+ #@ powerpress
1774
+ #: powerpressadmin-diagnostics.php:248
1775
+ msgid "WordPress MU Version:"
1776
+ msgstr "WordPress MU Versiune:"
1777
+
1778
+ #@ powerpress
1779
+ #: powerpressadmin-diagnostics.php:249
1780
+ msgid "System:"
1781
+ msgstr "Sistem:"
1782
+
1783
+ #@ powerpress
1784
+ #: powerpressadmin-diagnostics.php:250
1785
+ msgid "Safe node:"
1786
+ msgstr "În condiţii de siguranţă nod:"
1787
+
1788
+ #@ powerpress
1789
+ #: powerpressadmin-diagnostics.php:251
1790
+ msgid "Open basedir:"
1791
+ msgstr "Deschis basedir:"
1792
+
1793
+ #@ powerpress
1794
+ #: powerpressadmin-diagnostics.php:255
1795
+ msgid "Important PowerPress Settings"
1796
+ msgstr "Setări importante PowerPress"
1797
+
1798
+ #@ powerpress
1799
+ #: powerpressadmin-diagnostics.php:256
1800
+ msgid "PowerPress version:"
1801
+ msgstr "PowerPress Versiune:"
1802
+
1803
+ #@ powerpress
1804
+ #: powerpressadmin-diagnostics.php:257
1805
+ msgid "episode box file size/duration fields:"
1806
+ msgstr "episod fişier Mărime cutie / Durata domenii:"
1807
+
1808
+ #@ powerpress
1809
+ #: powerpressadmin-diagnostics.php:257
1810
+ msgid "yes"
1811
+ msgstr "da"
1812
+
1813
+ #@ powerpress
1814
+ #: powerpressadmin-diagnostics.php:257
1815
+ msgid "no"
1816
+ msgstr "nu"
1817
+
1818
+ #@ powerpress
1819
+ #: powerpressadmin-diagnostics.php:258
1820
+ msgid "Podcasting capability:"
1821
+ msgstr "Podcasting capacitatea de:"
1822
+
1823
+ #@ powerpress
1824
+ #: powerpressadmin-diagnostics.php:258
1825
+ #: powerpressadmin-diagnostics.php:259
1826
+ #: powerpressadmin-diagnostics.php:260
1827
+ #: powerpressadmin-diagnostics.php:261
1828
+ #: powerpressadmin-diagnostics.php:262
1829
+ msgid "Enabled"
1830
+ msgstr "Activat"
1831
+
1832
+ #@ powerpress
1833
+ #: powerpressadmin-diagnostics.php:259
1834
+ msgid "Feed capability:"
1835
+ msgstr "Capacitatea de furaje:"
1836
+
1837
+ #@ powerpress
1838
+ #: powerpressadmin-diagnostics.php:260
1839
+ msgid "Category Podcasting:"
1840
+ msgstr "Categorie Podcasting:"
1841
+
1842
+ #@ powerpress
1843
+ #: powerpressadmin-diagnostics.php:261
1844
+ msgid "Podcast Channels:"
1845
+ msgstr "Podcast Canale:"
1846
+
1847
+ #@ powerpress
1848
+ #: powerpressadmin-diagnostics.php:262
1849
+ msgid "Additional Player Options:"
1850
+ msgstr "Opţiuni suplimentare Player:"
1851
+
1852
+ #@ powerpress
1853
+ #: powerpressadmin-diagnostics.php:266
1854
+ #: powerpressadmin-diagnostics.php:401
1855
+ msgid "Detecting Media Information"
1856
+ msgstr "Detectarea mass-media de informare"
1857
+
1858
+ #@ powerpress
1859
+ #: powerpressadmin-diagnostics.php:267
1860
+ #: powerpressadmin-diagnostics.php:285
1861
+ #: powerpressadmin-diagnostics.php:294
1862
+ msgid "success:"
1863
+ msgstr "succes:"
1864
+
1865
+ #@ powerpress
1866
+ #: powerpressadmin-diagnostics.php:268
1867
+ #: powerpressadmin-diagnostics.php:295
1868
+ msgid "warning:"
1869
+ msgstr "de avertizare:"
1870
+
1871
+ #@ powerpress
1872
+ #: powerpressadmin-diagnostics.php:269
1873
+ msgid "allow_url_fopen:"
1874
+ msgstr "allow_url_fopen:"
1875
+
1876
+ #@ powerpress
1877
+ #: powerpressadmin-diagnostics.php:270
1878
+ msgid "curl:"
1879
+ msgstr "curl:"
1880
+
1881
+ #@ powerpress
1882
+ #: powerpressadmin-diagnostics.php:271
1883
+ #: powerpressadmin-diagnostics.php:289
1884
+ #: powerpressadmin-diagnostics.php:300
1885
+ msgid "message:"
1886
+ msgstr "mesaj:"
1887
+
1888
+ #@ powerpress
1889
+ #: powerpressadmin-diagnostics.php:272
1890
+ #: powerpressadmin-diagnostics.php:301
1891
+ msgid "message 2:"
1892
+ msgstr "Mesajul 2:"
1893
+
1894
+ #@ powerpress
1895
+ #: powerpressadmin-diagnostics.php:284
1896
+ #: powerpressadmin-diagnostics.php:441
1897
+ msgid "Uploading Artwork"
1898
+ msgstr "Încărcarea Creatie"
1899
+
1900
+ #@ powerpress
1901
+ #: powerpressadmin-diagnostics.php:286
1902
+ msgid "file_uploads:"
1903
+ msgstr "file_uploads:"
1904
+
1905
+ #@ powerpress
1906
+ #: powerpressadmin-diagnostics.php:287
1907
+ msgid "writable:"
1908
+ msgstr "scriere:"
1909
+
1910
+ #@ powerpress
1911
+ #: powerpressadmin-diagnostics.php:288
1912
+ msgid "upload_path:"
1913
+ msgstr "upload_path:"
1914
+
1915
+ #@ powerpress
1916
+ #: powerpressadmin-diagnostics.php:293
1917
+ #: powerpressadmin-diagnostics.php:454
1918
+ msgid "System Information"
1919
+ msgstr "Sistemul de Informaţii"
1920
+
1921
+ #@ powerpress
1922
+ #: powerpressadmin-diagnostics.php:296
1923
+ msgid "php_version:"
1924
+ msgstr "php_version:"
1925
+
1926
+ #@ powerpress
1927
+ #: powerpressadmin-diagnostics.php:297
1928
+ msgid "memory_limit:"
1929
+ msgstr "memory_limit:"
1930
+
1931
+ #@ powerpress
1932
+ #: powerpressadmin-diagnostics.php:298
1933
+ msgid "memory_used:"
1934
+ msgstr "memory_used:"
1935
+
1936
+ #@ powerpress
1937
+ #: powerpressadmin-diagnostics.php:299
1938
+ msgid "temp directory:"
1939
+ msgstr "Temperatura director:"
1940
+
1941
+ #@ powerpress
1942
+ #: powerpressadmin-diagnostics.php:302
1943
+ msgid "message 3:"
1944
+ msgstr "Mesajul 3:"
1945
+
1946
+ #@ powerpress
1947
+ #: powerpressadmin-diagnostics.php:308
1948
+ msgid "Active Plugins"
1949
+ msgstr "Plugin-uri active"
1950
+
1951
+ #@ powerpress
1952
+ #: powerpressadmin-diagnostics.php:313
1953
+ msgid "Title:"
1954
+ msgstr "Titlu:"
1955
+
1956
+ #@ powerpress
1957
+ #: powerpressadmin-diagnostics.php:314
1958
+ msgid "Relative Path:"
1959
+ msgstr "Cale relativă:"
1960
+
1961
+ #@ powerpress
1962
+ #: powerpressadmin-diagnostics.php:315
1963
+ msgid "Version:"
1964
+ msgstr "Versiune:"
1965
+
1966
+ #@ powerpress
1967
+ #: powerpressadmin-diagnostics.php:316
1968
+ msgid "Web Site:"
1969
+ msgstr "Site-ul web:"
1970
+
1971
+ #@ powerpress
1972
+ #: powerpressadmin-diagnostics.php:337
1973
+ #, php-format
1974
+ msgid "Blubrry PowerPress diagnostic results for %s"
1975
+ msgstr "Blubrry PowerPress rezultate de diagnostic pentru% s"
1976
+
1977
+ #@ powerpress
1978
+ #: powerpressadmin-diagnostics.php:355
1979
+ #: powerpressadmin-find-replace.php:318
1980
+ msgid "Success"
1981
+ msgstr "Succes"
1982
+
1983
+ #@ powerpress
1984
+ #: powerpressadmin-diagnostics.php:360
1985
+ #: powerpressadmin-find-replace.php:323
1986
+ msgid "Failed"
1987
+ msgstr "A eşuat"
1988
+
1989
+ #@ powerpress
1990
+ #: powerpressadmin-diagnostics.php:366
1991
+ msgid "Warning"
1992
+ msgstr "Avertizare"
1993
+
1994
+ #@ powerpress
1995
+ #: powerpressadmin-diagnostics.php:386
1996
+ msgid "Blubrry PowerPress Diagnostics"
1997
+ msgstr "Blubrry PowerPress Diagnostics"
1998
+
1999
+ #@ powerpress
2000
+ #: powerpressadmin-diagnostics.php:388
2001
+ #: powerpressadmin-tools.php:193
2002
+ msgid "The Diagnostics page checks to see if your server is configured to support all of the available features in Blubrry PowerPress."
2003
+ msgstr "Pagina Diagnostice controale pentru a vedea dacă serverul dvs. este configurat pentru a sprijini toate caracteristicile disponibile în PowerPress Blubrry."
2004
+
2005
+ #@ powerpress
2006
+ #: powerpressadmin-diagnostics.php:395
2007
+ msgid "Diagnostics Email Message"
2008
+ msgstr "Diagnostice Email Mesaj"
2009
+
2010
+ #@ powerpress
2011
+ #: powerpressadmin-diagnostics.php:403
2012
+ msgid "The following test checks to see if your web server can make connections with other web servers to obtain file size and media duration information. The test checks to see if either the PHP cURL library is installed or the php.ini setting 'allow_url_fopen' enabled."
2013
+ msgstr "Următorul test verifică pentru a vedea dacă serverul dvs. Web pot face conexiuni cu alte servere web pentru a obţine dimensiunea fişierului şi de durata de informare mass-media. Test verifică pentru a vedea dacă fie PHP cURL biblioteca este instalat sau &quot;allow_url_fopen&quot; setarea php.ini activată."
2014
+
2015
+ #@ powerpress
2016
+ #: powerpressadmin-diagnostics.php:415
2017
+ msgid "If you are still having problems detecting media information, check with your web hosting provider if there is a firewall blocking your server."
2018
+ msgstr "Dacă aveţi în continuare probleme de detectare a mass-media informaţii, verificaţi cu furnizorul Dvs. de gazduire, dacă există un paravan de protecţie blochează serverul tau."
2019
+
2020
+ #@ powerpress
2021
+ #: powerpressadmin-diagnostics.php:417
2022
+ #: powerpressadmin-diagnostics.php:434
2023
+ msgid "Contact your web hosting provider with the information above."
2024
+ msgstr "A lua legatura cu furnizorul Dvs. de gazduire web cu informaţiile de mai sus."
2025
+
2026
+ #@ powerpress
2027
+ #: powerpressadmin-diagnostics.php:424
2028
+ msgid "Pinging iTunes"
2029
+ msgstr "ITunes ping"
2030
+
2031
+ #@ powerpress
2032
+ #: powerpressadmin-diagnostics.php:425
2033
+ msgid "The following test checks to see that your web server can make connections with Apple's secure ping server."
2034
+ msgstr "Testul următoarele controale pentru a vedea că serverul dvs. Web pot face conexiuni cu serverul Apple ping securizat."
2035
+
2036
+ #@ powerpress
2037
+ #: powerpressadmin-diagnostics.php:442
2038
+ msgid "The following test checks to see that you can upload and store files on your web server."
2039
+ msgstr "Testul următoarele controale pentru a vedea pe care le puteţi încărca şi stoca fişiere pe serverul dvs. Web."
2040
+
2041
+ #@ powerpress
2042
+ #: powerpressadmin-diagnostics.php:455
2043
+ msgid "The following test checks your version of PHP, memory usage and temporary directory access."
2044
+ msgstr "Următorul test verifică versiunea dumneavoastră a PHP, utilizarea de memorie şi acces director temporar."
2045
+
2046
+ #@ default
2047
+ #: powerpressadmin-diagnostics.php:462
2048
+ #, php-format
2049
+ msgid "WordPress Version %s"
2050
+ msgstr "WordPress Versiunea% s"
2051
+
2052
+ #@ powerpress
2053
+ #: powerpressadmin-diagnostics.php:467
2054
+ msgid "Contact your web hosting provider to inquire how to increase the PHP memory limit on your web server."
2055
+ msgstr "A lua legatura cu furnizorul Dvs. de gazduire web pentru a întreba cum de a creşte limita de memorie PHP pe serverul dvs. Web."
2056
+
2057
+ #@ powerpress
2058
+ #: powerpressadmin-diagnostics.php:481
2059
+ msgid "Email Results"
2060
+ msgstr "Rezultate e-mail"
2061
+
2062
+ #@ powerpress
2063
+ #: powerpressadmin-diagnostics.php:482
2064
+ msgid "Send the results above to the specified Email address."
2065
+ msgstr "Trimite rezultatele de mai sus la adresa e-mail specificată."
2066
+
2067
+ #@ powerpress
2068
+ #: powerpressadmin-diagnostics.php:486
2069
+ msgid "Email"
2070
+ msgstr "E-mail"
2071
+
2072
+ #@ powerpress
2073
+ #: powerpressadmin-diagnostics.php:497
2074
+ msgid "Include list of active plugins in diagnostics results."
2075
+ msgstr "Include lista de plugin-uri active în rezultatele de diagnosticare."
2076
+
2077
+ #@ powerpress
2078
+ #: powerpressadmin-editfeed.php:10
2079
+ msgid "Afrikaans"
2080
+ msgstr "Afrikaans"
2081
+
2082
+ #@ powerpress
2083
+ #: powerpressadmin-editfeed.php:11
2084
+ msgid "Albanian"
2085
+ msgstr "Albanez"
2086
+
2087
+ #@ powerpress
2088
+ #: powerpressadmin-editfeed.php:12
2089
+ msgid "Arabic"
2090
+ msgstr "Limba arabă"
2091
+
2092
+ #@ powerpress
2093
+ #: powerpressadmin-editfeed.php:13
2094
+ msgid "Arabic (Saudi Arabia)"
2095
+ msgstr "Arabă (Arabia Saudită)"
2096
+
2097
+ #@ powerpress
2098
+ #: powerpressadmin-editfeed.php:14
2099
+ msgid "Arabic (Egypt)"
2100
+ msgstr "Arabă (Egipt)"
2101
+
2102
+ #@ powerpress
2103
+ #: powerpressadmin-editfeed.php:15
2104
+ msgid "Arabic (Algeria)"
2105
+ msgstr "Arabă (Algeria)"
2106
+
2107
+ #@ powerpress
2108
+ #: powerpressadmin-editfeed.php:16
2109
+ msgid "Arabic (Tunisia)"
2110
+ msgstr "Arabă (Tunisia)"
2111
+
2112
+ #@ powerpress
2113
+ #: powerpressadmin-editfeed.php:17
2114
+ msgid "Arabic (Yemen)"
2115
+ msgstr "Arabă (Yemen)"
2116
+
2117
+ #@ powerpress
2118
+ #: powerpressadmin-editfeed.php:18
2119
+ msgid "Arabic (Jordan)"
2120
+ msgstr "Arabă (Iordania)"
2121
+
2122
+ #@ powerpress
2123
+ #: powerpressadmin-editfeed.php:19
2124
+ msgid "Arabic (Kuwait)"
2125
+ msgstr "Arabă (Kuweit)"
2126
+
2127
+ #@ powerpress
2128
+ #: powerpressadmin-editfeed.php:20
2129
+ msgid "Arabic (Bahrain)"
2130
+ msgstr "Arabă (Bahrain)"
2131
+
2132
+ #@ powerpress
2133
+ #: powerpressadmin-editfeed.php:21
2134
+ msgid "Basque"
2135
+ msgstr "Basc"
2136
+
2137
+ #@ powerpress
2138
+ #: powerpressadmin-editfeed.php:22
2139
+ msgid "Belarusian"
2140
+ msgstr "Belarus"
2141
+
2142
+ #@ powerpress
2143
+ #: powerpressadmin-editfeed.php:23
2144
+ msgid "Bulgarian"
2145
+ msgstr "Limba bulgară"
2146
+
2147
+ #@ powerpress
2148
+ #: powerpressadmin-editfeed.php:24
2149
+ msgid "Catalan"
2150
+ msgstr "Catalan"
2151
+
2152
+ #@ powerpress
2153
+ #: powerpressadmin-editfeed.php:25
2154
+ msgid "Chinese (Simplified)"
2155
+ msgstr "Chineză (simplificată)"
2156
+
2157
+ #@ powerpress
2158
+ #: powerpressadmin-editfeed.php:26
2159
+ msgid "Chinese (Traditional)"
2160
+ msgstr "Chineză (tradiţională)"
2161
+
2162
+ #@ powerpress
2163
+ #: powerpressadmin-editfeed.php:27
2164
+ msgid "Croatian"
2165
+ msgstr "Croat"
2166
+
2167
+ #@ powerpress
2168
+ #: powerpressadmin-editfeed.php:28
2169
+ msgid "Czech"
2170
+ msgstr "Ceh"
2171
+
2172
+ #@ powerpress
2173
+ #: powerpressadmin-editfeed.php:29
2174
+ msgid "Danish"
2175
+ msgstr "Danez"
2176
+
2177
+ #@ powerpress
2178
+ #: powerpressadmin-editfeed.php:30
2179
+ msgid "Dutch"
2180
+ msgstr "Olandez"
2181
+
2182
+ #@ powerpress
2183
+ #: powerpressadmin-editfeed.php:31
2184
+ msgid "Dutch (Belgium)"
2185
+ msgstr "Olandeză (Belgia)"
2186
+
2187
+ #@ powerpress
2188
+ #: powerpressadmin-editfeed.php:32
2189
+ msgid "Dutch (Netherlands)"
2190
+ msgstr "Olandeză (Ţările de Jos)"
2191
+
2192
+ #@ powerpress
2193
+ #: powerpressadmin-editfeed.php:33
2194
+ msgid "English"
2195
+ msgstr "Englez"
2196
+
2197
+ #@ powerpress
2198
+ #: powerpressadmin-editfeed.php:34
2199
+ msgid "English (Australia)"
2200
+ msgstr "Engleză (Australia)"
2201
+
2202
+ #@ powerpress
2203
+ #: powerpressadmin-editfeed.php:35
2204
+ msgid "English (Belize)"
2205
+ msgstr "Engleză (Belize)"
2206
+
2207
+ #@ powerpress
2208
+ #: powerpressadmin-editfeed.php:36
2209
+ msgid "English (Canada)"
2210
+ msgstr "Engleză (Canada)"
2211
+
2212
+ #@ powerpress
2213
+ #: powerpressadmin-editfeed.php:37
2214
+ msgid "English (Ireland)"
2215
+ msgstr "Engleză (Irlanda)"
2216
+
2217
+ #@ powerpress
2218
+ #: powerpressadmin-editfeed.php:38
2219
+ msgid "English (Jamaica)"
2220
+ msgstr "Engleză (Jamaica)"
2221
+
2222
+ #@ powerpress
2223
+ #: powerpressadmin-editfeed.php:39
2224
+ msgid "English (New Zealand)"
2225
+ msgstr "Engleză (Noua Zeelandă)"
2226
+
2227
+ #@ powerpress
2228
+ #: powerpressadmin-editfeed.php:40
2229
+ msgid "English (Phillipines)"
2230
+ msgstr "Engleză (Filipine)"
2231
+
2232
+ #@ powerpress
2233
+ #: powerpressadmin-editfeed.php:41
2234
+ msgid "English (South Africa)"
2235
+ msgstr "Engleză (Africa de Sud)"
2236
+
2237
+ #@ powerpress
2238
+ #: powerpressadmin-editfeed.php:42
2239
+ msgid "English (Trinidad)"
2240
+ msgstr "Engleză (Trinidad)"
2241
+
2242
+ #@ powerpress
2243
+ #: powerpressadmin-editfeed.php:43
2244
+ msgid "English (United Kingdom)"
2245
+ msgstr "Engleză (Marea Britanie)"
2246
+
2247
+ #@ powerpress
2248
+ #: powerpressadmin-editfeed.php:44
2249
+ msgid "English (United States)"
2250
+ msgstr "Engleză (Statele Unite)"
2251
+
2252
+ #@ powerpress
2253
+ #: powerpressadmin-editfeed.php:45
2254
+ msgid "English (Zimbabwe)"
2255
+ msgstr "Engleză (Zimbabwe)"
2256
+
2257
+ #@ powerpress
2258
+ #: powerpressadmin-editfeed.php:46
2259
+ msgid "Estonian"
2260
+ msgstr "Limba estonă"
2261
+
2262
+ #@ powerpress
2263
+ #: powerpressadmin-editfeed.php:47
2264
+ msgid "Faeroese"
2265
+ msgstr "Feroeză"
2266
+
2267
+ #@ powerpress
2268
+ #: powerpressadmin-editfeed.php:48
2269
+ msgid "Finnish"
2270
+ msgstr "Finlandeză"
2271
+
2272
+ #@ powerpress
2273
+ #: powerpressadmin-editfeed.php:49
2274
+ msgid "French"
2275
+ msgstr "Franceză"
2276
+
2277
+ #@ powerpress
2278
+ #: powerpressadmin-editfeed.php:50
2279
+ msgid "French (Belgium)"
2280
+ msgstr "Franceză (Belgia)"
2281
+
2282
+ #@ powerpress
2283
+ #: powerpressadmin-editfeed.php:51
2284
+ msgid "French (Canada)"
2285
+ msgstr "Franceză (Canada)"
2286
+
2287
+ #@ powerpress
2288
+ #: powerpressadmin-editfeed.php:52
2289
+ msgid "French (France)"
2290
+ msgstr "Franceză (Franţa)"
2291
+
2292
+ #@ powerpress
2293
+ #: powerpressadmin-editfeed.php:53
2294
+ msgid "French (Luxembourg)"
2295
+ msgstr "Franceză (Luxemburg)"
2296
+
2297
+ #@ powerpress
2298
+ #: powerpressadmin-editfeed.php:54
2299
+ msgid "French (Monaco)"
2300
+ msgstr "Franceză (Monaco)"
2301
+
2302
+ #@ powerpress
2303
+ #: powerpressadmin-editfeed.php:55
2304
+ msgid "French (Switzerland)"
2305
+ msgstr "Franceză (Elveţia)"
2306
+
2307
+ #@ powerpress
2308
+ #: powerpressadmin-editfeed.php:56
2309
+ msgid "Galician"
2310
+ msgstr "Galiciană"
2311
+
2312
+ #@ powerpress
2313
+ #: powerpressadmin-editfeed.php:57
2314
+ msgid "Gaelic"
2315
+ msgstr "Galic"
2316
+
2317
+ #@ powerpress
2318
+ #: powerpressadmin-editfeed.php:58
2319
+ msgid "German"
2320
+ msgstr "German"
2321
+
2322
+ #@ powerpress
2323
+ #: powerpressadmin-editfeed.php:59
2324
+ msgid "German (Austria)"
2325
+ msgstr "Germană (Austria)"
2326
+
2327
+ #@ powerpress
2328
+ #: powerpressadmin-editfeed.php:60
2329
+ msgid "German (Germany)"
2330
+ msgstr "Germană (Germania)"
2331
+
2332
+ #@ powerpress
2333
+ #: powerpressadmin-editfeed.php:61
2334
+ msgid "German (Liechtenstein)"
2335
+ msgstr "Germană (Liechtenstein)"
2336
+
2337
+ #@ powerpress
2338
+ #: powerpressadmin-editfeed.php:62
2339
+ msgid "German (Luxembourg)"
2340
+ msgstr "Germană (Luxemburg)"
2341
+
2342
+ #@ powerpress
2343
+ #: powerpressadmin-editfeed.php:63
2344
+ msgid "German (Switzerland)"
2345
+ msgstr "Germană (Elveţia)"
2346
+
2347
+ #@ powerpress
2348
+ #: powerpressadmin-editfeed.php:64
2349
+ msgid "Greek"
2350
+ msgstr "Grec"
2351
+
2352
+ #@ powerpress
2353
+ #: powerpressadmin-editfeed.php:65
2354
+ msgid "Hawaiian"
2355
+ msgstr "Hawaiian"
2356
+
2357
+ #@ powerpress
2358
+ #: powerpressadmin-editfeed.php:66
2359
+ msgid "Hungarian"
2360
+ msgstr "Limba maghiară"
2361
+
2362
+ #@ powerpress
2363
+ #: powerpressadmin-editfeed.php:67
2364
+ msgid "Icelandic"
2365
+ msgstr "Islandez"
2366
+
2367
+ #@ powerpress
2368
+ #: powerpressadmin-editfeed.php:68
2369
+ msgid "Indonesian"
2370
+ msgstr "Indoneziană"
2371
+
2372
+ #@ powerpress
2373
+ #: powerpressadmin-editfeed.php:69
2374
+ msgid "Irish"
2375
+ msgstr "Irlandez"
2376
+
2377
+ #@ powerpress
2378
+ #: powerpressadmin-editfeed.php:70
2379
+ msgid "Italian"
2380
+ msgstr "Italian"
2381
+
2382
+ #@ powerpress
2383
+ #: powerpressadmin-editfeed.php:71
2384
+ msgid "Italian (Italy)"
2385
+ msgstr "Italian (Italia)"
2386
+
2387
+ #@ powerpress
2388
+ #: powerpressadmin-editfeed.php:72
2389
+ msgid "Italian (Switzerland)"
2390
+ msgstr "Italiana (Elveţia)"
2391
+
2392
+ #@ powerpress
2393
+ #: powerpressadmin-editfeed.php:73
2394
+ msgid "Japanese"
2395
+ msgstr "Japonez"
2396
+
2397
+ #@ powerpress
2398
+ #: powerpressadmin-editfeed.php:74
2399
+ msgid "Korean"
2400
+ msgstr "Coreean"
2401
+
2402
+ #@ powerpress
2403
+ #: powerpressadmin-editfeed.php:75
2404
+ msgid "Macedonian"
2405
+ msgstr "Macedonean"
2406
+
2407
+ #@ powerpress
2408
+ #: powerpressadmin-editfeed.php:76
2409
+ msgid "Norwegian"
2410
+ msgstr "Norvegian"
2411
+
2412
+ #@ powerpress
2413
+ #: powerpressadmin-editfeed.php:77
2414
+ msgid "Polish"
2415
+ msgstr "Polonez"
2416
+
2417
+ #@ powerpress
2418
+ #: powerpressadmin-editfeed.php:78
2419
+ msgid "Portuguese"
2420
+ msgstr "Portughez"
2421
+
2422
+ #@ powerpress
2423
+ #: powerpressadmin-editfeed.php:79
2424
+ msgid "Portuguese (Brazil)"
2425
+ msgstr "Portugheză (Brazilia)"
2426
+
2427
+ #@ powerpress
2428
+ #: powerpressadmin-editfeed.php:80
2429
+ msgid "Portuguese (Portugal)"
2430
+ msgstr "Portugheză (Portugalia)"
2431
+
2432
+ #@ powerpress
2433
+ #: powerpressadmin-editfeed.php:81
2434
+ msgid "Romanian"
2435
+ msgstr "Român"
2436
+
2437
+ #@ powerpress
2438
+ #: powerpressadmin-editfeed.php:82
2439
+ msgid "Romanian (Moldova)"
2440
+ msgstr "Română (Republica Moldova)"
2441
+
2442
+ #@ powerpress
2443
+ #: powerpressadmin-editfeed.php:83
2444
+ msgid "Romanian (Romania)"
2445
+ msgstr "Română (România)"
2446
+
2447
+ #@ powerpress
2448
+ #: powerpressadmin-editfeed.php:84
2449
+ msgid "Russian"
2450
+ msgstr "Rusesc"
2451
+
2452
+ #@ powerpress
2453
+ #: powerpressadmin-editfeed.php:85
2454
+ msgid "Russian (Moldova)"
2455
+ msgstr "Rusă (Republica Moldova)"
2456
+
2457
+ #@ powerpress
2458
+ #: powerpressadmin-editfeed.php:86
2459
+ msgid "Russian (Russia)"
2460
+ msgstr "Rusă (Rusia)"
2461
+
2462
+ #@ powerpress
2463
+ #: powerpressadmin-editfeed.php:87
2464
+ msgid "Serbian"
2465
+ msgstr "Sârb"
2466
+
2467
+ #@ powerpress
2468
+ #: powerpressadmin-editfeed.php:88
2469
+ msgid "Slovak"
2470
+ msgstr "Slovac"
2471
+
2472
+ #@ powerpress
2473
+ #: powerpressadmin-editfeed.php:89
2474
+ msgid "Slovenian"
2475
+ msgstr "Sloven"
2476
+
2477
+ #@ powerpress
2478
+ #: powerpressadmin-editfeed.php:90
2479
+ msgid "Spanish"
2480
+ msgstr "Spaniol"
2481
+
2482
+ #@ powerpress
2483
+ #: powerpressadmin-editfeed.php:91
2484
+ msgid "Spanish (Argentina)"
2485
+ msgstr "Spaniolă (Argentina)"
2486
+
2487
+ #@ powerpress
2488
+ #: powerpressadmin-editfeed.php:92
2489
+ msgid "Spanish (Bolivia)"
2490
+ msgstr "Spaniolă (Bolivia)"
2491
+
2492
+ #@ powerpress
2493
+ #: powerpressadmin-editfeed.php:93
2494
+ msgid "Spanish (Chile)"
2495
+ msgstr "Spaniolă (Chile)"
2496
+
2497
+ #@ powerpress
2498
+ #: powerpressadmin-editfeed.php:94
2499
+ msgid "Spanish (Colombia)"
2500
+ msgstr "Spaniolă (Columbia)"
2501
+
2502
+ #@ powerpress
2503
+ #: powerpressadmin-editfeed.php:95
2504
+ msgid "Spanish (Costa Rica)"
2505
+ msgstr "Spaniolă (Costa Rica)"
2506
+
2507
+ #@ powerpress
2508
+ #: powerpressadmin-editfeed.php:96
2509
+ msgid "Spanish (Dominican Republic)"
2510
+ msgstr "Spaniolă (Republica Dominicană)"
2511
+
2512
+ #@ powerpress
2513
+ #: powerpressadmin-editfeed.php:97
2514
+ msgid "Spanish (Ecuador)"
2515
+ msgstr "Spaniolă (Ecuador)"
2516
+
2517
+ #@ powerpress
2518
+ #: powerpressadmin-editfeed.php:98
2519
+ msgid "Spanish (El Salvador)"
2520
+ msgstr "Spaniolă (El Salvador)"
2521
+
2522
+ #@ powerpress
2523
+ #: powerpressadmin-editfeed.php:99
2524
+ msgid "Spanish (Guatemala)"
2525
+ msgstr "Spaniolă (Guatemala)"
2526
+
2527
+ #@ powerpress
2528
+ #: powerpressadmin-editfeed.php:100
2529
+ msgid "Spanish (Honduras)"
2530
+ msgstr "Spaniolă (Honduras)"
2531
+
2532
+ #@ powerpress
2533
+ #: powerpressadmin-editfeed.php:101
2534
+ msgid "Spanish (Mexico)"
2535
+ msgstr "Spaniolă (Mexic)"
2536
+
2537
+ #@ powerpress
2538
+ #: powerpressadmin-editfeed.php:102
2539
+ msgid "Spanish (Nicaragua)"
2540
+ msgstr "Spanish (Nicaragua)"
2541
+
2542
+ #@ powerpress
2543
+ #: powerpressadmin-editfeed.php:103
2544
+ msgid "Spanish (Panama)"
2545
+ msgstr "Spaniolă (Panama)"
2546
+
2547
+ #@ powerpress
2548
+ #: powerpressadmin-editfeed.php:104
2549
+ msgid "Spanish (Paraguay)"
2550
+ msgstr "Spaniolă (Paraguay)"
2551
+
2552
+ #@ powerpress
2553
+ #: powerpressadmin-editfeed.php:105
2554
+ msgid "Spanish (Peru)"
2555
+ msgstr "Spaniolă (Peru)"
2556
+
2557
+ #@ powerpress
2558
+ #: powerpressadmin-editfeed.php:106
2559
+ msgid "Spanish (Puerto Rico)"
2560
+ msgstr "Spaniolă (Puerto Rico)"
2561
+
2562
+ #@ powerpress
2563
+ #: powerpressadmin-editfeed.php:107
2564
+ msgid "Spanish (Spain)"
2565
+ msgstr "Spaniolă (Spania)"
2566
+
2567
+ #@ powerpress
2568
+ #: powerpressadmin-editfeed.php:108
2569
+ msgid "Spanish (Uruguay)"
2570
+ msgstr "Spaniolă (Uruguay)"
2571
+
2572
+ #@ powerpress
2573
+ #: powerpressadmin-editfeed.php:109
2574
+ msgid "Spanish (Venezuela)"
2575
+ msgstr "Spaniolă (Venezuela)"
2576
+
2577
+ #@ powerpress
2578
+ #: powerpressadmin-editfeed.php:110
2579
+ msgid "Swedish"
2580
+ msgstr "Suedez"
2581
+
2582
+ #@ powerpress
2583
+ #: powerpressadmin-editfeed.php:111
2584
+ msgid "Swedish (Finland)"
2585
+ msgstr "Suedeză (Finlanda)"
2586
+
2587
+ #@ powerpress
2588
+ #: powerpressadmin-editfeed.php:112
2589
+ msgid "Swedish (Sweden)"
2590
+ msgstr "Suedeză (Suedia)"
2591
+
2592
+ #@ powerpress
2593
+ #: powerpressadmin-editfeed.php:113
2594
+ msgid "Turkish"
2595
+ msgstr "Turc"
2596
+
2597
+ #@ powerpress
2598
+ #: powerpressadmin-editfeed.php:114
2599
+ msgid "Ukranian"
2600
+ msgstr "Ucrainean"
2601
+
2602
+ #@ powerpress
2603
+ #: powerpressadmin-editfeed.php:159
2604
+ msgid "Podcast (default)"
2605
+ msgstr "Podcast (implicit)"
2606
+
2607
+ #@ powerpress
2608
+ #: powerpressadmin-editfeed.php:172
2609
+ #: powerpressadmin-editfeed.php:195
2610
+ #: powerpressadmin-editfeed.php:400
2611
+ msgid "Feed Settings"
2612
+ msgstr "Setări pentru hrana animalelor"
2613
+
2614
+ #@ powerpress
2615
+ #: powerpressadmin-editfeed.php:181
2616
+ #, php-format
2617
+ msgid "Edit Category Feed: %s"
2618
+ msgstr "Editare Feed:% s"
2619
+
2620
+ #@ powerpress
2621
+ #: powerpressadmin-editfeed.php:196
2622
+ msgid "iTunes Settings"
2623
+ msgstr "iTunes Setări"
2624
+
2625
+ #@ powerpress
2626
+ #: powerpressadmin-editfeed.php:200
2627
+ #: powerpressadmin-editfeed.php:203
2628
+ msgid "Other Settings"
2629
+ msgstr "Alte setări"
2630
+
2631
+ #@ powerpress
2632
+ #: powerpressadmin-editfeed.php:275
2633
+ msgid "Configure your custom podcast feed."
2634
+ msgstr "Configuraţi feed-ul personalizat podcast."
2635
+
2636
+ #@ powerpress
2637
+ #: powerpressadmin-editfeed.php:285
2638
+ msgid "Configure your category feed to support podcasting."
2639
+ msgstr "Configuraţi feed-ul categorie la sprijin podcasting."
2640
+
2641
+ #@ powerpress
2642
+ #: powerpressadmin-editfeed.php:299
2643
+ msgid "Enhance Feeds"
2644
+ msgstr "Consolidarea Fluxuri"
2645
+
2646
+ #@ powerpress
2647
+ #: powerpressadmin-editfeed.php:302
2648
+ msgid "Enhance All Feeds"
2649
+ msgstr "Consolidarea Toată categoria Fluxuri"
2650
+
2651
+ #@ powerpress
2652
+ #: powerpressadmin-editfeed.php:302
2653
+ msgid "Recommended"
2654
+ msgstr "Recomandat"
2655
+
2656
+ #@ powerpress
2657
+ #: powerpressadmin-editfeed.php:305
2658
+ msgid "Adds podcasting support to all feeds"
2659
+ msgstr "Adauga suport pentru podcasting toate fluxurile"
2660
+
2661
+ #@ powerpress
2662
+ #: powerpressadmin-editfeed.php:306
2663
+ msgid "Allows for Category Podcasting"
2664
+ msgstr "Permite Podcasting Categorie"
2665
+
2666
+ #@ powerpress
2667
+ #: powerpressadmin-editfeed.php:306
2668
+ msgid "Visitors may subscribe to your categories as a podcast"
2669
+ msgstr "Vizitatorii pot abona la categoriile dvs. ca un podcast"
2670
+
2671
+ #@ powerpress
2672
+ #: powerpressadmin-editfeed.php:307
2673
+ msgid "Allows for Tag/Keyword Casting"
2674
+ msgstr "Permite pentru Tag / Cuvant de turnătorie"
2675
+
2676
+ #@ powerpress
2677
+ #: powerpressadmin-editfeed.php:307
2678
+ msgid "Visitors may subscribe to your tags as a podcast"
2679
+ msgstr "Vizitatorii pot abona la etichete ca un podcast"
2680
+
2681
+ #@ powerpress
2682
+ #: powerpressadmin-editfeed.php:310
2683
+ msgid "Enhance Main Feed Only"
2684
+ msgstr "Consolidarea RSS Principalele Numai"
2685
+
2686
+ #@ powerpress
2687
+ #: powerpressadmin-editfeed.php:313
2688
+ msgid "Adds podcasting support to your main feed only"
2689
+ msgstr "Adauga suport podcasting la feed-ul dvs. principal doar"
2690
+
2691
+ #@ powerpress
2692
+ #: powerpressadmin-editfeed.php:316
2693
+ msgid "Do Not Enhance Feeds"
2694
+ msgstr "Nu contribuie Feeds"
2695
+
2696
+ #@ powerpress
2697
+ #: powerpressadmin-editfeed.php:319
2698
+ msgid "Feed Settings below will only apply to your podcast channel feeds"
2699
+ msgstr "Setări pentru hrana animalelor de mai jos se vor aplica doar pentru dvs. podcast canal feed-uri"
2700
+
2701
+ #@ powerpress
2702
+ #: powerpressadmin-editfeed.php:329
2703
+ msgid "Main Site Feed"
2704
+ msgstr "Principalele site-ului RSS"
2705
+
2706
+ #@ powerpress
2707
+ #: powerpressadmin-editfeed.php:331
2708
+ msgid "Main RSS2 Feed"
2709
+ msgstr "Principalele RSS2 RSS"
2710
+
2711
+ #@ powerpress
2712
+ #: powerpressadmin-editfeed.php:331
2713
+ msgid "Main RSS 2 Feed"
2714
+ msgstr "Principalele RSS RSS 2"
2715
+
2716
+ #@ powerpress
2717
+ #: powerpressadmin-editfeed.php:331
2718
+ #: powerpressadmin-editfeed.php:355
2719
+ #: powerpressadmin-editfeed.php:390
2720
+ #: powerpressadmin-editfeed.php:392
2721
+ msgid "validate"
2722
+ msgstr "valida"
2723
+
2724
+ #@ powerpress
2725
+ #: powerpressadmin-editfeed.php:332
2726
+ msgid "Note: We do not recommend submitting your main site feed to podcast directories such as iTunes. iTunes and many other podcast directories work best with feeds that do not have regular blog posts mixed in."
2727
+ msgstr "Nota: Noi nu recomandăm trimiterea feed-ul site-ul principal pentru a directoarele podcast-ul, cum ar fi iTunes. iTunes si multe alte directoare de podcast de lucru cel mai bine cu feed-uri care nu au posturi regulate pe blog-mixt inch"
2728
+
2729
+ #@ powerpress
2730
+ #: powerpressadmin-editfeed.php:339
2731
+ msgid "Podcast Feeds"
2732
+ msgstr "Fluxuri Podcast"
2733
+
2734
+ #@ powerpress
2735
+ #: powerpressadmin-editfeed.php:344
2736
+ msgid "Special Podcast only Feed"
2737
+ msgstr "Specială Podcast RSS numai"
2738
+
2739
+ #@ powerpress
2740
+ #: powerpressadmin-editfeed.php:357
2741
+ msgid "Edit Podcast Channel"
2742
+ msgstr "Editare Canal Podcast"
2743
+
2744
+ #@ powerpress
2745
+ #: powerpressadmin-editfeed.php:357
2746
+ msgid "edit"
2747
+ msgstr "edita"
2748
+
2749
+ #@ powerpress
2750
+ #: powerpressadmin-editfeed.php:382
2751
+ msgid "Feed Information"
2752
+ msgstr "Hranei pentru animale de informare"
2753
+
2754
+ #@ powerpress
2755
+ #: powerpressadmin-editfeed.php:409
2756
+ msgid "Feed Title"
2757
+ msgstr "Titlul furaje"
2758
+
2759
+ #@ powerpress
2760
+ #: powerpressadmin-editfeed.php:414
2761
+ msgid "leave blank to use default category title"
2762
+ msgstr "Lăsaţi necompletat pentru a utiliza categoria titlul implicit"
2763
+
2764
+ #@ powerpress
2765
+ #: powerpressadmin-editfeed.php:416
2766
+ msgid "leave blank to use blog title"
2767
+ msgstr "Lăsaţi necompletat pentru a folosi titlul de blog"
2768
+
2769
+ #@ powerpress
2770
+ #: powerpressadmin-editfeed.php:422
2771
+ msgid "Default Category title:"
2772
+ msgstr "Implicit Categorie titlu:"
2773
+
2774
+ #@ powerpress
2775
+ #: powerpressadmin-editfeed.php:424
2776
+ msgid "Blog title:"
2777
+ msgstr "Blog titlu:"
2778
+
2779
+ #@ powerpress
2780
+ #: powerpressadmin-editfeed.php:430
2781
+ msgid "Feed Description"
2782
+ msgstr "Hranei pentru animale Descriere"
2783
+
2784
+ #@ powerpress
2785
+ #: powerpressadmin-editfeed.php:435
2786
+ msgid "leave blank to use category description"
2787
+ msgstr "Lăsaţi necompletat pentru a folosi descrierea categoriei"
2788
+
2789
+ #@ powerpress
2790
+ #: powerpressadmin-editfeed.php:437
2791
+ msgid "leave blank to use blog description"
2792
+ msgstr "Lăsaţi necompletat pentru a folosi descrierea blog"
2793
+
2794
+ #@ powerpress
2795
+ #: powerpressadmin-editfeed.php:444
2796
+ msgid "Feed Landing Page URL"
2797
+ msgstr "Destinaţie Feed URL"
2798
+
2799
+ #@ powerpress
2800
+ #: powerpressadmin-editfeed.php:449
2801
+ msgid "leave blank to use category page"
2802
+ msgstr "Lăsaţi necompletat pentru a utiliza pagina categorie"
2803
+
2804
+ #@ powerpress
2805
+ #: powerpressadmin-editfeed.php:451
2806
+ msgid "leave blank to use home page"
2807
+ msgstr "Lăsaţi necompletat pentru a utiliza pagina de acasă"
2808
+
2809
+ #@ powerpress
2810
+ #: powerpressadmin-editfeed.php:454
2811
+ msgid "Category page URL"
2812
+ msgstr "Categorie Adresa URL a paginii"
2813
+
2814
+ #@ powerpress
2815
+ #: powerpressadmin-editfeed.php:463
2816
+ msgid "FeedBurner Feed URL"
2817
+ msgstr "FeedBurner Feed URL"
2818
+
2819
+ #@ powerpress
2820
+ #: powerpressadmin-editfeed.php:466
2821
+ msgid "leave blank to use current feed"
2822
+ msgstr "Lăsaţi necompletat pentru a utiliza fluxul curent"
2823
+
2824
+ #@ powerpress
2825
+ #: powerpressadmin-editfeed.php:467
2826
+ msgid "Use this option to redirect this feed to a hosted feed service such as FeedBurner."
2827
+ msgstr "Utilizaţi această opţiune pentru a redirecţiona acest flux la un serviciu gazduit pentru hrana animalelor, cum ar fi FeedBurner."
2828
+
2829
+ #@ powerpress
2830
+ #: powerpressadmin-editfeed.php:479
2831
+ msgid "Bypass Redirect URL"
2832
+ msgstr "Bypass Redirect URL"
2833
+
2834
+ #@ powerpress
2835
+ #: powerpressadmin-editfeed.php:487
2836
+ msgid "Show the most recent"
2837
+ msgstr "Arată cele mai recente"
2838
+
2839
+ #@ powerpress
2840
+ #: powerpressadmin-editfeed.php:490
2841
+ msgid "episodes / posts per feed (leave blank to use blog default"
2842
+ msgstr "episoade / mesaje pe hrană (lăsaţi necompletat pentru a utiliza implicit blog"
2843
+
2844
+ #@ powerpress
2845
+ #: powerpressadmin-editfeed.php:492
2846
+ msgid "Note: Setting above applies only to podcast channel feeds"
2847
+ msgstr "Notă: Setarea de mai sus se aplică numai pentru podcast canal feed-uri"
2848
+
2849
+ #@ powerpress
2850
+ #: powerpressadmin-editfeed.php:499
2851
+ msgid "RSS2 Image"
2852
+ msgstr "RSS2 Image"
2853
+
2854
+ #@ powerpress
2855
+ #: powerpressadmin-editfeed.php:503
2856
+ #: powerpressadmin-editfeed.php:957
2857
+ #: powerpressadmin-player-page.php:1750
2858
+ #: powerpressadmin-tags.php:144
2859
+ msgid "preview"
2860
+ msgstr "Anunţ"
2861
+
2862
+ #@ powerpress
2863
+ #: powerpressadmin-editfeed.php:505
2864
+ msgid "Place the URL to the RSS image above."
2865
+ msgstr "Publicaţi URL-ul la imagine RSS de mai sus."
2866
+
2867
+ #@ powerpress
2868
+ #: powerpressadmin-editfeed.php:505
2869
+ #: powerpressadmin-editfeed.php:959
2870
+ #: powerpressadmin-find-replace.php:230
2871
+ #: powerpressadmin-find-replace.php:238
2872
+ #: powerpressadmin-player-page.php:1752
2873
+ msgid "Example"
2874
+ msgstr "Exemplu"
2875
+
2876
+ #@ powerpress
2877
+ #: powerpressadmin-editfeed.php:506
2878
+ msgid "RSS image should be at least 88 and at most 144 pixels wide and at least 31 and at most 400 pixels high in either .gif, .jpg and .png format. A square 144 x 144 pixel image is recommended."
2879
+ msgstr "RSS imagine ar trebui să fie de cel puţin 88 şi cel mult 144 pixeli lăţime şi cel puţin 31 şi cel mult 400 pixeli mari, fie în format gif, jpg si... Png. Un pătrat 144 x 144 pixeli imagine este recomandată."
2880
+
2881
+ #@ powerpress
2882
+ #: powerpressadmin-editfeed.php:509
2883
+ #: powerpressadmin-editfeed.php:965
2884
+ #: powerpressadmin-player-page.php:1756
2885
+ #: powerpressadmin-tags.php:156
2886
+ msgid "Upload new image"
2887
+ msgstr "Încărcaţi imagine nouă"
2888
+
2889
+ #@ powerpress
2890
+ #: powerpressadmin-editfeed.php:511
2891
+ #: powerpressadmin-editfeed.php:967
2892
+ #: powerpressadmin-player-page.php:1758
2893
+ #: powerpressadmin-tags.php:158
2894
+ msgid "Choose file"
2895
+ msgstr "Alegeţi fişier"
2896
+
2897
+ #@ powerpress
2898
+ #: powerpressadmin-editfeed.php:521
2899
+ msgid "Feed Language"
2900
+ msgstr "Furaje limbă"
2901
+
2902
+ #@ powerpress
2903
+ #: powerpressadmin-editfeed.php:527
2904
+ msgid "Blog Default Language"
2905
+ msgstr "Blog limba implicită"
2906
+
2907
+ #@ powerpress
2908
+ #: powerpressadmin-editfeed.php:537
2909
+ msgid "Blog Default"
2910
+ msgstr "Blog Implicit"
2911
+
2912
+ #@ powerpress
2913
+ #: powerpressadmin-editfeed.php:544
2914
+ msgid "Copyright"
2915
+ msgstr "Drepturi de autor"
2916
+
2917
+ #@ powerpress
2918
+ #: powerpressadmin-editfeed.php:561
2919
+ msgid "Basic Show Information"
2920
+ msgstr "Afişaţi Informaţii de bază"
2921
+
2922
+ #@ powerpress
2923
+ #: powerpressadmin-editfeed.php:565
2924
+ msgid "Location"
2925
+ msgstr "Locaţie"
2926
+
2927
+ #@ powerpress
2928
+ #: powerpressadmin-editfeed.php:568
2929
+ msgid "e.g. Cleveland, Ohio"
2930
+ msgstr "de exemplu, Cleveland, Ohio"
2931
+
2932
+ #@ powerpress
2933
+ #: powerpressadmin-editfeed.php:572
2934
+ msgid "Episode Frequency"
2935
+ msgstr "Episodul frecvenţă"
2936
+
2937
+ #@ powerpress
2938
+ #: powerpressadmin-editfeed.php:575
2939
+ msgid "e.g. Weekly"
2940
+ msgstr "Reală pe săptămână"
2941
+
2942
+ #@ powerpress
2943
+ #: powerpressadmin-editfeed.php:600
2944
+ msgid "Redirect URL"
2945
+ msgstr "Redirect URL"
2946
+
2947
+ #@ powerpress
2948
+ #: powerpressadmin-editfeed.php:604
2949
+ msgid "Note: Category Media Redirect URL is applied to category feeds and pages only. The redirect will also apply to single pages if this is the only category associated with the blog post."
2950
+ msgstr "Notă: Media Categorie Redirect URL-ul este aplicat la feed-uri şi pagini categorie numai. Redirect se va aplica, de asemenea, cu pagini singur dacă aceasta este singura categorie asociate cu post pe blog."
2951
+
2952
+ #@ powerpress
2953
+ #: powerpressadmin-editfeed.php:614
2954
+ msgid "Episode Entry Box"
2955
+ msgstr "Episodul intrare Box"
2956
+
2957
+ #@ powerpress
2958
+ #: powerpressadmin-editfeed.php:618
2959
+ #: powerpressadmin-player-p