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 | 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 +0 -806
- getid3/getid3.lib.php +288 -277
- getid3/getid3.php +722 -313
- getid3/module.audio-video.quicktime.php +2134 -0
- getid3/module.audio.aac.php +515 -0
- getid3/module.audio.mp3.php +536 -457
- getid3/module.tag.apetag.php +372 -0
- getid3/module.tag.id3v1.php +362 -0
- getid3/module.tag.id3v2.php +3327 -0
- getid3/module.tag.lyrics3.php +297 -0
- languages/powerpress-da_DK.mo +0 -0
- languages/powerpress-da_DK.po +2288 -3239
- languages/powerpress-it_IT.mo +0 -0
- languages/powerpress-it_IT.po +433 -413
- languages/powerpress-ro_RO.mo +0 -0
- languages/powerpress-ro_RO.po +2959 -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, $
|
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 .= ' '.(
|
24 |
}
|
25 |
if ($spaces) {
|
26 |
$returnstring .= ' ';
|
27 |
}
|
28 |
}
|
29 |
-
if ($
|
30 |
-
$
|
|
|
|
|
|
|
31 |
}
|
32 |
return $returnstring;
|
33 |
}
|
34 |
|
35 |
-
function
|
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
|
54 |
$truncatednumber = (int) $truncatednumber;
|
55 |
}
|
56 |
return $truncatednumber;
|
57 |
}
|
58 |
|
59 |
|
60 |
-
function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
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 |
-
|
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 |
-
|
|
|
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 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
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 |
-
|
287 |
}
|
288 |
$maskbyte = (($synchsafe || $signed) ? 0x7F : 0xFF);
|
289 |
$intstring = '';
|
290 |
if ($signed) {
|
291 |
-
if ($minbytes >
|
292 |
-
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
396 |
if (strstr($filename, '.')) {
|
397 |
$reversedfilename = strrev($filename);
|
398 |
$offset = 0;
|
@@ -408,66 +441,40 @@ class getid3_lib
|
|
408 |
}
|
409 |
|
410 |
|
411 |
-
function PlaytimeString($
|
412 |
-
$sign = (($
|
413 |
-
$
|
414 |
-
$
|
415 |
-
$
|
416 |
-
|
417 |
-
|
418 |
-
$contentminutes++;
|
419 |
-
}
|
420 |
-
return $sign.intval($contentminutes).':'.str_pad($contentseconds, 2, 0, STR_PAD_LEFT);
|
421 |
}
|
422 |
|
423 |
|
424 |
-
function
|
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)) /
|
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 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
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 |
-
|
551 |
-
|
552 |
-
// sha1_file() exists in PHP 4.3.0+.
|
553 |
-
if (function_exists('sha1_file')) {
|
554 |
-
return sha1_file($file);
|
555 |
}
|
556 |
-
|
557 |
-
$
|
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 |
-
|
606 |
break;
|
607 |
}
|
608 |
$size = $end - $offset;
|
@@ -633,16 +596,23 @@ class getid3_lib
|
|
633 |
$commandline .= $unix_call;
|
634 |
|
635 |
}
|
636 |
-
if ((
|
637 |
-
|
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(
|
645 |
-
// can't find anywhere to create a temp file, just
|
646 |
return false;
|
647 |
}
|
648 |
|
@@ -650,52 +620,68 @@ class getid3_lib
|
|
650 |
$result = false;
|
651 |
|
652 |
// copy parts of file
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
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 >>
|
681 |
$newcharstring .= chr(($charval & 0x3F) | 0x80);
|
682 |
} elseif ($charval < 65536) {
|
683 |
// 1110bbbb 10bbbbbb 10bbbbbb
|
684 |
-
$newcharstring = chr(($charval >>
|
685 |
-
$newcharstring .= chr(($charval >>
|
686 |
$newcharstring .= chr(($charval & 0x3F) | 0x80);
|
687 |
} else {
|
688 |
// 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
|
689 |
-
$newcharstring = chr(($charval >>
|
690 |
-
$newcharstring .= chr(($charval >>
|
691 |
-
$newcharstring .= chr(($charval >>
|
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 |
-
|
757 |
-
|
758 |
-
|
759 |
$offset += 4;
|
760 |
} elseif ((ord($string{$offset}) | 0x0F) == 0xEF) {
|
761 |
// 1110bbbb 10bbbbbb 10bbbbbb
|
762 |
$charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) &
|
763 |
-
|
764 |
-
|
765 |
$offset += 3;
|
766 |
} elseif ((ord($string{$offset}) | 0x1F) == 0xDF) {
|
767 |
// 110bbbbb 10bbbbbb
|
768 |
$charval = ((ord($string{($offset + 0)}) & 0x1F) << 6) &
|
769 |
-
|
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 |
-
|
800 |
-
|
801 |
-
|
802 |
$offset += 4;
|
803 |
} elseif ((ord($string{$offset}) | 0x0F) == 0xEF) {
|
804 |
// 1110bbbb 10bbbbbb 10bbbbbb
|
805 |
$charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) &
|
806 |
-
|
807 |
-
|
808 |
$offset += 3;
|
809 |
} elseif ((ord($string{$offset}) | 0x1F) == 0xDF) {
|
810 |
// 110bbbbb 10bbbbbb
|
811 |
$charval = ((ord($string{($offset + 0)}) & 0x1F) << 6) &
|
812 |
-
|
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 |
-
|
843 |
-
|
844 |
-
|
845 |
$offset += 4;
|
846 |
} elseif ((ord($string{$offset}) | 0x0F) == 0xEF) {
|
847 |
// 1110bbbb 10bbbbbb 10bbbbbb
|
848 |
$charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) &
|
849 |
-
|
850 |
-
|
851 |
$offset += 3;
|
852 |
} elseif ((ord($string{$offset}) | 0x1F) == 0xDF) {
|
853 |
// 110bbbbb 10bbbbbb
|
854 |
$charval = ((ord($string{($offset + 0)}) & 0x1F) << 6) &
|
855 |
-
|
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 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
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 |
-
|
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 |
-
|
1003 |
}
|
1004 |
|
1005 |
|
1006 |
-
function MultiByteCharString2HTML($string, $charset='ISO-8859-1') {
|
|
|
1007 |
$HTMLstring = '';
|
1008 |
|
1009 |
switch ($charset) {
|
1010 |
-
case '
|
1011 |
-
case '
|
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 '
|
1023 |
-
case '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 '
|
1035 |
-
case '
|
1036 |
-
case '
|
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(
|
1156 |
-
if ($tmp =
|
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 |
-
}
|
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 |
-
$
|
|
|
1224 |
}
|
1225 |
}
|
1226 |
}
|
@@ -1228,21 +1223,31 @@ class getid3_lib
|
|
1228 |
}
|
1229 |
|
1230 |
// Copy to ['comments_html']
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
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
|
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 |
-
|
|
|
|
|
1276 |
$cache[$file][$name][$ThisKey] = trim($ThisValue);
|
1277 |
}
|
1278 |
|
1279 |
// Close and return
|
1280 |
fclose($fp);
|
1281 |
-
return
|
1282 |
}
|
1283 |
|
1284 |
-
function IncludeDependency($filename, $sourcefile, $DieOnFailure=false) {
|
1285 |
global $GETID3_ERRORARRAY;
|
1286 |
|
1287 |
if (file_exists($filename)) {
|
1288 |
-
if (
|
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 |
-
|
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('�', '', 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 |
-
//
|
13 |
-
|
14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
class getID3
|
19 |
{
|
20 |
// public: Settings
|
21 |
-
|
22 |
-
|
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 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
|
36 |
// public: Optional tag/comment calucations
|
37 |
-
|
|
|
|
|
|
|
38 |
|
39 |
// public: Optional calculations
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
|
45 |
-
//
|
46 |
-
|
47 |
|
|
|
|
|
|
|
|
|
48 |
|
49 |
-
//
|
50 |
-
|
51 |
-
|
|
|
52 |
|
53 |
-
|
54 |
-
|
|
|
55 |
|
56 |
-
|
57 |
-
|
58 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
}
|
60 |
|
61 |
// Check memory
|
62 |
-
$memory_limit = ini_get('memory_limit');
|
63 |
-
if (
|
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 <=
|
70 |
-
|
71 |
-
} elseif ($memory_limit <= 12582912) {
|
72 |
-
|
73 |
}
|
74 |
|
75 |
// Check safe_mode off
|
76 |
-
if ((
|
77 |
-
|
78 |
}
|
79 |
|
|
|
|
|
|
|
80 |
|
81 |
-
//
|
82 |
-
if (
|
83 |
-
if (
|
84 |
-
|
85 |
-
} else {
|
86 |
-
define('GETID3_OS_ISWINDOWS', false);
|
87 |
}
|
88 |
}
|
89 |
|
90 |
-
//
|
91 |
-
if (
|
92 |
-
|
93 |
-
|
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 |
-
//
|
110 |
-
//
|
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->
|
118 |
} elseif (strpos(realpath($helperappsdir), ' ') !== false) {
|
119 |
$DirPieces = explode(DIRECTORY_SEPARATOR, realpath($helperappsdir));
|
|
|
120 |
foreach ($DirPieces as $key => $value) {
|
121 |
-
if (
|
122 |
-
if (
|
123 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
}
|
125 |
-
} elseif ((strpos($value, ' ') !== false) || strlen($value) > 8) {
|
126 |
-
$value = substr($value, 0, 6).'~1';
|
127 |
}
|
128 |
-
$
|
129 |
}
|
130 |
-
$
|
131 |
}
|
132 |
-
define('GETID3_HELPERAPPSDIR',
|
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
|
145 |
continue;
|
146 |
}
|
147 |
$this->$opt = $val;
|
@@ -150,241 +248,265 @@ class getID3
|
|
150 |
}
|
151 |
|
152 |
|
153 |
-
|
154 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
155 |
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
$this->
|
161 |
-
}
|
162 |
|
163 |
-
|
164 |
-
|
165 |
-
|
|
|
|
|
|
|
|
|
166 |
|
167 |
-
|
168 |
-
|
169 |
-
|
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 |
-
|
174 |
}
|
175 |
-
return $this->error($errormessage);
|
176 |
-
}
|
177 |
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
}
|
185 |
-
}
|
186 |
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
195 |
}
|
|
|
|
|
196 |
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
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 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
}
|
245 |
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
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 |
-
|
265 |
-
|
266 |
-
|
267 |
-
return $this->error('
|
268 |
}
|
269 |
-
$tag = new getid3_id3v1($fp, $this->info);
|
270 |
-
unset($tag);
|
271 |
-
}
|
272 |
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
|
|
|
|
|
|
|
|
277 |
}
|
278 |
-
$tag = new getid3_apetag($fp, $this->info);
|
279 |
-
unset($tag);
|
280 |
-
}
|
281 |
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
|
|
|
|
|
|
|
|
286 |
}
|
287 |
-
$tag = new getid3_lyrics3($fp, $this->info);
|
288 |
-
unset($tag);
|
289 |
-
}
|
290 |
|
291 |
-
|
292 |
-
|
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 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
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 |
-
|
315 |
-
|
316 |
-
if ($determined_format['
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
|
|
|
|
|
|
321 |
}
|
322 |
-
}
|
323 |
-
|
324 |
-
// set mime type
|
325 |
-
$this->info['mime_type'] = $determined_format['mime_type'];
|
326 |
|
327 |
-
|
328 |
-
|
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 |
-
|
339 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
|
341 |
-
|
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 |
-
|
354 |
-
|
355 |
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
|
|
375 |
}
|
376 |
-
}
|
377 |
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
|
383 |
-
|
384 |
-
|
385 |
|
386 |
-
|
387 |
-
|
|
|
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 |
-
|
557 |
-
|
558 |
-
|
559 |
-
'
|
560 |
-
'
|
561 |
-
'
|
562 |
-
'
|
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' => '
|
|
|
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' => '^(
|
748 |
'group' => 'audio-video',
|
749 |
'module' => 'real',
|
750 |
'mime_type' => 'audio/x-realaudio',
|
@@ -813,9 +967,9 @@ class getID3
|
|
813 |
),
|
814 |
|
815 |
|
816 |
-
|
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
|
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 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
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('
|
953 |
$info['include'] = 'module.'.$info['group'].'.'.$info['module'].'.php';
|
954 |
return $info;
|
955 |
}
|
956 |
}
|
957 |
|
958 |
|
959 |
-
if (preg_match('
|
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' , '
|
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
|
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 (
|
1035 |
-
$
|
|
|
|
|
|
|
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('�', '', 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 ((
|
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 ((
|
1098 |
|
1099 |
-
$this->
|
1100 |
-
$this->info[$algorithm.'_data']
|
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(
|
1109 |
touch($empty);
|
1110 |
|
1111 |
-
|
1112 |
// Use vorbiscomment to make temp file without comments
|
1113 |
-
$temp = tempnam(
|
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'] =
|
1148 |
break;
|
1149 |
|
1150 |
case 'sha1':
|
1151 |
-
$this->info[$algorithm.'_data'] =
|
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'] =
|
1178 |
break;
|
1179 |
|
1180 |
case 'sha1':
|
1181 |
-
$this->info[$algorithm.'_data'] =
|
1182 |
break;
|
1183 |
}
|
1184 |
}
|
@@ -1191,9 +1421,11 @@ class getID3
|
|
1191 |
function ChannelsBitratePlaytimeCalculations() {
|
1192 |
|
1193 |
// set channelmode on audio
|
1194 |
-
if (
|
|
|
|
|
1195 |
$this->info['audio']['channelmode'] = 'mono';
|
1196 |
-
} elseif (
|
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']
|
|
|
|
|
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('�', '', 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
|
|
|
30 |
|
31 |
-
|
|
|
|
|
32 |
if ($this->allow_bruteforce) {
|
33 |
-
$
|
34 |
-
$this->getOnlyMPEGaudioInfoBruteForce($
|
35 |
}
|
36 |
}
|
37 |
|
38 |
|
39 |
-
if (isset($
|
40 |
-
$
|
41 |
}
|
42 |
|
43 |
-
if (((isset($
|
44 |
|
45 |
$synchoffsetwarning = 'Unknown data before synch ';
|
46 |
-
if (isset($
|
47 |
-
$synchoffsetwarning .= '(ID3v2 header ends at '.$
|
|
|
|
|
48 |
} else {
|
49 |
$synchoffsetwarning .= '(should be at beginning of file, ';
|
50 |
}
|
51 |
-
$synchoffsetwarning .= 'synch detected at '.$
|
52 |
-
if ($
|
53 |
|
54 |
-
if (!empty($
|
55 |
|
56 |
$synchoffsetwarning .= '. This is a known problem with some versions of LAME (3.90-3.92) DLL in CBR mode.';
|
57 |
-
$
|
58 |
$CurrentDataLAMEversionString = 'LAME3.';
|
59 |
|
60 |
-
} elseif (empty($
|
61 |
|
62 |
$synchoffsetwarning .= '. This is a known problem with some versions of LAME (3.90 - 3.92) DLL in CBR mode.';
|
63 |
-
$
|
64 |
$CurrentDataLAMEversionString = 'LAME3.';
|
65 |
|
66 |
}
|
67 |
|
68 |
}
|
69 |
-
$
|
70 |
|
71 |
}
|
72 |
|
73 |
-
if (isset($
|
74 |
-
$
|
75 |
-
if (!empty($
|
76 |
-
$
|
77 |
-
} elseif (!empty($
|
78 |
-
$
|
79 |
}
|
80 |
}
|
81 |
|
82 |
-
$CurrentDataLAMEversionString = (!empty($CurrentDataLAMEversionString) ? $CurrentDataLAMEversionString :
|
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 = $
|
93 |
-
fseek($
|
94 |
-
$PossiblyLongerLAMEversion_Data = fread($
|
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(
|
107 |
-
$
|
108 |
}
|
109 |
}
|
110 |
}
|
111 |
}
|
112 |
-
if (!empty($
|
113 |
-
$
|
114 |
}
|
115 |
|
116 |
-
switch (
|
117 |
case 1:
|
118 |
case 2:
|
119 |
-
$
|
120 |
break;
|
121 |
}
|
122 |
-
if ($
|
123 |
-
switch ($
|
124 |
case 'mp1':
|
125 |
case 'mp2':
|
126 |
case 'mp3':
|
127 |
-
$
|
128 |
break;
|
129 |
|
130 |
default:
|
131 |
-
$
|
132 |
break;
|
133 |
}
|
134 |
}
|
135 |
|
136 |
-
if (empty($
|
137 |
-
unset($
|
138 |
-
unset($
|
139 |
-
unset($
|
140 |
-
unset($
|
141 |
return false;
|
142 |
}
|
143 |
|
144 |
-
$
|
145 |
-
$
|
146 |
|
147 |
// Calculate playtime
|
148 |
-
if (!isset($
|
149 |
-
$
|
150 |
}
|
151 |
|
152 |
-
$
|
153 |
|
154 |
return true;
|
155 |
}
|
156 |
|
157 |
|
158 |
-
function GuessEncoderOptions(
|
159 |
// shortcuts
|
160 |
-
|
161 |
-
|
|
|
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 ((
|
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 ($
|
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 ($
|
256 |
|
257 |
-
$encoder_options = strtoupper($
|
258 |
|
259 |
} else {
|
260 |
|
261 |
-
$encoder_options = strtoupper($
|
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($
|
270 |
|
271 |
-
if ($
|
272 |
-
$encoder_options = strtoupper($
|
273 |
} else {
|
274 |
-
$encoder_options = strtoupper($
|
275 |
}
|
276 |
|
277 |
}
|
@@ -279,7 +285,7 @@ class getid3_mp3
|
|
279 |
$encoder_options .= ' -b'.$thisfile_mpeg_audio_lame['bitrate_min'];
|
280 |
}
|
281 |
|
282 |
-
if (
|
283 |
$encoder_options .= ' --nogap';
|
284 |
}
|
285 |
|
@@ -389,17 +395,16 @@ class getid3_mp3
|
|
389 |
}
|
390 |
}
|
391 |
}
|
392 |
-
if (empty($encoder_options) && !empty($
|
393 |
-
//$encoder_options = strtoupper($
|
394 |
-
$encoder_options = strtoupper($
|
395 |
}
|
396 |
|
397 |
return $encoder_options;
|
398 |
}
|
399 |
|
400 |
|
401 |
-
function decodeMPEGaudioHeader($
|
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
|
421 |
-
$
|
422 |
return false;
|
423 |
}
|
424 |
-
|
425 |
-
|
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($
|
454 |
-
$
|
455 |
}
|
456 |
-
$thisfile_mpeg_audio = &$
|
457 |
|
458 |
|
459 |
if ($MPEGaudioHeaderValidCache[$head4]) {
|
460 |
$thisfile_mpeg_audio['raw'] = $MPEGheaderRawArray;
|
461 |
} else {
|
462 |
-
$
|
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 |
-
$
|
482 |
-
$
|
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 |
-
$
|
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 == $
|
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 |
-
$
|
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 |
-
$
|
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 |
-
$
|
526 |
return false;
|
527 |
}
|
528 |
break;
|
@@ -532,19 +532,19 @@ class getid3_mp3
|
|
532 |
}
|
533 |
|
534 |
|
535 |
-
if ($
|
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'], $
|
537 |
}
|
538 |
|
539 |
$nextframetestoffset = $offset + 1;
|
540 |
if ($thisfile_mpeg_audio['bitrate'] != 'free') {
|
541 |
|
542 |
-
$
|
543 |
|
544 |
if (isset($thisfile_mpeg_audio['framelength'])) {
|
545 |
$nextframetestoffset = $offset + $thisfile_mpeg_audio['framelength'];
|
546 |
} else {
|
547 |
-
$
|
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 |
-
$
|
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 |
-
//$
|
657 |
-
$
|
658 |
} else {
|
659 |
// Bitrate = ((FrameLengthInBytes - Padding) * SampleRate) / 144
|
660 |
-
//$
|
661 |
-
$
|
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 |
-
$
|
763 |
}
|
764 |
-
$
|
765 |
-
$
|
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 |
-
$
|
781 |
}
|
782 |
-
$
|
783 |
-
$
|
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 |
-
$
|
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 |
-
$
|
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 (
|
879 |
$recursivesearch = false;
|
880 |
$thisfile_mpeg_audio['bitrate_mode'] = 'cbr';
|
881 |
}
|
882 |
if ($thisfile_mpeg_audio['bitrate_mode'] == 'vbr') {
|
883 |
-
$
|
884 |
}
|
885 |
}
|
886 |
|
@@ -888,62 +888,64 @@ class getid3_mp3
|
|
888 |
|
889 |
}
|
890 |
|
891 |
-
if (($ExpectedNumberOfAudioBytes > 0) && ($ExpectedNumberOfAudioBytes != ($
|
892 |
-
if ($ExpectedNumberOfAudioBytes > ($
|
893 |
-
if (($
|
894 |
-
|
|
|
|
|
895 |
} else {
|
896 |
-
$
|
897 |
}
|
898 |
} else {
|
899 |
-
if ((($
|
900 |
-
// $prenullbytefileoffset = ftell($
|
901 |
-
// fseek($
|
902 |
-
// $PossibleNullByte = fread($
|
903 |
-
// fseek($
|
904 |
// if ($PossibleNullByte === "\x00") {
|
905 |
-
$
|
906 |
-
// $
|
907 |
// } else {
|
908 |
-
// $
|
909 |
// }
|
910 |
} else {
|
911 |
-
$
|
912 |
}
|
913 |
}
|
914 |
}
|
915 |
|
916 |
-
if (($thisfile_mpeg_audio['bitrate'] == 'free') && empty($
|
917 |
-
if (($offset == $
|
918 |
-
$framebytelength =
|
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 |
-
$
|
924 |
} else {
|
925 |
// Bitrate = ((FrameLengthInBytes - Padding) * SampleRate) / 144
|
926 |
-
$
|
927 |
}
|
928 |
} else {
|
929 |
-
$
|
930 |
}
|
931 |
}
|
932 |
}
|
933 |
|
934 |
-
if (
|
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 |
-
$
|
940 |
} elseif ((($thisfile_mpeg_audio['version'] == '2') || ($thisfile_mpeg_audio['version'] == '2.5')) && ($thisfile_mpeg_audio['layer'] == 3)) {
|
941 |
-
$
|
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 |
-
$
|
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 (
|
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 < $
|
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 < $
|
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(&$
|
|
|
|
|
|
|
|
|
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) >= $
|
1074 |
// end of file
|
1075 |
return true;
|
1076 |
}
|
1077 |
|
1078 |
-
$nextframetestarray = array('error'=>'', 'warning'=>'', 'avdataend'=>$
|
1079 |
-
if (
|
1080 |
if ($ScanAsCBR) {
|
1081 |
-
// force CBR mode, used for trying to pick out invalid audio streams with
|
1082 |
-
|
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 |
-
$
|
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 |
-
$
|
1101 |
|
1102 |
return false;
|
1103 |
}
|
@@ -1105,9 +1115,11 @@ class getid3_mp3
|
|
1105 |
return true;
|
1106 |
}
|
1107 |
|
1108 |
-
function FreeFormatFrameLength($
|
1109 |
-
|
1110 |
-
|
|
|
|
|
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 |
-
$
|
1142 |
return false;
|
1143 |
} else {
|
1144 |
-
$
|
1145 |
-
$
|
1146 |
-
$
|
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 < ($
|
1157 |
-
fseek($
|
1158 |
-
$NextSyncPattern = fread($
|
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 |
-
$
|
1172 |
return false;
|
1173 |
}
|
1174 |
$nextoffset += $framelength;
|
@@ -1180,11 +1192,10 @@ class getid3_mp3
|
|
1180 |
return $framelength;
|
1181 |
}
|
1182 |
|
1183 |
-
function getOnlyMPEGaudioInfoBruteForce(
|
1184 |
-
|
1185 |
-
$
|
1186 |
-
$
|
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
|
1196 |
-
$LongMPEGlayerLookup
|
1197 |
-
$LongMPEGbitrateLookup
|
1198 |
-
$LongMPEGpaddingLookup
|
1199 |
-
$LongMPEGfrequencyLookup
|
1200 |
-
|
1201 |
-
$Distribution['
|
1202 |
-
$Distribution['
|
1203 |
-
$Distribution['
|
1204 |
-
$Distribution['
|
1205 |
-
|
1206 |
-
|
1207 |
-
fseek($
|
1208 |
-
|
1209 |
-
$
|
1210 |
-
|
|
|
|
|
|
|
1211 |
set_time_limit(30);
|
1212 |
-
$head4 = fread($
|
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($
|
1220 |
continue 2;
|
1221 |
}
|
1222 |
}
|
@@ -1244,9 +1258,9 @@ class getid3_mp3
|
|
1244 |
$LongMPEGfrequencyLookup[$head4]);
|
1245 |
}
|
1246 |
if ($MPEGaudioHeaderLengthCache[$head4] > 4) {
|
1247 |
-
$WhereWeWere = ftell($
|
1248 |
-
fseek($
|
1249 |
-
$next4 = fread($
|
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($
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1265 |
continue;
|
1266 |
}
|
1267 |
}
|
1268 |
unset($next4);
|
1269 |
-
fseek($
|
1270 |
}
|
1271 |
|
1272 |
}
|
@@ -1275,19 +1299,19 @@ class getid3_mp3
|
|
1275 |
ksort($Distribution[$key], SORT_NUMERIC);
|
1276 |
}
|
1277 |
ksort($Distribution['version'], SORT_STRING);
|
1278 |
-
$
|
1279 |
-
$
|
1280 |
-
$
|
1281 |
-
$
|
1282 |
-
$
|
1283 |
if (count($Distribution['version']) > 1) {
|
1284 |
-
$
|
1285 |
}
|
1286 |
if (count($Distribution['layer']) > 1) {
|
1287 |
-
$
|
1288 |
}
|
1289 |
if (count($Distribution['frequency']) > 1) {
|
1290 |
-
$
|
1291 |
}
|
1292 |
|
1293 |
|
@@ -1297,212 +1321,268 @@ class getid3_mp3
|
|
1297 |
$bittotal += ($bitratevalue * $bitratecount);
|
1298 |
}
|
1299 |
}
|
1300 |
-
$
|
1301 |
-
if ($
|
1302 |
-
$
|
1303 |
return false;
|
1304 |
}
|
1305 |
-
$
|
1306 |
-
$
|
1307 |
-
$
|
1308 |
|
1309 |
-
$
|
1310 |
-
$
|
1311 |
-
$
|
1312 |
-
$
|
1313 |
-
$
|
1314 |
|
1315 |
return true;
|
1316 |
}
|
1317 |
|
1318 |
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
1323 |
-
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
|
1338 |
-
|
1339 |
-
|
1340 |
-
|
1341 |
-
|
1342 |
-
|
1343 |
-
|
1344 |
-
|
1345 |
-
|
1346 |
-
|
1347 |
-
|
1348 |
-
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
|
|
|
|
|
|
1381 |
$FirstFrameAVDataOffset = $avdataoffset + $SynchSeekOffset;
|
1382 |
-
if (
|
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 = $
|
1390 |
-
if (
|
1391 |
-
$
|
1392 |
-
$
|
1393 |
-
switch ($
|
1394 |
case '':
|
1395 |
case 'id3':
|
1396 |
case 'ape':
|
1397 |
case 'mp3':
|
1398 |
-
$
|
1399 |
-
$
|
1400 |
break;
|
1401 |
}
|
1402 |
if (isset($FirstFrameThisfileInfo['mpeg']['audio']['bitrate_mode']) && ($FirstFrameThisfileInfo['mpeg']['audio']['bitrate_mode'] == 'vbr')) {
|
1403 |
-
if (!(abs($
|
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 |
-
$
|
1407 |
-
$
|
1408 |
-
$
|
1409 |
-
$
|
1410 |
-
$dummy
|
1411 |
unset($dummy['mpeg']['audio']);
|
1412 |
$GarbageOffsetStart = $FirstFrameAVDataOffset + $FirstFrameThisfileInfo['mpeg']['audio']['framelength'];
|
1413 |
$GarbageOffsetEnd = $avdataoffset + $SynchSeekOffset;
|
1414 |
-
if (
|
1415 |
-
|
1416 |
-
$
|
1417 |
-
$
|
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($
|
1428 |
// VBR file with no VBR header
|
1429 |
$BitrateHistogram = true;
|
1430 |
}
|
1431 |
|
1432 |
if ($BitrateHistogram) {
|
1433 |
|
1434 |
-
$
|
1435 |
-
$
|
1436 |
|
1437 |
-
if ($
|
1438 |
-
if ($
|
1439 |
-
$
|
1440 |
-
} elseif ($
|
1441 |
-
$
|
1442 |
-
} elseif ($
|
1443 |
-
$
|
1444 |
}
|
1445 |
-
} elseif ($
|
1446 |
-
$
|
1447 |
} else {
|
1448 |
-
$
|
1449 |
}
|
1450 |
|
1451 |
-
$dummy = array('error'=>$
|
1452 |
-
$synchstartoffset = $
|
|
|
|
|
|
|
|
|
|
|
1453 |
|
|
|
1454 |
$FastMode = false;
|
1455 |
$SynchErrorsFound = 0;
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1468 |
}
|
1469 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1470 |
if ($SynchErrorsFound > 0) {
|
1471 |
-
$
|
1472 |
//return false;
|
1473 |
}
|
1474 |
|
1475 |
$bittotal = 0;
|
1476 |
$framecounter = 0;
|
1477 |
-
foreach ($
|
1478 |
$framecounter += $bitratecount;
|
1479 |
if ($bitratevalue != 'free') {
|
1480 |
$bittotal += ($bitratevalue * $bitratecount);
|
1481 |
}
|
1482 |
}
|
1483 |
if ($framecounter == 0) {
|
1484 |
-
$
|
1485 |
return false;
|
1486 |
}
|
1487 |
-
$
|
1488 |
-
$
|
1489 |
|
1490 |
-
$
|
1491 |
|
1492 |
|
1493 |
// Definitively set VBR vs CBR, even if the Xing/LAME/VBRI header says differently
|
1494 |
$distinct_bitrates = 0;
|
1495 |
-
foreach ($
|
1496 |
if ($bitrate_count > 0) {
|
1497 |
$distinct_bitrates++;
|
1498 |
}
|
1499 |
}
|
1500 |
if ($distinct_bitrates > 1) {
|
1501 |
-
$
|
1502 |
} else {
|
1503 |
-
$
|
1504 |
}
|
1505 |
-
$
|
1506 |
|
1507 |
}
|
1508 |
|
@@ -1511,20 +1591,20 @@ class getid3_mp3
|
|
1511 |
}
|
1512 |
|
1513 |
$SynchSeekOffset++;
|
1514 |
-
if (($avdataoffset + $SynchSeekOffset) >= $
|
1515 |
// end of file/data
|
1516 |
|
1517 |
-
if (empty($
|
1518 |
|
1519 |
-
$
|
1520 |
-
if (isset($
|
1521 |
-
unset($
|
1522 |
}
|
1523 |
-
if (isset($
|
1524 |
-
unset($
|
1525 |
}
|
1526 |
-
if (isset($
|
1527 |
-
unset($
|
1528 |
}
|
1529 |
return false;
|
1530 |
|
@@ -1533,35 +1613,35 @@ class getid3_mp3
|
|
1533 |
}
|
1534 |
|
1535 |
}
|
1536 |
-
$
|
1537 |
-
$
|
1538 |
-
$
|
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 |
-
|
1557 |
-
|
1558 |
-
|
1559 |
-
|
1560 |
-
|
1561 |
-
|
1562 |
-
|
1563 |
-
|
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 |
-
|
1576 |
-
|
1577 |
-
|
1578 |
-
|
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 |
-
|
1593 |
-
|
1594 |
-
|
1595 |
-
|
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($
|
1781 |
-
static $
|
1782 |
-
static $
|
1783 |
-
$
|
1784 |
-
if (!isset($
|
1785 |
-
if ($
|
1786 |
-
$
|
1787 |
} else {
|
1788 |
-
$
|
1789 |
-
foreach ($
|
1790 |
-
$
|
1791 |
-
if ($roundbitrate >= $StandardBitrate - (($LastBitrate - $StandardBitrate) / 2)) {
|
1792 |
break;
|
1793 |
}
|
1794 |
-
$
|
1795 |
}
|
1796 |
}
|
1797 |
}
|
1798 |
-
return $
|
1799 |
}
|
1800 |
|
1801 |
-
function XingVBRidOffset($version, $channelmode) {
|
1802 |
static $XingVBRidOffsetCache = array();
|
1803 |
if (empty($XingVBRidOffset)) {
|
1804 |
$XingVBRidOffset = array (
|
1805 |
-
|
1806 |
-
|
1807 |
-
|
1808 |
-
|
1809 |
-
|
1810 |
-
|
1811 |
-
|
1812 |
-
|
1813 |
-
|
1814 |
-
|
1815 |
-
|
1816 |
-
|
1817 |
-
|
1818 |
-
|
1819 |
-
|
1820 |
-
|
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 |
-
|
1880 |
-
|
1881 |
-
|
1882 |
-
|
1883 |
-
|
1884 |
-
|
1885 |
-
|
1886 |
-
|
1887 |
-
|
1888 |
-
|
1889 |
-
|
1890 |
-
|
1891 |
-
|
1892 |
-
|
1893 |
-
|
1894 |
-
|
1895 |
-
|
1896 |
-
|
1897 |
-
|
1898 |
-
|
1899 |
-
|
1900 |
-
|
1901 |
-
|
1902 |
-
|
1903 |
-
|
1904 |
-
|
1905 |
-
|
1906 |
-
|
1907 |
-
|
1908 |
-
|
1909 |
-
|
1910 |
-
|
1911 |
-
|
1912 |
-
|
1913 |
-
|
1914 |
-
|
1915 |
-
|
1916 |
-
|
1917 |
-
|
1918 |
-
|
1919 |
-
|
1920 |
-
|
1921 |
-
|
1922 |
-
|
1923 |
-
|
1924 |
-
|
1925 |
-
|
1926 |
-
|
1927 |
-
|
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
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date:
|
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;
|
13 |
"X-Poedit-Language: Danish\n"
|
14 |
"X-Poedit-Country: DENMARK\n"
|
15 |
"X-Poedit-SourceCharset: utf-8\n"
|
16 |
-
"X-Poedit-KeywordsList: __;_e;
|
17 |
-
"X-Poedit-Basepath:
|
18 |
-
"X-Poedit-
|
19 |
-
|
20 |
-
|
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:
|
99 |
-
|
100 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
137 |
-
#:
|
138 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 "
|
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
|
175 |
-
|
176 |
-
|
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:
|
218 |
-
#@ powerpress
|
219 |
msgid "Blubrry PowerPress Settings"
|
220 |
msgstr "Blubrry PowerPress-indstillinger"
|
221 |
|
222 |
-
#: powerpressadmin-basic.php:
|
223 |
-
|
224 |
-
|
225 |
-
|
|
|
226 |
msgid "Basic Settings"
|
227 |
msgstr "Grundindstillinger"
|
228 |
|
229 |
-
#: powerpressadmin-basic.php:
|
230 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
msgid "Feeds"
|
232 |
msgstr "Feeds"
|
233 |
|
234 |
-
#: powerpressadmin-basic.php:
|
235 |
-
#: powerpressadmin.php:3156
|
236 |
-
#@ powerpress
|
237 |
msgid "iTunes"
|
238 |
msgstr "iTunes"
|
239 |
|
240 |
-
#: powerpressadmin-basic.php:
|
241 |
-
|
|
|
|
|
|
|
|
|
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-
|
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 "
|
254 |
|
255 |
-
#: powerpressadmin-basic.php:
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
|
|
|
|
|
|
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:
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
|
|
|
|
|
|
|
|
|
|
269 |
msgid "Custom Podcast Channels"
|
270 |
msgstr "Brugerdefinerede podcastkanaler"
|
271 |
|
272 |
-
#: powerpressadmin-basic.php:
|
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:
|
278 |
-
#: powerpressadmin-categoryfeeds.php:21
|
279 |
-
#: powerpressadmin.php:972
|
280 |
-
#@ powerpress
|
281 |
msgid "Category Podcasting"
|
282 |
msgstr "Kategori-podcasting"
|
283 |
|
284 |
-
#: powerpressadmin-basic.php:
|
285 |
-
#@ powerpress
|
286 |
msgid "Manage category podcast feeds."
|
287 |
msgstr "Håndtér podcastfeeds baseret på kategorier."
|
288 |
|
289 |
-
#: powerpressadmin-basic.php:
|
290 |
-
#@ powerpress
|
291 |
msgid "Like The Plugin?"
|
292 |
msgstr "Kan du lide dette plugin?"
|
293 |
|
294 |
-
#: powerpressadmin-basic.php:
|
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:
|
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:
|
306 |
-
#@ powerpress
|
307 |
msgid "WordPress Plugins Directory"
|
308 |
msgstr "WordPress' pluginmappe"
|
309 |
|
310 |
-
#: powerpressadmin-basic.php:
|
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:
|
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:
|
321 |
-
#@ powerpress
|
322 |
msgid "Twitter"
|
323 |
msgstr "Twitter"
|
324 |
|
325 |
-
#: powerpressadmin-basic.php:
|
326 |
-
#@ powerpress
|
327 |
msgid "I podcast with Blubrry PowerPress"
|
328 |
msgstr "Jeg podcaster med Blubrry PowerPress"
|
329 |
|
330 |
-
#: powerpressadmin-basic.php:
|
331 |
-
#@ powerpress
|
332 |
msgid "Facebook"
|
333 |
msgstr "Facebook"
|
334 |
|
335 |
-
#: powerpressadmin-basic.php:
|
336 |
-
#@ powerpress
|
337 |
msgid "Blubrry PowerPress Podcasting Plugin for WordPress"
|
338 |
msgstr "Blubrry PowerPress Podcasting Plugin for WordPress"
|
339 |
|
340 |
-
#: powerpressadmin-basic.php:
|
341 |
-
#@ powerpress
|
342 |
msgid "Digg"
|
343 |
msgstr "Digg"
|
344 |
|
345 |
-
#: powerpressadmin-basic.php:
|
346 |
-
#@ powerpress
|
347 |
msgid "Send us feedback"
|
348 |
msgstr "Send os feedback"
|
349 |
|
350 |
-
#: powerpressadmin-basic.php:
|
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:
|
356 |
-
#@ powerpress
|
357 |
msgid "Episode Entry Options"
|
358 |
msgstr "Indstillinger for indtastning af episode"
|
359 |
|
360 |
-
#: powerpressadmin-basic.php:
|
361 |
-
|
362 |
-
|
363 |
-
msgstr "Standard-URL for medier"
|
364 |
|
365 |
-
#: powerpressadmin-basic.php:
|
366 |
-
|
367 |
-
|
368 |
-
msgstr "f.eks. http://eksempel.dk/mediemappe/"
|
369 |
|
370 |
-
#: powerpressadmin-basic.php:
|
371 |
-
|
372 |
-
msgid "
|
373 |
-
msgstr "URL
|
374 |
|
375 |
-
#: powerpressadmin-basic.php:
|
376 |
-
|
377 |
-
|
378 |
-
msgstr "<span title=\"Podcast Entry Box\">Podcast-indtastningspanel</span>"
|
379 |
|
380 |
-
#: powerpressadmin-basic.php:
|
381 |
-
|
382 |
-
|
383 |
-
msgid "default"
|
384 |
-
msgstr "standard"
|
385 |
|
386 |
-
#: powerpressadmin-
|
387 |
-
|
388 |
-
|
389 |
-
msgid "Custom"
|
390 |
-
msgstr "Brugerdefineret"
|
391 |
|
392 |
-
#: powerpressadmin-basic.php:
|
393 |
-
#@ powerpress
|
394 |
msgid "Embed Field"
|
395 |
msgstr "Felt til indsættelse af kode"
|
396 |
|
397 |
-
#: powerpressadmin-basic.php:
|
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:
|
403 |
-
#@ powerpress
|
404 |
msgid "Replace Player with Embed"
|
405 |
msgstr "Erstat afspiller med indsat kode"
|
406 |
|
407 |
-
#: powerpressadmin-basic.php:
|
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:
|
413 |
-
#@ powerpress
|
414 |
msgid "Display Player and Links Options"
|
415 |
msgstr "Vis indstillinger for afspiller og links"
|
416 |
|
417 |
-
#: powerpressadmin-basic.php:
|
418 |
-
#@ powerpress
|
419 |
msgid "No Player & Links Option"
|
420 |
msgstr "Ingen indstillinger for afspiller og links"
|
421 |
|
422 |
-
#: powerpressadmin-basic.php:
|
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:
|
428 |
-
#@ powerpress
|
429 |
msgid "- or -"
|
430 |
msgstr "- eller -"
|
431 |
|
432 |
-
#: powerpressadmin-basic.php:
|
433 |
-
#@ powerpress
|
434 |
msgid "No Player Option"
|
435 |
msgstr "Ingen afspillerindstilling."
|
436 |
|
437 |
-
#: powerpressadmin-basic.php:
|
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:
|
443 |
-
#@ powerpress
|
444 |
msgid "No Links Option"
|
445 |
msgstr "Ingen linkindstilling."
|
446 |
|
447 |
-
#: powerpressadmin-basic.php:
|
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:
|
453 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
454 |
msgid "iTunes Keywords Field"
|
455 |
msgstr "<span title=\"iTunes Keywords Field\">Felt med iTunes-nøgleord</span>"
|
456 |
|
457 |
-
#: powerpressadmin-basic.php:
|
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:
|
463 |
-
#@ powerpress
|
464 |
msgid "iTunes Subtitle Field"
|
465 |
msgstr "<span title=\"iTunes Subtitle Field\">Felt med iTunes-undertitel</span>"
|
466 |
|
467 |
-
#: powerpressadmin-basic.php:
|
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:
|
473 |
-
#@ powerpress
|
474 |
msgid "iTunes Summary Field"
|
475 |
msgstr "<span title=\"iTunes Summary Field\">Felt med iTunes-resumé</span>"
|
476 |
|
477 |
-
#: powerpressadmin-basic.php:
|
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:
|
483 |
-
#@ powerpress
|
484 |
msgid "iTunes Author Field"
|
485 |
msgstr "<span title=\"iTunes Author Field\">Felt med iTunes-forfatter</span>"
|
486 |
|
487 |
-
#: powerpressadmin-basic.php:
|
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:
|
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:
|
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:
|
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:
|
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:
|
513 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
514 |
msgid "File Size Default"
|
515 |
msgstr "Standard for filstørrelse"
|
516 |
|
517 |
-
#: powerpressadmin-basic.php:
|
518 |
-
#: powerpressadmin-metabox.php:223
|
519 |
-
#@ powerpress
|
520 |
msgid "Auto detect file size"
|
521 |
msgstr "Autobestem filstørrelse"
|
522 |
|
523 |
-
#
|
524 |
-
#: powerpressadmin-basic.php:
|
525 |
-
#: powerpressadmin-basic.php:
|
526 |
-
#@ powerpress
|
527 |
msgid "User specify"
|
528 |
msgstr "Brugerangivelse"
|
529 |
|
530 |
-
#: powerpressadmin-basic.php:
|
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:
|
536 |
-
#@ powerpress
|
537 |
msgid "Duration Default"
|
538 |
msgstr "Standard for <span title=\"duration\">varighed</span>"
|
539 |
|
540 |
-
#: powerpressadmin-basic.php:
|
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:
|
547 |
-
#@ powerpress
|
548 |
msgid "Not specified (not recommended)"
|
549 |
msgstr "Ikke angivet (anbefales ikke)"
|
550 |
|
551 |
-
#: powerpressadmin-basic.php:
|
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:
|
557 |
-
#@ powerpress
|
558 |
msgid "Auto Add Media"
|
559 |
msgstr "Tilføj automatisk medie"
|
560 |
|
561 |
-
#: powerpressadmin-basic.php:
|
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:
|
572 |
-
#@ powerpress
|
573 |
msgid "First media link found in post content"
|
574 |
msgstr "Første medielink i indlægsindholdet"
|
575 |
|
576 |
-
#: powerpressadmin-basic.php:
|
577 |
-
#@ powerpress
|
578 |
msgid "Last media link found in post content"
|
579 |
msgstr "Sidste medielink i indlægsindholdet"
|
580 |
|
581 |
-
#: powerpressadmin-basic.php:
|
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:
|
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:
|
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:
|
597 |
-
#@ powerpress
|
598 |
msgid "Podcast Permalinks"
|
599 |
msgstr "Podcast-permalinks"
|
600 |
|
601 |
-
#: powerpressadmin-basic.php:
|
602 |
-
#@ powerpress
|
603 |
msgid "Default WordPress Behavior"
|
604 |
msgstr "<span title=\"Default WordPress Behavior\">WordPress' standardopførsel</span>"
|
605 |
|
606 |
-
#: powerpressadmin-basic.php:
|
607 |
-
#@ powerpress
|
608 |
msgid "Match Feed Name to Page/Category"
|
609 |
msgstr "Match feednavn til side/kategori"
|
610 |
|
611 |
-
#: powerpressadmin-basic.php:
|
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:
|
618 |
-
#@ powerpress
|
619 |
msgid "PodPress Options"
|
620 |
msgstr "PodPress-indstillinger"
|
621 |
|
622 |
-
#: powerpressadmin-basic.php:
|
623 |
-
#@ powerpress
|
624 |
msgid "PodPress Episodes"
|
625 |
msgstr "PodPress-episoder"
|
626 |
|
627 |
-
#: powerpressadmin-basic.php:
|
628 |
-
#@ powerpress
|
629 |
msgid "Ignore"
|
630 |
msgstr "Ignorér"
|
631 |
|
632 |
-
#: powerpressadmin-basic.php:
|
633 |
-
#@ powerpress
|
634 |
msgid "Include in Posts and Feeds"
|
635 |
msgstr "Inkludér i indlæg og feeds"
|
636 |
|
637 |
-
#: powerpressadmin-basic.php:
|
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:
|
643 |
-
#@ powerpress
|
644 |
msgid "PodPress Stats Archive"
|
645 |
msgstr "Arkiv med PodPress-statistik"
|
646 |
|
647 |
-
#: powerpressadmin-basic.php:
|
648 |
-
#@ powerpress
|
649 |
msgid "Hide"
|
650 |
msgstr "Skjul"
|
651 |
|
652 |
-
#: powerpressadmin-basic.php:
|
653 |
-
#@ powerpress
|
654 |
msgid "Display"
|
655 |
msgstr "Vis"
|
656 |
|
657 |
-
#: powerpressadmin-basic.php:
|
658 |
-
#@ powerpress
|
659 |
msgid "display archive of old PodPress statistics"
|
660 |
msgstr "vis arkiv over gammel PodPress-statistik"
|
661 |
|
662 |
-
#: powerpressadmin-basic.php:
|
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:
|
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:
|
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:
|
678 |
#, php-format
|
679 |
-
#@ powerpress
|
680 |
msgid "e.g. %s"
|
681 |
msgstr "fx %s"
|
682 |
|
683 |
-
#: powerpressadmin-basic.php:
|
684 |
#, php-format
|
685 |
-
#@ powerpress
|
686 |
msgid "You may use the older style Subscription URL: %s"
|
687 |
msgstr "Du kan bruge Tilmeldings-URL'en i det gamle format: %s"
|
688 |
|
689 |
-
#: powerpressadmin-basic.php:
|
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:
|
696 |
-
#@ powerpress
|
697 |
msgid "Publish a Podcast on iTunes"
|
698 |
msgstr "Udgiv en podcast på iTunes"
|
699 |
|
700 |
-
#: powerpressadmin-basic.php:
|
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'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:
|
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:
|
711 |
-
#@ powerpress
|
712 |
msgid "Update iTunes Listing"
|
713 |
msgstr "Opdatér <span title=\"iTunes Listing\">iTunes-katalogisering af dine podcasts</span>"
|
714 |
|
715 |
-
#: powerpressadmin-
|
716 |
-
|
717 |
-
|
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-
|
727 |
-
#: powerpressadmin-
|
728 |
-
|
729 |
-
|
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:
|
738 |
-
|
739 |
-
|
740 |
-
#: powerpressadmin.php:1111
|
741 |
-
#: powerpressadmin.php:1191
|
742 |
-
#: powerpressadmin.php:1196
|
743 |
-
#@ powerpress
|
744 |
-
msgid "Error"
|
745 |
-
msgstr "Fejl"
|
746 |
|
747 |
-
#: powerpressadmin-
|
748 |
-
|
749 |
-
|
750 |
-
#@ powerpress
|
751 |
-
msgid "Error:"
|
752 |
-
msgstr "Fejl:"
|
753 |
|
754 |
-
#: powerpressadmin-
|
755 |
-
#: powerpressadmin-
|
756 |
-
#: powerpressadmin-
|
757 |
-
#: powerpressadmin-
|
758 |
-
|
759 |
-
|
760 |
-
#@ powerpress
|
761 |
-
msgid "Blubrry Services Integration"
|
762 |
-
msgstr "Blubrrys service-integration"
|
763 |
|
764 |
-
#: powerpressadmin-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
#: powerpressadmin-
|
769 |
-
|
770 |
-
|
771 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
772 |
|
773 |
-
#: powerpressadmin-basic.php:
|
774 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
775 |
msgid "Blubrry Media Hosting"
|
776 |
msgstr "Blubrrys mediehosting"
|
777 |
|
778 |
-
#: powerpressadmin-basic.php:
|
779 |
-
|
780 |
-
|
|
|
|
|
|
|
781 |
msgid "Media Statistics"
|
782 |
msgstr "Mediestatistik"
|
783 |
|
784 |
-
#: powerpressadmin-basic.php:
|
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:
|
791 |
-
#@ powerpress
|
792 |
msgid "Redirect URL 1"
|
793 |
msgstr "Redirect-URL 1"
|
794 |
|
795 |
-
#: powerpressadmin-basic.php:
|
796 |
-
#: powerpressadmin-basic.php:
|
797 |
-
#@ powerpress
|
798 |
msgid "Add Another Redirect"
|
799 |
msgstr "Tilføj endnu en redirect"
|
800 |
|
801 |
-
#: powerpressadmin-basic.php:
|
802 |
-
#@ powerpress
|
803 |
msgid "Redirect URL 2"
|
804 |
msgstr "Redirect-URL 2"
|
805 |
|
806 |
-
#: powerpressadmin-basic.php:
|
807 |
-
#@ powerpress
|
808 |
msgid "Redirect URL 3"
|
809 |
msgstr "Redirect-URL 3"
|
810 |
|
811 |
-
#: powerpressadmin-basic.php:
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
817 |
|
818 |
-
#: powerpressadmin-basic.php:
|
819 |
-
|
|
|
|
|
|
|
820 |
msgid "Default Podcast (podcast)"
|
821 |
msgstr "Standardpodcast (podcast)"
|
822 |
|
823 |
-
#: powerpressadmin-
|
824 |
-
|
825 |
-
|
826 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
827 |
|
828 |
-
#: powerpressadmin-basic.php:
|
829 |
-
#@ powerpress
|
830 |
msgid "Display media / links in:"
|
831 |
msgstr "Vis medie/links i:"
|
832 |
|
833 |
-
#: powerpressadmin-basic.php:
|
834 |
-
#@ powerpress
|
835 |
msgid "WordPress Excerpts"
|
836 |
msgstr "WordPress-uddrag"
|
837 |
|
838 |
-
#: powerpressadmin-basic.php:
|
839 |
-
#@ powerpress
|
840 |
msgid "e.g. search results"
|
841 |
msgstr "f.eks. søgeresultater"
|
842 |
|
843 |
-
#: powerpressadmin-basic.php:
|
844 |
-
#: powerpressadmin-basic.php:
|
845 |
-
#@ powerpress
|
846 |
msgid "PowerPress Shortcode"
|
847 |
msgstr "PowerPress-<span title=\"shortcode\">kortkode</span>"
|
848 |
|
849 |
-
#: powerpressadmin-basic.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
856 |
-
|
857 |
-
|
858 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
859 |
|
860 |
-
#: powerpressadmin-basic.php:
|
861 |
-
#@ powerpress
|
862 |
msgid "Having Theme Issues?"
|
863 |
msgstr "Har du problemer med temaet?"
|
864 |
|
865 |
-
#: powerpressadmin-basic.php:
|
866 |
-
#@ powerpress
|
867 |
msgid "No, everything is working"
|
868 |
msgstr "Nej, alt virker"
|
869 |
|
870 |
-
#: powerpressadmin-basic.php:
|
871 |
-
#@ powerpress
|
872 |
msgid "Yes, please try to fix"
|
873 |
msgstr "Ja, prøv venligst at løse problemet"
|
874 |
|
875 |
-
#: powerpressadmin-basic.php:
|
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:
|
881 |
-
#@ powerpress
|
882 |
msgid "Play in New Window Settings"
|
883 |
msgstr "Indstillinger for afspilning i nyt vindue"
|
884 |
|
885 |
-
#: powerpressadmin-basic.php:
|
886 |
-
#@ powerpress
|
887 |
msgid "New Window Width"
|
888 |
msgstr "Brede på nyt vindue"
|
889 |
|
890 |
-
#: powerpressadmin-basic.php:
|
891 |
-
|
|
|
|
|
|
|
892 |
msgid "New Window Height"
|
893 |
msgstr "Højde på nyt vindue"
|
894 |
|
895 |
-
#: powerpressadmin-basic.php:
|
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-
|
901 |
-
|
902 |
-
|
903 |
-
msgstr "Bredde på afspiller"
|
904 |
|
905 |
-
#: powerpressadmin-
|
906 |
-
|
907 |
-
|
908 |
-
msgstr "Højde på afspiller"
|
909 |
|
910 |
-
#: powerpressadmin-
|
911 |
-
|
912 |
-
|
913 |
-
msgstr "QuickTimes Scale-parameter"
|
914 |
|
915 |
-
#: powerpressadmin-
|
916 |
-
|
917 |
-
|
918 |
-
msgstr "<span title=\"tilpas størrelse\">ToFit (standard)</span>"
|
919 |
|
920 |
-
#: powerpressadmin-
|
921 |
-
|
922 |
-
|
923 |
-
msgstr "Proportional"
|
924 |
|
925 |
-
#: powerpressadmin-
|
926 |
-
|
927 |
-
|
928 |
-
msgstr "Scale:"
|
929 |
|
930 |
-
#: powerpressadmin-
|
931 |
-
|
932 |
-
|
933 |
-
msgstr "fx"
|
934 |
|
935 |
-
#: powerpressadmin-
|
936 |
-
|
937 |
-
|
938 |
-
msgstr "Hvis du ikke ser videoen, så tilpas bredde, højde og scale-indstillinger ovenfor."
|
939 |
|
940 |
-
#: powerpressadmin-
|
941 |
-
|
942 |
-
|
943 |
-
msgstr "Bredde på MP3-lydafspiller (udfyldes feltet ikke, bruges 320 som standard)"
|
944 |
|
945 |
-
#: powerpressadmin-
|
946 |
-
|
947 |
-
|
948 |
-
msgid "Category Name"
|
949 |
-
msgstr "Kategorinavn"
|
950 |
|
951 |
-
#: powerpressadmin-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
msgid "Slug"
|
956 |
-
msgstr "Kort titel"
|
957 |
|
958 |
-
#: powerpressadmin-
|
959 |
-
|
960 |
-
|
961 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
#
|
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 “slug” 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-
|
|
|
|
|
|
|
|
|
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:
|
1202 |
-
|
|
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
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 |
-
#
|
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:
|
1411 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
1487 |
-
|
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:
|
1576 |
-
#@ powerpress
|
1577 |
msgid "Success"
|
1578 |
msgstr "Succes"
|
1579 |
|
1580 |
-
#: powerpressadmin-diagnostics.php:360
|
1581 |
-
#: powerpressadmin-find-replace.php:
|
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:
|
1624 |
-
|
|
|
|
|
|
|
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:
|
1639 |
-
|
|
|
|
|
|
|
|
|
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:
|
2311 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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'en til RSS-billedet ovenfor."
|
2442 |
|
2443 |
-
#: powerpressadmin-editfeed.php:505
|
2444 |
-
#: powerpressadmin-editfeed.php:959
|
2445 |
-
#: powerpressadmin-find-replace.php:
|
2446 |
-
#: powerpressadmin-find-replace.php:
|
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 × 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:
|
2494 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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'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 |
-
#
|
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:
|
2592 |
-
|
|
|
|
|
|
|
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:
|
2607 |
-
|
|
|
|
|
|
|
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:
|
2642 |
-
|
|
|
|
|
|
|
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 – vis intet"
|
2692 |
|
2693 |
-
#: powerpressadmin-editfeed.php:941
|
2694 |
-
#@ powerpress
|
2695 |
msgid "Yes - explicit content"
|
2696 |
msgstr "Ja – <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 – <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'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 × 600 pixels (tidligere 300 × 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:
|
2765 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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'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'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:
|
2852 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2853 |
msgid "Find and Replace Episode URLs"
|
2854 |
msgstr "Find og erstat i episode-URL'er"
|
2855 |
|
2856 |
-
#: powerpressadmin-find-replace.php:
|
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'er. Kan bruges, hvis du flytter dine medier til et nyt website eller udbyder."
|
2861 |
|
2862 |
-
#: powerpressadmin-find-replace.php:
|
2863 |
-
#@ powerpress
|
2864 |
msgid "Find in URL"
|
2865 |
msgstr "Find i URL"
|
2866 |
|
2867 |
-
#: powerpressadmin-find-replace.php:
|
2868 |
-
#: powerpressadmin-find-replace.php:
|
2869 |
-
#@ powerpress
|
2870 |
msgid "Modify"
|
2871 |
msgstr "Ændr"
|
2872 |
|
2873 |
-
#: powerpressadmin-find-replace.php:
|
2874 |
-
#@ powerpress
|
2875 |
msgid "Replace with"
|
2876 |
msgstr "Erstat med"
|
2877 |
|
2878 |
-
#: powerpressadmin-find-replace.php:
|
2879 |
-
#@ powerpress
|
2880 |
msgid "Preview Changes"
|
2881 |
msgstr "Preview ændringer"
|
2882 |
|
2883 |
-
#: powerpressadmin-find-replace.php:
|
2884 |
-
#@ powerpress
|
2885 |
msgid "Change Results"
|
2886 |
msgstr "<span title=\"Change Results\">Resultat efter ændringer</span>"
|
2887 |
|
2888 |
-
#: powerpressadmin-find-replace.php:
|
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:
|
2895 |
-
#@ powerpress
|
2896 |
msgid "Edit Post"
|
2897 |
msgstr "Redigér indlæg"
|
2898 |
|
2899 |
-
#: powerpressadmin-find-replace.php:
|
2900 |
-
#@ powerpress
|
2901 |
msgid "Found"
|
2902 |
msgstr "Fundet"
|
2903 |
|
2904 |
-
#: powerpressadmin-find-replace.php:
|
2905 |
-
#@ powerpress
|
2906 |
msgid "Replace"
|
2907 |
msgstr "Erstat"
|
2908 |
|
2909 |
-
#: powerpressadmin-find-replace.php:
|
2910 |
-
#@ powerpress
|
2911 |
msgid "test link"
|
2912 |
msgstr "Test-link"
|
2913 |
|
2914 |
-
#: powerpressadmin-find-replace.php:
|
2915 |
-
#@ powerpress
|
2916 |
msgid "Verify modified URLs"
|
2917 |
msgstr "Bekræft ændrede URL'er"
|
2918 |
|
2919 |
-
#: powerpressadmin-find-replace.php:
|
2920 |
-
#@ powerpress
|
2921 |
msgid "Does not change media URL if link is not found or invalid"
|
2922 |
msgstr "Ændrer ikke medie-URL'er, hvis linket ikke findes eller er ugyldigt"
|
2923 |
|
2924 |
-
#: powerpressadmin-find-replace.php:
|
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:
|
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:
|
2938 |
-
#@ powerpress
|
2939 |
msgid "WP-DB-Backup"
|
2940 |
msgstr "WP-DB-Backup"
|
2941 |
|
2942 |
-
#: powerpressadmin-jquery.php:
|
2943 |
-
#: powerpressadmin-jquery.php:
|
2944 |
-
#: powerpressadmin-jquery.php:
|
2945 |
-
#: powerpressadmin-jquery.php:
|
2946 |
-
#: powerpressadmin.php:
|
2947 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
3104 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 – 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-
|
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:
|
3255 |
-
|
|
|
|
|
|
|
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:
|
3270 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
3293 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 – vis intet"
|
3346 |
|
3347 |
-
#: powerpressadmin-metabox.php:377
|
3348 |
-
#@ powerpress
|
3349 |
msgid "yes - explicit content"
|
3350 |
msgstr "Ja – <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-
|
3358 |
-
|
|
|
|
|
|
|
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
|
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:
|
3404 |
-
|
|
|
|
|
|
|
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> > <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:
|
3699 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
3709 |
-
|
3710 |
-
|
3711 |
-
|
3712 |
-
|
3713 |
-
#: powerpressadmin-player-page.php:
|
3714 |
-
#: powerpressadmin-player-page.php:
|
3715 |
-
#: powerpressadmin-player-page.php:
|
3716 |
-
#: powerpressadmin-player-page.php:
|
3717 |
-
#: powerpressadmin-player-page.php:
|
3718 |
-
#: powerpressadmin-player-page.php:
|
3719 |
-
#: powerpressadmin-player-page.php:
|
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:
|
3726 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
3766 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
3776 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3777 |
msgid "Configure the 1 pixel out Audio Player"
|
3778 |
-
msgstr "Konfigurér 1
|
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:
|
3855 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
4027 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
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:
|
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:
|
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:
|
4200 |
-
|
4201 |
-
|
4202 |
-
msgstr "Afspiller blev aktiveret med succes."
|
4203 |
|
4204 |
-
#: powerpressadmin-player.php:
|
4205 |
-
|
4206 |
-
|
4207 |
-
msgstr "Indstillinger for lydafspiller gemt med succes."
|
4208 |
|
4209 |
-
#: powerpressadmin-player.php:
|
4210 |
-
|
4211 |
-
msgid "
|
4212 |
-
msgstr "
|
4213 |
|
4214 |
-
#: powerpressadmin-player.php:
|
4215 |
-
|
4216 |
-
msgid "
|
4217 |
-
msgstr "
|
4218 |
|
4219 |
-
#: powerpressadmin-
|
4220 |
-
|
4221 |
-
|
4222 |
-
msgstr "Arkiv med PodPress-statistik"
|
4223 |
|
4224 |
-
#: powerpressadmin-
|
4225 |
-
|
4226 |
-
|
4227 |
-
msgid "Displaying %d - %d of %d total"
|
4228 |
-
msgstr "Viser %d - %d af %d i alt"
|
4229 |
|
4230 |
-
#: powerpressadmin-
|
4231 |
-
|
4232 |
-
|
4233 |
-
msgid "Web"
|
4234 |
-
msgstr "Web"
|
4235 |
|
4236 |
-
#: powerpressadmin-
|
4237 |
-
|
4238 |
-
|
4239 |
-
msgid "Total"
|
4240 |
-
msgstr "I alt"
|
4241 |
|
4242 |
-
#: powerpressadmin-
|
4243 |
-
|
4244 |
-
|
4245 |
-
msgstr "første"
|
4246 |
|
4247 |
-
#: powerpressadmin-
|
4248 |
-
|
4249 |
-
|
4250 |
-
msgstr "forr"
|
4251 |
|
4252 |
-
#: powerpressadmin-
|
4253 |
-
|
4254 |
-
|
4255 |
-
msgstr "næste"
|
4256 |
|
4257 |
-
#: powerpressadmin-
|
4258 |
-
|
4259 |
-
|
4260 |
-
msgstr "sidste"
|
4261 |
|
4262 |
-
#: powerpressadmin-
|
4263 |
-
|
4264 |
-
|
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-
|
4269 |
-
|
4270 |
-
|
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-
|
4274 |
-
|
4275 |
-
|
4276 |
-
msgid "Error decoding PodPress data for post \"%s\""
|
4277 |
-
msgstr "Fejl under afkodning af PodPress-data for indlægget \"%s\""
|
4278 |
|
4279 |
-
#: powerpressadmin-
|
4280 |
-
|
4281 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
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' 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:
|
4488 |
-
|
|
|
|
|
|
|
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 © Talent Name"
|
4520 |
msgstr "Brug © 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'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:
|
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:
|
4604 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4605 |
msgid "Import PodPress Settings"
|
4606 |
msgstr "Importér PodPress-indstillinger"
|
4607 |
|
4608 |
-
#: powerpressadmin-tools.php:
|
4609 |
-
#@ powerpress
|
4610 |
msgid "Import settings from PodPress into PowerPress."
|
4611 |
msgstr "Importér indstillinger fra PodPress til PowerPress."
|
4612 |
|
4613 |
-
#: powerpressadmin-tools.php:
|
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:
|
4619 |
-
#@ powerpress
|
4620 |
msgid "Existing PowerPress settings will be overwritten."
|
4621 |
msgstr "Eksisterende PowerPress-indstillinger vil blive overskrevet."
|
4622 |
|
4623 |
-
#: powerpressadmin-tools.php:
|
4624 |
-
#@ powerpress
|
4625 |
msgid "Import plugin \"Podcasting\" Settings"
|
4626 |
msgstr "Importér indstillinger for pluginnet \"Podcasting\""
|
4627 |
|
4628 |
-
#: powerpressadmin-tools.php:
|
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:
|
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:
|
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:
|
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:
|
4649 |
-
#@ powerpress
|
4650 |
msgid "(media linked in blog posts)"
|
4651 |
msgstr "(mediefiler, som der linkes til i blogindlæg)"
|
4652 |
|
4653 |
-
#: powerpressadmin-tools.php:
|
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:
|
4659 |
-
#@ powerpress
|
4660 |
msgid "Add Update Services"
|
4661 |
msgstr "Tilføj updatetjenester"
|
4662 |
|
4663 |
-
#: powerpressadmin-tools.php:
|
4664 |
-
#@ powerpress
|
4665 |
msgid "Add Update Services / Ping Sites"
|
4666 |
msgstr "Tilføj updatetjenester/pingsites"
|
4667 |
|
4668 |
-
#: powerpressadmin-tools.php:
|
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:
|
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:
|
4679 |
-
#@ powerpress
|
4680 |
msgid "Find and Replace Media"
|
4681 |
msgstr "Find og erstat mediefiler"
|
4682 |
|
4683 |
-
#: powerpressadmin-tools.php:
|
4684 |
-
#@ powerpress
|
4685 |
msgid "Find and Replace for Episode URLs"
|
4686 |
msgstr "Find og erstat episode-URL'er"
|
4687 |
|
4688 |
-
#: powerpressadmin-tools.php:
|
4689 |
-
#@ powerpress
|
4690 |
msgid "User Capabilities"
|
4691 |
msgstr "Brugerrettigheder"
|
4692 |
|
4693 |
-
#: powerpressadmin-tools.php:
|
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:
|
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:
|
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:
|
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:
|
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:
|
4734 |
-
#: powerpressadmin-tools.php:
|
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:
|
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:
|
4746 |
-
#: powerpressadmin.php:970
|
4747 |
-
#@ powerpress
|
4748 |
msgid "Podcast Channels"
|
4749 |
msgstr "Podcastkanaler"
|
4750 |
|
4751 |
-
#: powerpressadmin-tools.php:
|
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:
|
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:
|
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:
|
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:
|
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:
|
4801 |
-
#@ powerpress
|
4802 |
msgid "Roles and Capabilities"
|
4803 |
msgstr "Roller og <span title=\"capabilities\">rettigheder</span>"
|
4804 |
|
4805 |
-
#: powerpressadmin-tools.php:
|
4806 |
-
#@ powerpress
|
4807 |
msgid "Role Manager"
|
4808 |
msgstr "Role Manager"
|
4809 |
|
4810 |
-
#: powerpressadmin-tools.php:
|
4811 |
-
#@ powerpress
|
4812 |
msgid "Capability Manager"
|
4813 |
msgstr "Capability Manager"
|
4814 |
|
4815 |
-
#: powerpressadmin-tools.php:
|
4816 |
-
#@ powerpress
|
4817 |
msgid "Role Scoper"
|
4818 |
msgstr "Role Scoper"
|
4819 |
|
4820 |
-
#: powerpressadmin-tools.php:
|
4821 |
-
#@ powerpress
|
4822 |
msgid "Update Plugins Cache"
|
4823 |
msgstr "Opdatér plugins-cachen"
|
4824 |
|
4825 |
-
#: powerpressadmin-tools.php:
|
4826 |
-
#@ powerpress
|
4827 |
msgid "Clear Plugins Update Cache"
|
4828 |
msgstr "Ryd cache med pluginopdateringsoplysninger"
|
4829 |
|
4830 |
-
#: powerpressadmin-tools.php:
|
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:
|
4837 |
-
#@ powerpress
|
4838 |
msgid "plugins"
|
4839 |
msgstr "plugins"
|
4840 |
|
4841 |
-
#: powerpressadmin-tools.php:
|
4842 |
-
#@ powerpress
|
4843 |
msgid "Translations"
|
4844 |
msgstr "Oversættelser"
|
4845 |
|
4846 |
-
#: powerpressadmin-tools.php:
|
4847 |
-
|
|
|
|
|
|
|
4848 |
msgid "Diagnostics"
|
4849 |
msgstr "Fejlfinding"
|
4850 |
|
4851 |
-
#: powerpressadmin-tools.php:
|
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:
|
4862 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
4877 |
-
|
|
|
|
|
|
|
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' 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' kategorifeeds blev gemt."
|
4905 |
|
4906 |
-
#: powerpressadmin.php:435
|
4907 |
-
#@ powerpress
|
4908 |
msgid "ATTENTION: You must configure your Blubrry Services in the Blubrry PowerPress > 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' 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'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-
|
5073 |
|
5074 |
-
#: powerpressadmin.php:966
|
5075 |
-
#@ powerpress
|
5076 |
msgid "Audio Player"
|
5077 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5078 |
|
5079 |
-
#: powerpressadmin.php:970
|
5080 |
-
#@ powerpress
|
5081 |
msgid "PowerPress Custom Podcast Channels"
|
5082 |
msgstr "PowerPress' brugerdefinerede podcastkanaler"
|
5083 |
|
5084 |
-
#: powerpressadmin.php:972
|
5085 |
-
#: powerpressadmin.php:
|
5086 |
-
#: powerpressadmin.php:
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
5119 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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'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'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'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:
|
5134 |
-
#@ powerpress
|
5135 |
msgid "Media verified successfully."
|
5136 |
msgstr "Mediefil bekræftet med succes."
|
5137 |
|
5138 |
-
#: powerpressadmin.php:
|
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:
|
5144 |
-
#@ powerpress
|
5145 |
msgid "Operation timed out."
|
5146 |
msgstr "Processen fik timeout."
|
5147 |
|
5148 |
-
#: powerpressadmin.php:
|
5149 |
-
#: powerpressadmin.php:
|
5150 |
-
#: powerpressadmin.php:
|
5151 |
-
#@ powerpress
|
5152 |
msgid "AJAX Error"
|
5153 |
msgstr "AJAX-fejl"
|
5154 |
|
5155 |
-
#: powerpressadmin.php:
|
5156 |
-
#@ powerpress
|
5157 |
msgid "Unknown"
|
5158 |
msgstr "Ukendt"
|
5159 |
|
5160 |
-
#: powerpressadmin.php:
|
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:
|
5166 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
5171 |
-
#@ powerpress
|
5172 |
msgid "Edit Blubrry PowerPress Podcast Settings"
|
5173 |
msgstr "Redigér Blubrry PowerPress' podcastindstillinger"
|
5174 |
|
5175 |
-
#: powerpressadmin.php:
|
5176 |
-
#@ powerpress
|
5177 |
msgid "Podcast Settings"
|
5178 |
msgstr "Podcast-indstillinger"
|
5179 |
|
5180 |
-
#: powerpressadmin.php:
|
5181 |
-
#@ powerpress
|
5182 |
msgid "Add Blubrry PowerPress Podcasting Settings"
|
5183 |
msgstr "Tilføj Blubrry PowerPress' podcastindstillinger"
|
5184 |
|
5185 |
-
#: powerpressadmin.php:
|
5186 |
-
#@ powerpress
|
5187 |
msgid "Add Podcasting"
|
5188 |
msgstr "Tilføj podcasting"
|
5189 |
|
5190 |
-
#: powerpressadmin.php:
|
5191 |
-
#@ powerpress
|
5192 |
msgid "Enable Category Podcasting"
|
5193 |
msgstr "Aktivér kategoripodcasting"
|
5194 |
|
5195 |
-
#: powerpressadmin.php:
|
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:
|
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' 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:
|
5206 |
-
#@ powerpress
|
5207 |
msgid "Save Changes"
|
5208 |
msgstr "Gem ændringer"
|
5209 |
|
5210 |
-
#: powerpressadmin.php:
|
5211 |
-
#@ powerpress
|
5212 |
msgid "Blubrry PowerPress"
|
5213 |
msgstr "Blubrry PowerPress"
|
5214 |
|
5215 |
-
#: powerpressadmin.php:
|
5216 |
-
#@ powerpress
|
5217 |
msgid "PodcastFAQ.com"
|
5218 |
msgstr "PodcastFAQ.com"
|
5219 |
|
5220 |
-
#: powerpressadmin.php:
|
5221 |
-
#@ powerpress
|
5222 |
msgid "Blubrry PowerPress Documentation"
|
5223 |
msgstr "Blubrry PowerPress-dokumentation"
|
5224 |
|
5225 |
-
#: powerpressadmin.php:
|
5226 |
-
#@ powerpress
|
5227 |
msgid "Documentation"
|
5228 |
msgstr "Dokumentation"
|
5229 |
|
5230 |
-
#: powerpressadmin.php:
|
5231 |
-
#@ powerpress
|
5232 |
msgid "Forum"
|
5233 |
msgstr "Forum"
|
5234 |
|
5235 |
-
#: powerpressadmin.php:
|
5236 |
-
#@ powerpress
|
5237 |
msgid "Follow Blubrry on Twitter"
|
5238 |
msgstr "Følg Blubrry på Twitter"
|
5239 |
|
5240 |
-
#: powerpressadmin.php:
|
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:
|
5246 |
-
#@ powerpress
|
5247 |
msgid "Unable to connect to iTunes ping server."
|
5248 |
msgstr "Kunne ikke etablere forbindelse til iTunes' pingserver."
|
5249 |
|
5250 |
-
#: powerpressadmin.php:
|
5251 |
-
#@ powerpress
|
5252 |
msgid "No Podcast Found from iTunes ping request."
|
5253 |
msgstr "Ingen podcast fundet fra iTunes-pinganmodning."
|
5254 |
|
5255 |
-
#: powerpressadmin.php:
|
5256 |
-
#@ powerpress
|
5257 |
msgid "Blubrry Hosting Error (media info)"
|
5258 |
msgstr "Blubrry Hosting-fejl (mediefilsinfo)"
|
5259 |
|
5260 |
-
#: powerpressadmin.php:
|
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:
|
5267 |
-
#: powerpressadmin.php:
|
5268 |
-
#@ powerpress
|
5269 |
msgid "Display Error"
|
5270 |
msgstr "Visningsfejl"
|
5271 |
|
5272 |
-
#: powerpressadmin.php:
|
5273 |
-
#: powerpressadmin.php:
|
5274 |
-
#@ powerpress
|
5275 |
msgid "Blubrry Hosting Error (publish)"
|
5276 |
msgstr "Blubrry Hosting-fejl (udgivelse)"
|
5277 |
|
5278 |
-
#: powerpressadmin.php:
|
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:
|
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:
|
5290 |
-
#: powerpressadmin.php:
|
5291 |
-
#: powerpressadmin.php:
|
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:
|
5297 |
-
#: powerpressadmin.php:
|
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:
|
5304 |
-
#: powerpressadmin.php:
|
5305 |
-
#: powerpressadmin.php:
|
5306 |
-
#: powerpressadmin.php:
|
5307 |
-
#@ powerpress
|
5308 |
-
#@ default
|
5309 |
msgid "Help"
|
5310 |
msgstr "Hjælp"
|
5311 |
|
5312 |
-
#: powerpressadmin.php:
|
5313 |
-
#: powerpressadmin.php:
|
5314 |
#, php-format
|
5315 |
-
#@ powerpress
|
5316 |
msgid "Warning, Media URL %s"
|
5317 |
msgstr "Advarsel, medie-URL %s"
|
5318 |
|
5319 |
-
#: powerpressadmin.php:
|
5320 |
-
#: powerpressadmin.php:
|
5321 |
-
#@ powerpress
|
5322 |
msgid "Error occurred obtaining media file size."
|
5323 |
msgstr "Fejl under aflæsning af mediefilens størrelse."
|
5324 |
|
5325 |
-
#: powerpressadmin.php:
|
5326 |
-
#@ powerpress
|
5327 |
msgid "Error, HTTP"
|
5328 |
msgstr "Fejl, HTTP"
|
5329 |
|
5330 |
-
#: powerpressadmin.php:
|
5331 |
-
#@ powerpress
|
5332 |
msgid "Unable to obtain file size of media file."
|
5333 |
msgstr "Kunne ikke aflæse filstørrelsen på mediefilen."
|
5334 |
|
5335 |
-
#:
|
5336 |
-
|
5337 |
-
|
5338 |
-
msgstr ""
|
5339 |
|
5340 |
-
#:
|
5341 |
-
|
5342 |
-
|
5343 |
-
msgid "Plugin '%s' has included a different version of the GetID3 library located in %s"
|
5344 |
-
msgstr ""
|
5345 |
|
5346 |
-
#:
|
5347 |
-
|
5348 |
-
|
5349 |
-
msgid "Another plugin has included a different version of the GetID3 library located in %s"
|
5350 |
-
msgstr ""
|
5351 |
|
5352 |
-
#:
|
5353 |
-
|
5354 |
-
|
5355 |
-
msgstr ""
|
5356 |
|
5357 |
-
#: powerpress
|
5358 |
-
|
5359 |
-
|
5360 |
-
msgstr ""
|
5361 |
|
5362 |
-
#: powerpress.php:
|
5363 |
-
|
5364 |
-
|
5365 |
-
msgstr ""
|
5366 |
|
5367 |
-
|
5368 |
-
|
5369 |
-
|
5370 |
-
|
5371 |
|
5372 |
-
|
5373 |
-
|
5374 |
-
msgid "Services & Stats"
|
5375 |
-
msgstr ""
|
5376 |
|
5377 |
-
|
5378 |
-
|
5379 |
-
|
5380 |
-
|
5381 |
-
|
|
|
|
|
5382 |
|
5383 |
-
|
5384 |
-
|
5385 |
-
#@ powerpress
|
5386 |
-
msgid "T.V."
|
5387 |
-
msgstr ""
|
5388 |
|
5389 |
-
|
5390 |
-
|
5391 |
-
|
5392 |
-
|
|
|
5393 |
|
5394 |
-
|
5395 |
-
|
5396 |
-
|
5397 |
-
msgstr ""
|
5398 |
|
5399 |
-
|
5400 |
-
|
5401 |
-
msgid "Select from 2 different web based video players."
|
5402 |
-
msgstr ""
|
5403 |
|
5404 |
-
|
5405 |
-
|
5406 |
-
|
5407 |
-
|
5408 |
|
5409 |
-
|
5410 |
-
|
5411 |
-
|
5412 |
-
|
5413 |
|
5414 |
-
|
5415 |
-
|
5416 |
-
msgid "Media File Size and Duration"
|
5417 |
-
msgstr ""
|
5418 |
|
5419 |
-
|
5420 |
-
|
5421 |
-
|
5422 |
-
|
5423 |
|
5424 |
-
|
5425 |
-
|
5426 |
-
msgid "Video Poster Image"
|
5427 |
-
msgstr ""
|
5428 |
|
5429 |
-
|
5430 |
-
|
5431 |
-
msgid "Specify URL to poster artwork specific to each episode"
|
5432 |
-
msgstr ""
|
5433 |
|
5434 |
-
|
5435 |
-
|
5436 |
-
msgid "Player Width and Height"
|
5437 |
-
msgstr ""
|
5438 |
|
5439 |
-
|
5440 |
-
|
5441 |
-
msgid "Customize player width and height on a per episode basis"
|
5442 |
-
msgstr ""
|
5443 |
|
5444 |
-
|
5445 |
-
|
5446 |
-
msgid "Show Advanced Episode Entry Settings"
|
5447 |
-
msgstr ""
|
5448 |
|
5449 |
-
|
5450 |
-
|
5451 |
-
|
5452 |
-
msgstr ""
|
|
|
|
|
5453 |
|
5454 |
-
|
5455 |
-
|
5456 |
-
#@ powerpress
|
5457 |
-
msgid "Learn more:"
|
5458 |
-
msgstr ""
|
5459 |
|
5460 |
-
|
5461 |
-
|
5462 |
-
msgid "Apple Drops iTunes Podcast Directory Update Listing/Ping (pingPodcast) Function"
|
5463 |
-
msgstr ""
|
5464 |
|
5465 |
-
|
5466 |
-
|
5467 |
-
msgid "Integrate Blubrry Services"
|
5468 |
-
msgstr ""
|
5469 |
|
5470 |
-
|
5471 |
-
|
5472 |
-
#: powerpressadmin-editfeed.php:567
|
5473 |
-
#: powerpressadmin-editfeed.php:574
|
5474 |
-
#@ powerpress
|
5475 |
-
msgid "optional"
|
5476 |
-
msgstr ""
|
5477 |
|
5478 |
-
|
5479 |
-
|
5480 |
-
msgid "Add Blubrry Media Statistics to your WordPress dashboard."
|
5481 |
-
msgstr ""
|
5482 |
|
5483 |
-
|
5484 |
-
|
5485 |
-
msgid "Blubrry Media Hosting users can also quickly upload and publish media directly from their blog."
|
5486 |
-
msgstr ""
|
5487 |
|
5488 |
-
|
5489 |
-
|
5490 |
-
msgid "Have an account on Blubrry.com?"
|
5491 |
-
msgstr ""
|
5492 |
|
5493 |
-
|
5494 |
-
|
5495 |
-
msgid "Click here to configure your Blubrry settings"
|
5496 |
-
msgstr ""
|
5497 |
|
5498 |
-
|
5499 |
-
|
5500 |
-
msgid "Display Blubrry Media Statistics in your dashboard"
|
5501 |
-
msgstr ""
|
5502 |
|
5503 |
-
|
5504 |
-
|
5505 |
-
msgid "Don't have an account at Blubrry.com?"
|
5506 |
-
msgstr ""
|
5507 |
|
5508 |
-
|
5509 |
-
|
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 |
-
|
5515 |
-
|
5516 |
-
msgid "Basic Stats Service"
|
5517 |
-
msgstr ""
|
5518 |
|
5519 |
-
|
5520 |
-
|
5521 |
-
msgid "Premium Media Statistics"
|
5522 |
-
msgstr ""
|
5523 |
|
5524 |
-
|
5525 |
-
|
5526 |
-
|
5527 |
-
msgid "Learn More"
|
5528 |
-
msgstr ""
|
5529 |
|
5530 |
-
|
5531 |
-
|
5532 |
-
msgid "Need a media statistics provider?"
|
5533 |
-
msgstr ""
|
5534 |
|
5535 |
-
|
5536 |
-
|
5537 |
-
#@ powerpress
|
5538 |
-
msgid "Blubrry.com offers %s access to the best statistics!"
|
5539 |
-
msgstr ""
|
5540 |
|
5541 |
-
|
5542 |
-
|
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 |
-
|
5547 |
-
|
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 |
-
|
5553 |
-
|
5554 |
-
msgid "Sign Up Now!"
|
5555 |
-
msgstr ""
|
5556 |
|
5557 |
-
|
5558 |
-
|
5559 |
-
msgid "* some restrictions apply"
|
5560 |
-
msgstr ""
|
5561 |
|
5562 |
-
|
5563 |
-
|
5564 |
-
msgid "learn more"
|
5565 |
-
msgstr ""
|
5566 |
|
5567 |
-
|
5568 |
-
|
5569 |
-
msgid "Media Appearance Settings"
|
5570 |
-
msgstr ""
|
5571 |
|
5572 |
-
|
5573 |
-
|
5574 |
-
msgid "Enable PowerPress Media Players and Links"
|
5575 |
-
msgstr ""
|
5576 |
|
5577 |
-
|
5578 |
-
|
5579 |
-
msgid "PowerPress will add media players and links to your site."
|
5580 |
-
msgstr ""
|
5581 |
|
5582 |
-
|
5583 |
-
|
5584 |
-
msgid "Disable PowerPress Media Players and Links"
|
5585 |
-
msgstr ""
|
5586 |
|
5587 |
-
|
5588 |
-
|
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 |
-
|
5593 |
-
|
5594 |
-
msgid "Blog Posts and Pages"
|
5595 |
-
msgstr ""
|
5596 |
|
5597 |
-
|
5598 |
-
|
5599 |
-
msgid "Display Media & Links"
|
5600 |
-
msgstr ""
|
5601 |
|
5602 |
-
|
5603 |
-
|
5604 |
-
|
5605 |
-
msgstr ""
|
|
|
|
|
5606 |
|
5607 |
-
|
5608 |
-
|
5609 |
-
|
5610 |
-
msgstr ""
|
|
|
|
|
|
|
5611 |
|
5612 |
-
|
5613 |
-
|
5614 |
-
|
5615 |
-
msgstr ""
|
5616 |
|
5617 |
-
|
5618 |
-
|
5619 |
-
msgid "Player and media links will appear <u>above</u> your post and page content."
|
5620 |
-
msgstr ""
|
5621 |
|
5622 |
-
|
5623 |
-
|
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 |
-
|
5628 |
-
|
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 |
-
|
5634 |
-
|
5635 |
-
msgid "Simply insert the following code on a new line in your content."
|
5636 |
-
msgstr ""
|
5637 |
|
5638 |
-
|
5639 |
-
|
5640 |
-
msgid "Media Player"
|
5641 |
-
msgstr ""
|
5642 |
|
5643 |
-
|
5644 |
-
|
5645 |
-
msgid "Display Player"
|
5646 |
-
msgstr ""
|
5647 |
|
5648 |
-
|
5649 |
-
|
5650 |
-
|
5651 |
-
msgstr ""
|
5652 |
|
5653 |
-
|
5654 |
-
|
5655 |
-
msgid "Media Links"
|
5656 |
-
msgstr ""
|
5657 |
|
5658 |
-
|
5659 |
-
|
5660 |
-
msgid "Display Play in new Window Link"
|
5661 |
-
msgstr ""
|
5662 |
|
5663 |
-
|
5664 |
-
|
5665 |
-
msgid "Display Download Link"
|
5666 |
-
msgstr ""
|
5667 |
|
5668 |
-
|
5669 |
-
|
5670 |
-
msgid "Include file size"
|
5671 |
-
msgstr ""
|
5672 |
|
5673 |
-
|
5674 |
-
|
5675 |
-
|
5676 |
-
msgstr ""
|
|
|
|
|
5677 |
|
5678 |
-
|
5679 |
-
|
5680 |
-
|
5681 |
-
|
5682 |
|
5683 |
-
|
5684 |
-
|
5685 |
-
msgid "Include embed in feeds"
|
5686 |
-
msgstr ""
|
5687 |
|
5688 |
-
|
5689 |
-
|
5690 |
-
|
5691 |
-
|
5692 |
|
5693 |
-
|
5694 |
-
|
5695 |
-
|
5696 |
-
|
5697 |
|
5698 |
-
|
5699 |
-
|
5700 |
-
|
5701 |
-
|
5702 |
|
5703 |
-
|
5704 |
-
|
5705 |
-
msgid "AAC Audio (.m4a)"
|
5706 |
-
msgstr ""
|
5707 |
|
5708 |
-
|
5709 |
-
|
5710 |
-
msgid "Use Flow Player Classic / HTML5 Audio player"
|
5711 |
-
msgstr ""
|
5712 |
|
5713 |
-
|
5714 |
-
|
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 <embed> 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'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'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' 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'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 – 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 “slug” 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'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 × 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'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 – vis intet"
|
2541 |
|
2542 |
+
#: d:\wordpress\plugins\powerpress/powerpressadmin-editfeed.php:941
|
|
|
2543 |
msgid "Yes - explicit content"
|
2544 |
msgstr "Ja – <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 – <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'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 × 600 pixels (tidligere 300 × 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'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'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'en er ugyldig.\\n"
|
2689 |
+
"\\n"
|
2690 |
+
"Er du sikker på, at du ikke vil bekræfte URL'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'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'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'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'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 – 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 – vis intet"
|
3140 |
|
3141 |
+
#: d:\wordpress\plugins\powerpress/powerpressadmin-metabox.php:377
|
|
|
3142 |
msgid "yes - explicit content"
|
3143 |
msgstr "Ja – <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> > <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 på 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 <embed> 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'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' 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 © Talent Name"
|
4323 |
msgstr "Brug © 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'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'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' 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' 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 > 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' 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'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' 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'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'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'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' 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' 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' 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' 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'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 "
|
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
|
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
|
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
|
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
|
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
|
470 |
|
471 |
#@ powerpress
|
472 |
#: powerpressadmin-basic.php:237
|
473 |
msgid "Display Player and Links Options"
|
474 |
-
msgstr "Mostra le Opzioni
|
475 |
|
476 |
#@ powerpress
|
477 |
#: powerpressadmin-basic.php:241
|
478 |
msgid "No Player & Links Option"
|
479 |
-
msgstr "Non ci sono Opzioni
|
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
|
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
|
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
|
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 "
|
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 "
|
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 "
|
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 (
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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> > <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à
|
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
|
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 <embed> 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 © 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 > 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
|
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
|
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> > <b>Writing</b> page."
|
4252 |
+
msgstr "Puoi aggiungere manualmente i servizi ping nella sezione \"Servizi di Aggiornamento\" della pagina <b>Impostazioni WordPress</b> > <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 <embed> 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 <embed> , 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 © Talent Name"
|
5368 |
+
msgstr "Usa © 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 > 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 >"
|
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 "allow_url_fopen", 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 '% s' 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 & 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 & 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 "http://". 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ă "podcast"."
|
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 & 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 & 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 “slug” is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens."
|
1523 |
+
msgstr ""Slug" 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 & 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 "allow_url_fopen" 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 "safe_mode" şi "open_basedir" 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 "safe_mode" 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 "open_basedir" 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 "allow_url_fopen" 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 "allow_url_fopen", 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 "Detectarea mass-media de informare" 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ă "file_uploads" 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 "allow_url_fopen" 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
|