Theme Check - Version 20120613

Version Description

Download this release

Release Info

Developer Otto42
Plugin Icon 128x128 Theme Check
Version 20120613
Comparing to
See all releases

Version 20120613

Files changed (54) hide show
  1. checkbase.php +310 -0
  2. checks/admin_menu.php +56 -0
  3. checks/artisteer.php +33 -0
  4. checks/badthings.php +57 -0
  5. checks/basic.php +49 -0
  6. checks/comment_reply.php +27 -0
  7. checks/commpage.php +24 -0
  8. checks/constants.php +33 -0
  9. checks/content-width.php +23 -0
  10. checks/customs.php +26 -0
  11. checks/dep_recommend.php +51 -0
  12. checks/deprecated.php +201 -0
  13. checks/directories.php +36 -0
  14. checks/editorstyle.php +21 -0
  15. checks/filenames.php +66 -0
  16. checks/gravatar.php +24 -0
  17. checks/i18n.php +64 -0
  18. checks/iframes.php +29 -0
  19. checks/include.php +29 -0
  20. checks/lineendings.php +43 -0
  21. checks/links.php +35 -0
  22. checks/malware.php +34 -0
  23. checks/more_deprecated.php +32 -0
  24. checks/navmenu.php +23 -0
  25. checks/nonprintable.php +27 -0
  26. checks/phpshort.php +25 -0
  27. checks/post-formats.php +38 -0
  28. checks/postsnav.php +25 -0
  29. checks/postthumb.php +27 -0
  30. checks/required.php +31 -0
  31. checks/screenshot.php +34 -0
  32. checks/searchform.php +26 -0
  33. checks/style_needed.php +39 -0
  34. checks/style_suggested.php +29 -0
  35. checks/style_tags.php +38 -0
  36. checks/suggested.php +43 -0
  37. checks/tags.php +22 -0
  38. checks/textdomain.php +71 -0
  39. checks/theme_support.php +33 -0
  40. checks/time_date.php +31 -0
  41. checks/worms.php +39 -0
  42. lang/themecheck-de_DE.mo +0 -0
  43. lang/themecheck-de_DE.po +364 -0
  44. lang/themecheck-ja.mo +0 -0
  45. lang/themecheck-ja.po +719 -0
  46. lang/themecheck-ro_RO.mo +0 -0
  47. lang/themecheck-ro_RO.po +364 -0
  48. lang/themecheck-sr_RS.mo +0 -0
  49. lang/themecheck-sr_RS.po +364 -0
  50. lang/themecheck.pot +547 -0
  51. main.php +144 -0
  52. readme.txt +157 -0
  53. style.css +77 -0
  54. theme-check.php +57 -0
checkbase.php ADDED
@@ -0,0 +1,310 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // main global to hold our checks
3
+ global $themechecks;
4
+ $themechecks = array();
5
+
6
+ // counter for the checks
7
+ global $checkcount;
8
+ $checkcount = 0;
9
+
10
+ // interface that all checks should implement
11
+ interface themecheck
12
+ {
13
+ // should return true for good/okay/acceptable, false for bad/not-okay/unacceptable
14
+ public function check( $php_files, $css_files, $other_files );
15
+
16
+ // should return an array of strings explaining any problems found
17
+ public function getError();
18
+ }
19
+
20
+ // load all the checks in the checks directory
21
+ $dir = 'checks';
22
+ foreach (glob(dirname(__FILE__). "/{$dir}/*.php") as $file) {
23
+ include $file;
24
+ }
25
+
26
+ do_action('themecheck_checks_loaded');
27
+
28
+ function run_themechecks($php, $css, $other) {
29
+ global $themechecks;
30
+ $pass = true;
31
+ foreach($themechecks as $check) {
32
+ if ($check instanceof themecheck) {
33
+ $pass = $pass & $check->check($php, $css, $other);
34
+ }
35
+ }
36
+ return $pass;
37
+ }
38
+
39
+ function display_themechecks() {
40
+ $results = '';
41
+ global $themechecks;
42
+ $errors = array();
43
+ foreach ($themechecks as $check) {
44
+ if ($check instanceof themecheck) {
45
+ $error = $check->getError();
46
+ $error = (array) $error;
47
+ if (!empty($error)) {
48
+ $errors = array_unique( array_merge( $error, $errors ) );
49
+ }
50
+ }
51
+ }
52
+ if (!empty($errors)) {
53
+ rsort($errors);
54
+ foreach ($errors as $e) {
55
+
56
+ if ( defined( 'TC_TRAC' ) ) {
57
+ $results .= ( isset( $_POST['s_info'] ) && preg_match( '/INFO/', $e ) ) ? '' : '* ' . tc_trac( $e ) . "\r\n";
58
+ } else {
59
+ $results .= ( isset( $_POST['s_info'] ) && preg_match( '/INFO/', $e ) ) ? '' : '<li>' . tc_trac( $e ) . '</li>';
60
+ }
61
+ }
62
+ }
63
+
64
+ if ( defined( 'TC_TRAC' ) ) {
65
+
66
+ if ( defined( 'TC_PRE' ) ) $results = TC_PRE . $results;
67
+ $results = '<textarea cols=140 rows=20>' . strip_tags( $results );
68
+ if ( defined( 'TC_POST' ) ) $results = $results . TC_POST;
69
+ $results .= '</textarea>';
70
+ }
71
+ return $results;
72
+ }
73
+
74
+ function checkcount() {
75
+ global $checkcount;
76
+ $checkcount++;
77
+ }
78
+
79
+ // some functions theme checks use
80
+ function tc_grep( $error, $file ) {
81
+ $lines = file( $file, FILE_IGNORE_NEW_LINES ); // Read the theme file into an array
82
+ $line_index = 0;
83
+ $bad_lines = '';
84
+ foreach( $lines as $this_line ) {
85
+ if ( stristr ( $this_line, $error ) ) {
86
+ $error = str_replace( '"', "'", $error );
87
+ $this_line = str_replace( '"', "'", $this_line );
88
+ $error = ltrim( $error );
89
+ $pre = ( FALSE !== ( $pos = strpos( $this_line, $error ) ) ? substr( $this_line, 0, $pos ) : FALSE );
90
+ $pre = ltrim( htmlspecialchars( $pre ) );
91
+ $bad_lines .= __("<pre class='tc-grep'>Line ", "themecheck") . ( $line_index+1 ) . ": " . $pre . htmlspecialchars( substr( stristr( $this_line, $error ), 0, 75 ) ) . "</pre>";
92
+ }
93
+ $line_index++;
94
+ }
95
+ return str_replace( $error, '<span class="tc-grep">' . $error . '</span>', $bad_lines );
96
+ }
97
+
98
+ function tc_preg( $preg, $file ) {
99
+ $lines = file( $file, FILE_IGNORE_NEW_LINES ); // Read the theme file into an array
100
+ $line_index = 0;
101
+ $bad_lines = '';
102
+ foreach( $lines as $this_line ) {
103
+ if ( preg_match( $preg, $this_line, $matches ) ) {
104
+ $error = $matches[0];
105
+ $this_line = str_replace( '"', "'", $this_line );
106
+ $error = ltrim( $error );
107
+ $pre = ( FALSE !== ( $pos = strpos( $this_line, $error ) ) ? substr( $this_line, 0, $pos ) : FALSE );
108
+ $pre = ltrim( htmlspecialchars( $pre ) );
109
+ $bad_lines .= __("<pre class='tc-grep'>Line ", "themecheck") . ( $line_index+1 ) . ": " . $pre . htmlspecialchars( substr( stristr( $this_line, $error ), 0, 75 ) ) . "</pre>";
110
+ }
111
+ $line_index++;
112
+
113
+ }
114
+ return str_replace( $error, '<span class="tc-grep">' . $error . '</span>', $bad_lines );
115
+ }
116
+
117
+ function tc_strxchr($haystack, $needle, $l_inclusive = 0, $r_inclusive = 0){
118
+ if(strrpos($haystack, $needle)){
119
+ //Everything before last $needle in $haystack.
120
+ $left = substr($haystack, 0, strrpos($haystack, $needle) + $l_inclusive);
121
+ //Switch value of $r_inclusive from 0 to 1 and viceversa.
122
+ $r_inclusive = ($r_inclusive == 0) ? 1 : 0;
123
+ //Everything after last $needle in $haystack.
124
+ $right = substr(strrchr($haystack, $needle), $r_inclusive);
125
+ //Return $left and $right into an array.
126
+ return array($left, $right);
127
+ } else {
128
+ if(strrchr($haystack, $needle)) return array('', substr(strrchr($haystack, $needle), $r_inclusive));
129
+ else return false;
130
+ }
131
+ }
132
+
133
+ function tc_filename( $file ) {
134
+ $filename = ( preg_match( '/themes\/[a-z0-9]*\/(.*)/', $file, $out ) ) ? $out[1] : basename( $file );
135
+ return $filename;
136
+ }
137
+
138
+ function tc_trac( $e ) {
139
+ $trac_left = array( '<strong>', '</strong>' );
140
+ $trac_right= array( "'''", "'''" );
141
+ $html_link = '/<a\s?href\s?=\s?[\'|"]([^"|\']*)[\'|"]>([^<]*)<\/a>/i';
142
+ $html_new = '[$1 $2]';
143
+ if ( defined( 'TC_TRAC' ) ) {
144
+ $e = preg_replace( $html_link, $html_new, $e );
145
+ $e = str_replace( $trac_left, $trac_right, $e );
146
+ $e = preg_replace( '/<pre.*?>/', "\r\n{{{\r\n", $e );
147
+ $e = str_replace( '</pre>', "\r\n}}}\r\n", $e );
148
+ }
149
+ return $e;
150
+ }
151
+
152
+ function listdir( $dir ) {
153
+ $files = array();
154
+ $dir_iterator = new RecursiveDirectoryIterator( $dir );
155
+ $iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST);
156
+
157
+ foreach ($iterator as $file) {
158
+ array_push( $files, $file->getPathname() );
159
+ }
160
+ return $files;
161
+ }
162
+
163
+ function old_listdir( $start_dir='.' ) {
164
+ $files = array();
165
+ if ( is_dir( $start_dir ) ) {
166
+ $fh = opendir( $start_dir );
167
+ while ( ( $file = readdir( $fh ) ) !== false ) {
168
+ # loop through the files, skipping . and .., and recursing if necessary
169
+ if ( strcmp( $file, '.' )==0 || strcmp( $file, '..' )==0 ) continue;
170
+ $filepath = $start_dir . '/' . $file;
171
+ if ( is_dir( $filepath ) )
172
+ $files = array_merge( $files, listdir( $filepath ) );
173
+ else
174
+ array_push( $files, $filepath );
175
+ }
176
+ closedir( $fh );
177
+
178
+ } else {
179
+
180
+ # false if the function was called with an invalid non-directory argument
181
+ $files = false;
182
+ }
183
+ return $files;
184
+ }
185
+
186
+ function tc_print_r( $data ) {
187
+ $out = "\n<pre class='html-print-r'";
188
+ $out .= " style='border: 1px solid #ccc; padding: 7px;'>\n";
189
+ $out .= esc_html( print_r( $data, TRUE ) );
190
+ $out .= "\n</pre>\n";
191
+ echo $out;
192
+ }
193
+
194
+ function get_theme_data_from_contents( $theme_data ) {
195
+ $themes_allowed_tags = array(
196
+ 'a' => array(
197
+ 'href' => array(),'title' => array()
198
+ ),
199
+ 'abbr' => array(
200
+ 'title' => array()
201
+ ),
202
+ 'acronym' => array(
203
+ 'title' => array()
204
+ ),
205
+ 'code' => array(),
206
+ 'em' => array(),
207
+ 'strong' => array()
208
+ );
209
+
210
+ $theme_data = str_replace ( '\r', '\n', $theme_data );
211
+ preg_match( '|Theme Name:(.*)$|mi', $theme_data, $theme_name );
212
+ preg_match( '|Theme URI:(.*)$|mi', $theme_data, $theme_uri );
213
+ preg_match( '|Description:(.*)$|mi', $theme_data, $description );
214
+
215
+ if ( preg_match( '|Author URI:(.*)$|mi', $theme_data, $author_uri ) )
216
+ $author_uri = esc_url( trim( $author_uri[1]) );
217
+ else
218
+ $author_uri = '';
219
+
220
+ if ( preg_match( '|Template:(.*)$|mi', $theme_data, $template ) )
221
+ $template = wp_kses( trim( $template[1] ), $themes_allowed_tags );
222
+ else
223
+ $template = '';
224
+
225
+ if ( preg_match( '|Version:(.*)|i', $theme_data, $version ) )
226
+ $version = wp_kses( trim( $version[1] ), $themes_allowed_tags );
227
+ else
228
+ $version = '';
229
+
230
+ if ( preg_match('|Status:(.*)|i', $theme_data, $status) )
231
+ $status = wp_kses( trim( $status[1] ), $themes_allowed_tags );
232
+ else
233
+ $status = 'publish';
234
+
235
+ if ( preg_match('|Tags:(.*)|i', $theme_data, $tags) )
236
+ $tags = array_map( 'trim', explode( ',', wp_kses( trim( $tags[1] ), array() ) ) );
237
+ else
238
+ $tags = array();
239
+
240
+ $theme = ( isset( $theme_name[1] ) ) ? wp_kses( trim( $theme_name[1] ), $themes_allowed_tags ) : '';
241
+
242
+ $theme_uri = ( isset( $theme_uri[1] ) ) ? esc_url( trim( $theme_uri[1] ) ) : '';
243
+
244
+ $description = ( isset( $description[1] ) ) ? wp_kses( trim( $description[1] ), $themes_allowed_tags ) : '';
245
+
246
+ if ( preg_match( '|Author:(.*)$|mi', $theme_data, $author_name ) ) {
247
+ if ( empty( $author_uri ) ) {
248
+ $author = wp_kses( trim( $author_name[1] ), $themes_allowed_tags );
249
+ } else {
250
+ $author = sprintf( '<a href="%1$s" title="%2$s">%3$s</a>', $author_uri, __( 'Visit author homepage' ), wp_kses( trim( $author_name[1] ), $themes_allowed_tags ) );
251
+ }
252
+ } else {
253
+ $author = __('Anonymous');
254
+ }
255
+
256
+ return array( 'Name' => $theme, 'Title' => $theme, 'URI' => $theme_uri, 'Description' => $description, 'Author' => $author, 'Author_URI' => $author_uri, 'Version' => $version, 'Template' => $template, 'Status' => $status, 'Tags' => $tags );
257
+ }
258
+
259
+ /*
260
+ * 3.3/3.4 compat
261
+ *
262
+ */
263
+ function tc_get_themes() {
264
+
265
+ if ( ! class_exists( 'WP_Theme' ) )
266
+ return get_themes();
267
+
268
+ global $wp_themes;
269
+ if ( isset( $wp_themes ) )
270
+ return $wp_themes;
271
+
272
+ $themes = wp_get_themes();
273
+ $wp_themes = array();
274
+
275
+ foreach ( $themes as $theme ) {
276
+ $name = $theme->get('Name');
277
+ if ( isset( $wp_themes[ $name ] ) )
278
+ $wp_themes[ $name . '/' . $theme->get_stylesheet() ] = $theme;
279
+ else
280
+ $wp_themes[ $name ] = $theme;
281
+ }
282
+
283
+ return $wp_themes;
284
+ }
285
+
286
+ function tc_get_theme_data( $theme_file ) {
287
+
288
+ if ( ! class_exists( 'WP_Theme' ) )
289
+ return get_theme_data( $theme_file );
290
+
291
+ $theme = new WP_Theme( basename( dirname( $theme_file ) ), dirname( dirname( $theme_file ) ) );
292
+
293
+ $theme_data = array(
294
+ 'Name' => $theme->get('Name'),
295
+ 'URI' => $theme->display('ThemeURI', true, false),
296
+ 'Description' => $theme->display('Description', true, false),
297
+ 'Author' => $theme->display('Author', true, false),
298
+ 'AuthorURI' => $theme->display('AuthorURI', true, false),
299
+ 'Version' => $theme->get('Version'),
300
+ 'Template' => $theme->get('Template'),
301
+ 'Status' => $theme->get('Status'),
302
+ 'Tags' => $theme->get('Tags'),
303
+ 'Title' => $theme->get('Name'),
304
+ 'AuthorName' => $theme->display('Author', false, false),
305
+ 'License' => $theme->display( 'License', false, false),
306
+ 'License URI' => $theme->display( 'License URI', false, false),
307
+ 'Template Version' => $theme->display( 'Template Version', false, false)
308
+ );
309
+ return $theme_data;
310
+ }
checks/admin_menu.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AdminMenu implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files) {
6
+
7
+ $ret = true;
8
+
9
+
10
+ //check for levels deprecated in 2.0 in creating menus.
11
+
12
+ $checks = array(
13
+ '/([^_](add_(admin|submenu|menu|dashboard|posts|media|links|pages|comments|theme|plugins|users|management|options)_page)\s?\([^,]*,[^,]*,\s[\'|"]?(level_[0-9]|[0-9])[^;|\r|\r\n]*)/' => __( 'User levels were deprecated in <strong>2.0</strong>. Please see <a href="http://codex.wordpress.org/Roles_and_Capabilities">Roles_and_Capabilities</a>', 'themecheck' ),
14
+ '/[^a-z0-9](current_user_can\s?\(\s?[\'\"]level_[0-9][\'\"]\s?\))[^\r|\r\n]*/' => __( 'User levels were deprecated in <strong>2.0</strong>. Please see <a href="http://codex.wordpress.org/Roles_and_Capabilities">Roles_and_Capabilities</a>', 'themecheck' )
15
+ );
16
+
17
+ foreach ( $php_files as $php_key => $phpfile ) {
18
+ foreach ( $checks as $key => $check ) {
19
+ checkcount();
20
+ if ( preg_match( $key, $phpfile, $matches ) ) {
21
+ $filename = tc_filename( $php_key );
22
+ $grep = ( isset( $matches[2] ) ) ? tc_grep( $matches[2], $php_key ) : tc_grep( $matches[1], $php_key );
23
+ $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: <strong>%1$s</strong>. %2$s%3$s', 'themecheck'), $filename, $check, $grep );
24
+ $ret = false;
25
+ }
26
+ }
27
+ }
28
+
29
+
30
+ //check for add_admin_page
31
+
32
+ $checks = array(
33
+ '/([^_]add_(admin|submenu|menu|dashboard|posts|media|links|pages|comments|plugins|users|management|options)_page\()/' => __( 'Themes should use <strong>add_theme_page()</strong> for adding admin pages.', 'themecheck' )
34
+ );
35
+
36
+
37
+ foreach ( $php_files as $php_key => $phpfile ) {
38
+ foreach ( $checks as $key => $check ) {
39
+ checkcount();
40
+ if ( preg_match( $key, $phpfile, $matches ) ) {
41
+ $filename = tc_filename( $php_key );
42
+ $error = ltrim( rtrim( $matches[0], '(' ) );
43
+ $grep = tc_grep( $error, $php_key );
44
+ $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong>. %2$s%3$s', 'themecheck'), $filename, $check, $grep);
45
+ $ret = false;
46
+ }
47
+ }
48
+ }
49
+
50
+ return $ret;
51
+ }
52
+
53
+ function getError() { return $this->error; }
54
+ }
55
+
56
+ $themechecks[] = new AdminMenu;
checks/artisteer.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ArtisteerCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files) {
7
+
8
+ // combine all the php files into one string to make it easier to search
9
+ $php = implode( ' ', $php_files );
10
+
11
+ checkcount();
12
+
13
+ $ret = true;
14
+ if (
15
+ strpos( $php, 'art_normalize_widget_style_tokens' ) !== false
16
+ || strpos( $php, 'art_include_lib' ) !== false
17
+ || strpos( $php, '_remove_last_slash($url) {' ) !== false
18
+ || strpos( $php, 'adi_normalize_widget_style_tokens' ) !== false
19
+ || strpos( $php, 'm_normalize_widget_style_tokens' ) !== false
20
+ || strpos ( $php, "bw = '<!--- BEGIN Widget --->';" ) !== false
21
+ || strpos ( $php, "ew = '<!-- end_widget -->';" ) !== false
22
+ || strpos ( $php, "end_widget' => '<!-- end_widget -->'") !== false
23
+ ) {
24
+ $this->error[] = "<span class='tc-lead tc-warning'>WARNING</span>: " . __( 'This theme appears to have been auto-generated. Generated themes are not allowed in the themes directory.', 'themecheck' );
25
+ $ret = false;
26
+ }
27
+
28
+ return $ret;
29
+ }
30
+
31
+ function getError() { return $this->error; }
32
+ }
33
+ $themechecks[] = new ArtisteerCheck;
checks/badthings.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Bad_Checks implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+ $ret = true;
7
+
8
+ $checks = array(
9
+ '/(?<![_|a-z0-9])eval\s?\(/i' => __( 'eval() is not allowed.', 'themecheck' ),
10
+ '/[^a-z0-9](?<!_)(popen|proc_open|[^_]exec|shell_exec|system|passthru)\(/' => __( 'PHP sytem calls should be disabled by server admins anyway!', 'themecheck' ),
11
+ '/\s?ini_set\(/' => __( 'Themes should not change server PHP settings', 'themecheck' ),
12
+ '/base64_decode/' => __( 'base64_decode() is not allowed', 'themecheck' ),
13
+ '/base64_encode/' => __( 'base64_encode() is not allowed', 'themecheck' ),
14
+ '/uudecode/ims' => __( 'uudecode() is not allowed', 'themecheck' ),
15
+ '/str_rot13/ims' => __( 'str_rot13() is not allowed', 'themecheck' ),
16
+ '/cx=[0-9]{21}:[a-z0-9]{10}/' => __( 'Google search code detected', 'themecheck' ),
17
+ '/pub-[0-9]{16}/i' => __( 'Googe advertising code detected', 'themecheck' )
18
+ );
19
+
20
+ $grep = '';
21
+
22
+ foreach ( $php_files as $php_key => $phpfile ) {
23
+ foreach ( $checks as $key => $check ) {
24
+ checkcount();
25
+ if ( preg_match( $key, $phpfile, $matches ) ) {
26
+ $filename = tc_filename( $php_key );
27
+ $error = ltrim( trim( $matches[0], '(' ) );
28
+ $grep = tc_grep( $error, $php_key );
29
+ $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Found <strong>%1$s</strong> in the file <strong>%2$s</strong>. %3$s. %4$s', 'themecheck'), $error, $filename, $check, $grep );
30
+ $ret = false;
31
+ }
32
+ }
33
+ }
34
+
35
+
36
+ $checks = array(
37
+ '/cx=[0-9]{21}:[a-z0-9]{10}/' => __( 'Google search code detected', 'themecheck' ),
38
+ '/pub-[0-9]{16}/' => __( 'Googe advertising code detected', 'themecheck' )
39
+ );
40
+
41
+ foreach ( $other_files as $php_key => $phpfile ) {
42
+ foreach ( $checks as $key => $check ) {
43
+ checkcount();
44
+ if ( preg_match( $key, $phpfile, $matches ) ) {
45
+ $filename = tc_filename( $php_key );
46
+ $error = ltrim( rtrim( $matches[0],'(' ) );
47
+ $grep = tc_grep( $error, $php_key );
48
+ $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Found <strong>%1$s</strong> in the file <strong>%2$s</strong>. %3$s.%4$s', 'themecheck'), $error, $filename, $check, $grep);
49
+ $ret = false;
50
+ }
51
+ }
52
+ }
53
+ return $ret;
54
+ }
55
+ function getError() { return $this->error; }
56
+ }
57
+ $themechecks[] = new Bad_Checks;
checks/basic.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // do some basic checks for strings
4
+ class Basic_Checks implements themecheck {
5
+ protected $error = array();
6
+
7
+ function check( $php_files, $css_files, $other_files) {
8
+
9
+ $php = implode( ' ', $php_files );
10
+ $grep = '';
11
+ $ret = true;
12
+
13
+ $checks = array(
14
+ 'DOCTYPE' => __( 'See: <a href="http://codex.wordpress.org/HTML_to_XHTML">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"<br />"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"?&gt;</pre>', 'themecheck' ),
15
+ 'wp_footer\(' => __( 'See: <a href="http://codex.wordpress.org/Function_Reference/wp_footer">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>', 'themecheck' ),
16
+ 'wp_head\(' => __( 'See: <a href="http://codex.wordpress.org/Function_Reference/wp_head">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>', 'themecheck' ),
17
+ 'language_attributes' => __( 'See: <a href="http://codex.wordpress.org/Function_Reference/language_attributes">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>', 'themecheck' ),
18
+ 'charset' => __( 'There must be a charset defined in the Content-Type or the meta charset tag in the head.', 'themecheck' ),
19
+ 'add_theme_support\(\s?("|\')automatic-feed-links("|\')\s?\)' => __( 'See: <a href="http://codex.wordpress.org/Function_Reference/add_theme_support">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>', 'themecheck' ),
20
+ 'register_sidebar[s]?\(' => __( 'See: <ahref="http://codex.wordpress.org/Function_Reference/register_sidebar">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>', 'themecheck' ),
21
+ 'dynamic_sidebar\(' => __( 'See: <a href="http://codex.wordpress.org/Function_Reference/dynamic_sidebar">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>', 'themecheck' ),
22
+ 'comments_template\(' => __( 'See: <a href="http://codex.wordpress.org/Template_Tags/comments_template">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>', 'themecheck' ),
23
+ 'wp_list_comments\(' => __( 'See: <a href="http://codex.wordpress.org/Template_Tags/wp_list_comments">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>', 'themecheck' ),
24
+ 'comment_form\(' => __( 'See: <a href="http://codex.wordpress.org/Template_Tags/comment_form">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>', 'themecheck' ),
25
+ '<body.*body_class\(' => __( 'See: <a href="http://codex.wordpress.org/Template_Tags/body_class">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>', 'themecheck' ),
26
+ 'wp_link_pages\(' => __( 'See: <a href="http://codex.wordpress.org/Function_Reference/wp_link_pages">wp_link_pages</a><pre> &lt;?php wp_link_pages( $args ); ?&gt;</pre>', 'themecheck' ),
27
+ 'post_class\(' => __( 'See: <a href="http://codex.wordpress.org/Template_Tags/post_class">post_class</a><pre> &lt;div id="post-&lt;?php the_ID(); ?&gt;" &lt;?php post_class(); ?&gt;&gt;</pre>', 'themecheck' )
28
+ );
29
+
30
+ foreach ($checks as $key => $check) {
31
+ checkcount();
32
+ if ( !preg_match( '/' . $key . '/i', $php ) ) {
33
+ if ( $key === 'add_theme_support\(\s?("|\')automatic-feed-links("|\')\s?\)' ) $key = __( 'add_theme_support( \'automatic-feed-links\' )', 'themechek');
34
+ if ( $key === 'wp_enqueue_script\(\s?("|\')comment-reply("|\')' ) $key = __( 'wp_enqueue_script( \'comment-reply\' )', 'themechek');
35
+ if ( $key === '<body.*body_class\(' ) $key = __( 'body_class call in body tag', 'themechek');
36
+ if ( $key === 'register_sidebar[s]?\(' ) $key = __( 'register_sidebar() or register_sidebars()', 'themechek');
37
+ $key = ltrim( trim ( trim( $key, '(' ), '\\' ) );
38
+ $this->error[] = sprintf( __( '<span class="tc-lead tc-required">REQUIRED</span>: Could not find <strong>%1$s</strong>. %2$s', 'themecheck' ), $key, $check );
39
+ $ret = false;
40
+ }
41
+ }
42
+
43
+ return $ret;
44
+ }
45
+
46
+ function getError() { return $this->error; }
47
+ }
48
+
49
+ $themechecks[] = new Basic_Checks;
checks/comment_reply.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Comment_Reply implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files) {
6
+
7
+ $php = implode( ' ', $php_files );
8
+ $ret = true;
9
+
10
+ checkcount();
11
+
12
+ if ( ! preg_match( '/wp_enqueue_script\(\s?("|\')comment-reply("|\')/i', $php ) ) {
13
+ if ( ! preg_match( '/comment-reply/', $php ) ) {
14
+ $check = __( 'See: <a href="http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( "comment-reply" ); ?&gt;</pre>', 'themecheck' );
15
+ $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: Could not find the <strong>comment-reply</strong> script enqueued. %1$s', 'themecheck'), $check);
16
+ $ret = false;
17
+ } else {
18
+ $this->error[] = __('<span class="tc-lead tc-info">INFO</span>: Could not find the <strong>comment-reply</strong> script enqueued, however a reference to \'comment-reply\' was found. Make sure that the comment-reply script is being enqueued properly on singular pages.', 'themecheck');
19
+ }
20
+ }
21
+ return $ret;
22
+ }
23
+
24
+ function getError() { return $this->error; }
25
+ }
26
+
27
+ $themechecks[] = new Comment_Reply;
checks/commpage.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class CommentPaginationCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+ $ret = true;
8
+
9
+ // combine all the php files into one string to make it easier to search
10
+ $php = implode( ' ', $php_files );
11
+ checkcount();
12
+ if (strpos( $php, 'paginate_comments_links' ) === false &&
13
+ (strpos( $php, 'next_comments_link' ) === false && strpos( $php, 'previous_comments_link' ) === false ) ) {
14
+
15
+ $this->error[] = __( '<span class="tc-lead tc-required">REQUIRED</span>: The theme doesn\'t have comment pagination code in it. Use <strong>paginate_comments_links()</strong> or <strong>next_comments_link()</strong> and <strong>previous_comments_link()</strong> to add comment pagination.', 'themecheck' );
16
+ $ret = false;
17
+ }
18
+
19
+ return $ret;
20
+ }
21
+
22
+ function getError() { return $this->error; }
23
+ }
24
+ $themechecks[] = new CommentPaginationCheck;
checks/constants.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Constants implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ $ret = true;
9
+
10
+ $checks = array(
11
+ 'STYLESHEETPATH' => 'get_stylesheet_directory()',
12
+ 'TEMPLATEPATH' => 'get_template_directory()',
13
+ 'PLUGINDIR' => 'WP_PLUGIN_DIR',
14
+ 'MUPLUGINDIR' => 'WPMU_PLUGIN_DIR'
15
+ );
16
+
17
+ foreach ( $php_files as $php_key => $phpfile ) {
18
+ foreach ( $checks as $key => $check ) {
19
+ checkcount();
20
+ if ( preg_match( '/[\s|]' . $key . '/', $phpfile, $matches ) ) {
21
+ $filename = tc_filename( $php_key );
22
+ $error = ltrim( rtrim( $matches[0], '(' ) );
23
+ $grep = tc_grep( $error, $php_key );
24
+ $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s', 'themecheck'), $error, $filename, $check, $grep );
25
+ }
26
+ }
27
+ }
28
+ return $ret;
29
+ }
30
+
31
+ function getError() { return $this->error; }
32
+ }
33
+ $themechecks[] = new Constants;
checks/content-width.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ContentWidthCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ $ret = true;
9
+
10
+ // combine all the php files into one string to make it easier to search
11
+ $php = implode( ' ', $php_files );
12
+ checkcount();
13
+ if ( strpos( $php, '$content_width' ) === false && !preg_match( '/add_filter\(\s?("|\')embed_defaults/', $php ) && !preg_match( '/add_filter\(\s?("|\')content_width/', $php ) ) {
14
+ $this->error[] = __( "<span class='tc-lead tc-required'>REQUIRED</span>: No content width has been defined. Example: <pre>if ( ! isset( \$content_width ) ) \$content_width = 900;</pre>", "themecheck" );
15
+ $ret = false;
16
+ }
17
+
18
+ return $ret;
19
+ }
20
+
21
+ function getError() { return $this->error; }
22
+ }
23
+ $themechecks[] = new ContentWidthCheck;
checks/customs.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class CustomCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files) {
7
+
8
+ $ret = true;
9
+ $php = implode( ' ', $php_files );
10
+
11
+ checkcount();
12
+
13
+ if ( ! preg_match( '#add_theme_support\s?\(\s?[\'|"]custom-header#', $php ) ) {
14
+ $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_theme_support( 'custom-header', \$args )</strong> was found in the theme. It is recommended that the theme implement this functionality if using an image for the header.", "themecheck" );
15
+ }
16
+
17
+ if ( ! preg_match( '#add_theme_support\s?\(\s?[\'|"]custom-background#', $php ) ) {
18
+ $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_theme_support( 'custom-background', \$args )</strong> was found in the theme. If the theme uses background images or solid colors for the background, then it is recommended that the theme implement this functionality.", "themecheck" );
19
+ }
20
+
21
+ return $ret;
22
+ }
23
+
24
+ function getError() { return $this->error; }
25
+ }
26
+ $themechecks[] = new CustomCheck;
checks/dep_recommend.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // recommended deprecations checks... After some time, these will move into deprecated.php and become required.
3
+ class Deprecated_Recommended implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+ $grep = '';
8
+
9
+ $ret = true;
10
+
11
+ $checks = array(
12
+ // frontend
13
+ array( 'get_themes' => 'wp_get_themes()', '3.4' ),
14
+ array( 'get_theme' => 'wp_get_theme()', '3.4' ),
15
+ array( 'get_current_theme' => 'wp_get_theme()', '3.4' ),
16
+ array( 'clean_pre' => 'none available', '3.4' ),
17
+ array( 'add_custom_image_header' => 'add_theme_support( \'custom-header\', $args )', '3.4' ),
18
+ array( 'remove_custom_image_header' => 'remove_theme_support( \'custom-header\' )', '3.4' ),
19
+ array( 'add_custom_background' => 'add_theme_support( \'custom-background\', $args )', '3.4' ),
20
+ array( 'remove_custom_background' => 'remove_theme_support( \'custom-background\' )', '3.4' ),
21
+ array( 'get_theme_data' => 'wp_get_theme()', '3.4' ),
22
+ array( 'update_page_cache' => 'update_post_cache()', '3.4' ),
23
+ array( 'clean_page_cache' => 'clean_post_cache()', '3.4' ),
24
+
25
+ // admin
26
+ array( 'get_allowed_themes' => 'wp_get_themes( array( \'allowed\' => true ) )', '3.4' ),
27
+ array( 'get_broken_themes' => 'wp_get_themes( array( \'errors\' => true )', '3.4' ),
28
+ array( 'current_theme_info' => 'wp_get_theme()', '3.4' ),
29
+ );
30
+
31
+ foreach ( $php_files as $php_key => $phpfile ) {
32
+ foreach ( $checks as $alt => $check ) {
33
+ checkcount();
34
+ $version = $check;
35
+ $key = key( $check );
36
+ $alt = $check[ $key ];
37
+ if ( preg_match( '/[\s?]' . $key . '\(/', $phpfile, $matches ) ) {
38
+ $filename = tc_filename( $php_key );
39
+ $error = ltrim( rtrim( $matches[0], '(' ) );
40
+ $version = $check[0];
41
+ $grep = tc_grep( $error, $php_key );
42
+ $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: <strong>%1$s</strong> found in the file <strong>%2$s</strong>. Deprecated since version <strong>%3$s</strong>. Use <strong>%4$s</strong> instead.%5$s', 'themecheck'), $error, $filename, $version, $alt, $grep) ;
43
+ }
44
+ }
45
+ }
46
+ return $ret;
47
+ }
48
+
49
+ function getError() { return $this->error; }
50
+ }
51
+ $themechecks[] = new Deprecated_Recommended;
checks/deprecated.php ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Deprecated implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+ $grep = '';
8
+
9
+ $ret = true;
10
+
11
+ $checks = array(
12
+ // start wp-includes deprecated
13
+ array( 'get_post_data' => 'get_post()', '1.5.1' ),
14
+ array( 'start_wp' => 'Use the Loop', '1.5' ),
15
+ array( 'the_category_id' => 'get_the_category()', '0.71' ),
16
+ array( 'the_category_head' => 'get_the_category_by_ID()', '0.71' ),
17
+ array( 'previous_post' => 'previous_post_link()', '2.0' ),
18
+ array( 'next_post' => 'next_post_link()', '2.0' ),
19
+ array( 'user_can_create_post' => 'current_user_can()', '2.0' ),
20
+ array( 'user_can_create_draft' => 'current_user_can()', '2.0' ),
21
+ array( 'user_can_edit_post' => 'current_user_can()', '2.0' ),
22
+ array( 'user_can_delete_post' => 'current_user_can()', '2.0' ),
23
+ array( 'user_can_set_post_date' => 'current_user_can()', '2.0' ),
24
+ array( 'user_can_edit_post_comments' => 'current_user_can()', '2.0' ),
25
+ array( 'user_can_delete_post_comments' => 'current_user_can()', '2.0' ),
26
+ array( 'user_can_edit_user' => 'current_user_can()', '2.0' ),
27
+ array( 'get_linksbyname' => 'get_bookmarks()', '2.1' ),
28
+ array( 'wp_get_linksbyname' => 'wp_list_bookmarks()', '2.1' ),
29
+ array( 'get_linkobjectsbyname' => 'get_bookmarks()', '2.1' ),
30
+ array( 'get_linkobjects' => 'get_bookmarks()', '2.1' ),
31
+ array( 'get_linksbyname_withrating' => 'get_bookmarks()', '2.1' ),
32
+ array( 'get_links_withrating' => 'get_bookmarks()', '2.1' ),
33
+ array( 'get_autotoggle' => 'none available', '2.1' ),
34
+ array( 'list_cats' => 'wp_list_categories', '2.1' ),
35
+ array( 'wp_list_cats' => 'wp_list_categories', '2.1' ),
36
+ array( 'dropdown_cats' => 'wp_dropdown_categories()', '2.1' ),
37
+ array( 'list_authors' => 'wp_list_authors()', '2.1' ),
38
+ array( 'wp_get_post_cats' => 'wp_get_post_categories()', '2.1' ),
39
+ array( 'wp_set_post_cats' => 'wp_set_post_categories()', '2.1' ),
40
+ array( 'get_archives' => 'wp_get_archives', '2.1' ),
41
+ array( 'get_author_link' => 'get_author_posts_url()', '2.1' ),
42
+ array( 'link_pages' => 'wp_link_pages()', '2.1' ),
43
+ array( 'get_settings' => 'get_option()', '2.1' ),
44
+ array( 'permalink_link' => 'the_permalink()', '1.2' ),
45
+ array( 'permalink_single_rss' => 'permalink_rss()', '2.3' ),
46
+ array( 'wp_get_links' => 'wp_list_bookmarks()', '2.1' ),
47
+ array( 'get_links' => 'get_bookmarks()', '2.1' ),
48
+ array( 'get_links_list' => 'wp_list_bookmarks()', '2.1' ),
49
+ array( 'links_popup_script' => 'none available', '2.1' ),
50
+ array( 'get_linkrating' => 'sanitize_bookmark_field()', '2.1' ),
51
+ array( 'get_linkcatname' => 'get_category()', '2.1' ),
52
+ array( 'comments_rss_link' => 'post_comments_feed_link()', '2.5' ),
53
+ array( 'get_category_rss_link' => 'get_category_feed_link()'. '2.5' ),
54
+ array( 'get_author_rss_link' => 'get_author_feed_link()', '2.5' ),
55
+ array( 'comments_rss' => 'get_post_comments_feed_link()', '2.2' ),
56
+ array( 'create_user' => 'wp_create_user()', '2.0' ),
57
+ array( 'gzip_compression' => 'none available', '2.5' ),
58
+ array( 'get_commentdata' => 'get_comment()', '2.7' ),
59
+ array( 'get_catname' => 'get_cat_name()', '2.8' ),
60
+ array( 'get_category_children' => 'get_term_children', '2.8' ),
61
+ array( 'get_the_author_description' => 'get_the_author_meta(\'description\')', '2.8' ),
62
+ array( 'the_author_description' => 'the_author_meta(\'description\')', '2.8' ),
63
+ array( 'get_the_author_login' => 'the_author_meta(\'login\')', '2.8' ),
64
+ array( 'get_the_author_firstname' => 'get_the_author_meta(\'first_name\')', '2.8' ),
65
+ array( 'the_author_firstname' => 'the_author_meta(\'first_name\')', '2.8' ),
66
+ array( 'get_the_author_lastname' => 'get_the_author_meta(\'last_name\')', '2.8' ),
67
+ array( 'the_author_lastname' => 'the_author_meta(\'last_name\')', '2.8' ),
68
+ array( 'get_the_author_nickname' => 'get_the_author_meta(\'nickname\')', '2.8' ),
69
+ array( 'the_author_nickname' => 'the_author_meta(\'nickname\')', '2.8' ),
70
+ array( 'get_the_author_email' => 'get_the_author_meta(\'email\')', '2.8' ),
71
+ array( 'the_author_email' => 'the_author_meta(\'email\')', '2.8' ),
72
+ array( 'get_the_author_icq' => 'get_the_author_meta(\'icq\')', '2.8' ),
73
+ array( 'the_author_icq' => 'the_author_meta(\'icq\')', '2.8' ),
74
+ array( 'get_the_author_yim' => 'get_the_author_meta(\'yim\')', '2.8' ),
75
+ array( 'the_author_yim' => 'the_author_meta(\'yim\')', '2.8' ),
76
+ array( 'get_the_author_msn' => 'get_the_author_meta(\'msn\')', '2.8' ),
77
+ array( 'the_author_msn' => 'the_author_meta(\'msn\')', '2.8' ),
78
+ array( 'get_the_author_aim' => 'get_the_author_meta(\'aim\')', '2.8' ),
79
+ array( 'the_author_aim' => 'the_author_meta(\'aim\')', '2.8' ),
80
+ array( 'get_author_name' => 'get_the_author_meta(\'display_name\')', '2.8' ),
81
+ array( 'get_the_author_url' => 'get_the_author_meta(\'url\')', '2.8' ),
82
+ array( 'the_author_url' => 'the_author_meta(\'url\')', '2.8' ),
83
+ array( 'get_the_author_ID' => 'get_the_author_meta(\'ID\')', '2.8' ),
84
+ array( 'the_author_ID' => 'the_author_meta(\'ID\')', '2.8' ),
85
+ array( 'the_content_rss' => 'the_content_feed()', '2.9' ),
86
+ array( 'make_url_footnote' => 'none available', '2.9' ),
87
+ array( '_c' => '_x()', '2.9' ),
88
+ array( 'translate_with_context' => '_x()', '3.0' ),
89
+ array( 'nc' => 'nx()', '3.0' ),
90
+ array( '__ngettext' => '_n_noop()', '2.8' ),
91
+ array( '__ngettext_noop' => '_n_noop()', '2.8' ),
92
+ array( 'get_alloptions' => 'wp_load_alloptions()', '3.0' ),
93
+ array( 'get_the_attachment_link' => 'wp_get_attachment_link()', '2.5' ),
94
+ array( 'get_attachment_icon_src' => 'wp_get_attachment_image_src()', '2.5' ),
95
+ array( 'get_attachment_icon' => 'wp_get_attachment_image()', '2.5' ),
96
+ array( 'get_attachment_innerhtml' => 'wp_get_attachment_image()', '2.5' ),
97
+ array( 'get_link' => 'get_bookmark()', '2.1' ),
98
+ array( 'sanitize_url' => 'esc_url()', '2.8' ),
99
+ array( 'clean_url' => 'esc_url()', '3.0' ),
100
+ array( 'js_escape' => 'esc_js()', '2.8' ),
101
+ array( 'wp_specialchars' => 'esc_html()', '2.8' ),
102
+ array( 'attribute_escape' => 'esc_attr()', '2.8' ),
103
+ array( 'register_sidebar_widget' => 'wp_register_sidebar_widget()', '2.8' ),
104
+ array( 'unregister_sidebar_widget' => 'wp_unregister_sidebar_widget()', '2.8' ),
105
+ array( 'register_widget_control' => 'wp_register_widget_control()', '2.8' ),
106
+ array( 'unregister_widget_control' => 'wp_unregister_widget_control()', '2.8' ),
107
+ array( 'delete_usermeta' => 'delete_user_meta()', '3.0' ),
108
+ array( 'get_usermeta' => 'get_user_meta()', '3.0' ),
109
+ array( 'update_usermeta' => 'update_user_meta()', '3.0' ),
110
+ array( 'automatic_feed_links' => 'add_theme_support( \'automatic-feed-links\' )', '3.0' ),
111
+ array( 'get_profile' => 'get_the_author_meta()', '3.0' ),
112
+ array( 'get_usernumposts' => 'count_user_posts()', '3.0' ),
113
+ array( 'funky_javascript_callback' => 'none available', '3.0' ),
114
+ array( 'funky_javascript_fix' => 'none available', '3.0' ),
115
+ array( 'is_taxonomy' => 'taxonomy_exists()', '3.0' ),
116
+ array( 'is_term' => 'term_exists()', '3.0' ),
117
+ array( 'is_plugin_page' => '$plugin_page and/or get_plugin_page_hookname() hooks', '3.1' ),
118
+ array( 'update_category_cache' => 'No alternatives', '3.1' ),
119
+ array( 'get_users_of_blog' => 'get_users()', '3.1' ),
120
+ array( 'wp_timezone_supported' => 'None available', '3.2' ),
121
+ array( 'the_editor' => 'wp_editor', '3.3' ),
122
+ array( 'get_user_metavalues' => 'none available', '3.3' ),
123
+ array( 'sanitize_user_object' => 'none available', '3.3' ),
124
+ array( 'get_boundary_post_rel_link' => 'none available', '3.3' ),
125
+ array( 'start_post_rel_link' => 'none available ', '3.3' ),
126
+ array( 'get_index_rel_link' => 'none available', '3.3' ),
127
+ array( 'index_rel_link' => 'none available', '3.3' ),
128
+ array( 'get_parent_post_rel_link' => 'none available', '3.3' ),
129
+ array( 'parent_post_rel_link' => 'none available', '3.3' ),
130
+ array( 'wp_admin_bar_dashboard_view_site_menu' => 'none available', '3.3' ),
131
+ array( 'is_blog_user' => 'is_member_of_blog()', '3.3' ),
132
+ array( 'debug_fopen' => 'error_log()', '3.3' ),
133
+ array( 'debug_fwrite' => 'error_log()', '3.3' ),
134
+ array( 'debug_fclose' => 'error_log()', '3.3' ),
135
+
136
+
137
+
138
+ // end wp-includes deprecated
139
+
140
+ // start wp-admin deprecated
141
+ array( 'tinymce_include' => 'wp_tiny_mce()', '2.1' ),
142
+ array( 'documentation_link' => 'None available', '2.5' ),
143
+ array( 'wp_shrink_dimensions' => 'wp_constrain_dimensions()','3.0' ),
144
+ array( 'dropdown_categories' => 'wp_category_checklist()','2.6' ),
145
+ array( 'dropdown_link_categories' => 'wp_link_category_checklist()','2.6' ),
146
+ array( 'wp_dropdown_cats' => 'wp_dropdown_categories()','3.0' ),
147
+ array( 'add_option_update_handler' => 'register_setting()','3.0' ),
148
+ array( 'remove_option_update_handler' => 'unregister_setting()','3.0' ),
149
+ array( 'codepress_get_lang' => 'None available','3.0' ),
150
+ array( 'codepress_footer_js' => 'None available','3.0' ),
151
+ array( 'use_codepress' => 'None available','3.0' ),
152
+ array( 'get_author_user_ids' => 'None available','3.1' ),
153
+ array( 'get_editable_authors' => 'None available','3.1' ),
154
+ array( 'get_editable_user_ids' => 'None available','3.1' ),
155
+ array( 'get_nonauthor_user_ids' => 'None available','3.1' ),
156
+ array( 'WP_User_Search' => 'WP_User_Query','3.1' ),
157
+ array( 'get_others_unpublished_posts' => 'None available','3.1' ),
158
+ array( 'get_others_drafts' => 'None available','3.1' ),
159
+ array( 'get_others_pending' => 'None available', '3.1' ),
160
+ array( 'wp_dashboard_quick_press()' => 'None available', '3.2' ),
161
+ array( 'wp_tiny_mce' => 'wp_editor', '3.2' ),
162
+ array( 'wp_preload_dialogs' => 'wp_editor()', '3.2' ),
163
+ array( 'wp_print_editor_js' => 'wp_editor()', '3.2' ),
164
+ array( 'wp_quicktags' => 'wp_editor()', '3.2' ),
165
+ array( 'favorite_actions' => 'WP_Admin_Bar', '3.2' ),
166
+ array( 'screen_layout' => '$current_screen->render_screen_layout()', '3.3' ),
167
+ array( 'screen_options' => '$current_screen->render_per_page_options()', '3.3' ),
168
+ array( 'screen_meta' => ' $current_screen->render_screen_meta()', '3.3' ),
169
+ array( 'media_upload_image' => 'wp_media_upload_handler()', '3.3' ),
170
+ array( 'media_upload_audio' => 'wp_media_upload_handler()', '3.3' ),
171
+ array( 'media_upload_video' => 'wp_media_upload_handler()', '3.3' ),
172
+ array( 'media_upload_file' => 'wp_media_upload_handler()', '3.3' ),
173
+ array( 'type_url_form_image' => 'wp_media_insert_url_form( \'image\' )', '3.3' ),
174
+ array( 'type_url_form_audio' => 'wp_media_insert_url_form( \'audio\' )', '3.3' ),
175
+ array( 'type_url_form_video' => 'wp_media_insert_url_form( \'video\' )', '3.3' ),
176
+ array( 'type_url_form_file' => 'wp_media_insert_url_form( \'file\' )', '3.3' ),
177
+ array( 'add_contextual_help' => 'get_current_screen()->add_help_tab()', '3.3' ),
178
+ // end wp-admin
179
+ );
180
+ foreach ( $php_files as $php_key => $phpfile ) {
181
+ foreach ( $checks as $alt => $check ) {
182
+ checkcount();
183
+ $version = $check;
184
+ $key = key( $check );
185
+ $alt = $check[ $key ];
186
+ if ( preg_match( '/[\s?]' . $key . '\(/', $phpfile, $matches ) ) {
187
+ $filename = tc_filename( $php_key );
188
+ $error = ltrim( rtrim( $matches[0], '(' ) );
189
+ $version = $check[0];
190
+ $grep = tc_grep( $error, $php_key );
191
+ $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong> found in the file <strong>%2$s</strong>. Deprecated since version <strong>%3$s</strong>. Use <strong>%4$s</strong> instead.%5$s', 'themecheck'), $error, $filename, $version, $alt, $grep );
192
+ $ret = false;
193
+ }
194
+ }
195
+ }
196
+ return $ret;
197
+ }
198
+
199
+ function getError() { return $this->error; }
200
+ }
201
+ $themechecks[] = new Deprecated;
checks/directories.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class DirectoriesCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ $ret = true;
9
+ $found = false;
10
+
11
+ foreach ( $php_files as $name => $file ) {
12
+ checkcount();
13
+ if ( strpos( $name, '.git' ) !== false || strpos( $name, '.svn' ) !== false ) $found = true;
14
+ }
15
+
16
+ foreach ( $css_files as $name => $file ) {
17
+ checkcount();
18
+ if ( strpos( $name, '.git' ) !== false || strpos( $name, '.svn' ) !== false ) $found = true;
19
+ }
20
+
21
+ foreach ( $other_files as $name => $file ) {
22
+ checkcount();
23
+ if ( strpos( $name, '.git' ) !== false || strpos( $name, '.svn' ) !== false ) $found = true;
24
+ }
25
+
26
+ if ($found) {
27
+ $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: Please remove any extraneous directories like .git or .svn from the ZIP file before uploading it.', 'themecheck') );
28
+ $ret = false;
29
+ }
30
+
31
+ return $ret;
32
+ }
33
+
34
+ function getError() { return $this->error; }
35
+ }
36
+ $themechecks[] = new DirectoriesCheck;
checks/editorstyle.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class EditorStyleCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+ checkcount();
8
+ $ret = true;
9
+
10
+ $php = implode( ' ', $php_files );
11
+
12
+ if ( strpos( $php, 'add_editor_style' ) === false ) {
13
+ $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_editor_style()</strong> was found in the theme. It is recommended that the theme implement editor styling, so as to make the editor content match the resulting post output in the theme, for a better user experience.", "themecheck" );
14
+ }
15
+
16
+ return $ret;
17
+ }
18
+
19
+ function getError() { return $this->error; }
20
+ }
21
+ $themechecks[] = new EditorStyleCheck;
checks/filenames.php ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class File_Checks implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+
7
+ $ret = true;
8
+
9
+ $filenames = array();
10
+
11
+ foreach ( $php_files as $php_key => $phpfile ) {
12
+ array_push( $filenames, strtolower( basename( $php_key ) ) );
13
+ }
14
+ foreach ( $other_files as $php_key => $phpfile ) {
15
+ array_push( $filenames, strtolower( basename( $php_key ) ) );
16
+ }
17
+ foreach ( $css_files as $php_key => $phpfile ) {
18
+ array_push( $filenames, strtolower( basename( $php_key ) ) );
19
+ }
20
+ $blacklist = array(
21
+ 'thumbs.db' => __( 'Windows thumbnail store', 'themecheck' ),
22
+ 'desktop.ini' => __( 'windows system file', 'themecheck' ),
23
+ 'project.properties' => __( 'NetBeans Project File', 'themecheck' ),
24
+ 'project.xml' => __( 'NetBeans Project File', 'themecheck' ),
25
+ '\.kpf' => __( 'Komodo Project File', 'themecheck' ),
26
+ '^\.+[a-zA-Z0-9]' => __( 'Hidden Files or Folders', 'themecheck' ),
27
+ 'php.ini' => __( 'PHP server settings file', 'themecheck' ),
28
+ 'dwsync.xml' => __( 'Dreamweaver project file', 'themecheck' ),
29
+ 'error_log' => __( 'PHP error log', 'themecheck' ),
30
+ 'web.config' => __( 'Server settings file', 'themecheck' ),
31
+ '\.sql' => __( 'SQL dump file', 'themecheck' ),
32
+ '__MACOSX' => __( 'OSX system file', 'themecheck' )
33
+ );
34
+
35
+ $musthave = array( 'index.php', 'comments.php', 'style.css' );
36
+ $rechave = array( 'readme.txt' => __( 'Please see <a href="http://codex.wordpress.org/Theme_Review#Theme_Documentation">Theme_Documentation</a> for more information.', 'themecheck' ) );
37
+
38
+ checkcount();
39
+
40
+ foreach( $blacklist as $file => $reason ) {
41
+ if ( $filename = preg_grep( '/' . $file . '/', $filenames ) ) {
42
+ $error = implode( array_unique( $filename ), ' ' );
43
+ $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: <strong>%1$s</strong> %2$s found.', 'themecheck'), $error, $reason) ;
44
+ $ret = false;
45
+ }
46
+ }
47
+
48
+ foreach( $musthave as $file ) {
49
+ if ( !in_array( $file, $filenames ) ) {
50
+ $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: could not find the file <strong>%1$s</strong> in the theme.', 'themecheck'), $file);
51
+ $ret = false;
52
+ }
53
+ }
54
+
55
+ foreach( $rechave as $file => $reason ) {
56
+ if ( !in_array( $file, $filenames ) ) {
57
+ $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: could not find the file <strong>%1$s</strong> in the theme. %2$s', 'themecheck'), $file, $reason );
58
+ }
59
+ }
60
+
61
+ return $ret;
62
+ }
63
+
64
+ function getError() { return $this->error; }
65
+ }
66
+ $themechecks[] = new File_Checks;
checks/gravatar.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class GravatarCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ $php = implode( ' ', $php_files );
9
+
10
+ checkcount();
11
+
12
+ $ret = true;
13
+
14
+ if ( ( strpos( $php, 'get_avatar' ) === false ) && ( strpos( $php, 'wp_list_comments' ) === false ) ) {
15
+ $this->error[] = __( "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to support the standard avatar functions. Use <strong>get_avatar</strong> or <strong>wp_list_comments</strong> to add this support.", "themecheck" );
16
+ $ret = false;
17
+ }
18
+
19
+ return $ret;
20
+ }
21
+
22
+ function getError() { return $this->error; }
23
+ }
24
+ $themechecks[] = new GravatarCheck;
checks/i18n.php ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // check for various I18N errors
4
+
5
+ class I18NCheck implements themecheck {
6
+ protected $error = array();
7
+
8
+ function check( $php_files, $css_files, $other_files ) {
9
+ $ret = true;
10
+ $error = '';
11
+ checkcount();
12
+
13
+ // make sure the tokenizer is available
14
+ if ( !function_exists( 'token_get_all' ) ) return true;
15
+
16
+ foreach ( $php_files as $php_key => $phpfile ) {
17
+ $error='';
18
+
19
+ $stmts = array();
20
+ foreach ( array('_e(', '__(', '_e (', '__ (') as $finder) {
21
+ $search = $phpfile;
22
+ while ( ( $pos = strpos($search, $finder) ) !== false ) {
23
+ $search = substr($search,$pos);
24
+ $open=1;
25
+ $i=strpos($search,'(')+1;
26
+ while( $open>0 ) {
27
+ switch($search[$i]) {
28
+ case '(':
29
+ $open++; break;
30
+ case ')':
31
+ $open--; break;
32
+ }
33
+ $i++;
34
+ }
35
+ $stmts[] = substr($search,0,$i);
36
+ $search = substr($search,$i);
37
+ }
38
+ }
39
+
40
+ foreach ( $stmts as $match ) {
41
+ $tokens = @token_get_all('<?php '.$match.';');
42
+ if (!empty($tokens)) {
43
+ foreach ($tokens as $token) {
44
+ if (is_array($token) && in_array( $token[0], array( T_VARIABLE ) ) ) {
45
+ $filename = tc_filename( $php_key );
46
+ $grep = tc_grep( ltrim( $match ), $php_key );
47
+ preg_match( '/[^\s]*\s[0-9]+/', $grep, $line);
48
+ $error = ( !strpos( $error, $line[0] ) ) ? $grep : '';
49
+ $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: Possible variable <strong>%1$s</strong> found in translation function in <strong>%2$s</strong>. Translation function calls must NOT contain PHP variables. %3$s','themecheck'),
50
+ $token[1], $filename, $error);
51
+ break; // stop looking at the tokens on this line once a variable is found
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+
58
+ }
59
+ return $ret;
60
+ }
61
+
62
+ function getError() { return $this->error; }
63
+ }
64
+ $themechecks[] = new I18NCheck;
checks/iframes.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class IframeCheck implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+ $ret = true;
7
+
8
+ $checks = array(
9
+ '/<(iframe)[^>]*>/' => __( 'iframes are sometimes used to load unwanted adverts and code on your site', 'themecheck' )
10
+ );
11
+
12
+ foreach ( $php_files as $php_key => $phpfile ) {
13
+ foreach ( $checks as $key => $check ) {
14
+ checkcount();
15
+ if ( preg_match( $key, $phpfile, $matches ) ) {
16
+ $filename = tc_filename( $php_key );
17
+ $error = ltrim( $matches[1], '(' );
18
+ $error = rtrim( $error, '(' );
19
+ $grep = tc_grep( $error, $php_key );
20
+ $this->error[] = sprintf(__('<span class="tc-lead tc-info">INFO</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong> %3$s.%4$s', 'themecheck'), $error, $filename, $check, $grep ) ;
21
+ }
22
+ }
23
+ }
24
+ return $ret;
25
+ }
26
+
27
+ function getError() { return $this->error; }
28
+ }
29
+ $themechecks[] = new IframeCheck;
checks/include.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class IncludeCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ $ret = true;
9
+
10
+ $checks = array( '/(?<![a-z0-9_])(?:requir|includ)e(?:_once)?\s?\(/' => __( 'The theme appears to use include or require. If these are being used to include separate sections of a template from independent files, then <strong>get_template_part()</strong> should be used instead.', 'themecheck' ) );
11
+
12
+ foreach ( $php_files as $php_key => $phpfile ) {
13
+ foreach ( $checks as $key => $check ) {
14
+ checkcount();
15
+ if ( preg_match( $key, $phpfile, $matches ) ) {
16
+ $filename = tc_filename( $php_key );
17
+ $error = '/(?<![a-z0-9_])(?:requir|includ)e(?:_once)?\s?\(/';
18
+ $grep = tc_preg( $error, $php_key );
19
+ if ( basename($filename) !== 'functions.php' ) $this->error[] = sprintf ( __( '<span class="tc-lead tc-info">INFO</span>: <strong>%1$s</strong> %2$s %3$s', 'themecheck' ), $filename, $check, $grep );
20
+ }
21
+ }
22
+
23
+ }
24
+ return $ret;
25
+ }
26
+
27
+ function getError() { return $this->error; }
28
+ }
29
+ $themechecks[] = new IncludeCheck;
checks/lineendings.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class LineEndingsCheck implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+ $ret = true;
7
+ foreach ( $php_files as $php_key => $phpfile ) {
8
+ if (preg_match("/\r\n/",$phpfile)) {
9
+ if (preg_match("/[^\r]\n/",$phpfile)) {
10
+ $filename = tc_filename( $php_key );
11
+ $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Both DOS and UNIX style line endings were found in the file <strong>%1$s</strong>. This causes a problem with SVN repositories and must be corrected before the theme can be accepted. Please change the file to use only one style of line endings.', 'themecheck'), $filename);
12
+ $ret = false;
13
+ }
14
+ }
15
+ }
16
+ foreach ( $css_files as $css_key => $cssfile ) {
17
+ if (preg_match("/\r\n/",$cssfile)) {
18
+ if (preg_match("/[^\r]\n/",$cssfile)) {
19
+ $filename = tc_filename( $css_key );
20
+ $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Both DOS and UNIX style line endings were found in the file <strong>%1$s</strong>. This causes a problem with SVN repositories and must be corrected before the theme can be accepted. Please change the file to use only one style of line endings.', 'themecheck'), $filename);
21
+ $ret = false;
22
+ }
23
+ }
24
+ }
25
+ foreach ( $other_files as $oth_key => $othfile ) {
26
+ $e = pathinfo($oth_key);
27
+ if ( isset( $e['extension'] ) && in_array( $e['extension'], array( 'txt','js' ) ) ) {
28
+ if (preg_match("/\r\n/",$othfile)) {
29
+ if (preg_match("/[^\r]\n/",$othfile)) {
30
+ $filename = tc_filename( $oth_key );
31
+ $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Both DOS and UNIX style line endings were found in the file <strong>%1$s</strong>. This causes a problem with SVN repositories and must be corrected before the theme can be accepted. Please change the file to use only one style of line endings.', 'themecheck'), $filename);
32
+ $ret = false;
33
+ }
34
+ }
35
+ }
36
+ }
37
+ return $ret;
38
+ }
39
+
40
+ function getError() { return $this->error; }
41
+ }
42
+
43
+ $themechecks[] = new LineEndingsCheck;
checks/links.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Check_Links implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+
7
+ $ret = true;
8
+ global $data;
9
+ foreach ( $php_files as $php_key => $phpfile ) {
10
+ checkcount();
11
+ $grep = '';
12
+ // regex borrowed from TAC
13
+ $url_re = '([[:alnum:]\-\.])+(\\.)([[:alnum:]]){2,4}([[:blank:][:alnum:]\/\+\=\%\&\_\\\.\~\?\-]*)';
14
+ $title_re = '[[:blank:][:alnum:][:punct:]]*'; // 0 or more: any num, letter(upper/lower) or any punc symbol
15
+ $space_re = '(\\s*)';
16
+ if ( preg_match_all( "/(<a)(\\s+)(href" . $space_re . "=" . $space_re . "\"" . $space_re . "((http|https|ftp):\\/\\/)?)" . $url_re . "(\"" . $space_re . $title_re . $space_re . ">)" . $title_re . "(<\\/a>)/is", $phpfile, $out, PREG_SET_ORDER ) ) {
17
+ $filename = tc_filename( $php_key );
18
+ $out = array_unique( $out );
19
+ foreach( $out as $key ) {
20
+ if ( preg_match( '/\<a\s?href\s?=\s?["|\'](.*?)[\'|"](.*?)\>(.*?)\<\/a\>/is', $key[0], $stripped ) ) {
21
+ if ( !empty( $data['AuthorURI'] ) && !empty( $data['URI'] ) && $stripped[1] && !strpos( $stripped[1], $data['URI'] ) && !strpos( $stripped[1], $data['AuthorURI'] ) && !strpos( $stripped[1], 'wordpress.' ) ) {
22
+ $grep .= tc_grep( $stripped[1], $php_key );
23
+ }
24
+ }
25
+ if ( $grep ) {
26
+ $this->error[] = sprintf(__('<span class="tc-lead tc-info">INFO</span>: Possible hard-coded links were found in the file <strong>%1$s</strong>.%2$s', 'themecheck'), $filename, $grep);
27
+ }
28
+ }
29
+ }
30
+ }
31
+ return $ret;
32
+ }
33
+ function getError() { return $this->error; }
34
+ }
35
+ $themechecks[] = new Check_Links;
checks/malware.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class MalwareCheck implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+ $ret = true;
7
+
8
+ $checks = array(
9
+ '/[^a-z0-9](?<!_)(file_get_contents|curl_exec|curl_init|readfile|fopen|fsockopen|pfsockopen|fclose|fread|fwrite|file_put_contents)\s?\(/' => __( 'possible file operations', 'themecheck' ),
10
+ );
11
+
12
+ foreach ( $php_files as $php_key => $phpfile ) {
13
+ foreach ( $checks as $key => $check ) {
14
+ checkcount();
15
+
16
+ if ( preg_match_all( $key, $phpfile, $matches ) ) {
17
+ $filename = tc_filename( $php_key );
18
+
19
+ foreach ($matches[1] as $match ) {
20
+ $error = ltrim( $match, '(' );
21
+ $error = rtrim( $error, '(' );
22
+ $grep = tc_grep( $error, $php_key );
23
+ $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong> %3$s.%4$s', 'themecheck'), $error, $filename, $check, $grep );
24
+ $ret = false;
25
+ }
26
+ }
27
+ }
28
+ }
29
+ return $ret;
30
+ }
31
+
32
+ function getError() { return $this->error; }
33
+ }
34
+ $themechecks[] = new MalwareCheck;
checks/more_deprecated.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class More_Deprecated implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ $ret = true;
9
+
10
+ $checks = array(
11
+ 'get_bloginfo\(\s?("|\')home("|\')\s?\)' => 'home_url()',
12
+ 'bloginfo\(\s?("|\')home("|\')\s?\)' => 'echo home_url()'
13
+ );
14
+
15
+ foreach ( $php_files as $php_key => $phpfile ) {
16
+ foreach ( $checks as $key => $check ) {
17
+ checkcount();
18
+ if ( preg_match( '/[\s|]' . $key . '/', $phpfile, $matches ) ) {
19
+ $filename = tc_filename( $php_key );
20
+ $error = ltrim( rtrim( $matches[0], '(' ) );
21
+ $grep = tc_grep( $error, $php_key );
22
+ $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s', 'themecheck'), $error, $filename, $check, $grep);
23
+ $ret = false;
24
+ }
25
+ }
26
+ }
27
+ return $ret;
28
+ }
29
+
30
+ function getError() { return $this->error; }
31
+ }
32
+ $themechecks[] = new More_Deprecated;
checks/navmenu.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class NavMenuCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ $ret = true;
9
+
10
+ // combine all the php files into one string to make it easier to search
11
+ $php = implode( ' ', $php_files );
12
+ checkcount();
13
+ if ( strpos( $php, 'nav_menu' ) === false ) {
14
+ $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to nav_menu's was found in the theme. Note that if your theme has a menu bar, it is required to use the WordPress nav_menu functionality for it.", "themecheck" );
15
+ }
16
+
17
+ return $ret;
18
+ }
19
+
20
+ function getError() { return $this->error; }
21
+ }
22
+
23
+ $themechecks[] = new NavMenuCheck;
checks/nonprintable.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class NonPrintableCheck implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+ $ret = true;
7
+
8
+ foreach ( $php_files as $name => $content ) {
9
+ checkcount();
10
+ // 09 = tab
11
+ // 0A = line feed
12
+ // 0D = new line
13
+ if ( preg_match('/[\x00-\x08\x0B-\x0C\x0E-\x1F\x80-\xFF]/', $content, $matches ) ) {
14
+ $filename = tc_filename( $name );
15
+ $non_print = tc_preg( '/[\x00-\x08\x0B-\x0C\x0E-\x1F\x80-\xFF]/', $name );
16
+ $this->error[] = sprintf(__('<span class="tc-lead tc-info">INFO</span>: Non-printable characters were found in the <strong>%1$s</strong> file. You may want to check this file for errors.%2$s', 'themecheck'), $filename, $non_print);
17
+ }
18
+ }
19
+
20
+ // return the pass/fail
21
+ return $ret;
22
+ }
23
+
24
+ function getError() { return $this->error; }
25
+ }
26
+
27
+ $themechecks[] = new NonPrintableCheck;
checks/phpshort.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class PHPShortTagsCheck implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+
7
+ $ret = true;
8
+
9
+ foreach ( $php_files as $php_key => $phpfile ) {
10
+ checkcount();
11
+ if ( preg_match( '/<\?(\=?)(?!php|xml)/', $phpfile ) ) {
12
+ $filename = tc_filename( $php_key );
13
+ $grep = tc_preg( '/<\?(\=?)(?!php|xml)/', $php_key );
14
+ $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Found PHP short tags in file <strong>%1$s</strong>.%2$s', 'themecheck'), $filename, $grep);
15
+ $ret = false;
16
+ }
17
+ }
18
+
19
+ return $ret;
20
+ }
21
+
22
+ function getError() { return $this->error; }
23
+ }
24
+
25
+ $themechecks[] = new PHPShortTagsCheck;
checks/post-formats.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class PostFormatCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+ $ret = true;
8
+
9
+ $php = implode( ' ', $php_files );
10
+ $css = implode( ' ', $css_files );
11
+
12
+ checkcount();
13
+
14
+ $checks = array(
15
+ '/add_theme_support\(\s?("|\')post-formats("|\')/m'
16
+ );
17
+
18
+ foreach ( $php_files as $php_key => $phpfile ) {
19
+ foreach ( $checks as $check ) {
20
+ checkcount();
21
+ if ( preg_match( $check, $phpfile, $matches ) ) {
22
+ if ( !strpos( $php, 'get_post_format' ) && !strpos( $php, 'has_post_format' ) && !strpos( $css, '.format' ) ) {
23
+ $filename = tc_filename( $php_key );
24
+ $matches[0] = str_replace(array('"',"'"),'', $matches[0]);
25
+ $error = esc_html( rtrim($matches[0], '(' ) );
26
+ $grep = tc_grep( rtrim($matches[0], '(' ), $php_key);
27
+ $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. However get_post_format and/or has_post_format were not found, and no use of formats in the CSS was detected.', 'themecheck'), $error, $filename);
28
+ $ret = false;
29
+ }
30
+ }
31
+ }
32
+ }
33
+ return $ret;
34
+ }
35
+
36
+ function getError() { return $this->error; }
37
+ }
38
+ $themechecks[] = new PostFormatCheck;
checks/postsnav.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class PostPaginationCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ $ret = true;
9
+
10
+ // combine all the php files into one string to make it easier to search
11
+ $php = implode( ' ', $php_files );
12
+ checkcount();
13
+ if ( strpos( $php, 'posts_nav_link' ) === false && strpos( $php, 'paginate_links' ) === false &&
14
+ ( strpos( $php, 'previous_posts_link' ) === false && strpos( $php, 'next_posts_link' ) === false )
15
+ ) {
16
+ $this->error[] = __( "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have post pagination code in it. Use <strong>posts_nav_link()</strong> or <strong>paginate_links()</strong> or <strong>next_posts_link()</strong> and <strong>previous_posts_link()</strong> to add post pagination.", "themecheck" );
17
+ $ret = false;
18
+ }
19
+
20
+ return $ret;
21
+ }
22
+
23
+ function getError() { return $this->error; }
24
+ }
25
+ $themechecks[] = new PostPaginationCheck;
checks/postthumb.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class PostThumbnailCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ $ret = true;
9
+
10
+ // combine all the php files into one string to make it easier to search
11
+ $php = implode( ' ', $php_files );
12
+ checkcount();
13
+
14
+ if ( strpos( $php, 'the_post_thumbnail' ) === false ) {
15
+ $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>the_post_thumbnail()</strong> was found in the theme. It is recommended that the theme implement this functionality instead of using custom fields for thumbnails.", "themecheck" );
16
+ }
17
+
18
+ if ( strpos( $php, 'post-thumbnails' ) === false ) {
19
+ $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to post-thumbnails was found in the theme. If the theme has a thumbnail like functionality, it should be implemented with <strong>add_theme_support( 'post-thumbnails' )</strong>in the functions.php file.", "themecheck" );
20
+ }
21
+
22
+ return $ret;
23
+ }
24
+
25
+ function getError() { return $this->error; }
26
+ }
27
+ $themechecks[] = new PostThumbnailCheck;
checks/required.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Required implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ $ret = true;
9
+ $checks = array(
10
+ '/\s?get_option\(\s?("|\')home("|\')\s?\)/' => 'home_url()',
11
+ '/\s?get_option\(\s?("|\')site_url("|\')\s?\)/' => 'site_url()',
12
+ );
13
+
14
+ foreach ( $php_files as $php_key => $phpfile ) {
15
+ foreach ( $checks as $key => $check ) {
16
+ checkcount();
17
+ if ( preg_match( $key, $phpfile, $matches ) ) {
18
+ $filename = tc_filename( $php_key );
19
+ $matches[0] = str_replace(array('"',"'"),'', $matches[0]);
20
+ $error = esc_html( rtrim($matches[0], '(' ) );
21
+ $grep = tc_grep( rtrim($matches[0], '(' ), $php_key );
22
+ $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s', 'themecheck'), $error, $filename, $check, $grep);
23
+ $ret = false;
24
+ }
25
+ }
26
+ }
27
+ return $ret;
28
+ }
29
+ function getError() { return $this->error; }
30
+ }
31
+ $themechecks[] = new Required;
checks/screenshot.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Screenshot_Checks implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+
7
+ $ret = true;
8
+ $filenames = array();
9
+
10
+ foreach ( $other_files as $other_key => $otherfile ) {
11
+ array_push( $filenames, strtolower( basename( $other_key ) ) );
12
+ }
13
+
14
+ checkcount();
15
+ if ( in_array( 'screenshot.png', $filenames ) ) {
16
+ foreach ( $other_files as $other_key => $otherfile ) {
17
+ if ( basename( $other_key ) === 'screenshot.png' && preg_match( '/.*themes\/[^\/]*\/screenshot\.png/', $other_key )) {
18
+ // we have or screenshot!
19
+ $image = getimagesize( $other_key );
20
+ if ( $image[0] > 320 || $image[1] > 240 ) {
21
+ $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: Screenshot is wrong size! Detected: <strong>%1$sx%2$spx</strong>. Maximum allowed size is 320x240px.', 'themecheck'), $image[0], $image[1]);
22
+ }
23
+ }
24
+ }
25
+ } else {
26
+ $this->error[] = __( "<span class='tc-lead tc-warning'>WARNING</span>: No screenshot detected! Please include a screenshot.png.", "themecheck" );
27
+ $ret = false;
28
+ }
29
+ return $ret;
30
+ }
31
+
32
+ function getError() { return $this->error; }
33
+ }
34
+ $themechecks[] = new Screenshot_Checks;
checks/searchform.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class SearchFormCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ $ret = true;
9
+ $checks = array( '/(include\s?\(\s?TEMPLATEPATH\s?\.?\s?["|\']\/searchform.php["|\']\s?\))/' => __( 'Please use <strong>get_search_form()</strong> instead of including searchform.php directly.', 'themecheck' ) );
10
+ foreach ( $php_files as $php_key => $phpfile ) {
11
+ foreach ($checks as $key => $check) {
12
+ checkcount();
13
+ if ( preg_match( $key, $phpfile, $out ) ) {
14
+ $grep = tc_preg( $key, $php_key );
15
+ $filename = tc_filename( $php_key );
16
+ $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong> %2$s%3$s', 'themecheck'), $filename, $check, $grep);
17
+ $ret = false;
18
+ }
19
+ }
20
+ }
21
+ return $ret;
22
+ }
23
+
24
+ function getError() { return $this->error; }
25
+ }
26
+ $themechecks[] = new SearchFormCheck;
checks/style_needed.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Style_Needed implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+
7
+ $css = implode( ' ', $css_files );
8
+ $ret = true;
9
+
10
+ $checks = array(
11
+ '[ \t\/*#]*Theme Name:' => __( '<strong>Theme name:</strong> is missing from your style.css header.', 'themecheck' ),
12
+ '[ \t\/*#]*Description:' => __( '<strong>Description:</strong> is missing from your style.css header.', 'themecheck' ),
13
+ '[ \t\/*#]*Author:' => __( '<strong>Author:</strong> is missing from your style.css header.', 'themecheck' ),
14
+ '[ \t\/*#]*Version' => __( '<strong>Version:</strong> is missing from your style.css header.', 'themecheck' ),
15
+ '[ \t\/*#]*License:' => __( '<strong>License:</strong> is missing from your style.css header.', 'themecheck' ),
16
+ '[ \t\/*#]*License URI:' => __( '<strong>License URI:</strong> is missing from your style.css header.', 'themecheck' ),
17
+ '\.sticky' => __( '<strong>.sticky</strong> css class is needed in your theme css.', 'themecheck' ),
18
+ '\.bypostauthor' => __( '<strong>.bypostauthor</strong> css class is needed in your theme css.', 'themecheck' ),
19
+ '\.alignleft' => __( '<strong>.alignleft</strong> css class is needed in your theme css.', 'themecheck' ),
20
+ '\.alignright' => __( '<strong>.alignright</strong> css class is needed in your theme css.', 'themecheck' ),
21
+ '\.aligncenter' => __( '<strong>.aligncenter</strong> css class is needed in your theme css.', 'themecheck' ),
22
+ '\.wp-caption' => __( '<strong>.wp-caption</strong> css class is needed in your theme css.', 'themecheck' ),
23
+ '\.wp-caption-text' => __( '<strong>.wp-caption-text</strong> css class is needed in your theme css.', 'themecheck' ),
24
+ '\.gallery-caption' => __( '<strong>.gallery-caption</strong> css class is needed in your theme css.', 'themecheck' )
25
+ );
26
+
27
+ foreach ($checks as $key => $check) {
28
+ checkcount();
29
+ if ( !preg_match( '/' . $key . '/i', $css, $matches ) ) {
30
+ $this->error[] = __("<span class='tc-lead tc-required'>REQUIRED</span>:") . $check;
31
+ $ret = false;
32
+ }
33
+ }
34
+
35
+ return $ret;
36
+ }
37
+ function getError() { return $this->error; }
38
+ }
39
+ $themechecks[] = new Style_Needed;
checks/style_suggested.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Style_Suggested implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+
7
+ // combine all the css files into one string to make it easier to search
8
+ $css = implode( ' ', $css_files );
9
+
10
+ checkcount();
11
+ $ret = true;
12
+
13
+ $checks = array(
14
+ '[ \t\/*#]*Theme URI:' => 'Theme URI:',
15
+ '[ \t\/*#]*Author URI:' => 'Author URI:',
16
+ );
17
+
18
+ foreach ($checks as $key => $check) {
19
+ if ( !preg_match( '/' . $key . '/i', $css, $matches ) ) {
20
+ $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: <strong>%1$s</strong> is missing from your style.css header.', 'themecheck'), $check);
21
+ }
22
+ }
23
+
24
+ return $ret;
25
+ }
26
+
27
+ function getError() { return $this->error; }
28
+ }
29
+ $themechecks[] = new Style_Suggested;
checks/style_tags.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Style_Tags implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+
7
+ checkcount();
8
+ $ret = true;
9
+ $filenames = array();
10
+
11
+ foreach( $css_files as $cssfile => $content ) {
12
+ if ( basename( $cssfile ) === 'style.css' ) $data = get_theme_data_from_contents( $content );
13
+ }
14
+
15
+ if ( !$data[ 'Tags' ] ) {
16
+ $this->error[] = __( "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: <strong>Tags:</strong> is either empty or missing in style.css header.", "themecheck" );
17
+ return $ret;
18
+ }
19
+
20
+ $allowed_tags = array("black","blue","brown","gray","green","orange","pink","purple","red","silver","tan","white","yellow","dark","light","one-column",
21
+ "two-columns","three-columns","four-columns","left-sidebar","right-sidebar","fixed-width","flexible-width","blavatar","buddypress","custom-background",
22
+ "custom-colors","custom-header","custom-menu","editor-style","featured-image-header","featured-images","front-page-post-form","full-width-template",
23
+ "microformats","post-formats","rtl-language-support","sticky-post","theme-options","threaded-comments","translation-ready","holiday","photoblogging",
24
+ "seasonal");
25
+
26
+ foreach( $data[ 'Tags' ] as $tag ) {
27
+ if ( !in_array( strtolower( $tag ), $allowed_tags ) ) {
28
+ $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: Found wrong tag, remove <strong>%1$s</strong> from your style.css header.', 'themecheck'), $tag);
29
+ $ret = false;
30
+ }
31
+ }
32
+
33
+ return $ret;
34
+ }
35
+
36
+ function getError() { return $this->error; }
37
+ }
38
+ $themechecks[] = new Style_Tags;
checks/suggested.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Suggested implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+
7
+ $ret = true;
8
+
9
+ $checks = array(
10
+ '/[\s|]get_bloginfo\(\s?("|\')url("|\')\s?\)/' => 'home_url()',
11
+ '/[\s|]get_bloginfo\(\s?("|\')wpurl("|\')\s?\)/' => 'site_url()',
12
+ '/[\s|]get_bloginfo\(\s?("|\')stylesheet_directory("|\')\s?\)/' => 'get_stylesheet_directory_uri()',
13
+ '/[\s|]get_bloginfo\(\s?("|\')template_directory("|\')\s?\)/' => 'get_template_directory_uri()',
14
+ '/[\s|]get_bloginfo\(\s?("|\')template_url("|\')\s?\)/' => 'get_template_directory_uri()',
15
+ '/[\s|]get_bloginfo\(\s?("|\')text_direction("|\')\s?\)/' => 'is_rtl()',
16
+ '/[\s|]get_bloginfo\(\s?("|\')feed_url("|\')\s?\)/' => 'get_feed_link( \'feed\' ) (where feed is rss, rss2, atom)',
17
+ '/[\s|]bloginfo\(\s?("|\')url("|\')\s?\)/' => 'echo home_url()',
18
+ '/[\s|]bloginfo\(\s?("|\')wpurl("|\')\s?\)/' => 'echo site_url()',
19
+ '/[\s|]bloginfo\(\s?("|\')stylesheet_directory("|\')\s?\)/' => 'get_stylesheet_directory_uri()',
20
+ '/[\s|]bloginfo\(\s?("|\')template_directory("|\')\s?\)/' => 'get_template_directory_uri()',
21
+ '/[\s|]bloginfo\(\s?("|\')template_url("|\')\s?\)/' => 'get_template_directory_uri()',
22
+ '/[\s|]bloginfo\(\s?("|\')text_direction("|\')\s?\)/' => 'is_rtl()',
23
+ '/[\s|]bloginfo\(\s?("|\')feed_url("|\')\s?\)/' => 'get_feed_link( \'feed\' ) (where feed is rss, rss2, atom)',
24
+ );
25
+
26
+ foreach ( $php_files as $php_key => $phpfile ) {
27
+ foreach ( $checks as $key => $check ) {
28
+ checkcount();
29
+ if ( preg_match( $key, $phpfile, $matches ) ) {
30
+ $filename = tc_filename( $php_key );
31
+ $matches[0] = str_replace(array('"',"'"),'', $matches[0]);
32
+ $error = trim( esc_html( rtrim($matches[0], '(' ) ) );
33
+ $grep = tc_grep( rtrim( $matches[0], '(' ), $php_key );
34
+ $this->error[] = sprintf(__('<span class="tc-lead tc-recommended">RECOMMENDED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s', 'themecheck'), $error, $filename, $check, $grep);
35
+ }
36
+ }
37
+ }
38
+ return $ret;
39
+ }
40
+
41
+ function getError() { return $this->error; }
42
+ }
43
+ $themechecks[] = new Suggested;
checks/tags.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class TagCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+
8
+ // combine all the php files into one string to make it easier to search
9
+ $php = implode( ' ', $php_files );
10
+ checkcount();
11
+ $ret = true;
12
+ if ( strpos( $php, 'the_tags' ) === false && strpos( $php, 'get_the_tag_list' ) === false && strpos( $php, 'get_the_term_list' ) === false ) {
13
+ $this->error[] = __( "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to display tags. Modify it to display tags in appropriate locations.", "themecheck" );
14
+ $ret = false;
15
+ }
16
+
17
+ return $ret;
18
+ }
19
+
20
+ function getError() { return $this->error; }
21
+ }
22
+ $themechecks[] = new TagCheck;
checks/textdomain.php ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class TextDomainCheck implements themecheck {
4
+ protected $error = array();
5
+
6
+ function check( $php_files, $css_files, $other_files ) {
7
+ global $data, $themename;
8
+ $ret = true;
9
+ $error = '';
10
+ checkcount();
11
+ if ( $data['Name'] === 'Twenty Ten' || $data['Name'] === 'Twenty Eleven')
12
+ return $ret;
13
+
14
+ $checks = array(
15
+ '/[\s|\(|;]_[e|_]\s?\(\s?[\'|"][^\'|"]*[\'|"]\s?\)/' => __( 'You have not included a text domain!', 'themecheck' )
16
+ );
17
+
18
+ foreach ( $php_files as $php_key => $phpfile ) {
19
+ $error = '';
20
+ foreach ( $checks as $key => $check ) {
21
+ checkcount();
22
+ if ( preg_match_all( $key, $phpfile, $matches ) || preg_match_all( '/[\s|\(]_x\s?\(\s?[\'|"][^\'|"]*[\'|"]\s?,\s?[\'|"][^\'|"]*[\'|"]\s?\)/', $phpfile, $matches )) {
23
+
24
+ $filename = tc_filename( $php_key );
25
+ foreach ($matches[0] as $match ) {
26
+ $grep = tc_grep( ltrim( $match ), $php_key );
27
+ preg_match( '/[^\s]*\s[0-9]+/', $grep, $line);
28
+ $error .= ( !strpos( $error, $line[0] ) ) ? $grep : '';
29
+ }
30
+ $this->error[] = sprintf( __( '<span class=\'tc-lead tc-recommended\'>RECOMMENDED</span>: Text domain problems in <strong>%1$s</strong>. %2$s %3$s ', 'themecheck' ), $filename, $check, $error );
31
+ }
32
+ }
33
+ }
34
+
35
+ $checks = array(
36
+ '/[\s|\(]_[e|_]\s?\([^,|;]*\s?,\s?[\'|"]([^\'|"]*)[\'|"]\s?\)/' => sprintf(__('Text domain should match theme slug: <strong>%1$s</strong>', 'themecheck'), $themename ),
37
+ '/[\s|\(]_x\s?\([^,]*\s?,\s[^\'|"]*[\'|"][^\'|"]*[\'|"],\s?[\'|"]([^\'|"]*)[\'|"]\s?\)/' => sprintf(__('Text domain should match theme slug: <strong>%1$s</strong>', 'themecheck'), $themename )
38
+ );
39
+ foreach ( $php_files as $php_key => $phpfile ) {
40
+ foreach ( $checks as $key => $check ) {
41
+ checkcount();
42
+ if ( preg_match_all( $key, $phpfile, $matches ) ) {
43
+ foreach ($matches[0] as $count => $domaincheck) {
44
+ if ( preg_match( '/[\s|\(]_[e|_]\s?\(\s?[\'|"][^\'|"]*[\'|"]\s?\)/', $domaincheck ) )
45
+ unset( $matches[1][$count] ); //filter out false positives
46
+ }
47
+ $filename = tc_filename( $php_key );
48
+ $count = 0;
49
+ while ( isset( $matches[1][$count] ) ) {
50
+ if ( $matches[1][$count] !== $themename ) {
51
+ $error = tc_grep( $matches[0][$count], $php_key );
52
+ if ( $matches[1][$count] === 'twentyten' || $matches[1][$count] === 'twentyeleven' ):
53
+ $this->error[] = sprintf(__( '<span class=\'tc-lead tc-recommended\'>RECOMMENDED</span>: Text domain problems in <strong>%1$s</strong>. The twentyten text domain is being used!%2$s', 'themecheck' ), $filename, $error );
54
+ else:
55
+ if ( defined( 'TC_TEST' ) && strpos( strtolower( $themename ), $matches[1][$count] ) === false ) {
56
+ $error = tc_grep( $matches[0][$count], $php_key );
57
+ $this->error[] = sprintf( __( '<span class=\'tc-lead tc-recommended\'>RECOMMENDED</span>: Text domain problems in <strong>%1$s</strong>. %2$s You are using: <strong>%3s</strong>%4$s', 'themecheck' ), $filename, $check, $matches[1][$count], $error );
58
+ }
59
+ endif;
60
+ }
61
+ $count++;
62
+ } //end while
63
+ }
64
+ }
65
+ }
66
+ return $ret;
67
+ }
68
+
69
+ function getError() { return $this->error; }
70
+ }
71
+ $themechecks[] = new TextDomainCheck;
checks/theme_support.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Theme_Support implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+
7
+ $ret = true;
8
+
9
+ $checks = array(
10
+ // '/add_theme_support\(\s?("|\')custom-headers("|\')\s?\)/' => 'add_custom_image_header()',
11
+ //s '/add_theme_support\(\s?("|\')custom-background("|\')\s?\)/' => 'add_custom_background()',
12
+ );
13
+
14
+ foreach ( $php_files as $php_key => $phpfile ) {
15
+ foreach ( $checks as $key => $check ) {
16
+ checkcount();
17
+ if ( preg_match( $key, $phpfile, $matches ) ) {
18
+ $filename = tc_filename( $php_key );
19
+ $matches[0] = str_replace(array('"',"'"),'', $matches[0]);
20
+ $error = esc_html( rtrim( $matches[0], '(' ) );
21
+ $grep = tc_grep( rtrim( $matches[0], '(' ), $php_key );
22
+ $this->error[] = sprintf(__('<span class="tc-lead tc-required">REQUIRED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s', 'themecheck'), $error, $filename, $check, $grep );
23
+ $ret = false;
24
+ }
25
+ }
26
+
27
+ }
28
+ return $ret;
29
+ }
30
+
31
+ function getError() { return $this->error; }
32
+ }
33
+ $themechecks[] = new Theme_support;
checks/time_date.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Time_Date implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+
7
+ $ret = true;
8
+
9
+ $checks = array(
10
+ '/\sdate_i18n\(\s?["|\'][A-Za-z\s]+\s?["|\']\)/' => 'date_i18n( get_option( \'date_format\' ) )',
11
+ '/[^get_]the_date\(\s?["|\'][A-Za-z\s]+\s?["|\']\)/' => 'the_date( get_option( \'date_format\' ) )',
12
+ '/[^get_]the_time\(\s?["|\'][A-Za-z\s]+\s?["|\']\)/' => 'the_time( get_option( \'date_format\' ) )'
13
+ );
14
+
15
+ foreach ( $php_files as $php_key => $phpfile ) {
16
+ foreach ( $checks as $key => $check ) {
17
+ checkcount();
18
+ if ( preg_match( $key, $phpfile, $matches ) ) {
19
+ $filename = tc_filename( $php_key );
20
+ $matches[0] = str_replace(array('"',"'"),'', $matches[0]);
21
+ $error = trim( esc_html( rtrim( $matches[0], '(' ) ) );
22
+ $this->error[] = sprintf( __( '<span class="tc-lead tc-info">INFO</span>: At least one hard coded date was found in the file <strong>%s</strong>. Consider get_option( \'date_format\' )', 'themecheck' ), $filename );
23
+ }
24
+ }
25
+ }
26
+ return $ret;
27
+ }
28
+
29
+ function getError() { return $this->error; }
30
+ }
31
+ $themechecks[] = new Time_Date;
checks/worms.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class WormCheck implements themecheck {
3
+ protected $error = array();
4
+
5
+ function check( $php_files, $css_files, $other_files ) {
6
+ $ret = true;
7
+ $php_files = array_merge( $php_files, $other_files );
8
+ $checks = array(
9
+ '/wshell\.php/'=> __( 'This may be a script used by hackers to get control of your server!', 'themecheck' ),
10
+ '/ShellBOT/' => __( 'This may be a script used by hackers to get control of your server', 'themecheck' ),
11
+ '/uname -a/' => __( 'Tells a hacker what operating system your server is running', 'themecheck' ),
12
+ '/YW55cmVzdWx0cy5uZXQ=/' => __( 'base64 encoded text found in Search Engine Redirect hack <a href="http://blogbuildingu.com/wordpress/wordpress-search-engine-redirect-hack">[1]</a>', 'themecheck' ),
13
+ '/\$_COOKIE\[\'yahg\'\]/' => __( 'YAHG Googlerank.info exploit code <a href="http://creativebriefing.com/wordpress-hacked-googlerankinfo/">[1]</a>', 'themecheck' ),
14
+ '/ekibastos/' => __( 'Possible Ekibastos attack <a href="http://ocaoimh.ie/did-your-wordpress-site-get-hacked/">[1]</a>', 'themecheck' ),
15
+ '/<!--[A-Za-z0-9]+--><\?php/' => __( 'Symptom of a link injection attack <a href="http://www.kyle-brady.com/2009/11/07/wordpress-mediatemple-and-an-injection-attack/">[1]</a>', 'themecheck' ),
16
+ '/<script>\/\*(GNU GPL|LGPL)\*\/ try\{window.onload.+catch\(e\) \{\}<\/script>/' => __( 'Possible "Gumblar" JavaScript attack <a href="http://threatinfo.trendmicro.com/vinfo/articles/securityarticles.asp?xmlfile=042710-GUMBLAR.xml">[1]</a> <a href="http://justcoded.com/article/gumblar-family-virus-removal-tool/">[2]</a>', 'themecheck' ),
17
+ '/php \$[a-zA-Z]*=\'as\';/' => __( 'Symptom of the "Pharma Hack" <a href="http://blog.sucuri.net/2010/07/understanding-and-cleaning-the-pharma-hack-on-wordpress.html">[1]</a>', 'themecheck' ),
18
+ '/defined?\(\'wp_class_support/' => __( 'Symptom of the "Pharma Hack" <a href="http://blog.sucuri.net/2010/07/understanding-and-cleaning-the-pharma-hack-on-wordpress.html">[1]</a>', 'themecheck' ),
19
+ '/AGiT3NiT3NiT3fUQKxJvI/' => __( 'Malicious footer code injection detected!', 'themecheck' )
20
+ );
21
+
22
+ foreach ( $php_files as $php_key => $phpfile ) {
23
+ foreach ( $checks as $key => $check ) {
24
+ checkcount();
25
+ if ( preg_match( $key, $phpfile, $matches ) ) {
26
+ $filename = tc_filename( $php_key );
27
+ $error = $matches[0];
28
+ $grep = tc_grep( $error, $php_key );
29
+ $this->error[] = sprintf(__('<span class="tc-lead tc-warning">WARNING</span>: <strong>%1$s</strong> %2$s%3$s', 'themecheck'), $filename, $check, $grep );
30
+ $ret = false;
31
+ }
32
+ }
33
+ }
34
+ return $ret;
35
+ }
36
+
37
+ function getError() { return $this->error; }
38
+ }
39
+ $themechecks[] = new WormCheck;
lang/themecheck-de_DE.mo ADDED
Binary file
lang/themecheck-de_DE.po ADDED
@@ -0,0 +1,364 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2010 Theme-Check
2
+ # This file is distributed under the same license as the Theme-Check package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Theme-Check 20101228.2\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/theme-check\n"
7
+ "POT-Creation-Date: 2011-01-23 14:04:21+00:00\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2011-01-25 23:41+0200\n"
12
+ "Last-Translator: Daniel Tara <contact@onedesigns.com>\n"
13
+ "Language-Team: WPTRT <theme-reviewers@lists.wordpress.org>\n"
14
+ "X-Poedit-Language: German\n"
15
+ "X-Poedit-Country: GERMANY\n"
16
+ "X-Poedit-SourceCharset: utf-8\n"
17
+
18
+ #: main.php:66
19
+ msgid "Theme Info"
20
+ msgstr "Theme Info"
21
+
22
+ #: main.php:67
23
+ msgid "Title"
24
+ msgstr "Titel"
25
+
26
+ #: main.php:68
27
+ msgid "Version"
28
+ msgstr "Version"
29
+
30
+ #: main.php:69
31
+ msgid "Author"
32
+ msgstr "Autor"
33
+
34
+ #: main.php:70
35
+ msgid "Author URI"
36
+ msgstr "Autor URI"
37
+
38
+ #: main.php:71
39
+ msgid "Theme URI"
40
+ msgstr "Theme URI"
41
+
42
+ #: main.php:72
43
+ msgid "License"
44
+ msgstr "Lizenz"
45
+
46
+ #: main.php:73
47
+ msgid "LicenseURI"
48
+ msgstr "LizenzURI"
49
+
50
+ #: main.php:75
51
+ msgid "Tags"
52
+ msgstr "Schlagwörter"
53
+
54
+ #: main.php:76
55
+ msgid "Description"
56
+ msgstr "Beschreibung"
57
+
58
+ #: main.php:79
59
+ msgid "This is a child theme. The parent theme is"
60
+ msgstr "Das ist ein Child Theme. Das Parent Theme ist"
61
+
62
+ #: main.php:91
63
+ msgid "One or more errors were found for "
64
+ msgstr "Ein oder mehrere Fehler wurden gefunden für "
65
+
66
+ #: main.php:93
67
+ msgid " passed the tests"
68
+ msgstr "hat die Teste durchgelaufen"
69
+
70
+ #: main.php:96
71
+ msgid "<strong>WP_DEBUG is not enabled!</strong> Please test your theme with <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug enabled</a> before you upload!</div>"
72
+ msgstr "<strong>WP_DEBUG ist nicht aktiv!</strong> Bitte überprüf dein Theme mit <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug aktiv</a> bevor du auflädst!</div>"
73
+
74
+ #: main.php:161
75
+ msgid "Check it!"
76
+ msgstr "Überprüf es!"
77
+
78
+ #: checkbase.php:87
79
+ #: checkbase.php:106
80
+ msgid "<pre class='tc-grep'>Line "
81
+ msgstr "<pre class='tc-grep'>Linie "
82
+
83
+ #: theme-check.php:23
84
+ msgid "You do not have sufficient permissions to access this page."
85
+ msgstr "Du hast nicht die nötigen Rechte, auf diese Seite zurückzugreifen."
86
+
87
+ #: checks/tags.php:13
88
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to display tags. Modify it to display tags in appropriate locations."
89
+ msgstr "<span class='tc-lead tc-required'>ERFORDERLICH</span>: Dieses Theme scheint nicht, Schlagwörter anzuzeigen. Ändere es, um Schlagwörter in den passenden Positionen anzuzeigen."
90
+
91
+ #: checks/gravatar.php:15
92
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to support the standard avatar functions. Use <strong>get_avatar</strong> or <strong>wp_list_comments</strong> to add this support."
93
+ msgstr "<span class='tc-lead tc-required'>ERFORDERLICH</span>: Dieses Thema scheint nicht, die standard Avatar Funktionen zu unterstützen. Verwende <strong>get_avatar</strong> oder <strong>wp_list_comments</strong>, um diese Unterstützung hinzufügen."
94
+
95
+ #: checks/commpage.php:15
96
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have comment pagination code in it. Use <strong>paginate_comments_links()</strong> or <strong>next_comments_link()</strong> and <strong>previous_comments_link()</strong> to add comment pagination."
97
+ msgstr "<span class='tc-lead tc-required'>ERFORDERLICH</span>: Das Theme hat keine Paginierungcode für Kommentare. Benutze <strong>paginate_comments_links()</strong> oder <strong>next_comments_link()</strong> und <strong>previous_comments_link()</strong> um Komentarepaginierungen hinzufügen."
98
+
99
+ #: checks/postthumb.php:15
100
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>the_post_thumbnail()</strong> was found in the theme. It is recommended that the theme implement this functionality instead of using custom fields for thumbnails."
101
+ msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: Kein Hinweis auf <strong>the_post_thumbnail()</strong> wurde im Theme gefunden. Es ist empfohlen, dass das Theme diese Funktionalität einführt, anstatt benutzerdefinierte Felder für Thumbnails zu benutzen."
102
+
103
+ #: checks/postthumb.php:19
104
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to post-thumbnails was found in the theme. If the theme has a thumbnail like functionality, it should be implemented with <strong>add_theme_support( 'post-thumbnails' )</strong>in the functions.php file."
105
+ msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: Kein Hinweis auf post-thumbnails wurde im Theme gefunden. Wenn das Thema Thumbnail Funktionalität hat, soltle es mit <strong>add_theme_support(' post-thumbnails' )</strong> in die functions.php Datei eingeführt werden."
106
+
107
+ #: checks/navmenu.php:14
108
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to nav_menu's was found in the theme. Note that if your theme has a menu bar, it is required to use the WordPress nav_menu functionality for it."
109
+ msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: Kein Hinweis auf nav_menu' s wurde im Theme gefunden. Merke dass, wenn dein Thema einen Menü hat, es angefordert ist, die WordPress nav_menu Funktionalität dafür zu verwenden."
110
+
111
+ #: checks/directories.php:27
112
+ msgid "Please remove any extraneous directories like .git or .svn from the ZIP file before uploading it."
113
+ msgstr "Entferne bitte alle äußeren Ordner wie .git oder .svn von der ZIP Datei, bevor es aufladen."
114
+
115
+ #: checks/customs.php:14
116
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_image_header</strong> was found in the theme. It is recommended that the theme implement this functionality if using an image for the header."
117
+ msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: Kein Hinweis auf <strong>add_custom_image_header</strong> wurde im Theme gefunden. Es ist empfohlen, dass das Theme diese Funktionalität einführt, wenn ein Bild für den Header verwendet wird."
118
+
119
+ #: checks/customs.php:18
120
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_background()</strong> was found in the theme. If the theme uses background images or solid colors for the background, then it is recommended that the theme implement this functionality."
121
+ msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: Kein Hinweis auf <strong>add_custom_background()</strong> wurde im Theme gefunden. Wenn das Thema Hintergründe oder feste Farben für den Hintergrund verwendet, ist es empfohlen, dass das Theme diese Funktionalität einführt."
122
+
123
+ #: checks/filenames.php:21
124
+ msgid "Windows thumbnail store"
125
+ msgstr "Windows thumbnail store"
126
+
127
+ #: checks/filenames.php:22
128
+ msgid "windows system file"
129
+ msgstr "Windows System Datei"
130
+
131
+ #: checks/filenames.php:23
132
+ msgid "Komodo Project File"
133
+ msgstr "Komodo Projekt Datei"
134
+
135
+ #: checks/filenames.php:24
136
+ msgid "Hidden File"
137
+ msgstr "Versteckte Datei"
138
+
139
+ #: checks/filenames.php:25
140
+ msgid "PHP server settings file"
141
+ msgstr "PHP Server Einstellungen Datei"
142
+
143
+ #: checks/filenames.php:26
144
+ msgid "Dreamweaver project file"
145
+ msgstr "Dreamweaver Projekt Datei"
146
+
147
+ #: checks/filenames.php:27
148
+ msgid "PHP error log"
149
+ msgstr "PHP Fehler Protokoll"
150
+
151
+ #: checks/filenames.php:28
152
+ msgid "Server settings file"
153
+ msgstr "Server Einstellungen Datei"
154
+
155
+ #: checks/filenames.php:32
156
+ msgid "Please see <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> for more information."
157
+ msgstr "Bitte siehe <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> für mehrere Informationen."
158
+
159
+ #: checks/style_needed.php:11
160
+ msgid "<strong>Theme name:</strong> is missing from your style.css header."
161
+ msgstr "<strong>Theme name:</strong> fehlt von dein style.css Überschrift."
162
+
163
+ #: checks/style_needed.php:12
164
+ msgid "<strong>Description:</strong> is missing from your style.css header."
165
+ msgstr "<strong>Description:</strong> fehlt von dein style.css Überschrift."
166
+
167
+ #: checks/style_needed.php:13
168
+ msgid "<strong>Author:</strong> is missing from your style.css header."
169
+ msgstr "<strong>Author:</strong> fehlt von dein style.css Überschrift."
170
+
171
+ #: checks/style_needed.php:14
172
+ msgid "<strong>Version:</strong> is missing from your style.css header."
173
+ msgstr "<strong>Version:</strong> fehlt von dein style.css Überschrift."
174
+
175
+ #: checks/style_needed.php:15
176
+ msgid "<strong>License:</strong> is missing from your style.css header."
177
+ msgstr "<strong>License:</strong> fehlt von dein style.css Überschrift."
178
+
179
+ #: checks/style_needed.php:16
180
+ msgid "<strong>License URI:</strong> is missing from your style.css header."
181
+ msgstr "<strong>License URI:</strong> fehlt von dein style.css Überschrift."
182
+
183
+ #: checks/style_needed.php:17
184
+ msgid "<strong>.alignleft</strong> css class is needed in your theme css."
185
+ msgstr "<strong>.alignleft</strong> CSS Klasse ist gebraucht in dein theme's CSS."
186
+
187
+ #: checks/style_needed.php:18
188
+ msgid "<strong>.alignright</strong> css class is needed in your theme css."
189
+ msgstr "<strong>.alignright</strong> CSS Klasse ist gebraucht in dein theme's CSS."
190
+
191
+ #: checks/style_needed.php:19
192
+ msgid "<strong>.aligncenter</strong> css class is needed in your theme css."
193
+ msgstr "<strong>.aligncenter</strong> CSS Klasse ist gebraucht in dein theme's CSS."
194
+
195
+ #: checks/style_needed.php:20
196
+ msgid "<strong>.wp-caption</strong> css class is needed in your theme css."
197
+ msgstr "<strong>.wp-caption</strong> CSS Klasse ist gebraucht in dein theme's CSS."
198
+
199
+ #: checks/style_needed.php:21
200
+ msgid "<strong>.wp-caption-text</strong> css class is needed in your theme css."
201
+ msgstr "<strong>.wp-caption-text</strong> CSS Klasse ist gebraucht in dein theme's CSS."
202
+
203
+ #: checks/style_needed.php:22
204
+ msgid "<strong>.gallery-caption</strong> css class is needed in your theme css."
205
+ msgstr "<strong>.gallery-caption</strong> CSS Klasse ist gebraucht in dein theme's CSS."
206
+
207
+ #: checks/style_tags.php:20
208
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: <strong>Tags:</strong> is either empty or missing in style.css header."
209
+ msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: <strong>Tags:</strong> ist entweder leer oder fehlt in style.css Überschrift."
210
+
211
+ #: checks/searchform.php:14
212
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: Please use <strong>get_search_form()</strong> instead of including searchform.php directly."
213
+ msgstr "<span class='tc-lead tc-required'>ERFORDERLICH</span>: Bitte benutze <strong>get_search_form()</strong> anstatt searchform.php direkt einschließen."
214
+
215
+ #: checks/worms.php:9
216
+ msgid "<strong>PHP shell was found!</strong>"
217
+ msgstr "<strong>PHP shell wurde gefunded!</strong>"
218
+
219
+ #: checks/include.php:10
220
+ msgid "The theme appears to use include or require. If these are being used to include separate sections of a template from independent files, then <strong>get_template_part()</strong> should be used instead."
221
+ msgstr "Das Theme scheint include oder require zu benutzen. Wenn diese benutzt sind, um unterschiedliche Abschnitte eines Templates von selbständige Dateien einzuschließen, dann <strong>get_template_part()</strong> sollte anstatt benutzt werden."
222
+
223
+ #: checks/malware.php:9
224
+ msgid "possible file operations"
225
+ msgstr "mögliche Datei Operationen"
226
+
227
+ #: checks/postsnav.php:16
228
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have post pagination code in it. Use <strong>posts_nav_link()</strong> or <strong>paginate_links()</strong> or <strong>next_posts_link()</strong> and <strong>previous_posts_link()</strong> to add post pagination."
229
+ msgstr "<span class='tc-lead tc-required'>ERFORDERLICH</span>: Das Theme hat keine Paginierungcode für Einträge. Benutze <strong>posts_nav_link()</strong> oder <strong>paginate_links()</strong> oder <strong>next_posts_link()</strong> und <strong>previous_posts_link()</strong> um Einträgepaginierungen hinzufügen."
230
+
231
+ #: checks/admin_menu.php:13
232
+ msgid "User levels were deprecated in <strong>2.0</strong>. Please see <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
233
+ msgstr "Benutzerniveaus wurden missbilligt in <strong>2.0</strong>. Bitte siehe <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
234
+
235
+ #: checks/admin_menu.php:33
236
+ msgid "Themes should use <strong>add_theme_page()</strong> for adding admin pages."
237
+ msgstr "Themes sollen <strong>add_theme_page()</strong> benutzen, um Admin Seiten hinzufügen."
238
+
239
+ #: checks/artisteer.php:23
240
+ msgid "This theme appears to have been auto-generated. Generated themes are not allowed in the themes directory."
241
+ msgstr "Dieses Theme scheint Selbst-erzeugt worden zu sein. Erzeugte Themes sind im Themesverzeichnis nicht erlaubt."
242
+
243
+ #: checks/editorstyle.php:13
244
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_editor_style()</strong> was found in the theme. It is recommended that the theme implement editor styling, so as to make the editor content match the resulting post output in the theme, for a better user experience."
245
+ msgstr "<span class='tc-lead tc-recommended'>EMPFOHLEN</span>: Kein Hinweis auf <strong>add_editor_style()</strong> wurde im Theme gefunden. Es ist empfohlen, dass das Theme Editor Stilisierung einführt, damit derEditorinhalt den resultierenden Eintragausgabeinhalt übereinstimmt, für eine bessere Benutzererfahrung."
246
+
247
+ #: checks/content-width.php:14
248
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: No content width has been defined. Example: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
249
+ msgstr "<span class='tc-lead tc-required'>ERFORDERLICH</span>: Einhalt Breite wurde nicht definiert. Beispiel: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
250
+
251
+ #: checks/badthings.php:9
252
+ msgid "eval() is not allowed."
253
+ msgstr "eval() ist nicht erlaubt."
254
+
255
+ #: checks/badthings.php:10
256
+ msgid "PHP sytem calls should be disabled by server admins anyway!"
257
+ msgstr "PHP Systemaufrufe sollten jedenfalls vom Serveradmin deaktiviert werden!"
258
+
259
+ #: checks/badthings.php:11
260
+ msgid "Themes should not change server PHP settings"
261
+ msgstr "Themes sollen PHP server einstellungen nicht ändern."
262
+
263
+ #: checks/badthings.php:12
264
+ msgid "base64_decode() is not allowed"
265
+ msgstr "base64_decode() ist nicht erlaubt."
266
+
267
+ #: checks/badthings.php:13
268
+ msgid "base64_encode() is not allowed"
269
+ msgstr "base64_encode() ist nicht erlaubt."
270
+
271
+ #: checks/badthings.php:14
272
+ msgid "uudecode() is not allowed"
273
+ msgstr "uudecode() ist nicht erlaubt."
274
+
275
+ #: checks/badthings.php:15
276
+ msgid "str_rot13() is not allowed"
277
+ msgstr "str_rot13() ist nicht erlaubt."
278
+
279
+ #: checks/badthings.php:16
280
+ #: checks/badthings.php:37
281
+ msgid "Google search code detected"
282
+ msgstr "Google Suche Code entdeckt"
283
+
284
+ #: checks/badthings.php:17
285
+ #: checks/badthings.php:38
286
+ msgid "Googe advertising code detected"
287
+ msgstr "Google Werbung Code entdeckt"
288
+
289
+ #: checks/basic.php:14
290
+ msgid "See: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
291
+ msgstr "Siehe: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
292
+
293
+ #: checks/basic.php:15
294
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
295
+ msgstr "Siehe: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
296
+
297
+ #: checks/basic.php:16
298
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
299
+ msgstr "Siehe: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
300
+
301
+ #: checks/basic.php:17
302
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
303
+ msgstr "Siehe: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
304
+
305
+ #: checks/basic.php:18
306
+ msgid "There must be a charset defined in the Content-Type or the meta charset tag in the head."
307
+ msgstr "Ein charset muss in den Content-Type oder den meta charset tag im head definiert werden."
308
+
309
+ #: checks/basic.php:19
310
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
311
+ msgstr "Siehe: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
312
+
313
+ #: checks/basic.php:20
314
+ msgid "See: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
315
+ msgstr "Siehe: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
316
+
317
+ #: checks/basic.php:21
318
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
319
+ msgstr "Siehe: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
320
+
321
+ #: checks/basic.php:22
322
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
323
+ msgstr "Siehe: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
324
+
325
+ #: checks/basic.php:23
326
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
327
+ msgstr "Siehe: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
328
+
329
+ #: checks/basic.php:24
330
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
331
+ msgstr "Siehe: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
332
+
333
+ #: checks/basic.php:25
334
+ msgid "See: <a href=\"http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
335
+ msgstr "Siehe: <a href=\"http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
336
+
337
+ #: checks/basic.php:26
338
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
339
+ msgstr "Siehe: <a href=\"http://codex.wordpress.org/Template_Tags/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
340
+
341
+ #: checks/basic.php:27
342
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
343
+ msgstr "Siehe: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
344
+
345
+ #. Plugin Name of the plugin/theme
346
+ msgid "Theme-Check"
347
+ msgstr "Theme-Check"
348
+
349
+ #. Plugin URI of the plugin/theme
350
+ msgid "http://pross.org.uk/plugins"
351
+ msgstr "http://pross.org.uk/plugins"
352
+
353
+ #. Description of the plugin/theme
354
+ msgid "A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!"
355
+ msgstr "Eine einfache und leichte Art, dein Theme auf alle letzten WordPress Standards und Praxis zu überprüfen. Ein großes Theme-Entwicklungswerkzeug!"
356
+
357
+ #. Author of the plugin/theme
358
+ msgid "Pross"
359
+ msgstr "Pross"
360
+
361
+ #. Author URI of the plugin/theme
362
+ msgid "http://pross.org.uk"
363
+ msgstr "http://pross.org.uk"
364
+
lang/themecheck-ja.mo ADDED
Binary file
lang/themecheck-ja.po ADDED
@@ -0,0 +1,719 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2012
2
+ # This file is distributed under the same license as the package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: theme check ja\n"
6
+ "Report-Msgid-Bugs-To: \n"
7
+ "POT-Creation-Date: 2012-02-19 18:15+0900\n"
8
+ "PO-Revision-Date: 2012-02-19 21:36+0900\n"
9
+ "Last-Translator: JOTAKI, Taisuke <tekapo@gmail.com>\n"
10
+ "Language-Team: wp ja <tekapo@gmail.com>\n"
11
+ "Language: \n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Poedit-Language: Japanese\n"
16
+ "X-Poedit-Country: JAPAN\n"
17
+ "X-Poedit-SourceCharset: utf-8\n"
18
+ "X-Poedit-KeywordsList: __;_e\n"
19
+
20
+ #: theme-check/theme-check.php:34
21
+ msgid "You do not have sufficient permissions to access this page."
22
+ msgstr "このページにアクセスするための十分なアクセス権がありません。"
23
+
24
+ #: theme-check/main.php:12
25
+ #, php-format
26
+ msgid "Parent theme <strong>%1$s</strong> not found! You have to have parent AND child-theme installed!"
27
+ msgstr "親テーマ <strong>%1$s</strong> が見つかりませんでした! 親テーマと子テーマをインストールしてください!"
28
+
29
+ #: theme-check/main.php:39
30
+ msgid "Theme Info"
31
+ msgstr "テーマ情報"
32
+
33
+ #: theme-check/main.php:50
34
+ msgid "Title"
35
+ msgstr "タイトル"
36
+
37
+ #: theme-check/main.php:51
38
+ msgid "Version"
39
+ msgstr "バージョン"
40
+
41
+ #: theme-check/main.php:52
42
+ msgid "Author"
43
+ msgstr "作成者"
44
+
45
+ #: theme-check/main.php:53
46
+ msgid "Author URI"
47
+ msgstr "作成者の URI"
48
+
49
+ #: theme-check/main.php:54
50
+ msgid "Theme URI"
51
+ msgstr "テーマの URI"
52
+
53
+ #: theme-check/main.php:55
54
+ msgid "License"
55
+ msgstr "ライセンス"
56
+
57
+ #: theme-check/main.php:56
58
+ msgid "LicenseURI"
59
+ msgstr "ライセンスの URI"
60
+
61
+ #: theme-check/main.php:57
62
+ msgid "Tags"
63
+ msgstr "タグ"
64
+
65
+ #: theme-check/main.php:58
66
+ msgid "Description"
67
+ msgstr "説明"
68
+
69
+ #: theme-check/main.php:62
70
+ #, php-format
71
+ msgid "This child theme requires at least version <strong>%1$s</strong> of theme <strong>%2$s</strong> to be installed. You only have <strong>%3$s</strong> please update the parent theme."
72
+ msgstr "この子テーマは、親テーマ <strong>%2$s</strong> のバージョン <strong>%1$s</strong> 以上を必要とします。現在の親テーマのバージョンは <strong>%3$s</strong> なので、アップデートしてください。"
73
+
74
+ #: theme-check/main.php:64
75
+ #, php-format
76
+ msgid "This is a child theme. The parent theme is: <strong>%1$s</strong>. These files have been included automatically!"
77
+ msgstr "これは子テーマです。親テーマは <strong>%1$s</strong> です。親テーマのファイルは自動的にインクルードされます!"
78
+
79
+ #: theme-check/main.php:66
80
+ msgid "Child theme does not have the <strong>Template Version</strong> tag in style.css."
81
+ msgstr "子テーマの style.css に<strong>Template Version</strong> タグがありません。"
82
+
83
+ #: theme-check/main.php:68
84
+ #, php-format
85
+ msgid "Child theme is only tested up to version %1$s of %2$s breakage may occur! %3$s installed version is %4$s"
86
+ msgstr "子テーマは %2$s のバージョン %1$s までしかテストされていないので、表示がおかしくなるかもしれません。インストールされている %3$s のバージョンは %4$s です。"
87
+
88
+ #: theme-check/main.php:75
89
+ #, php-format
90
+ msgid " Running <strong>%1$s</strong> tests against <strong>%2$s</strong> using Guidelines Version: <strong>%3$s</strong> Plugin revision: <strong>%4$s</strong>"
91
+ msgstr "ガイドラインバージョン: <strong>%3$s</strong>、プラグインリビジョン: <strong>%4$s</strong> を利用し、<strong>%2$s</strong> に対して <strong>%1$s</strong> 項目のテストを実施しました。"
92
+
93
+ #: theme-check/main.php:81
94
+ #, php-format
95
+ msgid "One or more errors were found for %1$s."
96
+ msgstr "%1$s にて、エラーが見つかりました。"
97
+
98
+ #: theme-check/main.php:83
99
+ #, php-format
100
+ msgid "%1$s passed the tests"
101
+ msgstr "%1$s はテストをパスしました"
102
+
103
+ #: theme-check/main.php:86
104
+ msgid "<strong>WP_DEBUG is not enabled!</strong> Please test your theme with <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug enabled</a> before you upload!</div>"
105
+ msgstr "<strong>WP_DEBUG が無効になっています!</strong> テーマをアップロードする前に、<a href=\"http://wpdocs.sourceforge.jp/wp-config.php_%E3%81%AE%E7%B7%A8%E9%9B%86\">デバッグモードを有効にして</a>テーマをテストしてください。</div>"
106
+
107
+ #: theme-check/main.php:96
108
+ msgid "<h2>About</h2>"
109
+ msgstr "<h2>このプラグインについて</h2>"
110
+
111
+ #: theme-check/main.php:97
112
+ msgid "<p>The theme check plugin is an easy way to test your theme and make sure it's up to spec with the latest theme review standards.<br />"
113
+ msgstr "<p>テーマチェックプラグインは、テーマをテストし、最新のテーマレビュー基準の仕様に従っていることを簡単に確認することができるプラグインです。<br />"
114
+
115
+ #: theme-check/main.php:98
116
+ msgid "With it, you can run all the same automated testing tools on your theme that WordPress.org uses for theme submissions.</p>"
117
+ msgstr "このプラグインにより、WordPress.org がテーマの受付時に使用する自動化されたテストツールとまったく同じテストを自分のテーマに対して行うことができます。</p>"
118
+
119
+ #: theme-check/main.php:99
120
+ msgid "<h2>Contact</h2>"
121
+ msgstr "<h2>コンタクト</h2>"
122
+
123
+ #: theme-check/main.php:100
124
+ msgid "<p>Theme-Check is maintained by <a href=\"http://profiles.wordpress.org/users/pross/\">Pross</a> and <a href=\"http://profiles.wordpress.org/users/otto42/\">Otto42</a><br />"
125
+ msgstr "<p>Theme-Check は <a href=\"http://profiles.wordpress.org/users/pross/\">Pross</a> と <a href=\"http://profiles.wordpress.org/users/otto42/\">Otto42</a> によってメンテナンスされています。<br />"
126
+
127
+ #: theme-check/main.php:101
128
+ msgid "If you have found a bug or would like to make a suggestion or contribution why not join the <a href=\"http://wordpress.org/extend/themes/contact/\">theme-reviewers mailing list</a><br />"
129
+ msgstr "もしバグを見つけたり、もしくは提案や貢献をしてくれるのなら、 <a href=\"http://wordpress.org/extend/themes/contact/\">theme-reviewers メーリングリスト</a>に参加するか、<br />"
130
+
131
+ #: theme-check/main.php:102
132
+ msgid "or leave a post on the <a href=\"http://wordpress.org/tags/theme-check?forum_id=10\">WordPress forums</a>.<br /></p>"
133
+ msgstr "<a href=\"http://wordpress.org/tags/theme-check?forum_id=10\">WordPress フォーラム</a>に投稿してください。<br /></p>"
134
+
135
+ #: theme-check/main.php:104
136
+ msgid "<h2>Contributors</h2>"
137
+ msgstr "<h2>貢献者</h2>"
138
+
139
+ #: theme-check/main.php:105
140
+ msgid "<h3>localization</h3>"
141
+ msgstr "<h3>ローカライズ</h3>"
142
+
143
+ #: theme-check/main.php:110
144
+ msgid "<h3>Testers</h3>"
145
+ msgstr "<h3>テスター</h3>"
146
+
147
+ #: theme-check/main.php:111
148
+ msgid "<p><a href=\"http://make.wordpress.org/themes/\">The WordPress Theme Review Team</a></p>"
149
+ msgstr "<p><a href=\"http://make.wordpress.org/themes/\">WordPress テーマレビューチーム</a></p>"
150
+
151
+ #: theme-check/main.php:115
152
+ msgid "<div class=\"tc-success\"><p>Now your theme has passed the basic tests you need to check it properly using the test data before you upload to the WordPress Themes Directory.</p>"
153
+ msgstr "<div class=\"tc-success\"><p>このテーマは基本的なテストをパスしました。WordPress テーマディレクトリにアップロードする前にテストデータを使って適切にチェックする必要があります。</p>"
154
+
155
+ #: theme-check/main.php:117
156
+ msgid "<p>Make sure to review the guidelines at <a href=\"http://codex.wordpress.org/Theme_Review\">Theme Review</a> before uploading a Theme.</p>"
157
+ msgstr "<p>テーマをアップロードする前に、<a href=\"http://wpdocs.sourceforge.jp/Theme_Review\">テーマレビュー</a>のガイドラインを確実に復習してください。</p>"
158
+
159
+ #: theme-check/main.php:118
160
+ msgid "<h3>Codex Links</h3>"
161
+ msgstr "<h3>Codex のリンク</h3>"
162
+
163
+ #: theme-check/main.php:120
164
+ msgid "<li><a href=\"http://codex.wordpress.org/Theme_Development\">Theme Development</a></li>"
165
+ msgstr "<li><a href=\"http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%BC%E3%83%9E%E3%81%AE%E4%BD%9C%E6%88%90\">テーマの作成</a></li>"
166
+
167
+ #: theme-check/main.php:121
168
+ msgid "<li><a href=\"http://wordpress.org/support/forum/5\">Themes and Templates forum</a></li>"
169
+ msgstr "<li><a href=\"http://wordpress.org/support/forum/5\">テーマとテンプレートのフォーラム (英語)</a> (<a href=\"http://ja.forums.wordpress.org/forum/4\">日本語</a>)</li>"
170
+
171
+ #: theme-check/main.php:122
172
+ msgid "<li><a href=\"http://codex.wordpress.org/Theme_Unit_Test\">Theme Unit Tests</a></li>"
173
+ msgstr "<li><a href=\"http://wpdocs.sourceforge.jp/Theme_Unit_Test\">テーマユニットテスト</a></li>"
174
+
175
+ #: theme-check/main.php:140
176
+ msgid "Check it!"
177
+ msgstr "テスト実行 !"
178
+
179
+ #: theme-check/main.php:141
180
+ msgid "Output in Trac format."
181
+ msgstr "Trac フォーマットでの出力。"
182
+
183
+ #: theme-check/main.php:142
184
+ msgid "Suppress INFO."
185
+ msgstr "情報 を表示させない。"
186
+
187
+ #: theme-check/checkbase.php:91
188
+ #: theme-check/checkbase.php:109
189
+ msgid "<pre class='tc-grep'>Line "
190
+ msgstr "<pre class='tc-grep'>行 "
191
+
192
+ #: theme-check/checkbase.php:250
193
+ msgid "Visit author homepage"
194
+ msgstr "作成者のホームページを表示"
195
+
196
+ #: theme-check/checkbase.php:253
197
+ msgid "Anonymous"
198
+ msgstr "匿名"
199
+
200
+ #: theme-check/checks/navmenu.php:14
201
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to nav_menu's was found in the theme. Note that if your theme has a menu bar, it is required to use the WordPress nav_menu functionality for it."
202
+ msgstr "<span class='tc-lead tc-recommended'>推奨</span>: このテーマ内に nav_menu への参照が見つかりませんでした。テーマにメニューバーがあるのなら、そのための WordPress の nav_menu 機能を使用してください。"
203
+
204
+ #: theme-check/checks/style_tags.php:16
205
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: <strong>Tags:</strong> is either empty or missing in style.css header."
206
+ msgstr "<span class='tc-lead tc-recommended'>推奨</span>: style.css のヘッダーの <strong>Tags:</strong> が空か存在していません。"
207
+
208
+ #: theme-check/checks/style_tags.php:28
209
+ #, php-format
210
+ msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: Found wrong tag, remove <strong>%1$s</strong> from your style.css header."
211
+ msgstr "<span class=\"tc-lead tc-warning\">注意</span>: 誤ったタグが見つかりました。style.css のヘッダーから <strong>%1$s</strong> を取り除いてください。"
212
+
213
+ #: theme-check/checks/tags.php:13
214
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to display tags. Modify it to display tags in appropriate locations."
215
+ msgstr "<span class='tc-lead tc-required'>必須</span>: このテーマではタグを表示していないようです。適した場所にタグを表示するように修正してください。"
216
+
217
+ #: theme-check/checks/basic.php:14
218
+ msgid "See: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
219
+ msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/HTML_to_XHTML\">http://wpdocs.sourceforge.jp/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
220
+
221
+ #: theme-check/checks/basic.php:15
222
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
223
+ msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
224
+
225
+ #: theme-check/checks/basic.php:16
226
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
227
+ msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
228
+
229
+ #: theme-check/checks/basic.php:17
230
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
231
+ msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
232
+
233
+ #: theme-check/checks/basic.php:18
234
+ msgid "There must be a charset defined in the Content-Type or the meta charset tag in the head."
235
+ msgstr "ヘッダー内の Content-Type もしくは meta charset タグ内に charset の設定が必ず必要です。"
236
+
237
+ #: theme-check/checks/basic.php:19
238
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
239
+ msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
240
+
241
+ #: theme-check/checks/basic.php:20
242
+ msgid "See: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
243
+ msgstr "参照: <ahref=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
244
+
245
+ #: theme-check/checks/basic.php:21
246
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
247
+ msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
248
+
249
+ #: theme-check/checks/basic.php:22
250
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
251
+ msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
252
+
253
+ #: theme-check/checks/basic.php:23
254
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
255
+ msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
256
+
257
+ #: theme-check/checks/basic.php:24
258
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
259
+ msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
260
+
261
+ #: theme-check/checks/basic.php:25
262
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
263
+ msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
264
+
265
+ #: theme-check/checks/basic.php:26
266
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_link_pages\">wp_link_pages</a><pre> &lt;?php wp_link_pages( $args ); ?&gt;</pre>"
267
+ msgstr "参考: <a href=\"http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_link_pages\">wp_link_pages</a><pre> &lt;?php wp_link_pages( $args ); ?&gt;</pre>"
268
+
269
+ #: theme-check/checks/basic.php:27
270
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
271
+ msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
272
+
273
+ #: theme-check/checks/basic.php:33
274
+ msgid "add_theme_support( 'automatic-feed-links' )"
275
+ msgstr "add_theme_support( 'automatic-feed-links' )"
276
+
277
+ #: theme-check/checks/basic.php:34
278
+ msgid "wp_enqueue_script( 'comment-reply' )"
279
+ msgstr "wp_enqueue_script( 'comment-reply' )"
280
+
281
+ #: theme-check/checks/basic.php:35
282
+ msgid "body_class call in body tag"
283
+ msgstr "body タグ内での body_class 呼び出し"
284
+
285
+ #: theme-check/checks/basic.php:36
286
+ msgid "register_sidebar() or register_sidebars()"
287
+ msgstr "register_sidebar() または register_sidebars()"
288
+
289
+ #: theme-check/checks/basic.php:38
290
+ #, php-format
291
+ msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: Could not find <strong>%1$s</strong>. %2$s"
292
+ msgstr "<span class=\"tc-lead tc-required\">必須</span>: <strong>%1$s</strong> が見つかりませんでした。%2$s"
293
+
294
+ #: theme-check/checks/dep_recommend.php:26
295
+ #, php-format
296
+ msgid "<span class=\"tc-lead tc-recommended\">RECOMMENDED</span>: <strong>%1$s</strong> found in the file <strong>%2$s</strong>. Deprecated since version <strong>%3$s</strong>. Use <strong>%4$s</strong> instead.%5$s"
297
+ msgstr "<span class=\"tc-lead tc-recommended\">推奨</span>: ファイル <strong>%2$s</strong> 内に <strong>%1$s</strong> が見つかりました。これはバージョン <strong>%3$s</strong> 以降、非推奨になっています。代わりに <strong>%4$s</strong> を使用してください。%5$s"
298
+
299
+ #: theme-check/checks/more_deprecated.php:22
300
+ #, php-format
301
+ msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s"
302
+ msgstr "<span class=\"tc-lead tc-required\">必須</span>: ファイル <strong>%2$s</strong> に <strong>%1$s</strong> が見つかりました。%4$s の代わりに <strong>%3$s</strong> を使用してください。"
303
+
304
+ #: theme-check/checks/lineendings.php:11
305
+ #: theme-check/checks/lineendings.php:20
306
+ #: theme-check/checks/lineendings.php:31
307
+ #, php-format
308
+ msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: Both DOS and UNIX style line endings were found in the file <strong>%1$s</strong>. This causes a problem with SVN repositories and must be corrected before the theme can be accepted. Please change the file to use only one style of line endings."
309
+ msgstr "<span class=\"tc-lead tc-warning\">注意</span>: ファイル <strong>%1$s</strong> 内に DOS と UNIX スタイルの両方の行末コードが見つかりました。これは SVN リポジトリで問題を引き起こします。この問題を修正しないとテーマは承認されません。行末コードをどちらかのスタイルを使うようにファイルを修正してください。"
310
+
311
+ #: theme-check/checks/postthumb.php:15
312
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>the_post_thumbnail()</strong> was found in the theme. It is recommended that the theme implement this functionality instead of using custom fields for thumbnails."
313
+ msgstr "<span class='tc-lead tc-recommended'>推奨</span>: このテーマ内に <strong>the_post_thumbnail()</strong> への参照が見つかりませんでした。サムネイル用には、カスタムフィールドを使う代りにこの機能を実装するようお勧めします。"
314
+
315
+ #: theme-check/checks/postthumb.php:19
316
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to post-thumbnails was found in the theme. If the theme has a thumbnail like functionality, it should be implemented with <strong>add_theme_support( 'post-thumbnails' )</strong>in the functions.php file."
317
+ msgstr "<span class='tc-lead tc-recommended'>推奨</span>: このテーマ内に投稿サムネイル (アイキャッチ画像) への参照が見つかりませんでした。 このテーマにサムネイルの機能をもたせるのなら functions.php 内に <strong>add_theme_support( 'post-thumbnails' )</strong> を実装したほうがいいでしょう。"
318
+
319
+ #: theme-check/checks/searchform.php:9
320
+ msgid "Please use <strong>get_search_form()</strong> instead of including searchform.php directly."
321
+ msgstr "searchform.php を直接インクルードする代りに <strong>get_search_form()</strong> を使ってください。"
322
+
323
+ #: theme-check/checks/searchform.php:16
324
+ #, php-format
325
+ msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: <strong>%1$s</strong> %2$s%3$s"
326
+ msgstr "<span class=\"tc-lead tc-required\">必須</span>: <strong>%1$s</strong> %2$s%3$s"
327
+
328
+ #: theme-check/checks/editorstyle.php:13
329
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_editor_style()</strong> was found in the theme. It is recommended that the theme implement editor styling, so as to make the editor content match the resulting post output in the theme, for a better user experience."
330
+ msgstr "<span class='tc-lead tc-recommended'>推奨</span>: このテーマ内に <strong>add_editor_style()</strong> への参照が見つかりませんでした。テーマへのエディタースタイルの実装を推奨します。これにより、エディターのコンテンツとこのテーマの実際の出力とをマッチさせることができ、ユーザーエクスペリエンスが向上します。"
331
+
332
+ #: theme-check/checks/style_needed.php:11
333
+ msgid "<strong>Theme name:</strong> is missing from your style.css header."
334
+ msgstr "style.css のヘッダーに <strong>Theme name:</strong> がありません。"
335
+
336
+ #: theme-check/checks/style_needed.php:12
337
+ msgid "<strong>Description:</strong> is missing from your style.css header."
338
+ msgstr "style.css のヘッダーに <strong>Description:</strong> がありません。"
339
+
340
+ #: theme-check/checks/style_needed.php:13
341
+ msgid "<strong>Author:</strong> is missing from your style.css header."
342
+ msgstr "style.css のヘッダーに <strong>Author:</strong> がありません。"
343
+
344
+ #: theme-check/checks/style_needed.php:14
345
+ msgid "<strong>Version:</strong> is missing from your style.css header."
346
+ msgstr "style.css のヘッダーに <strong>Version:</strong> がありません。"
347
+
348
+ #: theme-check/checks/style_needed.php:15
349
+ msgid "<strong>License:</strong> is missing from your style.css header."
350
+ msgstr "style.css のヘッダーに <strong>License:</strong> がありません。"
351
+
352
+ #: theme-check/checks/style_needed.php:16
353
+ msgid "<strong>License URI:</strong> is missing from your style.css header."
354
+ msgstr "style.css のヘッダーに <strong>License URI:</strong> がありません。"
355
+
356
+ #: theme-check/checks/style_needed.php:17
357
+ msgid "<strong>.sticky</strong> css class is needed in your theme css."
358
+ msgstr "テーマの css には <strong>.sticky</strong> の css クラスが必要です。"
359
+
360
+ #: theme-check/checks/style_needed.php:18
361
+ msgid "<strong>.bypostauthor</strong> css class is needed in your theme css."
362
+ msgstr "テーマの css には <strong>.bypostauthor</strong> の css クラスが必要です。"
363
+
364
+ #: theme-check/checks/style_needed.php:19
365
+ msgid "<strong>.alignleft</strong> css class is needed in your theme css."
366
+ msgstr "テーマの css には <strong>.alignleft</strong> の css クラスが必要です。"
367
+
368
+ #: theme-check/checks/style_needed.php:20
369
+ msgid "<strong>.alignright</strong> css class is needed in your theme css."
370
+ msgstr "テーマの css には <strong>.alignright</strong> の css クラスが必要です。"
371
+
372
+ #: theme-check/checks/style_needed.php:21
373
+ msgid "<strong>.aligncenter</strong> css class is needed in your theme css."
374
+ msgstr "テーマの css には <strong>.aligncenter</strong> の css クラスが必要です。"
375
+
376
+ #: theme-check/checks/style_needed.php:22
377
+ msgid "<strong>.wp-caption</strong> css class is needed in your theme css."
378
+ msgstr "テーマの css には <strong>.wp-caption</strong> の css クラスが必要です。"
379
+
380
+ #: theme-check/checks/style_needed.php:23
381
+ msgid "<strong>.wp-caption-text</strong> css class is needed in your theme css."
382
+ msgstr "テーマの css には <strong>.wp-caption-text</strong> の css クラスが必要です。"
383
+
384
+ #: theme-check/checks/style_needed.php:24
385
+ msgid "<strong>.gallery-caption</strong> css class is needed in your theme css."
386
+ msgstr "テーマの css には <strong>.gallery-caption</strong> の css クラスが必要です。"
387
+
388
+ #: theme-check/checks/style_needed.php:30
389
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>:"
390
+ msgstr "<span class='tc-lead tc-required'>必須</span>:"
391
+
392
+ #: theme-check/checks/commpage.php:15
393
+ msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: The theme doesn't have comment pagination code in it. Use <strong>paginate_comments_links()</strong> or <strong>next_comments_link()</strong> and <strong>previous_comments_link()</strong> to add comment pagination."
394
+ msgstr "<span class='tc-lead tc-required'>必須</span>: このテーマにはコメントページネーションのコードがありません。<strong>paginate_comments_links()</strong> もしくは <strong>next_comments_link()</strong> と <strong>previous_comments_link()</strong> を使用してコメントページネーションを追加してください。"
395
+
396
+ #: theme-check/checks/customs.php:14
397
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_image_header</strong> was found in the theme. It is recommended that the theme implement this functionality if using an image for the header."
398
+ msgstr "<span class='tc-lead tc-recommended'>推奨</span>: テーマ内に <strong>add_custom_image_header</strong> への参照が見つかりませんでした。ヘッダーに画像を使用するのならこの機能の実装をお勧めします。"
399
+
400
+ #: theme-check/checks/customs.php:18
401
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_background()</strong> was found in the theme. If the theme uses background images or solid colors for the background, then it is recommended that the theme implement this functionality."
402
+ msgstr "<span class='tc-lead tc-recommended'>推奨</span>: このテーマ内に <strong>add_custom_background()</strong> への参照が見つかりませんでした。テーマで背景に画像やソリッドカラーを使用するのなら、この機能の実装をお勧めします。"
403
+
404
+ #: theme-check/checks/suggested.php:34
405
+ #: theme-check/checks/constants.php:24
406
+ #, php-format
407
+ msgid "<span class=\"tc-lead tc-recommended\">RECOMMENDED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. Use <strong>%3$s</strong> instead.%4$s"
408
+ msgstr "<span class=\"tc-lead tc-recommended\">推奨</span>: ファイル <strong>%2$s</strong> に <strong>%1$s</strong> が見つかりました。%4$s の代わりに<strong>%3$s</strong> を使ってください。"
409
+
410
+ #: theme-check/checks/gravatar.php:15
411
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to support the standard avatar functions. Use <strong>get_avatar</strong> or <strong>wp_list_comments</strong> to add this support."
412
+ msgstr "<span class='tc-lead tc-required'>必須</span>: このテーマは標準のアバター機能をサポートしていないようです。このサポートを追加するには <strong>get_avatar</strong> もしくは <strong>wp_list_comments</strong> を使用してください。"
413
+
414
+ #: theme-check/checks/links.php:26
415
+ #, php-format
416
+ msgid "<span class=\"tc-lead tc-info\">INFO</span>: Possible hard-coded links were found in the file <strong>%1$s</strong>.%2$s"
417
+ msgstr "<span class=\"tc-lead tc-info\">情報</span>: ファイル <strong>%1$s</strong> 内にハードコードされているようなリンクが見つかりました。%2$s"
418
+
419
+ #: theme-check/checks/textdomain.php:15
420
+ msgid "You have not included a text domain!"
421
+ msgstr "テキストドメインが含まれていません!"
422
+
423
+ #: theme-check/checks/textdomain.php:30
424
+ #, php-format
425
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: Text domain problems in <strong>%1$s</strong>. %2$s %3$s "
426
+ msgstr "<span class='tc-lead tc-recommended'>推奨</span>: <strong>%1$s</strong> 内にテキストドメインに関する問題があります。 %2$s %3$s "
427
+
428
+ #: theme-check/checks/textdomain.php:36
429
+ #: theme-check/checks/textdomain.php:37
430
+ #, php-format
431
+ msgid "Text domain should match theme slug: <strong>%1$s</strong>"
432
+ msgstr "テキストドメインはテーマのスラッグと合わせてください: <strong>%1$s</strong>"
433
+
434
+ #: theme-check/checks/textdomain.php:53
435
+ #, php-format
436
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: Text domain problems in <strong>%1$s</strong>. The twentyten text domain is being used!%2$s"
437
+ msgstr "<span class='tc-lead tc-recommended'>推奨</span>: <strong>%1$s</strong> 内にテキストドメインに関する問題があります。 twentyten のテキストドメインが使われています! %2$s"
438
+
439
+ #: theme-check/checks/textdomain.php:57
440
+ #, php-format
441
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: Text domain problems in <strong>%1$s</strong>. %2$s You are using: <strong>%3s</strong>%4$s"
442
+ msgstr "<span class='tc-lead tc-recommended'>推奨</span>: <strong>%1$s</strong> 内にテキストドメインに関する問題があります。 %2$s 次のが使われています: <strong>%3s</strong>%4$s"
443
+
444
+ #: theme-check/checks/badthings.php:9
445
+ msgid "eval() is not allowed."
446
+ msgstr "eval() は許可されていません。"
447
+
448
+ #: theme-check/checks/badthings.php:10
449
+ msgid "PHP sytem calls should be disabled by server admins anyway!"
450
+ msgstr "PHP システムコールはサーバー管理者によってとにかく無効にされるべきです!"
451
+
452
+ #: theme-check/checks/badthings.php:11
453
+ msgid "Themes should not change server PHP settings"
454
+ msgstr "テーマでサーバーの PHP の設定を変更するべきではありません"
455
+
456
+ #: theme-check/checks/badthings.php:12
457
+ msgid "base64_decode() is not allowed"
458
+ msgstr "base64_decode() は許可されていません。"
459
+
460
+ #: theme-check/checks/badthings.php:13
461
+ msgid "base64_encode() is not allowed"
462
+ msgstr "base64_encode() は許可されていません。"
463
+
464
+ #: theme-check/checks/badthings.php:14
465
+ msgid "uudecode() is not allowed"
466
+ msgstr "uudecode() は許可されていません。"
467
+
468
+ #: theme-check/checks/badthings.php:15
469
+ msgid "str_rot13() is not allowed"
470
+ msgstr "str_rot13() は許可されていません。"
471
+
472
+ #: theme-check/checks/badthings.php:16
473
+ #: theme-check/checks/badthings.php:37
474
+ msgid "Google search code detected"
475
+ msgstr "Google 検索のコードが検知されました"
476
+
477
+ #: theme-check/checks/badthings.php:17
478
+ #: theme-check/checks/badthings.php:38
479
+ msgid "Googe advertising code detected"
480
+ msgstr "Goolge 広告のコードが検知されました"
481
+
482
+ #: theme-check/checks/badthings.php:29
483
+ #, php-format
484
+ msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: Found <strong>%1$s</strong> in the file <strong>%2$s</strong>. %3$s. %4$s"
485
+ msgstr "<span class=\"tc-lead tc-warning\">注意</span>: ファイル <strong>%2$s</strong> 内に <strong>%1$s</strong> が見つかりました。 %3$s. %4$s"
486
+
487
+ #: theme-check/checks/badthings.php:48
488
+ #, php-format
489
+ msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: Found <strong>%1$s</strong> in the file <strong>%2$s</strong>. %3$s.%4$s"
490
+ msgstr "<span class=\"tc-lead tc-warning\">注意</span>: ファイル <strong>%2$s</strong> 内に <strong>%1$s</strong> が見つかりました。 %3$s.%4$s"
491
+
492
+ #: theme-check/checks/comment_reply.php:14
493
+ msgid "See: <a href=\"http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
494
+ msgstr "参照: <a href=\"http://wpdocs.sourceforge.jp/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
495
+
496
+ #: theme-check/checks/comment_reply.php:15
497
+ #, php-format
498
+ msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: Could not find the <strong>comment-reply</strong> script enqueued. %1$s"
499
+ msgstr "<span class=\"tc-lead tc-required\">必須</span>: <strong>comment-reply</strong> スクリプトが呼び出されていません。 %1$s"
500
+
501
+ #: theme-check/checks/comment_reply.php:18
502
+ msgid "<span class=\"tc-lead tc-info\">INFO</span>: Could not find the <strong>comment-reply</strong> script enqueued, however a reference to 'comment-reply' was found. Make sure that the comment-reply script is being enqueued properly on singular pages."
503
+ msgstr "<span class=\"tc-lead tc-info\">情報</span>: 'comment-reply' への参照が見つかりましたが、<strong>comment-reply</strong> スクリプトが呼び出されていません。単独ページで comment-reply スクリプトが正しく呼び出されているか確認してください。"
504
+
505
+ #: theme-check/checks/directories.php:27
506
+ msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: Please remove any extraneous directories like .git or .svn from the ZIP file before uploading it."
507
+ msgstr "<span class=\"tc-lead tc-required\">必須</span>: アップロードする前に、ZIP ファイルから .git や .svn などの無関係なディレクトリを取り除いてください。"
508
+
509
+ #: theme-check/checks/style_suggested.php:20
510
+ #, php-format
511
+ msgid "<span class=\"tc-lead tc-recommended\">RECOMMENDED</span>: <strong>%1$s</strong> is missing from your style.css header."
512
+ msgstr "<span class=\"tc-lead tc-recommended\">推奨</span>: style.css のヘッダーに <strong>%1$s</strong> がありません。"
513
+
514
+ #: theme-check/checks/time_date.php:22
515
+ #, php-format
516
+ msgid "<span class=\"tc-lead tc-info\">INFO</span>: At least one hard coded date was found in the file <strong>%s</strong>. Consider get_option( 'date_format' )"
517
+ msgstr "<span class=\"tc-lead tc-info\">情報</span>: 少なくともひとつのハードコードされた日付がファイル <strong>%s</strong> に見つかりました。get_option( 'date_format' ) の使用を検討してください。"
518
+
519
+ #: theme-check/checks/nonprintable.php:16
520
+ #, php-format
521
+ msgid "<span class=\"tc-lead tc-info\">INFO</span>: Non-printable characters were found in the <strong>%1$s</strong> file. You may want to check this file for errors.%2$s"
522
+ msgstr "<span class=\"tc-lead tc-info\">情報</span>: ファイル <strong>%1$s</strong> 内に非アスキー文字および/または制御文字が見つかりました。対象が日本語ユーザーのみの場合は日本語が入っていてもかまいませんが、公式テーマディレクトリに登録する場合は他言語ユーザーに配慮してテンプレートファイル内に日本語は使わないようにしてください。日本語以外の文字でこのエラーが出ている場合は次のエラーを確認して制御文字が入り込んでいないかファイルをチェックしてみてください。%2$s"
523
+
524
+ #: theme-check/checks/postsnav.php:16
525
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have post pagination code in it. Use <strong>posts_nav_link()</strong> or <strong>paginate_links()</strong> or <strong>next_posts_link()</strong> and <strong>previous_posts_link()</strong> to add post pagination."
526
+ msgstr "<span class='tc-lead tc-required'>必須</span>: このテーマには投稿記事ページネーションのコードがありません。<strong>posts_nav_link()</strong> もしくは <strong>paginate_links()</strong> もしくは <strong>next_posts_link()</strong> と <strong>previous_posts_link()</strong> を使用して投稿記事ページネーションを追加してください。"
527
+
528
+ #: theme-check/checks/filenames.php:21
529
+ msgid "Windows thumbnail store"
530
+ msgstr "Windows サムネイルファイル"
531
+
532
+ #: theme-check/checks/filenames.php:22
533
+ msgid "windows system file"
534
+ msgstr "Windows システムファイル"
535
+
536
+ #: theme-check/checks/filenames.php:23
537
+ #: theme-check/checks/filenames.php:24
538
+ msgid "NetBeans Project File"
539
+ msgstr "NetBeans プロジェクトファイル"
540
+
541
+ #: theme-check/checks/filenames.php:25
542
+ msgid "Komodo Project File"
543
+ msgstr "Komodo プロジェクトファイル"
544
+
545
+ #: theme-check/checks/filenames.php:26
546
+ msgid "Hidden Files or Folders"
547
+ msgstr "隠しファイルもしくは隠しフォルダ"
548
+
549
+ #: theme-check/checks/filenames.php:27
550
+ msgid "PHP server settings file"
551
+ msgstr "PHP サーバー設定ファイル"
552
+
553
+ #: theme-check/checks/filenames.php:28
554
+ msgid "Dreamweaver project file"
555
+ msgstr "Dreamweaver プロジェクトファイル"
556
+
557
+ #: theme-check/checks/filenames.php:29
558
+ msgid "PHP error log"
559
+ msgstr "PHP エラーログ"
560
+
561
+ #: theme-check/checks/filenames.php:30
562
+ msgid "Server settings file"
563
+ msgstr "サーバー設定ファイル"
564
+
565
+ #: theme-check/checks/filenames.php:31
566
+ msgid "SQL dump file"
567
+ msgstr "SQL ダンプファイル"
568
+
569
+ #: theme-check/checks/filenames.php:35
570
+ msgid "Please see <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> for more information."
571
+ msgstr "より詳しい情報は <a href=\"http://wpdocs.sourceforge.jp/Theme_Review#Theme_Documentation\">Theme_Documentation</a> をご覧ください。"
572
+
573
+ #: theme-check/checks/filenames.php:42
574
+ #, php-format
575
+ msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: <strong>%1$s</strong> %2$s found."
576
+ msgstr "<span class=\"tc-lead tc-warning\">注意</span>: <strong>%1$s</strong> %2$s が見つかりました。"
577
+
578
+ #: theme-check/checks/filenames.php:49
579
+ #, php-format
580
+ msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: could not find the file <strong>%1$s</strong> in the theme."
581
+ msgstr "<span class=\"tc-lead tc-warning\">注意</span>: テーマ内にファイル <strong>%1$s</strong> が見つかりませんでした。"
582
+
583
+ #: theme-check/checks/filenames.php:56
584
+ #, php-format
585
+ msgid "<span class=\"tc-lead tc-recommended\">RECOMMENDED</span>: could not find the file <strong>%1$s</strong> in the theme. %2$s"
586
+ msgstr "<span class=\"tc-lead tc-recommended\">推奨</span>: テーマ内にファイル <strong>%1$s</strong> が見つかりませんでした。 %2$s"
587
+
588
+ #: theme-check/checks/worms.php:9
589
+ msgid "This may be a script used by hackers to get control of your server!"
590
+ msgstr "これはあなたのサーバーをコントロールするためにクラッカーが利用しているスクリプトかもしれません!"
591
+
592
+ #: theme-check/checks/worms.php:10
593
+ msgid "This may be a script used by hackers to get control of your server"
594
+ msgstr "これはあなたのサーバーをコントロールするためにクラッカーが利用しているスクリプトかもしれません!"
595
+
596
+ #: theme-check/checks/worms.php:11
597
+ msgid "Tells a hacker what operating system your server is running"
598
+ msgstr "サーバーの OS をクラッカーに伝えます"
599
+
600
+ #: theme-check/checks/worms.php:12
601
+ msgid "base64 encoded text found in Search Engine Redirect hack <a href=\"http://blogbuildingu.com/wordpress/wordpress-search-engine-redirect-hack\">[1]</a>"
602
+ msgstr "検索エンジンリダイレクトハック <a href=\"http://blogbuildingu.com/wordpress/wordpress-search-engine-redirect-hack\">[1]</a> に base64 でエンコードされたテキストが見つかりました"
603
+
604
+ #: theme-check/checks/worms.php:13
605
+ msgid "YAHG Googlerank.info exploit code <a href=\"http://creativebriefing.com/wordpress-hacked-googlerankinfo/\">[1]</a>"
606
+ msgstr "YAHG Googlerank.info 攻撃用コード <a href=\"http://creativebriefing.com/wordpress-hacked-googlerankinfo/\">[1]</a>"
607
+
608
+ #: theme-check/checks/worms.php:14
609
+ msgid "Possible Ekibastos attack <a href=\"http://ocaoimh.ie/did-your-wordpress-site-get-hacked/\">[1]</a>"
610
+ msgstr "Ekibastos 攻撃の可能性 <a href=\"http://ocaoimh.ie/did-your-wordpress-site-get-hacked/\">[1]</a>"
611
+
612
+ #: theme-check/checks/worms.php:15
613
+ msgid "Symptom of a link injection attack <a href=\"http://www.kyle-brady.com/2009/11/07/wordpress-mediatemple-and-an-injection-attack/\">[1]</a>"
614
+ msgstr "リンクインジェクション <a href=\"http://www.kyle-brady.com/2009/11/07/wordpress-mediatemple-and-an-injection-attack/\">[1]</a> の兆候"
615
+
616
+ #: theme-check/checks/worms.php:16
617
+ msgid "Possible \"Gumblar\" JavaScript attack <a href=\"http://threatinfo.trendmicro.com/vinfo/articles/securityarticles.asp?xmlfile=042710-GUMBLAR.xml\">[1]</a> <a href=\"http://justcoded.com/article/gumblar-family-virus-removal-tool/\">[2]</a>"
618
+ msgstr "\"Gumblar\" JavaScript 攻撃 <a href=\"http://threatinfo.trendmicro.com/vinfo/articles/securityarticles.asp?xmlfile=042710-GUMBLAR.xml\">[1]</a> <a href=\"http://justcoded.com/article/gumblar-family-virus-removal-tool/\">[2]</a> の可能性"
619
+
620
+ #: theme-check/checks/worms.php:17
621
+ #: theme-check/checks/worms.php:18
622
+ msgid "Symptom of the \"Pharma Hack\" <a href=\"http://blog.sucuri.net/2010/07/understanding-and-cleaning-the-pharma-hack-on-wordpress.html\">[1]</a>"
623
+ msgstr "\"Pharma Hack\" <a href=\"http://blog.sucuri.net/2010/07/understanding-and-cleaning-the-pharma-hack-on-wordpress.html\">[1]</a> の可能性"
624
+
625
+ #: theme-check/checks/worms.php:19
626
+ msgid "Malicious footer code injection detected!"
627
+ msgstr "悪意のあるフッターコードのインジェクションを検知しました!"
628
+
629
+ #: theme-check/checks/worms.php:29
630
+ #, php-format
631
+ msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: <strong>%1$s</strong> %2$s%3$s"
632
+ msgstr "<span class=\"tc-lead tc-warning\">注意</span>: <strong>%1$s</strong> %2$s%3$s"
633
+
634
+ #: theme-check/checks/phpshort.php:14
635
+ #, php-format
636
+ msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: Found PHP short tags in file <strong>%1$s</strong>.%2$s"
637
+ msgstr "<span class=\"tc-lead tc-warning\">注意</span>: ファイル <strong>%1$s</strong>に PHP のショートタグが見つかりました。%2$s"
638
+
639
+ #: theme-check/checks/screenshot.php:21
640
+ #, php-format
641
+ msgid "<span class=\"tc-lead tc-recommended\">RECOMMENDED</span>: Screenshot is wrong size! Detected: <strong>%1$sx%2$spx</strong>. Maximum allowed size is 320x240px."
642
+ msgstr "<span class=\"tc-lead tc-recommended\">推奨</span>: スクリーンショットのサイズが違います! 検知したサイズ: <strong>%1$sx%2$spx</strong> です。許可されている最大サイズは 320x240px です。"
643
+
644
+ #: theme-check/checks/screenshot.php:26
645
+ msgid "<span class='tc-lead tc-warning'>WARNING</span>: No screenshot detected! Please include a screenshot.png."
646
+ msgstr "<span class='tc-lead tc-warning'>注意</span>: スクリーンショットがありません! screenshot.png を含めるようにしてください。"
647
+
648
+ #: theme-check/checks/deprecated.php:155
649
+ #, php-format
650
+ msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: <strong>%1$s</strong> found in the file <strong>%2$s</strong>. Deprecated since version <strong>%3$s</strong>. Use <strong>%4$s</strong> instead.%5$s"
651
+ msgstr "<span class=\"tc-lead tc-required\">必須</span>: ファイル <strong>%2$s</strong> 内に <strong>%1$s</strong> が見つかりました。これはバージョン <strong>%3$s</strong> 以降、非推奨になっています。代わりに <strong>%4$s</strong> を使用してください。%5$s"
652
+
653
+ #: theme-check/checks/iframes.php:9
654
+ msgid "iframes are sometimes used to load unwanted adverts and code on your site"
655
+ msgstr "iframes は、無用な広告やコードのサイトへの読み込みに使われることがあります"
656
+
657
+ #: theme-check/checks/iframes.php:20
658
+ #, php-format
659
+ msgid "<span class=\"tc-lead tc-info\">INFO</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong> %3$s.%4$s"
660
+ msgstr "<span class=\"tc-lead tc-info\">情報</span>: ファイル <strong>%2$s</strong> 内に <strong>%1$s</strong> が見つかりました。 %3$s。%4$s"
661
+
662
+ #: theme-check/checks/artisteer.php:24
663
+ msgid "This theme appears to have been auto-generated. Generated themes are not allowed in the themes directory."
664
+ msgstr "このテーマは自動的に生成されたテーマのようです。自動生成されたテーマはテーマディレクトリでは許可されていません。"
665
+
666
+ #: theme-check/checks/malware.php:9
667
+ msgid "possible file operations"
668
+ msgstr "ファイル操作の可能性"
669
+
670
+ #: theme-check/checks/malware.php:23
671
+ #, php-format
672
+ msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong> %3$s.%4$s"
673
+ msgstr "<span class=\"tc-lead tc-warning\">注意</span>: ファイル <strong>%2$s</strong> に <strong>%1$s</strong> が見つかりました %3$s.%4$s"
674
+
675
+ #: theme-check/checks/post-formats.php:27
676
+ #, php-format
677
+ msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: <strong>%1$s</strong> was found in the file <strong>%2$s</strong>. However get_post_format and/or has_post_format were not found, and no use of formats in the CSS was detected."
678
+ msgstr "<span class=\"tc-lead tc-required\">必須</span>: ファイル <strong>%2$s</strong> 内に <strong>%1$s</strong> が見つかりました。get_post_format および/または has_post_format は見つかりませんでした。また、CSS にはフォーマット用のスタイルは検知されませんでした。"
679
+
680
+ #: theme-check/checks/content-width.php:14
681
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: No content width has been defined. Example: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
682
+ msgstr "<span class='tc-lead tc-required'>必須</span>: コンテンツ幅が設定されていません。例: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
683
+
684
+ #: theme-check/checks/include.php:10
685
+ msgid "The theme appears to use include or require. If these are being used to include separate sections of a template from independent files, then <strong>get_template_part()</strong> should be used instead."
686
+ msgstr "このテーマでは include もしくは require が使用されているようです。もし単独ファイルからテンプレートの別個のセクションをインクルードするためなら、代りに <strong>get_template_part()</strong> を使用してください。"
687
+
688
+ #: theme-check/checks/include.php:19
689
+ #, php-format
690
+ msgid "<span class=\"tc-lead tc-info\">INFO</span>: <strong>%1$s</strong> %2$s %3$s"
691
+ msgstr "<span class=\"tc-lead tc-info\">情報</span>: <strong>%1$s</strong> %2$s %3$s"
692
+
693
+ #: theme-check/checks/admin_menu.php:13
694
+ #: theme-check/checks/admin_menu.php:14
695
+ msgid "User levels were deprecated in <strong>2.0</strong>. Please see <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
696
+ msgstr "ユーザーレベルは <strong>2.0</strong> で非推奨になりました。<a href=\"http://wpdocs.sourceforge.jp/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E7%A8%AE%E9%A1%9E%E3%81%A8%E6%A8%A9%E9%99%90\">ユーザーの種類と権限</a>を参照してください。"
697
+
698
+ #: theme-check/checks/admin_menu.php:23
699
+ #, php-format
700
+ msgid "<span class=\"tc-lead tc-warning\">WARNING</span>: <strong>%1$s</strong>. %2$s%3$s"
701
+ msgstr "<span class=\"tc-lead tc-warning\">注意</span>: <strong>%1$s</strong>. %2$s%3$s"
702
+
703
+ #: theme-check/checks/admin_menu.php:33
704
+ msgid "Themes should use <strong>add_theme_page()</strong> for adding admin pages."
705
+ msgstr "管理画面ページの追加は <strong>add_theme_page()</strong> を使ってください。"
706
+
707
+ #: theme-check/checks/admin_menu.php:44
708
+ #, php-format
709
+ msgid "<span class=\"tc-lead tc-required\">REQUIRED</span>: <strong>%1$s</strong>. %2$s%3$s"
710
+ msgstr "<span class=\"tc-lead tc-required\">必須</span>: <strong>%1$s</strong>。 %2$s%3$s"
711
+
712
+ #~ msgid "This is a child theme. The parent theme is"
713
+ #~ msgstr "このテーマは子テーマです。親テーマ"
714
+
715
+ #~ msgid "twentyten text domain is being used!"
716
+ #~ msgstr "twentyten のテキストドメインが使用されています!"
717
+
718
+ #~ msgid "<strong>PHP shell was found!</strong>"
719
+ #~ msgstr "<strong>PHP シェルが見つかりました!</strong>"
lang/themecheck-ro_RO.mo ADDED
Binary file
lang/themecheck-ro_RO.po ADDED
@@ -0,0 +1,364 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2010 Theme-Check
2
+ # This file is distributed under the same license as the Theme-Check package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Theme-Check 20101228.2\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/theme-check\n"
7
+ "POT-Creation-Date: 2011-01-23 14:04:21+00:00\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=utf-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2011-01-26 00:43+0200\n"
12
+ "Last-Translator: Daniel Tara <contact@onedesigns.com>\n"
13
+ "Language-Team: WPTRT <theme-reviewers@lists.wordpress.org>\n"
14
+ "X-Poedit-Language: Romanian\n"
15
+ "X-Poedit-Country: ROMANIA\n"
16
+ "X-Poedit-SourceCharset: utf-8\n"
17
+
18
+ #: main.php:66
19
+ msgid "Theme Info"
20
+ msgstr "Informații Temă"
21
+
22
+ #: main.php:67
23
+ msgid "Title"
24
+ msgstr "Titlu"
25
+
26
+ #: main.php:68
27
+ msgid "Version"
28
+ msgstr "Versiune"
29
+
30
+ #: main.php:69
31
+ msgid "Author"
32
+ msgstr "Autor"
33
+
34
+ #: main.php:70
35
+ msgid "Author URI"
36
+ msgstr "URI Autor"
37
+
38
+ #: main.php:71
39
+ msgid "Theme URI"
40
+ msgstr "URI Temă"
41
+
42
+ #: main.php:72
43
+ msgid "License"
44
+ msgstr "Licență"
45
+
46
+ #: main.php:73
47
+ msgid "LicenseURI"
48
+ msgstr "URILicență"
49
+
50
+ #: main.php:75
51
+ msgid "Tags"
52
+ msgstr "Etichete"
53
+
54
+ #: main.php:76
55
+ msgid "Description"
56
+ msgstr "Descriere"
57
+
58
+ #: main.php:79
59
+ msgid "This is a child theme. The parent theme is"
60
+ msgstr "Această temă este \"child-theme\". Tema \"parent\" este"
61
+
62
+ #: main.php:91
63
+ msgid "One or more errors were found for "
64
+ msgstr "Una sau mai multe erori au fost găsite pentru "
65
+
66
+ #: main.php:93
67
+ msgid " passed the tests"
68
+ msgstr "a trecut testele"
69
+
70
+ #: main.php:96
71
+ msgid "<strong>WP_DEBUG is not enabled!</strong> Please test your theme with <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug enabled</a> before you upload!</div>"
72
+ msgstr "<strong>WP_DEBUG nu este activ!</strong> Testează tema cu <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">modul debug activat</a> inainte sa incarci!</div>"
73
+
74
+ #: main.php:161
75
+ msgid "Check it!"
76
+ msgstr "Verifică!"
77
+
78
+ #: checkbase.php:87
79
+ #: checkbase.php:106
80
+ msgid "<pre class='tc-grep'>Line "
81
+ msgstr "<pre class='tc-grep'>Linie "
82
+
83
+ #: theme-check.php:23
84
+ msgid "You do not have sufficient permissions to access this page."
85
+ msgstr "Nu ai suficiente drepturi pentru a accesa aceastp pagină."
86
+
87
+ #: checks/tags.php:13
88
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to display tags. Modify it to display tags in appropriate locations."
89
+ msgstr "<span class='tc-lead tc-required'>REQUIRED</span>: Această temă nu ăare să afișeze etichete. Modifică tema, astfel încât să afișeze etichetele în locurile corespunzătoare."
90
+
91
+ #: checks/gravatar.php:15
92
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to support the standard avatar functions. Use <strong>get_avatar</strong> or <strong>wp_list_comments</strong> to add this support."
93
+ msgstr "<span class='tc-lead tc-required'>NECESAR</span>: Tema nu pare să suporte funcțiile standard pentru avatare. Folosește <strong>get_avatar</strong> sau <strong>wp_list_comments</strong> pentru a adăuga această funcționalitate."
94
+
95
+ #: checks/commpage.php:15
96
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have comment pagination code in it. Use <strong>paginate_comments_links()</strong> or <strong>next_comments_link()</strong> and <strong>previous_comments_link()</strong> to add comment pagination."
97
+ msgstr "<span class='tc-lead tc-required'>NECESAR</span>: Tema nu are cod pentru paginatia comentariilor. Folosește <strong>paginate_comments_links()</strong> sau <strong>next_comments_link()</strong> si <strong>previous_comments_link()</strong> pentru a adăuga paginație comentariilor."
98
+
99
+ #: checks/postthumb.php:15
100
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>the_post_thumbnail()</strong> was found in the theme. It is recommended that the theme implement this functionality instead of using custom fields for thumbnails."
101
+ msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: Nu s-au găsit referințe către <strong>the_post_thumbnail()</strong> în temă. Este recomandat ca tema să implementeze această de funcționalitate pentru pictograme, in loc de câmpuri particularizate."
102
+
103
+ #: checks/postthumb.php:19
104
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to post-thumbnails was found in the theme. If the theme has a thumbnail like functionality, it should be implemented with <strong>add_theme_support( 'post-thumbnails' )</strong>in the functions.php file."
105
+ msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: Nu s-au găsit referințe către post-thumbnails în temă. Dacă tema are funcționalitate pentru pictograme, ar trebui implementată cu <strong>add_theme_support( 'post-thumbnails' )</strong> în fișierul functions.php."
106
+
107
+ #: checks/navmenu.php:14
108
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to nav_menu's was found in the theme. Note that if your theme has a menu bar, it is required to use the WordPress nav_menu functionality for it."
109
+ msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: Nu s-au găsit referințe către nav_menu în temă. Dacă tema are o bară de meniu, este necesar să folosească funcționalitatea nav_menu din WordPress pentru ea."
110
+
111
+ #: checks/directories.php:27
112
+ msgid "Please remove any extraneous directories like .git or .svn from the ZIP file before uploading it."
113
+ msgstr "Elimină directoare externe ca .git sau .svn din arhiva ZIP inainte de a o incarca."
114
+
115
+ #: checks/customs.php:14
116
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_image_header</strong> was found in the theme. It is recommended that the theme implement this functionality if using an image for the header."
117
+ msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: Nu s-au găsit referințe către <strong>add_custom_image_header</strong> în temă. Este recomandat ca tema să implementeze această funcționalitate daca folosește o imagine pentru antet."
118
+
119
+ #: checks/customs.php:18
120
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_background()</strong> was found in the theme. If the theme uses background images or solid colors for the background, then it is recommended that the theme implement this functionality."
121
+ msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: Nu s-au găsit referințe către <strong>add_custom_background()</strong> în temă. Daca tema foloseste imagini sau culori pentru fond, este recomandat să implementeze această funcționalitate."
122
+
123
+ #: checks/filenames.php:21
124
+ msgid "Windows thumbnail store"
125
+ msgstr "Baza de date de pictograme Windows"
126
+
127
+ #: checks/filenames.php:22
128
+ msgid "windows system file"
129
+ msgstr "Fișier sistem Windows"
130
+
131
+ #: checks/filenames.php:23
132
+ msgid "Komodo Project File"
133
+ msgstr "Fișier proiect Komodo"
134
+
135
+ #: checks/filenames.php:24
136
+ msgid "Hidden File"
137
+ msgstr "Fișier ascuns"
138
+
139
+ #: checks/filenames.php:25
140
+ msgid "PHP server settings file"
141
+ msgstr "Fișier setări server PHP"
142
+
143
+ #: checks/filenames.php:26
144
+ msgid "Dreamweaver project file"
145
+ msgstr "Fișier proiect Dreamweaver"
146
+
147
+ #: checks/filenames.php:27
148
+ msgid "PHP error log"
149
+ msgstr "Jurnal erori PHP"
150
+
151
+ #: checks/filenames.php:28
152
+ msgid "Server settings file"
153
+ msgstr "Fișier setări server"
154
+
155
+ #: checks/filenames.php:32
156
+ msgid "Please see <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> for more information."
157
+ msgstr "Vezi <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> pentru mai multe informații."
158
+
159
+ #: checks/style_needed.php:11
160
+ msgid "<strong>Theme name:</strong> is missing from your style.css header."
161
+ msgstr "<strong>Theme name:</strong> lipsește din antetul style.css."
162
+
163
+ #: checks/style_needed.php:12
164
+ msgid "<strong>Description:</strong> is missing from your style.css header."
165
+ msgstr "<strong>Description:</strong> lipsește din antetul style.css."
166
+
167
+ #: checks/style_needed.php:13
168
+ msgid "<strong>Author:</strong> is missing from your style.css header."
169
+ msgstr "<strong>Author:</strong> lipsește din antetul style.css."
170
+
171
+ #: checks/style_needed.php:14
172
+ msgid "<strong>Version:</strong> is missing from your style.css header."
173
+ msgstr "<strong>Version:</strong> lipsește din antetul style.css."
174
+
175
+ #: checks/style_needed.php:15
176
+ msgid "<strong>License:</strong> is missing from your style.css header."
177
+ msgstr "<strong>License:</strong> lipsește din antetul style.css."
178
+
179
+ #: checks/style_needed.php:16
180
+ msgid "<strong>License URI:</strong> is missing from your style.css header."
181
+ msgstr "<strong>License URI:</strong> lipsește din antetul style.css."
182
+
183
+ #: checks/style_needed.php:17
184
+ msgid "<strong>.alignleft</strong> css class is needed in your theme css."
185
+ msgstr "Clasa CSS <strong>.alignleft</strong> este necesară in fișierul CSS al temei."
186
+
187
+ #: checks/style_needed.php:18
188
+ msgid "<strong>.alignright</strong> css class is needed in your theme css."
189
+ msgstr "Clasa CSS <strong>.alignright</strong> este necesară in fișierul CSS al temei."
190
+
191
+ #: checks/style_needed.php:19
192
+ msgid "<strong>.aligncenter</strong> css class is needed in your theme css."
193
+ msgstr "Clasa CSS <strong>.aligncenter</strong> este necesară in fișierul CSS al temei."
194
+
195
+ #: checks/style_needed.php:20
196
+ msgid "<strong>.wp-caption</strong> css class is needed in your theme css."
197
+ msgstr "Clasa CSS <strong>.wp-caption</strong> este necesară in fișierul CSS al temei."
198
+
199
+ #: checks/style_needed.php:21
200
+ msgid "<strong>.wp-caption-text</strong> css class is needed in your theme css."
201
+ msgstr "Clasa CSS <strong>.wp-caption-text</strong> este necesară in fișierul CSS al temei."
202
+
203
+ #: checks/style_needed.php:22
204
+ msgid "<strong>.gallery-caption</strong> css class is needed in your theme css."
205
+ msgstr "Clasa CSS <strong>.gallery-caption</strong> este necesară in fișierul CSS al temei."
206
+
207
+ #: checks/style_tags.php:20
208
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: <strong>Tags:</strong> is either empty or missing in style.css header."
209
+ msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: <strong>Tags:</strong> este gol sau lipsește din antetul style.css."
210
+
211
+ #: checks/searchform.php:14
212
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: Please use <strong>get_search_form()</strong> instead of including searchform.php directly."
213
+ msgstr "<span class='tc-lead tc-required'>NECESAR</span>: Folosește <strong>get_search_form()</strong> în loc de a include direct searchform.php."
214
+
215
+ #: checks/worms.php:9
216
+ msgid "<strong>PHP shell was found!</strong>"
217
+ msgstr "<strong>Shell PHP a fost găsit!</strong>"
218
+
219
+ #: checks/include.php:10
220
+ msgid "The theme appears to use include or require. If these are being used to include separate sections of a template from independent files, then <strong>get_template_part()</strong> should be used instead."
221
+ msgstr "Tema pare să folosească include sau require. Dacă acestea sunt folosite pentru a include secțiuni separate ale template-ului din fișiere independente, atunci <strong>get_template_part()</strong> ar trebui folosit."
222
+
223
+ #: checks/malware.php:9
224
+ msgid "possible file operations"
225
+ msgstr "posibile operațiuni cu fișiere"
226
+
227
+ #: checks/postsnav.php:16
228
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have post pagination code in it. Use <strong>posts_nav_link()</strong> or <strong>paginate_links()</strong> or <strong>next_posts_link()</strong> and <strong>previous_posts_link()</strong> to add post pagination."
229
+ msgstr "<span class='tc-lead tc-required'>NECESAR</span>: Tema nu are paginație pentru intrări. Folosește <strong>posts_nav_link()</strong> sau <strong>paginate_links()</strong> sau <strong>next_posts_link()</strong> si <strong>previous_posts_link()</strong> pentru a adăuga paginație intrărilor."
230
+
231
+ #: checks/admin_menu.php:13
232
+ msgid "User levels were deprecated in <strong>2.0</strong>. Please see <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
233
+ msgstr "Nivelele de utilizatori au fost depreciate in <strong>2.0</strong>. Vezi <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
234
+
235
+ #: checks/admin_menu.php:33
236
+ msgid "Themes should use <strong>add_theme_page()</strong> for adding admin pages."
237
+ msgstr "Temele ar trebui să folosească <strong>add_theme_page()</strong> pentru adăugarea paginilor de administrație."
238
+
239
+ #: checks/artisteer.php:23
240
+ msgid "This theme appears to have been auto-generated. Generated themes are not allowed in the themes directory."
241
+ msgstr "Această tema pare să fie generată automat. Temele generate nu sunt permise în directorul de teme."
242
+
243
+ #: checks/editorstyle.php:13
244
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_editor_style()</strong> was found in the theme. It is recommended that the theme implement editor styling, so as to make the editor content match the resulting post output in the theme, for a better user experience."
245
+ msgstr "<span class='tc-lead tc-recommended'>RECOMANDAT</span>: Nu s-au găsit referințe către <strong>add_editor_style()</strong> în temă. Este recomandat ca tema să implementeze stilizarea editorului, pentru a face conținutul din editor să se potrivească cu conținutul intrării din temă, pentru o experiență mai buna a utilizatorului."
246
+
247
+ #: checks/content-width.php:14
248
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: No content width has been defined. Example: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
249
+ msgstr "<span class='tc-lead tc-required'>NECESAR</span>: Lățimea conținutului nu a fost definită. Exemplu: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
250
+
251
+ #: checks/badthings.php:9
252
+ msgid "eval() is not allowed."
253
+ msgstr "eval() nu este permis."
254
+
255
+ #: checks/badthings.php:10
256
+ msgid "PHP sytem calls should be disabled by server admins anyway!"
257
+ msgstr "Apelurile de sistem PHP ar trebui sa fie oricum dezactivate de către administratori."
258
+
259
+ #: checks/badthings.php:11
260
+ msgid "Themes should not change server PHP settings"
261
+ msgstr "Temele nu ar trebui să modifice setările serverului PHP"
262
+
263
+ #: checks/badthings.php:12
264
+ msgid "base64_decode() is not allowed"
265
+ msgstr "base64_decode() nu este permis"
266
+
267
+ #: checks/badthings.php:13
268
+ msgid "base64_encode() is not allowed"
269
+ msgstr "base64_encode() nu este permis"
270
+
271
+ #: checks/badthings.php:14
272
+ msgid "uudecode() is not allowed"
273
+ msgstr "uudecode() nu este permis"
274
+
275
+ #: checks/badthings.php:15
276
+ msgid "str_rot13() is not allowed"
277
+ msgstr "str_rot13() nu este permis"
278
+
279
+ #: checks/badthings.php:16
280
+ #: checks/badthings.php:37
281
+ msgid "Google search code detected"
282
+ msgstr "Cod căutare Google detectat"
283
+
284
+ #: checks/badthings.php:17
285
+ #: checks/badthings.php:38
286
+ msgid "Googe advertising code detected"
287
+ msgstr "Cod reclame Googe detectat"
288
+
289
+ #: checks/basic.php:14
290
+ msgid "See: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
291
+ msgstr "Vezi: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
292
+
293
+ #: checks/basic.php:15
294
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
295
+ msgstr "Vezi: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
296
+
297
+ #: checks/basic.php:16
298
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
299
+ msgstr "Vezi: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
300
+
301
+ #: checks/basic.php:17
302
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
303
+ msgstr "Vezi: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
304
+
305
+ #: checks/basic.php:18
306
+ msgid "There must be a charset defined in the Content-Type or the meta charset tag in the head."
307
+ msgstr "Charset trebuie definit in Content-Type sau meta charset in head"
308
+
309
+ #: checks/basic.php:19
310
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
311
+ msgstr "Vezi: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
312
+
313
+ #: checks/basic.php:20
314
+ msgid "See: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
315
+ msgstr "Vezi: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
316
+
317
+ #: checks/basic.php:21
318
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
319
+ msgstr "Vezi: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
320
+
321
+ #: checks/basic.php:22
322
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
323
+ msgstr "Vezi: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
324
+
325
+ #: checks/basic.php:23
326
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
327
+ msgstr "Vezi: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
328
+
329
+ #: checks/basic.php:24
330
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
331
+ msgstr "Vezi: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
332
+
333
+ #: checks/basic.php:25
334
+ msgid "See: <a href=\"http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
335
+ msgstr "Vezi: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
336
+
337
+ #: checks/basic.php:26
338
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
339
+ msgstr "Vezi: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
340
+
341
+ #: checks/basic.php:27
342
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
343
+ msgstr "Vezi: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
344
+
345
+ #. Plugin Name of the plugin/theme
346
+ msgid "Theme-Check"
347
+ msgstr "Theme-Check"
348
+
349
+ #. Plugin URI of the plugin/theme
350
+ msgid "http://pross.org.uk/plugins"
351
+ msgstr "http://pross.org.uk/plugins"
352
+
353
+ #. Description of the plugin/theme
354
+ msgid "A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!"
355
+ msgstr "Un mod simplu și ușor de a verifica tema ta pentru toate standardele și practcile WordPress recente."
356
+
357
+ #. Author of the plugin/theme
358
+ msgid "Pross"
359
+ msgstr "Pross"
360
+
361
+ #. Author URI of the plugin/theme
362
+ msgid "http://pross.org.uk"
363
+ msgstr "http://pross.org.uk"
364
+
lang/themecheck-sr_RS.mo ADDED
Binary file
lang/themecheck-sr_RS.po ADDED
@@ -0,0 +1,364 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2010 Theme-Check
2
+ # This file is distributed under the same license as the Theme-Check package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Theme-Check 20101228.2\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/theme-check\n"
7
+ "POT-Creation-Date: 2011-01-23 14:04:21+00:00\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2011-01-25 22:26-0600\n"
12
+ "Last-Translator: Emil Uzelac <emil@themeid.com>\n"
13
+ "Language-Team: WPTRT <theme-reviewers@lists.wordpress.org>\n"
14
+ "X-Poedit-Language: Serbian\n"
15
+ "X-Poedit-Country: SERBIA\n"
16
+ "X-Poedit-SourceCharset: utf-8\n"
17
+
18
+ #: main.php:66
19
+ msgid "Theme Info"
20
+ msgstr "Информације Теме"
21
+
22
+ #: main.php:67
23
+ msgid "Title"
24
+ msgstr "Наслов"
25
+
26
+ #: main.php:68
27
+ msgid "Version"
28
+ msgstr "Верзија"
29
+
30
+ #: main.php:69
31
+ msgid "Author"
32
+ msgstr "Аутор"
33
+
34
+ #: main.php:70
35
+ msgid "Author URI"
36
+ msgstr "Аутор URI"
37
+
38
+ #: main.php:71
39
+ msgid "Theme URI"
40
+ msgstr "Тема URI"
41
+
42
+ #: main.php:72
43
+ msgid "License"
44
+ msgstr "Лиценца"
45
+
46
+ #: main.php:73
47
+ msgid "LicenseURI"
48
+ msgstr "Лиценца URI"
49
+
50
+ #: main.php:75
51
+ msgid "Tags"
52
+ msgstr "Етикете"
53
+
54
+ #: main.php:76
55
+ msgid "Description"
56
+ msgstr "Опис"
57
+
58
+ #: main.php:79
59
+ msgid "This is a child theme. The parent theme is"
60
+ msgstr "Ово је child тема. Parent тема је"
61
+
62
+ #: main.php:91
63
+ msgid "One or more errors were found for "
64
+ msgstr "Једна или више грешака је пронађено"
65
+
66
+ #: main.php:93
67
+ msgid " passed the tests"
68
+ msgstr "је прошла све тестове"
69
+
70
+ #: main.php:96
71
+ msgid "<strong>WP_DEBUG is not enabled!</strong> Please test your theme with <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug enabled</a> before you upload!</div>"
72
+ msgstr "<strong>WP_DEBUG није подешен!</strong> Молим Вас да тестирате вашу тему са <a href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug одобрењем</a> пре пребацивања!</div>"
73
+
74
+ #: main.php:161
75
+ msgid "Check it!"
76
+ msgstr "Провери!"
77
+
78
+ #: checkbase.php:87
79
+ #: checkbase.php:106
80
+ msgid "<pre class='tc-grep'>Line "
81
+ msgstr "<pre class='tc-grep'>Ред"
82
+
83
+ #: theme-check.php:23
84
+ msgid "You do not have sufficient permissions to access this page."
85
+ msgstr "Немате довољно одобрење за приступ овој страници."
86
+
87
+ #: checks/tags.php:13
88
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to display tags. Modify it to display tags in appropriate locations."
89
+ msgstr "<span class='tc-lead tc-required'>ОБАВЕЗНО</span>: Ова тема није у могућности да прикаже етикете. Модификујте код за етикете у намењеној локацији."
90
+
91
+ #: checks/gravatar.php:15
92
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem to support the standard avatar functions. Use <strong>get_avatar</strong> or <strong>wp_list_comments</strong> to add this support."
93
+ msgstr "<span class='tc-lead tc-required'>ОБАВЕЗНО</span>: Ова тема не подржава основне аватар функције. Користите <strong>get_avatar</strong> или <strong>wp_list_comments</strong> да додате подршку."
94
+
95
+ #: checks/commpage.php:15
96
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have comment pagination code in it. Use <strong>paginate_comments_links()</strong> or <strong>next_comments_link()</strong> and <strong>previous_comments_link()</strong> to add comment pagination."
97
+ msgstr "<span class='tc-lead tc-required'>ОБАВЕЗНО</span>: Ова тема нема comment pagination код. Користите <strong>paginate_comments_links()</strong> или <strong>next_comments_link()</strong> и <strong>previous_comments_link()</strong> да додате comment pagination."
98
+
99
+ #: checks/postthumb.php:15
100
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>the_post_thumbnail()</strong> was found in the theme. It is recommended that the theme implement this functionality instead of using custom fields for thumbnails."
101
+ msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: Нема ознака да <strong>the_post_thumbnail()</strong> постоји у теми. Препоручено је да тема спроведе ову функцију, уместо да користи custom fields за thumbnails."
102
+
103
+ #: checks/postthumb.php:19
104
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to post-thumbnails was found in the theme. If the theme has a thumbnail like functionality, it should be implemented with <strong>add_theme_support( 'post-thumbnails' )</strong>in the functions.php file."
105
+ msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: Нема ознака да post-thumbnails постоји у теми. Ако тема има thumbnail функције, требало би да се спроведе са <strong>add_theme_support( 'post-thumbnails' )</strong>у functions.php фајлу."
106
+
107
+ #: checks/navmenu.php:14
108
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to nav_menu's was found in the theme. Note that if your theme has a menu bar, it is required to use the WordPress nav_menu functionality for it."
109
+ msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: Нема ознака да nav_menu's постоји у теми. Обратите пажњу да уколико Ваша тема има menu bar, обавезно је да користите WordPress nav_menu функције за то."
110
+
111
+ #: checks/directories.php:27
112
+ msgid "Please remove any extraneous directories like .git or .svn from the ZIP file before uploading it."
113
+ msgstr "Молим Вас да избаците све непотребне датотеке као што су .git или .svn из ZIP фајла пре уплоадовања."
114
+
115
+ #: checks/customs.php:14
116
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_image_header</strong> was found in the theme. It is recommended that the theme implement this functionality if using an image for the header."
117
+ msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: Нема ознака да <strong>add_custom_image_header</strong> постоји у теми. Препоручено је да спроведете ову функцију у теми уколико користите имиџ у хедеру."
118
+
119
+ #: checks/customs.php:18
120
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_custom_background()</strong> was found in the theme. If the theme uses background images or solid colors for the background, then it is recommended that the theme implement this functionality."
121
+ msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: Нема ознака да <strong>add_custom_background()</strong> је пронађен у теми. Ако тема користи имиџе за позадину или боје, онда се препоручује да примените ову функционалност."
122
+
123
+ #: checks/filenames.php:21
124
+ msgid "Windows thumbnail store"
125
+ msgstr "Windows thumbnail магацин"
126
+
127
+ #: checks/filenames.php:22
128
+ msgid "windows system file"
129
+ msgstr "windows систем фајл"
130
+
131
+ #: checks/filenames.php:23
132
+ msgid "Komodo Project File"
133
+ msgstr "Komodo Пројект Фајл"
134
+
135
+ #: checks/filenames.php:24
136
+ msgid "Hidden File"
137
+ msgstr "Скривени Фајл"
138
+
139
+ #: checks/filenames.php:25
140
+ msgid "PHP server settings file"
141
+ msgstr "PHP сервер подесиони фајл"
142
+
143
+ #: checks/filenames.php:26
144
+ msgid "Dreamweaver project file"
145
+ msgstr "Dreamweaver пројект фајл"
146
+
147
+ #: checks/filenames.php:27
148
+ msgid "PHP error log"
149
+ msgstr "PHP протокол грешке"
150
+
151
+ #: checks/filenames.php:28
152
+ msgid "Server settings file"
153
+ msgstr "Серверов подесиони фајл"
154
+
155
+ #: checks/filenames.php:32
156
+ msgid "Please see <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> for more information."
157
+ msgstr "Молим да видите <a href=\"http://codex.wordpress.org/Theme_Review#Theme_Documentation\">Theme_Documentation</a> за више информација."
158
+
159
+ #: checks/style_needed.php:11
160
+ msgid "<strong>Theme name:</strong> is missing from your style.css header."
161
+ msgstr "<strong>Име Теме:</strong> недостаје из вашег style.css хедера."
162
+
163
+ #: checks/style_needed.php:12
164
+ msgid "<strong>Description:</strong> is missing from your style.css header."
165
+ msgstr "<strong>Опис:</strong> недостаје из вашег style.css хедера."
166
+
167
+ #: checks/style_needed.php:13
168
+ msgid "<strong>Author:</strong> is missing from your style.css header."
169
+ msgstr "<strong>Аутор:</strong> недостаје из вашег style.css хедера."
170
+
171
+ #: checks/style_needed.php:14
172
+ msgid "<strong>Version:</strong> is missing from your style.css header."
173
+ msgstr "<strong>Верзија:</strong> недостаје из вашег style.css хедера."
174
+
175
+ #: checks/style_needed.php:15
176
+ msgid "<strong>License:</strong> is missing from your style.css header."
177
+ msgstr "<strong>Лиценца:</strong> недостаје из вашег style.css хедера."
178
+
179
+ #: checks/style_needed.php:16
180
+ msgid "<strong>License URI:</strong> is missing from your style.css header."
181
+ msgstr "<strong>Лиценца URI:</strong> недостаје из вашег style.css хедера."
182
+
183
+ #: checks/style_needed.php:17
184
+ msgid "<strong>.alignleft</strong> css class is needed in your theme css."
185
+ msgstr "<strong>.alignleft</strong> css класа је неопходна у css фајлу ваше теме."
186
+
187
+ #: checks/style_needed.php:18
188
+ msgid "<strong>.alignright</strong> css class is needed in your theme css."
189
+ msgstr "<strong>.alignright</strong> css класа је неопходна у css фајлу ваше теме."
190
+
191
+ #: checks/style_needed.php:19
192
+ msgid "<strong>.aligncenter</strong> css class is needed in your theme css."
193
+ msgstr "<strong>.aligncenter</strong> css класа је неопходна у css фајлу ваше теме."
194
+
195
+ #: checks/style_needed.php:20
196
+ msgid "<strong>.wp-caption</strong> css class is needed in your theme css."
197
+ msgstr "<strong>.wp-caption</strong> css класа је неопходна у css фајлу ваше теме."
198
+
199
+ #: checks/style_needed.php:21
200
+ msgid "<strong>.wp-caption-text</strong> css class is needed in your theme css."
201
+ msgstr "<strong>.wp-caption-text</strong> css класа је неопходна у css фајлу ваше теме."
202
+
203
+ #: checks/style_needed.php:22
204
+ msgid "<strong>.gallery-caption</strong> css class is needed in your theme css."
205
+ msgstr "<strong>.gallery-caption</strong> css класа је неопходна у css фајлу ваше теме."
206
+
207
+ #: checks/style_tags.php:20
208
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: <strong>Tags:</strong> is either empty or missing in style.css header."
209
+ msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: <strong>Етикета:</strong> је или празна или не постоји у style.css хедеру."
210
+
211
+ #: checks/searchform.php:14
212
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: Please use <strong>get_search_form()</strong> instead of including searchform.php directly."
213
+ msgstr "<span class='tc-lead tc-required'>ОБАВЕЗНО</span>: Молим да користите <strong>get_search_form()</strong> уместо садржавања searchform.php директно."
214
+
215
+ #: checks/worms.php:9
216
+ msgid "<strong>PHP shell was found!</strong>"
217
+ msgstr "<strong>PHP shell је пронађен!</strong>"
218
+
219
+ #: checks/include.php:10
220
+ msgid "The theme appears to use include or require. If these are being used to include separate sections of a template from independent files, then <strong>get_template_part()</strong> should be used instead."
221
+ msgstr "Тема изгледа да користи include или require. Уколико се и користе за убацивање одвојених секција темплејта из независних фајлова, онда уместо тога користите <strong>get_template_part()</strong>"
222
+
223
+ #: checks/malware.php:9
224
+ msgid "possible file operations"
225
+ msgstr "могуће фајл операције"
226
+
227
+ #: checks/postsnav.php:16
228
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have post pagination code in it. Use <strong>posts_nav_link()</strong> or <strong>paginate_links()</strong> or <strong>next_posts_link()</strong> and <strong>previous_posts_link()</strong> to add post pagination."
229
+ msgstr "<span class='tc-lead tc-required'>ОБАВЕЗНО</span>: Тема нема код за пост пагинацију. Користите <strong>posts_nav_link()</strong> или <strong>paginate_links()</strong> и <strong>next_posts_link()</strong> и <strong>previous_posts_link()</strong> да додате пост пагинацију."
230
+
231
+ #: checks/admin_menu.php:13
232
+ msgid "User levels were deprecated in <strong>2.0</strong>. Please see <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
233
+ msgstr "Кориснички нивои су одбачени у <strong>2.0</strong>. Молим да погледате <a href=\"http://codex.wordpress.org/Roles_and_Capabilities\">Roles_and_Capabilities</a>"
234
+
235
+ #: checks/admin_menu.php:33
236
+ msgid "Themes should use <strong>add_theme_page()</strong> for adding admin pages."
237
+ msgstr "Теме би требале да користе <strong>add_theme_page()</strong> за убацивање администрационих страница."
238
+
239
+ #: checks/artisteer.php:23
240
+ msgid "This theme appears to have been auto-generated. Generated themes are not allowed in the themes directory."
241
+ msgstr "Ова тема изгледа да је била аутоматски генерисана. Генерисане теме нису дозвољене у директоријуму тема."
242
+
243
+ #: checks/editorstyle.php:13
244
+ msgid "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to <strong>add_editor_style()</strong> was found in the theme. It is recommended that the theme implement editor styling, so as to make the editor content match the resulting post output in the theme, for a better user experience."
245
+ msgstr "<span class='tc-lead tc-recommended'>ПРЕПОРУЧЕНО</span>: Нема ознака да <strong>add_editor_style()</strong> постоји у теми. Препоручено је да тема укључи стил за уреднике како би уређивачки садржај изгледао као и постови теме, зарад бољег искуства корисника."
246
+
247
+ #: checks/content-width.php:14
248
+ msgid "<span class='tc-lead tc-required'>REQUIRED</span>: No content width has been defined. Example: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
249
+ msgstr "<span class='tc-lead tc-required'>ОБАВЕЗНО</span>: Ширина садржаја није дефинисана. Пример: <pre>if ( ! isset( $content_width ) ) $content_width = 900;</pre>"
250
+
251
+ #: checks/badthings.php:9
252
+ msgid "eval() is not allowed."
253
+ msgstr "eval() није дозвољен."
254
+
255
+ #: checks/badthings.php:10
256
+ msgid "PHP sytem calls should be disabled by server admins anyway!"
257
+ msgstr "PHP систем позиви свакако треба да буду онеспособљени од стане администратора сервера!"
258
+
259
+ #: checks/badthings.php:11
260
+ msgid "Themes should not change server PHP settings"
261
+ msgstr "Тема неби требала да прави PHP промене на серверу"
262
+
263
+ #: checks/badthings.php:12
264
+ msgid "base64_decode() is not allowed"
265
+ msgstr "base64_decode() није дозвољен"
266
+
267
+ #: checks/badthings.php:13
268
+ msgid "base64_encode() is not allowed"
269
+ msgstr "base64_encode() није дозвољен"
270
+
271
+ #: checks/badthings.php:14
272
+ msgid "uudecode() is not allowed"
273
+ msgstr "uudecode() није дозвољен"
274
+
275
+ #: checks/badthings.php:15
276
+ msgid "str_rot13() is not allowed"
277
+ msgstr "str_rot13() није дозвољен"
278
+
279
+ #: checks/badthings.php:16
280
+ #: checks/badthings.php:37
281
+ msgid "Google search code detected"
282
+ msgstr "Google претраживачки код је пронађен"
283
+
284
+ #: checks/badthings.php:17
285
+ #: checks/badthings.php:38
286
+ msgid "Googe advertising code detected"
287
+ msgstr "Google рекламни код је пронађен"
288
+
289
+ #: checks/basic.php:14
290
+ msgid "See: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
291
+ msgstr "Види: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex.wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"?&gt;</pre>"
292
+
293
+ #: checks/basic.php:15
294
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
295
+ msgstr "Види: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
296
+
297
+ #: checks/basic.php:16
298
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
299
+ msgstr "Види: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
300
+
301
+ #: checks/basic.php:17
302
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
303
+ msgstr "Види: <a href=\"http://codex.wordpress.org/Function_Reference/language_attributes\">language_attributes</a><pre>&lt;html &lt;?php language_attributes(); ?&gt;</pre>"
304
+
305
+ #: checks/basic.php:18
306
+ msgid "There must be a charset defined in the Content-Type or the meta charset tag in the head."
307
+ msgstr "Charset мора да буде дефинисан у Content-Type или meta charset ознака на врху стране."
308
+
309
+ #: checks/basic.php:19
310
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
311
+ msgstr "Види: <a href=\"http://codex.wordpress.org/Function_Reference/add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support( $feature ); ?&gt;</pre>"
312
+
313
+ #: checks/basic.php:20
314
+ msgid "See: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
315
+ msgstr "Види: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
316
+
317
+ #: checks/basic.php:21
318
+ msgid "See: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
319
+ msgstr "Види: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
320
+
321
+ #: checks/basic.php:22
322
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
323
+ msgstr "Види: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template\">comments_template</a><pre> &lt;?php comments_template( $file, $separate_comments ); ?&gt;</pre>"
324
+
325
+ #: checks/basic.php:23
326
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
327
+ msgstr "Види: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
328
+
329
+ #: checks/basic.php:24
330
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
331
+ msgstr "Види: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
332
+
333
+ #: checks/basic.php:25
334
+ msgid "See: <a href=\"http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
335
+ msgstr "Види: <a href=\"http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if ( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
336
+
337
+ #: checks/basic.php:26
338
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
339
+ msgstr "Види: <a href=\"http://codex.wordpress.org/Template_Tags/body_class\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
340
+
341
+ #: checks/basic.php:27
342
+ msgid "See: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
343
+ msgstr "Види: <a href=\"http://codex.wordpress.org/Template_Tags/post_class\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php post_class(); ?&gt;&gt;</pre>"
344
+
345
+ #. Plugin Name of the plugin/theme
346
+ msgid "Theme-Check"
347
+ msgstr "Провера-Теме"
348
+
349
+ #. Plugin URI of the plugin/theme
350
+ msgid "http://pross.org.uk/plugins"
351
+ msgstr "http://pross.org.uk/plugins"
352
+
353
+ #. Description of the plugin/theme
354
+ msgid "A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!"
355
+ msgstr "Једноставан и лак начин за тестирање Ваше теме по последњим WordPress стандардима и вештинама. Одлична алатка за развијање!"
356
+
357
+ #. Author of the plugin/theme
358
+ msgid "Pross"
359
+ msgstr "Pross"
360
+
361
+ #. Author URI of the plugin/theme
362
+ msgid "http://pross.org.uk"
363
+ msgstr "http://pross.org.uk"
364
+
lang/themecheck.pot ADDED
@@ -0,0 +1,547 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2010
2
+ # This file is distributed under the same license as the package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: \n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/theme-check_svn\n"
7
+ "POT-Creation-Date: 2011-02-05 19:47:08+00:00\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
12
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
+
15
+ #: theme-check.php:28
16
+ msgid "You do not have sufficient permissions to access this page."
17
+ msgstr ""
18
+
19
+ #: checks/malware.php:9
20
+ msgid "possible file operations"
21
+ msgstr ""
22
+
23
+ #: checks/searchform.php:9
24
+ msgid ""
25
+ "Please use <strong>get_search_form()</strong> instead of including "
26
+ "searchform.php directly."
27
+ msgstr ""
28
+
29
+ #: checks/commpage.php:15
30
+ msgid ""
31
+ "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have "
32
+ "comment pagination code in it. Use <strong>paginate_comments_links()</"
33
+ "strong> or <strong>next_comments_link()</strong> and "
34
+ "<strong>previous_comments_link()</strong> to add comment pagination."
35
+ msgstr ""
36
+
37
+ #: checks/editorstyle.php:13
38
+ msgid ""
39
+ "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to "
40
+ "<strong>add_editor_style()</strong> was found in the theme. It is "
41
+ "recommended that the theme implement editor styling, so as to make the "
42
+ "editor content match the resulting post output in the theme, for a better "
43
+ "user experience."
44
+ msgstr ""
45
+
46
+ #: checks/screenshot.php:26
47
+ msgid ""
48
+ "<span class='tc-lead tc-warning'>WARNING</span>: No screenshot detected! "
49
+ "Please include a screenshot.png."
50
+ msgstr ""
51
+
52
+ #: checks/navmenu.php:14
53
+ msgid ""
54
+ "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to "
55
+ "nav_menu's was found in the theme. Note that if your theme has a menu bar, "
56
+ "it is required to use the WordPress nav_menu functionality for it."
57
+ msgstr ""
58
+
59
+ #: checks/include.php:10
60
+ msgid ""
61
+ "The theme appears to use include or require. If these are being used to "
62
+ "include separate sections of a template from independent files, then "
63
+ "<strong>get_template_part()</strong> should be used instead."
64
+ msgstr ""
65
+
66
+ #: checks/directories.php:27
67
+ msgid ""
68
+ "Please remove any extraneous directories like .git or .svn from the ZIP file "
69
+ "before uploading it."
70
+ msgstr ""
71
+
72
+ #: checks/style_tags.php:20
73
+ msgid ""
74
+ "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: <strong>Tags:</"
75
+ "strong> is either empty or missing in style.css header."
76
+ msgstr ""
77
+
78
+ #: checks/customs.php:14
79
+ msgid ""
80
+ "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to "
81
+ "<strong>add_custom_image_header</strong> was found in the theme. It is "
82
+ "recommended that the theme implement this functionality if using an image "
83
+ "for the header."
84
+ msgstr ""
85
+
86
+ #: checks/customs.php:18
87
+ msgid ""
88
+ "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to "
89
+ "<strong>add_custom_background()</strong> was found in the theme. If the "
90
+ "theme uses background images or solid colors for the background, then it is "
91
+ "recommended that the theme implement this functionality."
92
+ msgstr ""
93
+
94
+ #: checks/textdomain.php:15
95
+ msgid "twentyten text domain is being used!"
96
+ msgstr ""
97
+
98
+ #: checks/textdomain.php:16
99
+ msgid "You have not included a text domain!"
100
+ msgstr ""
101
+
102
+ #: checks/badthings.php:9
103
+ msgid "eval() is not allowed."
104
+ msgstr ""
105
+
106
+ #: checks/badthings.php:10
107
+ msgid "PHP sytem calls should be disabled by server admins anyway!"
108
+ msgstr ""
109
+
110
+ #: checks/badthings.php:11
111
+ msgid "Themes should not change server PHP settings"
112
+ msgstr ""
113
+
114
+ #: checks/badthings.php:12
115
+ msgid "base64_decode() is not allowed"
116
+ msgstr ""
117
+
118
+ #: checks/badthings.php:13
119
+ msgid "base64_encode() is not allowed"
120
+ msgstr ""
121
+
122
+ #: checks/badthings.php:14
123
+ msgid "uudecode() is not allowed"
124
+ msgstr ""
125
+
126
+ #: checks/badthings.php:15
127
+ msgid "str_rot13() is not allowed"
128
+ msgstr ""
129
+
130
+ #: checks/badthings.php:16 checks/badthings.php:37
131
+ msgid "Google search code detected"
132
+ msgstr ""
133
+
134
+ #: checks/badthings.php:17 checks/badthings.php:38
135
+ msgid "Googe advertising code detected"
136
+ msgstr ""
137
+
138
+ #: checks/artisteer.php:23
139
+ msgid ""
140
+ "This theme appears to have been auto-generated. Generated themes are not "
141
+ "allowed in the themes directory."
142
+ msgstr ""
143
+
144
+ #: checks/basic.php:14
145
+ msgid ""
146
+ "See: <a href=\"http://codex.wordpress.org/HTML_to_XHTML\">http://codex."
147
+ "wordpress.org/HTML_to_XHTML</a><pre>&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD "
148
+ "XHTML 1.0 Strict//EN\"<br />\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict."
149
+ "dtd\"?&gt;</pre>"
150
+ msgstr ""
151
+
152
+ #: checks/basic.php:15
153
+ msgid ""
154
+ "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_footer"
155
+ "\">wp_footer</a><pre> &lt;?php wp_footer(); ?&gt;</pre>"
156
+ msgstr ""
157
+
158
+ #: checks/basic.php:16
159
+ msgid ""
160
+ "See: <a href=\"http://codex.wordpress.org/Function_Reference/wp_head"
161
+ "\">wp_head</a><pre> &lt;?php wp_head(); ?&gt;</pre>"
162
+ msgstr ""
163
+
164
+ #: checks/basic.php:17
165
+ msgid ""
166
+ "See: <a href=\"http://codex.wordpress.org/Function_Reference/"
167
+ "language_attributes\">language_attributes</a><pre>&lt;html &lt;?php "
168
+ "language_attributes(); ?&gt;</pre>"
169
+ msgstr ""
170
+
171
+ #: checks/basic.php:18
172
+ msgid ""
173
+ "There must be a charset defined in the Content-Type or the meta charset tag "
174
+ "in the head."
175
+ msgstr ""
176
+
177
+ #: checks/basic.php:19
178
+ msgid ""
179
+ "See: <a href=\"http://codex.wordpress.org/Function_Reference/"
180
+ "add_theme_support\">add_theme_support</a><pre> &lt;?php add_theme_support"
181
+ "( $feature ); ?&gt;</pre>"
182
+ msgstr ""
183
+
184
+ #: checks/basic.php:20
185
+ msgid ""
186
+ "See: <ahref=\"http://codex.wordpress.org/Function_Reference/register_sidebar"
187
+ "\">register_sidebar</a><pre> &lt;?php register_sidebar( $args ); ?&gt;</pre>"
188
+ msgstr ""
189
+
190
+ #: checks/basic.php:21
191
+ msgid ""
192
+ "See: <a href=\"http://codex.wordpress.org/Function_Reference/dynamic_sidebar"
193
+ "\">dynamic_sidebar</a><pre> &lt;?php dynamic_sidebar( $index ); ?&gt;</pre>"
194
+ msgstr ""
195
+
196
+ #: checks/basic.php:22
197
+ msgid ""
198
+ "See: <a href=\"http://codex.wordpress.org/Template_Tags/comments_template"
199
+ "\">comments_template</a><pre> &lt;?php comments_template( $file, "
200
+ "$separate_comments ); ?&gt;</pre>"
201
+ msgstr ""
202
+
203
+ #: checks/basic.php:23
204
+ msgid ""
205
+ "See: <a href=\"http://codex.wordpress.org/Template_Tags/wp_list_comments"
206
+ "\">wp_list_comments</a><pre> &lt;?php wp_list_comments( $args ); ?&gt;</pre>"
207
+ msgstr ""
208
+
209
+ #: checks/basic.php:24
210
+ msgid ""
211
+ "See: <a href=\"http://codex.wordpress.org/Template_Tags/comment_form"
212
+ "\">comment_form</a><pre> &lt;?php comment_form(); ?&gt;</pre>"
213
+ msgstr ""
214
+
215
+ #: checks/basic.php:25
216
+ msgid ""
217
+ "See: <a href=\"http://codex.wordpress.org/"
218
+ "Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display\">Migrating "
219
+ "Plugins and Themes to 2.7/Enhanced Comment Display</a><pre> &lt;?php if "
220
+ "( is_singular() ) wp_enqueue_script( \"comment-reply\" ); ?&gt;</pre>"
221
+ msgstr ""
222
+
223
+ #: checks/basic.php:26
224
+ msgid ""
225
+ "See: <a href=\"http://codex.wordpress.org/Template_Tags/body_class"
226
+ "\">body_class</a><pre> &lt;?php body_class( $class ); ?&gt;</pre>"
227
+ msgstr ""
228
+
229
+ #: checks/basic.php:27
230
+ msgid ""
231
+ "See: <a href=\"http://codex.wordpress.org/Template_Tags/post_class"
232
+ "\">post_class</a><pre> &lt;div id=\"post-&lt;?php the_ID(); ?&gt;\" &lt;?php "
233
+ "post_class(); ?&gt;&gt;</pre>"
234
+ msgstr ""
235
+
236
+ #: checks/gravatar.php:15
237
+ msgid ""
238
+ "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem "
239
+ "to support the standard avatar functions. Use <strong>get_avatar</strong> or "
240
+ "<strong>wp_list_comments</strong> to add this support."
241
+ msgstr ""
242
+
243
+ #: checks/style_needed.php:11
244
+ msgid "<strong>Theme name:</strong> is missing from your style.css header."
245
+ msgstr ""
246
+
247
+ #: checks/style_needed.php:12
248
+ msgid "<strong>Description:</strong> is missing from your style.css header."
249
+ msgstr ""
250
+
251
+ #: checks/style_needed.php:13
252
+ msgid "<strong>Author:</strong> is missing from your style.css header."
253
+ msgstr ""
254
+
255
+ #: checks/style_needed.php:14
256
+ msgid "<strong>Version:</strong> is missing from your style.css header."
257
+ msgstr ""
258
+
259
+ #: checks/style_needed.php:15
260
+ msgid "<strong>License:</strong> is missing from your style.css header."
261
+ msgstr ""
262
+
263
+ #: checks/style_needed.php:16
264
+ msgid "<strong>License URI:</strong> is missing from your style.css header."
265
+ msgstr ""
266
+
267
+ #: checks/style_needed.php:17
268
+ msgid "<strong>.alignleft</strong> css class is needed in your theme css."
269
+ msgstr ""
270
+
271
+ #: checks/style_needed.php:18
272
+ msgid "<strong>.alignright</strong> css class is needed in your theme css."
273
+ msgstr ""
274
+
275
+ #: checks/style_needed.php:19
276
+ msgid "<strong>.aligncenter</strong> css class is needed in your theme css."
277
+ msgstr ""
278
+
279
+ #: checks/style_needed.php:20
280
+ msgid "<strong>.wp-caption</strong> css class is needed in your theme css."
281
+ msgstr ""
282
+
283
+ #: checks/style_needed.php:21
284
+ msgid ""
285
+ "<strong>.wp-caption-text</strong> css class is needed in your theme css."
286
+ msgstr ""
287
+
288
+ #: checks/style_needed.php:22
289
+ msgid ""
290
+ "<strong>.gallery-caption</strong> css class is needed in your theme css."
291
+ msgstr ""
292
+
293
+ #: checks/worms.php:9
294
+ msgid "<strong>PHP shell was found!</strong>"
295
+ msgstr ""
296
+
297
+ #: checks/postsnav.php:16
298
+ msgid ""
299
+ "<span class='tc-lead tc-required'>REQUIRED</span>: The theme doesn't have "
300
+ "post pagination code in it. Use <strong>posts_nav_link()</strong> or "
301
+ "<strong>paginate_links()</strong> or <strong>next_posts_link()</strong> and "
302
+ "<strong>previous_posts_link()</strong> to add post pagination."
303
+ msgstr ""
304
+
305
+ #: checks/content-width.php:14
306
+ msgid ""
307
+ "<span class='tc-lead tc-required'>REQUIRED</span>: No content width has been "
308
+ "defined. Example: <pre>if ( ! isset( $content_width ) ) $content_width = 900;"
309
+ "</pre>"
310
+ msgstr ""
311
+
312
+ #: checks/filenames.php:21
313
+ msgid "Windows thumbnail store"
314
+ msgstr ""
315
+
316
+ #: checks/filenames.php:22
317
+ msgid "windows system file"
318
+ msgstr ""
319
+
320
+ #: checks/filenames.php:23
321
+ msgid "Komodo Project File"
322
+ msgstr ""
323
+
324
+ #: checks/filenames.php:24
325
+ msgid "Hidden File"
326
+ msgstr ""
327
+
328
+ #: checks/filenames.php:25
329
+ msgid "PHP server settings file"
330
+ msgstr ""
331
+
332
+ #: checks/filenames.php:26
333
+ msgid "Dreamweaver project file"
334
+ msgstr ""
335
+
336
+ #: checks/filenames.php:27
337
+ msgid "PHP error log"
338
+ msgstr ""
339
+
340
+ #: checks/filenames.php:28
341
+ msgid "Server settings file"
342
+ msgstr ""
343
+
344
+ #: checks/filenames.php:32
345
+ msgid ""
346
+ "Please see <a href=\"http://codex.wordpress.org/"
347
+ "Theme_Review#Theme_Documentation\">Theme_Documentation</a> for more "
348
+ "information."
349
+ msgstr ""
350
+
351
+ #: checks/tags.php:13
352
+ msgid ""
353
+ "<span class='tc-lead tc-required'>REQUIRED</span>: This theme doesn't seem "
354
+ "to display tags. Modify it to display tags in appropriate locations."
355
+ msgstr ""
356
+
357
+ #: checks/postthumb.php:15
358
+ msgid ""
359
+ "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to "
360
+ "<strong>the_post_thumbnail()</strong> was found in the theme. It is "
361
+ "recommended that the theme implement this functionality instead of using "
362
+ "custom fields for thumbnails."
363
+ msgstr ""
364
+
365
+ #: checks/postthumb.php:19
366
+ msgid ""
367
+ "<span class='tc-lead tc-recommended'>RECOMMENDED</span>: No reference to "
368
+ "post-thumbnails was found in the theme. If the theme has a thumbnail like "
369
+ "functionality, it should be implemented with <strong>add_theme_support"
370
+ "( 'post-thumbnails' )</strong>in the functions.php file."
371
+ msgstr ""
372
+
373
+ #: checks/admin_menu.php:13 checks/admin_menu.php:14
374
+ msgid ""
375
+ "User levels were deprecated in <strong>2.0</strong>. Please see <a href="
376
+ "\"http://codex.wordpress.org/Roles_and_Capabilities"
377
+ "\">Roles_and_Capabilities</a>"
378
+ msgstr ""
379
+
380
+ #: checks/admin_menu.php:34
381
+ msgid ""
382
+ "Themes should use <strong>add_theme_page()</strong> for adding admin pages."
383
+ msgstr ""
384
+
385
+ #: main.php:76
386
+ msgid "Theme Info"
387
+ msgstr ""
388
+
389
+ #: main.php:77
390
+ msgid "Title"
391
+ msgstr ""
392
+
393
+ #: main.php:78
394
+ msgid "Version"
395
+ msgstr ""
396
+
397
+ #: main.php:79
398
+ msgid "Author"
399
+ msgstr ""
400
+
401
+ #: main.php:80
402
+ msgid "Author URI"
403
+ msgstr ""
404
+
405
+ #: main.php:81
406
+ msgid "Theme URI"
407
+ msgstr ""
408
+
409
+ #: main.php:82
410
+ msgid "License"
411
+ msgstr ""
412
+
413
+ #: main.php:83
414
+ msgid "LicenseURI"
415
+ msgstr ""
416
+
417
+ #: main.php:85
418
+ msgid "Tags"
419
+ msgstr ""
420
+
421
+ #: main.php:86
422
+ msgid "Description"
423
+ msgstr ""
424
+
425
+ #: main.php:89
426
+ msgid "This is a child theme. The parent theme is"
427
+ msgstr ""
428
+
429
+ #: main.php:100
430
+ msgid "One or more errors were found for "
431
+ msgstr ""
432
+
433
+ #: main.php:102
434
+ msgid " passed the tests"
435
+ msgstr ""
436
+
437
+ #: main.php:105
438
+ msgid ""
439
+ "<strong>WP_DEBUG is not enabled!</strong> Please test your theme with <a "
440
+ "href=\"http://codex.wordpress.org/Editing_wp-config.php\">debug enabled</a> "
441
+ "before you upload!</div>"
442
+ msgstr ""
443
+
444
+ #: checkbase.php:87 checkbase.php:106
445
+ msgid "<pre class='tc-grep'>Line "
446
+ msgstr ""
447
+
448
+ #: checkbase.php:185
449
+ msgid "<h2>About</h2>"
450
+ msgstr ""
451
+
452
+ #: checkbase.php:186
453
+ msgid ""
454
+ "<p>The theme check plugin is an easy way to test your theme and make sure "
455
+ "it's up to spec with the latest theme review standards.<br />"
456
+ msgstr ""
457
+
458
+ #: checkbase.php:187
459
+ msgid ""
460
+ "With it, you can run all the same automated testing tools on your theme that "
461
+ "WordPress.org uses for theme submissions.</p>"
462
+ msgstr ""
463
+
464
+ #: checkbase.php:188
465
+ msgid "<h2>Contact</h2>"
466
+ msgstr ""
467
+
468
+ #: checkbase.php:189
469
+ msgid ""
470
+ "<p>Theme-Check is maintained by <a href=\"http://profiles.wordpress.org/"
471
+ "users/pross/\">Pross</a> and <a href=\"http://profiles.wordpress.org/users/"
472
+ "otto42/\">Otto42</a><br />"
473
+ msgstr ""
474
+
475
+ #: checkbase.php:190
476
+ msgid ""
477
+ "If you have found a bug or would like to make a suggestion or contribution "
478
+ "why not join the <a href=\"http://wordpress.org/extend/themes/contact/"
479
+ "\">theme-reviewers mailing list</a><br />"
480
+ msgstr ""
481
+
482
+ #: checkbase.php:191
483
+ msgid ""
484
+ "or leave a post on the <a href=\"http://wordpress.org/tags/theme-check?"
485
+ "forum_id=10\">WordPress forums</a>.<br />"
486
+ msgstr ""
487
+
488
+ #: checkbase.php:193
489
+ msgid "<h2>Contributors</h2>"
490
+ msgstr ""
491
+
492
+ #: checkbase.php:194
493
+ msgid "<h3>localization</h3>"
494
+ msgstr ""
495
+
496
+ #: checkbase.php:199
497
+ msgid "<h3>Testers</h3>"
498
+ msgstr ""
499
+
500
+ #: checkbase.php:200
501
+ msgid ""
502
+ "<p><a href=\"http://make.wordpress.org/themes/\">The WordPress Theme Review "
503
+ "Team</a></p>"
504
+ msgstr ""
505
+
506
+ #: checkbase.php:204
507
+ msgid ""
508
+ "<div class=\"tc-success\">Now your theme has passed the basic tests you need "
509
+ "to check it properly using the test data before you upload to the WordPress "
510
+ "Themes Directory.<br />"
511
+ msgstr ""
512
+
513
+ #: checkbase.php:205
514
+ msgid ""
515
+ "<br />Make sure to review the guidelines at <a href=\"http://codex.wordpress."
516
+ "org/Theme_Review\">Theme Review</a> before uploading a Theme."
517
+ msgstr ""
518
+
519
+ #: checkbase.php:206
520
+ msgid "<h3>Codex Links</h3>"
521
+ msgstr ""
522
+
523
+ #: checkbase.php:208
524
+ msgid ""
525
+ "<li><a href=\"http://codex.wordpress.org/Theme_Development\">Theme "
526
+ "Development</a></li>"
527
+ msgstr ""
528
+
529
+ #: checkbase.php:209
530
+ msgid ""
531
+ "<li><a href=\"http://wordpress.org/support/forum/5\">Themes and Templates "
532
+ "forum</a></li>"
533
+ msgstr ""
534
+
535
+ #: checkbase.php:210
536
+ msgid ""
537
+ "<li><a href=\"http://codex.wordpress.org/Theme_Unit_Test\">Theme Unit Tests</"
538
+ "a></li>"
539
+ msgstr ""
540
+
541
+ #: checkbase.php:224
542
+ msgid "Check it!"
543
+ msgstr ""
544
+
545
+ #: checkbase.php:225
546
+ msgid "Output in Trac format."
547
+ msgstr ""
main.php ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ function check_main( $theme ) {
3
+ global $themechecks, $data, $themename;
4
+ $themename = $theme;
5
+ $theme = get_theme_root( $theme ) . "/$theme";
6
+ $files = listdir( $theme );
7
+ $data = tc_get_theme_data( $theme . '/style.css' );
8
+ if ( $data[ 'Template' ] ) {
9
+ // This is a child theme, so we need to pull files from the parent, which HAS to be installed.
10
+ $parent = get_theme_root( $data[ 'Template' ] ) . '/' . $data['Template'];
11
+ if ( ! tc_get_theme_data( $parent . '/style.css' ) ) { // This should never happen but we will check while were here!
12
+ echo '<h2>' . sprintf(__('Parent theme <strong>%1$s</strong> not found! You have to have parent AND child-theme installed!', 'themecheck'), $data[ 'Template' ] ) . '</h2>';
13
+ return;
14
+ }
15
+ $parent_data = tc_get_theme_data( $parent . '/style.css' );
16
+ $themename = basename( $parent );
17
+ $files = array_merge( listdir( $parent ), $files );
18
+ }
19
+
20
+ if ( $files ) {
21
+ foreach( $files as $key => $filename ) {
22
+ if ( substr( $filename, -4 ) == '.php' ) {
23
+ $php[$filename] = php_strip_whitespace( $filename );
24
+ }
25
+ else if ( substr( $filename, -4 ) == '.css' ) {
26
+ $css[$filename] = file_get_contents( $filename );
27
+ }
28
+ else {
29
+ $other[$filename] = ( ! is_dir($filename) ) ? file_get_contents( $filename ) : '';
30
+ }
31
+ }
32
+
33
+ // run the checks
34
+ $failed = !run_themechecks($php, $css, $other);
35
+
36
+ global $checkcount;
37
+
38
+ // second loop, to display the errors
39
+ echo '<h2>' . __( 'Theme Info', 'themecheck' ) . ': </h2>';
40
+ echo '<div class="theme-info">';
41
+ if (file_exists( trailingslashit( WP_CONTENT_DIR . '/themes' ) . trailingslashit( basename( $theme ) ) . 'screenshot.png' ) ) {
42
+ $image = getimagesize( $theme . '/screenshot.png' );
43
+ echo '<div style="float:right" class="theme-info"><img style="max-height:180px;" src="' . trailingslashit( WP_CONTENT_URL . '/themes' ) . trailingslashit( basename( $theme ) ) . 'screenshot.png" />';
44
+
45
+ echo '<br /><div style="text-align:center">' . $image[0] . 'x' . $image[1] . ' ' . round( filesize( $theme . '/screenshot.png' )/1024 ) . 'k</div></div>';
46
+
47
+
48
+
49
+ }
50
+ echo ( !empty( $data[ 'Title' ] ) ) ? '<p><label>' . __( 'Title', 'themecheck' ) . '</label><span class="info">' . $data[ 'Title' ] . '</span></p>' : '';
51
+ echo ( !empty( $data[ 'Version' ] ) ) ? '<p><label>' . __( 'Version', 'themecheck' ) . '</label><span class="info">' . $data[ 'Version' ] . '</span></p>' : '';
52
+ echo ( !empty( $data[ 'AuthorName' ] ) ) ? '<p><label>' . __( 'Author', 'themecheck' ) . '</label><span class="info">' . $data[ 'AuthorName' ] . '</span></p>' : '';
53
+ echo ( !empty( $data[ 'AuthorURI' ] ) ) ? '<p><label>' . __( 'Author URI', 'themecheck' ) . '</label><span class="info"><a href="' . $data[ 'AuthorURI' ] . '">' . $data[ 'AuthorURI' ] . '</a>' . '</span></p>' : '';
54
+ echo ( !empty( $data[ 'URI' ] ) ) ? '<p><label>' . __( 'Theme URI', 'themecheck' ) . '</label><span class="info"><a href="' . $data[ 'URI' ] . '">' . $data[ 'URI' ] . '</a>' . '</span></p>' : '';
55
+ echo ( !empty( $data[ 'License' ] ) ) ? '<p><label>' . __( 'License', 'themecheck' ) . '</label><span class="info">' . $data[ 'License' ] . '</span></p>' : '';
56
+ echo ( !empty( $data[ 'License URI' ] ) ) ? '<p><label>' . __( 'LicenseURI', 'themecheck' ) . '</label><span class="info">' . $data[ 'License URI' ] . '</span></p>' : '';
57
+ echo ( !empty( $data[ 'Tags' ] ) ) ? '<p><label>' . __( 'Tags', 'themecheck' ) . '</label><span class="info">' . implode( $data[ 'Tags' ], ', ') . '</span></p>' : '';
58
+ echo ( !empty( $data[ 'Description' ] ) ) ? '<p><label>' . __( 'Description', 'themecheck' ) . '</label><span class="info">' . $data[ 'Description' ] . '</span></p>' : '';
59
+
60
+ if ( $data[ 'Template' ] ) {
61
+ if ( $data['Template Version'] > $parent_data['Version'] ) {
62
+ echo '<p>' . sprintf(__('This child theme requires at least version <strong>%1$s</strong> of theme <strong>%2$s</strong> to be installed. You only have <strong>%3$s</strong> please update the parent theme.', 'themecheck'), $data['Template Version'], $parent_data['Title'], $parent_data['Version'] ) . '</p>';
63
+ }
64
+ echo '<p>' . sprintf(__( 'This is a child theme. The parent theme is: <strong>%1$s</strong>. These files have been included automatically!', 'themecheck'), $data[ 'Template' ] ) . '</p>';
65
+ if ( empty( $data['Template Version'] ) ) {
66
+ echo '<p>' . __('Child theme does not have the <strong>Template Version</strong> tag in style.css.', 'themecheck') . '</p>';
67
+ } else {
68
+ echo ( $data['Template Version'] < $parent_data['Version'] ) ? '<p>' . sprintf(__('Child theme is only tested up to version %1$s of %2$s breakage may occur! %3$s installed version is %4$s', 'themecheck'), $data['Template Version'], $parent_data['Title'], $parent_data['Title'], $parent_data['Version'] ) . '</p>' : '';
69
+ }
70
+ }
71
+ echo '</div><!-- .theme-info-->';
72
+
73
+ $plugins = get_plugins( '/theme-check' );
74
+ $version = explode( '.', $plugins['theme-check.php']['Version'] );
75
+ echo '<p>' . sprintf(__(' Running <strong>%1$s</strong> tests against <strong>%2$s</strong> using Guidelines Version: <strong>%3$s</strong> Plugin revision: <strong>%4$s</strong>', 'themecheck'), $checkcount, $data[ 'Title' ], $version[0], $version[1] ) . '</p>';
76
+ $results = display_themechecks();
77
+ $success = true;
78
+ if (strpos( $results, 'WARNING') !== false) $success = false;
79
+ if (strpos( $results, 'REQUIRED') !== false) $success = false;
80
+ if ( $success === false ) {
81
+ echo '<h2>' . sprintf(__('One or more errors were found for %1$s.', 'themecheck'), $data[ 'Title' ] ) . '</h2>';
82
+ } else {
83
+ echo '<h2>' . sprintf(__('%1$s passed the tests', 'themecheck'), $data[ 'Title' ] ) . '</h2>';
84
+ tc_success();
85
+ }
86
+ if ( !defined( 'WP_DEBUG' ) || WP_DEBUG == false ) echo '<div class="updated"><span class="tc-fail">WARNING</span> ' . __( '<strong>WP_DEBUG is not enabled!</strong> Please test your theme with <a href="http://codex.wordpress.org/Editing_wp-config.php">debug enabled</a> before you upload!</div>', 'themecheck' );
87
+ echo '<div class="tc-box">';
88
+ echo '<ul class="tc-result">';
89
+ echo $results;
90
+ echo '</ul></div>';
91
+ }
92
+ }
93
+
94
+
95
+ function tc_intro() {
96
+ _e( '<h2>About</h2>', 'themecheck' );
97
+ _e( '<p>The theme check plugin is an easy way to test your theme and make sure it\'s up to spec with the latest theme review standards.<br />', 'themecheck' );
98
+ _e( 'With it, you can run all the same automated testing tools on your theme that WordPress.org uses for theme submissions.</p>', 'themecheck' );
99
+ _e( '<h2>Contact</h2>', 'themecheck' );
100
+ _e( '<p>Theme-Check is maintained by <a href="http://profiles.wordpress.org/users/pross/">Pross</a> and <a href="http://profiles.wordpress.org/users/otto42/">Otto42</a><br />', 'themecheck' );
101
+ _e( 'If you have found a bug or would like to make a suggestion or contribution why not join the <a href="http://wordpress.org/extend/themes/contact/">theme-reviewers mailing list</a><br />', 'themecheck' );
102
+ _e( 'or leave a post on the <a href="http://wordpress.org/tags/theme-check?forum_id=10">WordPress forums</a>.<br /></p>', 'themecheck' );
103
+ echo '<form action="https://www.paypal.com/cgi-bin/webscr" method="post"><input type="hidden" name="cmd" value="_s-xclick" /><input type="hidden" name="hosted_button_id" value="2V7F4QYMWMBL6" /><input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" name="submit" alt="PayPal - The safer, easier way to pay online!" /><img alt="" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" /></form>';
104
+ _e( '<h2>Contributors</h2>', 'themecheck' );
105
+ _e( '<h3>localization</h3>', 'themecheck' );
106
+ echo '<ul>';
107
+ echo '<li><a href="http://www.onedesigns.com/">Daniel Tara</a></li>';
108
+ echo '<li><a href="http://themeid.com/">Emil Uzelac</a></li>';
109
+ echo '</ul>';
110
+ _e( '<h3>Testers</h3>', 'themecheck' );
111
+ _e( '<p><a href="http://make.wordpress.org/themes/">The WordPress Theme Review Team</a></p>', 'themecheck' );
112
+ }
113
+
114
+ function tc_success() {
115
+ _e( '<div class="tc-success"><p>Now your theme has passed the basic tests you need to check it properly using the test data before you upload to the WordPress Themes Directory.</p>', 'themecheck' );
116
+ echo '<form action="https://www.paypal.com/cgi-bin/webscr" method="post"><input type="hidden" name="cmd" value="_s-xclick" /><input type="hidden" name="hosted_button_id" value="2V7F4QYMWMBL6" /><input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" name="submit" alt="PayPal - The safer, easier way to pay online!" /><img alt="" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" /></form>';
117
+ _e( '<p>Make sure to review the guidelines at <a href="http://codex.wordpress.org/Theme_Review">Theme Review</a> before uploading a Theme.</p>', 'themecheck' );
118
+ _e( '<h3>Codex Links</h3>', 'themecheck' );
119
+ echo '<ul>';
120
+ _e( '<li><a href="http://codex.wordpress.org/Theme_Development">Theme Development</a></li>', 'themecheck' );
121
+ _e( '<li><a href="http://wordpress.org/support/forum/5">Themes and Templates forum</a></li>', 'themecheck' );
122
+ _e( '<li><a href="http://codex.wordpress.org/Theme_Unit_Test">Theme Unit Tests</a></li>', 'themecheck' );
123
+ echo '</ul></div>';
124
+ }
125
+
126
+ function tc_form() {
127
+ $themes = tc_get_themes();
128
+ echo '<form action="themes.php?page=themecheck" method="post">';
129
+ echo '<select name="themename">';
130
+ foreach( $themes as $name => $location ) {
131
+ echo '<option ';
132
+ if ( isset( $_POST['themename'] ) ) {
133
+ echo ( $location['Stylesheet'] === $_POST['themename'] ) ? 'selected="selected" ' : '';
134
+ } else {
135
+ echo ( basename( STYLESHEETPATH ) === $location['Stylesheet'] ) ? 'selected="selected" ' : '';
136
+ }
137
+ echo ( basename( STYLESHEETPATH ) === $location['Stylesheet'] ) ? 'value="' . $location['Stylesheet'] . '" style="font-weight:bold;">' . $name . '</option>' : 'value="' . $location['Stylesheet'] . '">' . $name . '</option>';
138
+ }
139
+ echo '</select>';
140
+ echo '<input class="button" type="submit" value="' . __( 'Check it!', 'themecheck' ) . '" />';
141
+ if ( defined( 'TC_PRE' ) || defined( 'TC_POST' ) ) echo ' <input name="trac" type="checkbox" /> ' . __( 'Output in Trac format.', 'themecheck' );
142
+ echo ' <input name="s_info" type="checkbox" /> ' . __( 'Suppress INFO.', 'themecheck' );
143
+ echo '</form>';
144
+ }
readme.txt ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Theme-Check ===
2
+ Contributors: pross, Otto42
3
+ Author URI: http://www.pross.org.uk
4
+ Plugin URL: http://www.pross.org.uk/plugins
5
+ Requires at Least: 3.0
6
+ Tested Up To: 3.4
7
+ Tags: template, theme, check, checker, tool, wordpress, wordpress.org, upload, uploader, test, guideline, review
8
+ Stable tag: 20120613
9
+
10
+
11
+ A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!
12
+
13
+ == Description ==
14
+
15
+ The theme check plugin is an easy way to test your theme and make sure it's up to spec with the latest [theme review](http://codex.wordpress.org/Theme_Review) standards. With it, you can run all the same automated testing tools on your theme that WordPress.org uses for theme submissions.
16
+
17
+ The tests are run through a simple admin menu and all results are displayed at once. This is very handy for theme developers, or anybody looking to make sure that their theme supports the latest WordPress theme standards and practices.
18
+
19
+ == Frequently Asked Questions ==
20
+
21
+ = What's with the version numbers? =
22
+
23
+ The version number is the date of the revision of the [guidelines](http://codex.wordpress.org/Theme_Review) used to create it.
24
+
25
+ = Why does it flag something as bad? =
26
+
27
+ It's not flagging "bad" things, as such. The theme check is designed to be a non-perfect way to test for compliance with the [Theme Review](http://codex.wordpress.org/Theme_Review) guidelines. Not all themes must adhere to these guidelines. The purpose of the checking tool is to ensure that themes uploaded to the central [WordPress.org theme repository](http://wordpress.org/extend/themes/) meet the latest standards of WordPress themes and will work on a wide variety of sites.
28
+
29
+ Many sites use customized themes, and that's perfectly okay. But themes that are intended for use on many different kinds of sites by the public need to have a certain minimum level of capabilities, in order to ensure proper functioning in many different environments. The Theme Review guidelines are created with that goal in mind.
30
+
31
+ This theme checker is not perfect, and never will be. It is only a tool to help theme authors, or anybody else who wants to make their theme more capable. All themes submitted to WordPress.org are hand-reviewed by a team of experts. The automated theme checker is meant to be a useful tool only, not an absolute system of measurement.
32
+
33
+ This plugin does not decide the guidelines used. Any issues with particular theme review guidelines should be discussed on the [Theme Reviewers mailing list](http://lists.wordpress.org/mailman/listinfo/theme-reviewers).
34
+
35
+ == Other Notes ==
36
+
37
+ = How to enable trac formatting =
38
+
39
+ The Theme Review team use this plugin while reviewing themes and copy/paste the output into trac tickets, the trac system has its own markup language.
40
+ To enable trac formatting in Theme-Check you need to define a couple of variables in wp-config.php:
41
+ *TC_PRE* and *TC_POST* are used as a ticket header and footer.
42
+ Examples:
43
+ `define( 'TC_PRE', 'Theme Review:[[br]]
44
+ - Themes should be reviewed using "define(\'WP_DEBUG\', true);" in wp-config.php[[br]]
45
+ - Themes should be reviewed using the test data from the Theme Checklists (TC)
46
+ -----
47
+ ' );`
48
+
49
+ `define( 'TC_POST', 'Feel free to make use of the contact details below if you have any questions,
50
+ comments, or feedback:[[br]]
51
+ [[br]]
52
+ * Leave a comment on this ticket[[br]]
53
+ * Send an email to the Theme Review email list[[br]]
54
+ * Use the #wordpress-themes IRC channel on Freenode.' );`
55
+ If **either** of these two vars are defined a new trac tickbox will appear next to the *Check it!* button.
56
+
57
+ == Changelog ==
58
+
59
+ = 20110805.1 =
60
+ * TimThumb checks removed.
61
+ * Proper i18n loading. Fixes http://bit.ly/ouD5Ke.
62
+ * Screenshot now previewed in results, with filesize and dimensions.
63
+
64
+ = 20110602.2 =
65
+ * New file list functions hidden folders now detectable.
66
+ * Better fopen checks.
67
+ * TimThumb version bump
68
+
69
+ = 20110602.1 =
70
+ * DOS/UNIX line ending style checks are now a requirement for proper theme uploading.
71
+ * Timthumb version bump
72
+ * Several fixes reported by GaryJ
73
+ * 3.2 deprecated functions added
74
+
75
+ = 20110412.1 =
76
+ * Fix regex's
77
+ * Added check for latest footer injection hack.
78
+ * Fix tags check to use new content function correctly
79
+ * Sync of all changes made for wporg uploader theme-check.
80
+ * Updated checks post 3.1. added screenshot check to svn.
81
+ * Fix links check to not return a false failure in some cases
82
+ * rm one of the checks that causes problems on wporg uploader (and which is also unnecessary)
83
+ * Move unneeded functions out of checkbase into main.php.
84
+ * Minor formatting changes only (spacing and such)
85
+ * Add check for wp_link_pages() + fix eval() check
86
+
87
+ = 20110219.2 =
88
+ * Merged new UI props Gua Bob [1](http://guabob.com/)
89
+ * Last tested theme is always pre-selected in the themes list.
90
+ * Fixed php error in admin_menu.php
91
+
92
+ = 20110219.1 =
93
+ * See [commit log](https://github.com/Pross/theme-check/commits/) for changes.
94
+
95
+ = 20110201.2 =
96
+ * UI bug fixes [forum post](http://bit.ly/ff7amN) props Mamaduka.
97
+ * Textdomain checks for twentyten and no domain.
98
+ * Fix div not closing props Mamaduka.
99
+
100
+ = 20110201.1 =
101
+ * i18n working
102
+ * sr_RS de_DE ro_RO langs props Daniel Tara and Emil Uzelac.
103
+ * Child theme support added, checks made against parent AND child at runtime.
104
+ * Trac formatting button added for reviewers.
105
+
106
+ = 20101228.3 =
107
+ * Last revision for 3.1 (hopefully)
108
+ * Chips suggestion of checking for inclusion of searchform.php ( not
109
+ perfect yet, need more examples to look for ).
110
+ * add_theme_page is required, all others flagged and displayed with line
111
+ numbers.
112
+ * <?= detected properly, short tags outputted with line umbers.
113
+ * Mostly internationalized, needs translations now.
114
+ * Bug fixes.
115
+
116
+ = 20101228.2 =
117
+ * Added menu checking.
118
+ * ThemeURI AuthourURI added to results.
119
+ * Lots of small fixes.
120
+ * Started translation.
121
+
122
+ = 20101228.1 =
123
+ * Fix embed_defaults filter check and stylesheet file data check.
124
+
125
+ = 20101226.1 =
126
+ * Whole system redesign to allow easier synching with WordPress.org uploader. Many other additions/subtractions/changes as well.
127
+ * WordPress 3.1 guidelines added, to help theme authors ensure compatibility for upcoming release.
128
+
129
+ = 20101110.7 =
130
+ * Re-added malware.php checks for fopen and file_get_contents (INFO)
131
+ * fixed a couple of undefined index errors.
132
+
133
+ = 20101110.4_r2 =
134
+ * Fixed Warning: Wrong parameter count for stristr()
135
+
136
+ = 20101110.4_r1 =
137
+ * Added `echo` to suggested.php
138
+
139
+ = 20101110.4 =
140
+ * Fixed deprecated function call to get_plugins()
141
+
142
+ = 20101110.3 =
143
+ * Fixed undefined index.
144
+
145
+ = 20101110.2 =
146
+ * Missing `<` in main.php
147
+ * Added conditional checks for licence.txt OR Licence tags in style.css
148
+ * UI improvements.
149
+
150
+ = 20101110.1 =
151
+ * Date fix!
152
+
153
+ = 10112010_r1 =
154
+ * Fixed hardcoded links check. Added FAQ
155
+
156
+ = 10112010 =
157
+ * First release.
style.css ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .tc-box {
2
+ padding:20px 0;
3
+ border-top:1px solid #dfdfdf;
4
+ }
5
+ .tc-warning, .tc-required, .tc-fail {
6
+ color:red;
7
+ }
8
+ .tc-recommended, .tc-pass {
9
+ color: green;
10
+ }
11
+ .tc-info {
12
+ color: blue;
13
+ }
14
+ .tc-grep span {
15
+ background: yellow;
16
+ }
17
+ pre {
18
+ white-space: pre-wrap;
19
+ }
20
+ .tc-success {
21
+ margin:0 20px 20px 20px;
22
+ background:#e6ffe2;
23
+ border:1px solid #d1eecc;
24
+ }
25
+ form {
26
+ margin:20px auto;
27
+ }
28
+ .theme-check {
29
+ margin:20px auto;
30
+ border:1px solid #dfdfdf;
31
+ -moz-border-radius:5px;
32
+ -khtml-border-radius:5px;
33
+ -webkit-border-radius:5px;
34
+ border-radius:5px;
35
+ }
36
+ .theme-check h2 {
37
+ margin:0 0 20px 0;
38
+ padding:0 20px;
39
+ background:#dfdfdf url("../../../wp-admin/images/gray-grad.png") repeat-x left top;
40
+ font-size:20px;
41
+ border-bottom:1px solid #ccc;
42
+ }
43
+ .theme-check p {
44
+ padding:5px 20px;
45
+ }
46
+ .theme-check form {
47
+ margin-left:20px;
48
+ }
49
+ .theme-check ul {
50
+ margin-left:20px;
51
+ }
52
+ .theme-check h3 {
53
+ margin:0 0 10px 20px;
54
+ padding:0;
55
+ }
56
+ .theme-check ul {
57
+ margin-bottom:10px;
58
+ }
59
+ .theme-info {
60
+ padding:10px;
61
+ border:1px solid #dfdfdf;
62
+ margin:10px 20px 0 20px;
63
+ }
64
+ .theme-info p {
65
+ padding:0;
66
+ margin-bottom:10px;
67
+ }
68
+ .theme-info label {
69
+ float:left;
70
+ width:100px;
71
+ font-weight:bold;
72
+ display:block;
73
+ }
74
+ .theme-info span.info {
75
+ margin-left:100px;
76
+ display:block;
77
+ }
theme-check.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Plugin Name: Theme-Check
4
+ Plugin URI: http://pross.org.uk/plugins
5
+ Description: A simple and easy way to test your theme for all the latest WordPress standards and practices. A great theme development tool!
6
+ Author: Pross
7
+ Author URI: http://pross.org.uk
8
+ Version: 20120613.1
9
+ */
10
+
11
+ add_action( 'admin_init', 'tc_i18n' );
12
+
13
+ function tc_i18n() {
14
+ load_plugin_textdomain( 'themecheck', false, 'theme-check/lang' );
15
+ }
16
+
17
+ function load_styles() {
18
+ wp_enqueue_style('style', WP_PLUGIN_URL . '/theme-check/style.css', null, null, 'screen');
19
+ }
20
+
21
+ add_action( 'admin_menu', 'themecheck_add_page' );
22
+ function themecheck_add_page() {
23
+ $page = add_theme_page( 'Theme Check', 'Theme Check', 'manage_options', 'themecheck', 'themecheck_do_page' );
24
+ add_action('admin_print_styles-' . $page, 'load_styles');
25
+ }
26
+
27
+ function tc_add_headers( $extra_headers ) {
28
+ $extra_headers = array( 'License', 'License URI', 'Template Version' );
29
+ return $extra_headers;
30
+ }
31
+
32
+ function themecheck_do_page() {
33
+ if ( !current_user_can( 'manage_options' ) ) {
34
+ wp_die( __( 'You do not have sufficient permissions to access this page.', 'themecheck' ) );
35
+ }
36
+
37
+ add_filter( 'extra_theme_headers', 'tc_add_headers' );
38
+
39
+ include 'checkbase.php';
40
+ include 'main.php';
41
+
42
+ echo '<div id="theme-check" class="wrap">';
43
+ echo '<div id="icon-themes" class="icon32"><br /></div><h2>Theme-Check</h2>';
44
+ echo '<div class="theme-check">';
45
+ tc_form();
46
+ if ( !isset( $_POST[ 'themename' ] ) ) {
47
+ tc_intro();
48
+
49
+ }
50
+
51
+ if ( isset( $_POST[ 'themename' ] ) ) {
52
+ if ( isset( $_POST[ 'trac' ] ) ) define( 'TC_TRAC', true );
53
+ check_main( $_POST[ 'themename' ] );
54
+ }
55
+ echo '</div> <!-- .theme-check-->';
56
+ echo '</div>';
57
+ }