WP Native Dashboard - Version 1.1.0

Version Description

Download this release

Release Info

Developer codestyling
Plugin Icon wp plugin WP Native Dashboard
Version 1.1.0
Comparing to
See all releases

Code changes from version 1.0.1 to 1.1.0

automattic.php CHANGED
@@ -23,15 +23,79 @@ class wp_native_dashboard_automattic {
23
  //<![CDATA[
24
  function wpnd_delete_language() {
25
  var elem = jQuery(this);
 
 
 
 
 
 
 
 
 
 
 
26
  jQuery.ajax({
27
  type: "POST",
28
  url: "admin-ajax.php",
29
- data: { action: 'wp_native_dashboard_delete_language', file : jQuery(this).attr('href') },
30
  success: function(msg){
31
- elem.parents('tr').fadeOut('slow', function() { jQuery(this).remove(); });
 
 
 
 
 
 
 
 
32
  },
33
  error: function(XMLHttpRequest, textStatus, errorThrown) {
34
  //handled in next version that also support all file system types
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  }
36
  });
37
  return false;
@@ -67,19 +131,84 @@ class wp_native_dashboard_automattic {
67
  jQuery('.csp-download-svn-file').click(function() {
68
  var elem = jQuery(this);
69
  elem.parent().find('.ajax-feedback').css({visibility : 'visible' });
 
 
 
 
 
 
 
 
 
 
70
  jQuery.ajax({
71
  type: "POST",
72
  url: "admin-ajax.php",
73
- data: { action: 'wp_native_dashboard_download_language', file : elem.attr('href') },
74
  success: function(msg){
75
- jQuery('#table_local_i18n').append(msg);
 
 
 
76
  jQuery('#table_local_i18n tr:last .csp-delete-local-file').click(wpnd_delete_language);
77
- elem.parents('tr').fadeOut('slow', function() { elem.remove(); });
 
 
 
 
 
 
 
78
  elem.parent().find('.ajax-feedback').css({visibility : 'hidden' });
79
  csl_refresh_language_switcher();
80
  },
81
  error: function(XMLHttpRequest, textStatus, errorThrown) {
82
  //handled in next version that also support all file system types
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  elem.parent().find('.ajax-feedback').css({visibility : 'hidden' });
84
  }
85
  });
@@ -175,7 +304,7 @@ class wp_native_dashboard_automattic {
175
  $url .= $lang.'.mo';
176
  ?>
177
  <tr id="tr-i18n-download-<?php echo $lang; ?>" class="<?php if (($row + 1) % 2) echo 'alternate'; ?>">
178
- <td><span class="i18n-file csp-<?php echo $lang; ?>"><?php echo $lang; ?></span></td>
179
  <td><?php echo (wp_native_dashboard_is_rtl_language($lang) ? __('right to left', 'wp-native-dashboard') : '&nbsp;'); ?></td>
180
  <td>-n.a.-</td>
181
  <td><?php if(!in_array($lang, $installed)) : ?>
@@ -188,21 +317,56 @@ class wp_native_dashboard_automattic {
188
  }
189
 
190
  function on_ajax_wp_native_dashboard_delete_language() {
 
191
  if (is_user_logged_in() && current_user_can('manage_options')) {
192
- global $wp_filesystem;
193
- $file = basename($_POST['file']);
194
- if (file_exists(WP_CONTENT_DIR.'/languages/'.$file)) {
195
- ob_start();
196
- if ( WP_Filesystem(true) && is_object($wp_filesystem) ) {
197
- if($wp_filesystem->delete(WP_CONTENT_DIR.'/languages/'.$file)) {
198
- $wp_filesystem->delete(WP_CONTENT_DIR.'/languages/'.substr($file, 0, -2).'php');
199
- $wp_filesystem->delete(WP_CONTENT_DIR.'/languages/continents-cities-'.$file);
200
- ob_end_clean();
201
- exit();
202
- }
 
 
 
 
203
  }
 
 
 
 
 
 
204
  ob_end_clean();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
205
  }
 
206
  }
207
  header('Status: 404 Not Found');
208
  header('HTTP/1.1 404 Not Found');
@@ -212,7 +376,41 @@ class wp_native_dashboard_automattic {
212
 
213
  function on_ajax_wp_native_dashboard_download_language() {
214
  if (is_user_logged_in() && current_user_can('manage_options')) {
215
- global $wp_filesystem;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
216
  $file = basename($_POST['file']);
217
  $lang = substr($file,0,-3);
218
  $tagged = $this->tagged_version;
@@ -222,31 +420,31 @@ class wp_native_dashboard_automattic {
222
  $response_mo = wp_remote_get("http://svn.automattic.com/wordpress-i18n/".$lang."/tags/".$tagged."/messages/".$file);
223
  if(!is_wp_error($response_mo)) {
224
  ob_start();
225
- if ( WP_Filesystem(true) && is_object($wp_filesystem) ) {
226
- $done = $wp_filesystem->put_contents(WP_CONTENT_DIR.'/languages/'.$file, $response_mo['body'], FS_CHMOD_FILE);
 
227
  if ($done) {
228
  global $wp_version;
229
  if (version_compare($wp_version, '2.8', '>=')) {
230
  $response_cities_mo = wp_remote_get("http://svn.automattic.com/wordpress-i18n/".$lang."/tags/".$tagged."/dist/wp-content/languages/continents-cities-".$file);
231
  if(!is_wp_error($response_cities_mo)) {
232
- $wp_filesystem->put_contents(WP_CONTENT_DIR.'/languages/continents-cities-'.$file, $response_cities_mo['body'], FS_CHMOD_FILE);
233
  }
234
  }
235
  if (wp_native_dashboard_is_rtl_language($lang)) {
236
  $content = wp_native_dashboard_rtl_extension_file_content();
237
  $response_php = wp_remote_get("http://svn.automattic.com/wordpress-i18n/".$lang."/tags/".$tagged."/dist/wp-content/languages/".$lang.'.php');
238
  if(!is_wp_error($response_php)) { $content = $response_php['body']; }
239
- $wp_filesystem->put_contents(WP_CONTENT_DIR.'/languages/'.$lang.'.php', $content, FS_CHMOD_FILE);
240
  }
241
  ob_end_clean();
242
- $can_write_direct = (get_filesystem_method(array()) == 'direct');
243
- $mo = str_replace('\\', '/', WP_CONTENT_DIR.'/languages/'.$file);
244
  ?>
245
  <tr id="tr-i18n-installed-<?php echo $lang; ?>">
246
- <td><span class="i18n-file csp-<?php echo $lang; ?>"><?php echo $lang; ?></span></td>
247
  <td><?php echo (wp_native_dashboard_is_rtl_language($lang) ? __('right to left', 'wp-native-dashboard') : '&nbsp;'); ?></td>
248
  <td><?php echo filesize($mo).'&nbsp;Bytes'; ?></td>
249
- <td><?php if($lang != 'en_US' && $can_write_direct) : ?><a class="csp-delete-local-file" href="<?php echo $mo; ?>"><?php _e('Delete','wp-native-dashboard'); ?></a><?php endif; ?></td>
250
  </tr>
251
  <?php
252
  exit();
@@ -261,61 +459,6 @@ class wp_native_dashboard_automattic {
261
  exit();
262
  }
263
 
264
-
265
- function on_print_metabox_automattic_i18n() {
266
- $installed = wp_native_dashboard_collect_installed_languages();
267
-
268
- $revision = 0;
269
- $langs = $installed;
270
- $url = 'http://svn.automattic.com/wordpress-i18n/';
271
- $response = wp_remote_get($url);
272
- $error = is_wp_error($response);
273
- if(!$error) {
274
- $lines = split("\n",$response['body']);
275
- foreach($lines as $line) {
276
- if (preg_match('/Revision\s*(\d+)/', $line, $hits)) {
277
- $revision = (int)$hits[1];
278
- }elseif (preg_match("/href\s*=\s*\"(\S+)\/\"/", $line, $hits)) {
279
- if (in_array($hits[1], array('tools', 'theme', 'pot', 'http://subversion.tigris.org'))) continue;
280
- if (preg_match("/@/", $hits[1])) continue;
281
- if (!in_array($hits[1], $langs)) $langs[] = $hits[1];
282
- }
283
- }
284
- sort($langs);
285
- }
286
- ?>
287
- <p><?php echo sprintf(__('All listed languages <em><small>(rev. %d)</small></em> should be supported by polyglot translation teams as download into your WordPress installation.','wp-native-dashboard'), $revision); ?></p>
288
- <?php if ($error) : ?>
289
- <p class="center error"><?php _e('The network connection to <strong>svn.automattic.com</strong> is currently not available. Please try again later.', 'wp-native-dashboard'); ?></p>
290
- <?php else: ?>
291
- <p class="csp-read-more center"><?php _e('Available for download:', 'wp-native-dashboard'); ?></p>
292
- <table id="table_svn_i18n" class="widefat fixed" cellspacing="0">
293
- <tbody>
294
- <?php
295
- $state=0;
296
- foreach($langs as $lang) {
297
- $state = ($state + 1) % 2;
298
- $mo = WP_CONTENT_DIR.'/languages/'.$lang.'.mo';
299
- ?>
300
- <tr id="tr-i18n-svn-download-<?php echo $lang; ?>" class="<?php if ($state) echo 'alternate'; ?><?php if (in_array($lang, $installed)) echo " lang-installed"; ?>">
301
- <td><span class="i18n-file csp-<?php echo $lang; ?>"><?php echo $lang; ?></span></td>
302
- <td><?php echo (wp_native_dashboard_is_rtl_language($lang) ? __('right to left', 'wp-native-dashboard') : ''); ?></td>
303
- <td>
304
- <?php if (in_array($lang, $installed)) :?>
305
- <?php _e('installed', 'wp-native-dashboard'); ?>
306
- <?php elseif($lang == 'en_US') : _e('(build in)', 'wp-native-dashboard'); else : ?>
307
- <a href="http://svn.automattic.com/wordpress-i18n/<?php echo $lang; ?>/tags/<?php echo $this->tagged_version; ?>/messages/<?php echo $lang; ?>.mo"><?php _e('download', 'wp-native-dashboard'); ?></a>&nbsp;<span><img src="images/loading.gif" class="ajax-feedback" title="" alt="" /></span>
308
- <?php endif; ?>
309
- </td>
310
- </tr>
311
- <?php
312
- }
313
- ?>
314
- </tbody>
315
- </table>
316
- <?php endif;
317
- }
318
-
319
  }
320
 
321
  ?>
23
  //<![CDATA[
24
  function wpnd_delete_language() {
25
  var elem = jQuery(this);
26
+ elem.parent().find('.ajax-feedback').css({visibility : 'visible' });
27
+ var cred = {
28
+ action: 'wp_native_dashboard_delete_language',
29
+ file : elem.attr('href')
30
+ };
31
+ jQuery('#csp-credentials > form').find('input').each(function(i, e) {
32
+ if ((jQuery(e).attr('type') == 'radio') && !jQuery(e).attr('checked')) return;
33
+ var s = jQuery(e).attr('name');
34
+ var v = jQuery(e).val();
35
+ cred[s] = v;
36
+ });
37
  jQuery.ajax({
38
  type: "POST",
39
  url: "admin-ajax.php",
40
+ data: cred,
41
  success: function(msg){
42
+ elem.parents('tr').fadeOut('slow', function() {
43
+ var p = jQuery(this).parents('table');
44
+ jQuery(this).remove();
45
+ p.find('tr').each(function(i,e) {
46
+ jQuery(e).removeClass('alternate');
47
+ if (i % 2 == 0) jQuery(e).addClass('alternate');
48
+ });
49
+
50
+ });
51
  },
52
  error: function(XMLHttpRequest, textStatus, errorThrown) {
53
  //handled in next version that also support all file system types
54
+ if (XMLHttpRequest.status == '401') {
55
+ jQuery('#csp-credentials').html(XMLHttpRequest.responseText).dialog({
56
+ width: '500px',
57
+ closeOnEscape: false,
58
+ modal: true,
59
+ resizable: false,
60
+ title: '<b><?php echo js_escape(__('User Credentials required', 'wp-native-dashboard')); ?></b>',
61
+ buttons: {
62
+ "<?php echo js_escape(__('Ok', 'wp-native-dashboard')); ?>": function() {
63
+ jQuery('#csp-credentials').dialog("close");
64
+ elem.trigger('click');
65
+ },
66
+ "<?php echo js_escape(__('Cancel', 'wp-native-dashboard')); ?>": function() {
67
+ elem.parent().find('.ajax-feedback').css({visibility : 'hidden' });
68
+ jQuery('#csp-credentials').dialog("close");
69
+ }
70
+ },
71
+ open: function(event, ui) {
72
+ jQuery('#csp-credentials').show().css('width', 'auto');
73
+ },
74
+ close: function() {
75
+ jQuery('#csp-credentials').dialog("destroy");
76
+ }
77
+ });
78
+ }else {
79
+ jQuery('#csp-credentials').html(XMLHttpRequest.responseText).dialog({
80
+ width: '500px',
81
+ closeOnEscape: false,
82
+ modal: true,
83
+ resizable: false,
84
+ title: '<b><?php echo js_escape('Error', 'wp-native-dashboard'); ?></b>',
85
+ buttons: {
86
+ "<?php echo js_escape(__('Ok', 'wp-native-dashboard')); ?>": function() {
87
+ jQuery('#csp-credentials').dialog("close");
88
+ },
89
+ },
90
+ open: function(event, ui) {
91
+ jQuery('#csp-credentials').show().css('width', 'auto');
92
+ },
93
+ close: function() {
94
+ jQuery('#csp-credentials').dialog("destroy");
95
+ }
96
+ });
97
+ }
98
+ jQuery('#upgrade').hide().attr('disabled', 'disabled');
99
  }
100
  });
101
  return false;
131
  jQuery('.csp-download-svn-file').click(function() {
132
  var elem = jQuery(this);
133
  elem.parent().find('.ajax-feedback').css({visibility : 'visible' });
134
+ var cred = {
135
+ action: 'wp_native_dashboard_download_language',
136
+ file : elem.attr('href')
137
+ };
138
+ jQuery('#csp-credentials > form').find('input').each(function(i, e) {
139
+ if ((jQuery(e).attr('type') == 'radio') && !jQuery(e).attr('checked')) return;
140
+ var s = jQuery(e).attr('name');
141
+ var v = jQuery(e).val();
142
+ cred[s] = v;
143
+ });
144
  jQuery.ajax({
145
  type: "POST",
146
  url: "admin-ajax.php",
147
+ data: cred,
148
  success: function(msg){
149
+ jQuery('#table_local_i18n').append(msg).find('tr').each(function(i,e) {
150
+ jQuery(e).removeClass('alternate');
151
+ if (i % 2 == 0) jQuery(e).addClass('alternate');
152
+ });
153
  jQuery('#table_local_i18n tr:last .csp-delete-local-file').click(wpnd_delete_language);
154
+ elem.parents('tr').fadeOut('slow', function() {
155
+ var p = jQuery(this).parents('table');
156
+ jQuery(this).remove();
157
+ p.find('tr').each(function(i,e) {
158
+ jQuery(e).removeClass('alternate');
159
+ if (i % 2 == 0) jQuery(e).addClass('alternate');
160
+ });
161
+ });
162
  elem.parent().find('.ajax-feedback').css({visibility : 'hidden' });
163
  csl_refresh_language_switcher();
164
  },
165
  error: function(XMLHttpRequest, textStatus, errorThrown) {
166
  //handled in next version that also support all file system types
167
+ if (XMLHttpRequest.status == '401') {
168
+ jQuery('#csp-credentials').html(XMLHttpRequest.responseText).dialog({
169
+ width: '500px',
170
+ closeOnEscape: false,
171
+ modal: true,
172
+ resizable: false,
173
+ title: '<b><?php echo js_escape(__('User Credentials required', 'wp-native-dashboard')); ?></b>',
174
+ buttons: {
175
+ "<?php echo js_escape(__('Ok', 'wp-native-dashboard')); ?>": function() {
176
+ jQuery('#csp-credentials').dialog("close");
177
+ elem.trigger('click');
178
+ },
179
+ "<?php echo js_escape(__('Cancel', 'wp-native-dashboard')); ?>": function() {
180
+ elem.parent().find('.ajax-feedback').css({visibility : 'hidden' });
181
+ jQuery('#csp-credentials').dialog("close");
182
+ }
183
+ },
184
+ open: function(event, ui) {
185
+ jQuery('#csp-credentials').show().css('width', 'auto');
186
+ },
187
+ close: function() {
188
+ jQuery('#csp-credentials').dialog("destroy");
189
+ }
190
+ });
191
+ }else {
192
+ jQuery('#csp-credentials').html(XMLHttpRequest.responseText).dialog({
193
+ width: '500px',
194
+ closeOnEscape: false,
195
+ modal: true,
196
+ resizable: false,
197
+ title: '<b><?php echo js_escape(__('Error', 'wp-native-dashboard')); ?></b>',
198
+ buttons: {
199
+ "<?php echo js_escape(__('Ok', 'wp-native-dashboard')); ?>": function() {
200
+ jQuery('#csp-credentials').dialog("close");
201
+ },
202
+ },
203
+ open: function(event, ui) {
204
+ jQuery('#csp-credentials').show().css('width', 'auto');
205
+ },
206
+ close: function() {
207
+ jQuery('#csp-credentials').dialog("destroy");
208
+ }
209
+ });
210
+ }
211
+ jQuery('#upgrade').hide().attr('disabled', 'disabled');
212
  elem.parent().find('.ajax-feedback').css({visibility : 'hidden' });
213
  }
214
  });
304
  $url .= $lang.'.mo';
305
  ?>
306
  <tr id="tr-i18n-download-<?php echo $lang; ?>" class="<?php if (($row + 1) % 2) echo 'alternate'; ?>">
307
+ <td><span class="i18n-file csp-<?php echo $lang; ?>"><?php echo wp_native_dashboard_get_name_of($lang); ?></span></td>
308
  <td><?php echo (wp_native_dashboard_is_rtl_language($lang) ? __('right to left', 'wp-native-dashboard') : '&nbsp;'); ?></td>
309
  <td>-n.a.-</td>
310
  <td><?php if(!in_array($lang, $installed)) : ?>
317
  }
318
 
319
  function on_ajax_wp_native_dashboard_delete_language() {
320
+
321
  if (is_user_logged_in() && current_user_can('manage_options')) {
322
+ global $wp_filesystem, $parent_file;
323
+ $current_parent = $parent_file;
324
+ $parent_file = 'tools.php'; //needed for screen icon :-)
325
+
326
+ //check the file system
327
+ ob_start();
328
+ $url = 'admin-ajax.php';
329
+ if ( false === ($credentials = request_filesystem_credentials($url)) ) {
330
+ $data = ob_get_contents();
331
+ ob_end_clean();
332
+ if( ! empty($data) ){
333
+ header('Status: 401 Unauthorized');
334
+ header('HTTP/1.1 401 Unauthorized');
335
+ echo $data;
336
+ exit;
337
  }
338
+ return;
339
+ }
340
+
341
+ if ( ! WP_Filesystem($credentials) ) {
342
+ request_filesystem_credentials($url, '', true); //Failed to connect, Error and request again
343
+ $data = ob_get_contents();
344
  ob_end_clean();
345
+ if( ! empty($data) ){
346
+ header('Status: 401 Unauthorized');
347
+ header('HTTP/1.1 401 Unauthorized');
348
+ echo $data;
349
+ exit;
350
+ }
351
+ return;
352
+ }
353
+ ob_end_clean();
354
+ $parent_file = $current_parent;
355
+
356
+ $file = basename($_POST['file']);
357
+ $dir = $wp_filesystem->find_folder(WP_LANG_DIR.'/');
358
+ $filename = $dir.$file;
359
+
360
+ ob_start();
361
+ if ( WP_Filesystem($credentials) && is_object($wp_filesystem) ) {
362
+ if($wp_filesystem->delete($filename)) {
363
+ $wp_filesystem->delete(substr($filename, 0, -2).'php');
364
+ $wp_filesystem->delete($dir.'continents-cities-'.$file);
365
+ ob_end_clean();
366
+ exit();
367
+ }
368
  }
369
+ ob_end_clean();
370
  }
371
  header('Status: 404 Not Found');
372
  header('HTTP/1.1 404 Not Found');
376
 
377
  function on_ajax_wp_native_dashboard_download_language() {
378
  if (is_user_logged_in() && current_user_can('manage_options')) {
379
+ global $wp_filesystem, $parent_file;
380
+ $current_parent = $parent_file;
381
+ $parent_file = 'tools.php'; //needed for screen icon :-)
382
+
383
+ //check the file system
384
+ ob_start();
385
+ $url = 'admin-ajax.php';
386
+ if ( false === ($credentials = request_filesystem_credentials($url)) ) {
387
+ $data = ob_get_contents();
388
+ ob_end_clean();
389
+ if( ! empty($data) ){
390
+ header('Status: 401 Unauthorized');
391
+ header('HTTP/1.1 401 Unauthorized');
392
+ echo $data;
393
+ exit;
394
+ }
395
+ return;
396
+ }
397
+
398
+ if ( ! WP_Filesystem($credentials) ) {
399
+ request_filesystem_credentials($url, '', true); //Failed to connect, Error and request again
400
+ $data = ob_get_contents();
401
+ ob_end_clean();
402
+ if( ! empty($data) ){
403
+ header('Status: 401 Unauthorized');
404
+ header('HTTP/1.1 401 Unauthorized');
405
+ echo $data;
406
+ exit;
407
+ }
408
+ return;
409
+ }
410
+ ob_end_clean();
411
+ $parent_file = $current_parent;
412
+
413
+
414
  $file = basename($_POST['file']);
415
  $lang = substr($file,0,-3);
416
  $tagged = $this->tagged_version;
420
  $response_mo = wp_remote_get("http://svn.automattic.com/wordpress-i18n/".$lang."/tags/".$tagged."/messages/".$file);
421
  if(!is_wp_error($response_mo)) {
422
  ob_start();
423
+ if ( WP_Filesystem($credentials) && is_object($wp_filesystem) ) {
424
+ $dir = $wp_filesystem->find_folder(WP_LANG_DIR.'/');
425
+ $done = $wp_filesystem->put_contents($dir.$file, $response_mo['body']);
426
  if ($done) {
427
  global $wp_version;
428
  if (version_compare($wp_version, '2.8', '>=')) {
429
  $response_cities_mo = wp_remote_get("http://svn.automattic.com/wordpress-i18n/".$lang."/tags/".$tagged."/dist/wp-content/languages/continents-cities-".$file);
430
  if(!is_wp_error($response_cities_mo)) {
431
+ $wp_filesystem->put_contents($dir.'continents-cities-'.$file, $response_cities_mo['body']);
432
  }
433
  }
434
  if (wp_native_dashboard_is_rtl_language($lang)) {
435
  $content = wp_native_dashboard_rtl_extension_file_content();
436
  $response_php = wp_remote_get("http://svn.automattic.com/wordpress-i18n/".$lang."/tags/".$tagged."/dist/wp-content/languages/".$lang.'.php');
437
  if(!is_wp_error($response_php)) { $content = $response_php['body']; }
438
+ $wp_filesystem->put_contents($dir.$lang.'.php', $content);
439
  }
440
  ob_end_clean();
441
+ $mo = str_replace('\\', '/', WP_LANG_DIR.'/'.$file);
 
442
  ?>
443
  <tr id="tr-i18n-installed-<?php echo $lang; ?>">
444
+ <td><span class="i18n-file csp-<?php echo $lang; ?>"><?php echo wp_native_dashboard_get_name_of($lang); ?></span></td>
445
  <td><?php echo (wp_native_dashboard_is_rtl_language($lang) ? __('right to left', 'wp-native-dashboard') : '&nbsp;'); ?></td>
446
  <td><?php echo filesize($mo).'&nbsp;Bytes'; ?></td>
447
+ <td><?php if($lang != 'en_US') : ?><a class="csp-delete-local-file" href="<?php echo $mo; ?>"><?php _e('Delete','wp-native-dashboard'); ?></a>&nbsp;<span><img src="images/loading.gif" class="ajax-feedback" title="" alt="" /></span><?php endif; ?></td>
448
  </tr>
449
  <?php
450
  exit();
459
  exit();
460
  }
461
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
462
  }
463
 
464
  ?>
css/style-rtl.css CHANGED
@@ -8,7 +8,7 @@
8
  top: 11px;
9
  left: 10px;
10
  margin-right:20px;
11
- width: 100px;
12
  }
13
  *:first-child + html #csp-langswitcher-actions { z-index: 103; }
14
 
@@ -38,7 +38,13 @@
38
  border-bottom-style: solid;
39
  }
40
  #csp-langswitcher-current span {
41
- font-size: 12px; font-family: monospace; margin:0; padding-right: 24px; background:transparent url(../img/countries/unknown.gif) no-repeat right 2px; color: #ddd;
 
 
 
 
 
 
42
  }
43
  *:first-child + html #csp-langswitcher-current,
44
  *:first-child + html #csp-langswitcher-current span {zoom: 100%; } /* IE hack */
@@ -64,6 +70,7 @@ html:first-child>b\ody #csp-langswitcher-current span { padding-right: 0px !impo
64
  padding-bottom: 6px;
65
  font-size: 12px;
66
  font-family: monospace;
 
67
  -moz-border-radius: 0 0 12px 12px;
68
  -webkit-border-bottom-right-radius: 12px;
69
  -webkit-border-bottom-left-radius: 12px;
8
  top: 11px;
9
  left: 10px;
10
  margin-right:20px;
11
+ width: 150px;
12
  }
13
  *:first-child + html #csp-langswitcher-actions { z-index: 103; }
14
 
38
  border-bottom-style: solid;
39
  }
40
  #csp-langswitcher-current span {
41
+ font-size: 12px;
42
+ font-family: monospace;
43
+ margin:0;
44
+ padding-right: 24px;
45
+ background:transparent url(../img/countries/unknown.gif) no-repeat right 2px;
46
+ color: #ddd;
47
+ white-space: nowrap;
48
  }
49
  *:first-child + html #csp-langswitcher-current,
50
  *:first-child + html #csp-langswitcher-current span {zoom: 100%; } /* IE hack */
70
  padding-bottom: 6px;
71
  font-size: 12px;
72
  font-family: monospace;
73
+ width: 142px;
74
  -moz-border-radius: 0 0 12px 12px;
75
  -webkit-border-bottom-right-radius: 12px;
76
  -webkit-border-bottom-left-radius: 12px;
css/style.css CHANGED
@@ -8,7 +8,7 @@
8
  top: 11px;
9
  left: 10px;
10
  margin-right:20px;
11
- width: 100px;
12
  }
13
  *:first-child + html #csp-langswitcher-actions { z-index: 103; }
14
 
@@ -38,7 +38,14 @@
38
  border-bottom-style: solid;
39
  }
40
  #csp-langswitcher-current span {
41
- font-size: 10px; /* font-family: monospace; */ margin:0;padding:0; padding-left: 24px; background:transparent url(../img/countries/unknown.gif) no-repeat 2px top; color: #ddd;
 
 
 
 
 
 
 
42
  }
43
  *:first-child + html #csp-langswitcher-current,
44
  *:first-child + html #csp-langswitcher-current span {zoom: 100%; } /* IE hack */
@@ -61,6 +68,7 @@
61
  padding: 3px;
62
  padding-bottom: 6px;
63
  font-size: 10px;
 
64
  /* font-family: monospace; */
65
  -moz-border-radius: 0 0 12px 12px;
66
  -webkit-border-bottom-right-radius: 12px;
@@ -75,7 +83,7 @@
75
  }
76
 
77
  .csp-langoption { display: block; text-decoration: none !important; color:#ddd; padding: 0px 0px 0px 0px; margin-bottom: 6px; background:transparent url(../img/countries/unknown.gif) no-repeat 2px 3px;}
78
- .csp-langoption span { padding-left: 24px;}
79
  a.csp-langoption:hover { background-color: #FFFABF !important; color: #000; }
80
 
81
  .lang-installed { background-color: #E7F7D3 !important; }
8
  top: 11px;
9
  left: 10px;
10
  margin-right:20px;
11
+ width: 160px;
12
  }
13
  *:first-child + html #csp-langswitcher-actions { z-index: 103; }
14
 
38
  border-bottom-style: solid;
39
  }
40
  #csp-langswitcher-current span {
41
+ font-size: 10px;
42
+ /* font-family: monospace; */
43
+ margin:0;
44
+ padding:0;
45
+ padding-left: 24px;
46
+ background:transparent url(../img/countries/unknown.gif) no-repeat 2px top;
47
+ color: #ddd;
48
+ white-space: nowrap;
49
  }
50
  *:first-child + html #csp-langswitcher-current,
51
  *:first-child + html #csp-langswitcher-current span {zoom: 100%; } /* IE hack */
68
  padding: 3px;
69
  padding-bottom: 6px;
70
  font-size: 10px;
71
+ width: 152px;
72
  /* font-family: monospace; */
73
  -moz-border-radius: 0 0 12px 12px;
74
  -webkit-border-bottom-right-radius: 12px;
83
  }
84
 
85
  .csp-langoption { display: block; text-decoration: none !important; color:#ddd; padding: 0px 0px 0px 0px; margin-bottom: 6px; background:transparent url(../img/countries/unknown.gif) no-repeat 2px 3px;}
86
+ .csp-langoption span { padding-left: 24px; }
87
  a.csp-langoption:hover { background-color: #FFFABF !important; color: #000; }
88
 
89
  .lang-installed { background-color: #E7F7D3 !important; }
css/ui.all.css ADDED
@@ -0,0 +1,612 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery UI screen structure and presentation
3
+ * This CSS file was generated by ThemeRoller, a Filament Group Project for jQuery UI
4
+ * Author: Scott Jehl, scott@filamentgroup.com, http://www.filamentgroup.com
5
+ * Visit ThemeRoller.com
6
+ */
7
+
8
+ /*
9
+ * Note: If your ThemeRoller settings have a font size set in ems, your components will scale according to their parent element's font size.
10
+ * As a rule of thumb, set your body's font size to 62.5% to make 1em = 10px.
11
+ * body {font-size: 62.5%;}
12
+ */
13
+
14
+
15
+
16
+ /*UI accordion*/
17
+ .ui-accordion {
18
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
19
+ font-family: Verdana,Arial,sans-serif;
20
+ font-size: 1.1em;
21
+ border-bottom: 1px solid #d3d3d3;
22
+ }
23
+ .ui-accordion-group {
24
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
25
+ border: 1px solid #d3d3d3;
26
+ border-bottom: none;
27
+ }
28
+ .ui-accordion-header {
29
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
30
+ cursor: pointer;
31
+ background: #e6e6e6 url(images/e6e6e6_40x100_textures_02_glass_75.png) 0 50% repeat-x;
32
+ }
33
+ .ui-accordion-header a {
34
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
35
+ display: block;
36
+ font-size: 1em;
37
+ font-weight: normal;
38
+ text-decoration: none;
39
+ padding: .5em .5em .5em 1.7em;
40
+ color: #555555;
41
+ background: url(images/888888_7x7_arrow_right.gif) .5em 50% no-repeat;
42
+ }
43
+ .ui-accordion-header a:hover {
44
+ background: url(images/454545_7x7_arrow_right.gif) .5em 50% no-repeat;
45
+ color: #212121;
46
+ }
47
+ .ui-accordion-header:hover {
48
+ background: #dadada url(images/dadada_40x100_textures_02_glass_75.png) 0 50% repeat-x;
49
+ color: #212121;
50
+ }
51
+ .selected .ui-accordion-header, .selected .ui-accordion-header:hover {
52
+ background: #ffffff url(images/ffffff_40x100_textures_02_glass_65.png) 0 50% repeat-x;
53
+ }
54
+ .selected .ui-accordion-header a, .selected .ui-accordion-header a:hover {
55
+ color: #212121;
56
+ background: url(images/454545_7x7_arrow_down.gif) .5em 50% no-repeat;
57
+ }
58
+ .ui-accordion-content {
59
+ background: #ffffff url(images/ffffff_40x100_textures_01_flat_75.png) 0 0 repeat-x;
60
+ color: #222222;
61
+ font-size: 1em;
62
+ }
63
+ .ui-accordion-content p {
64
+ padding: 1em 1.7em 0.6em;
65
+ }
66
+
67
+
68
+
69
+
70
+
71
+
72
+ /*UI tabs*/
73
+ .ui-tabs-nav {
74
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
75
+ font-family: Verdana,Arial,sans-serif;
76
+ font-size: 1.1em;
77
+ float: left;
78
+ position: relative;
79
+ z-index: 1;
80
+ border-right: 1px solid #d3d3d3;
81
+ bottom: -1px;
82
+ }
83
+ .ui-tabs-nav ul {
84
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
85
+ }
86
+ .ui-tabs-nav li {
87
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
88
+ float: left;
89
+ border: 1px solid #d3d3d3;
90
+ border-right: none;
91
+ }
92
+ .ui-tabs-nav li a {
93
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
94
+ float: left;
95
+ font-size: 1em;
96
+ font-weight: normal;
97
+ text-decoration: none;
98
+ padding: .5em 1.7em;
99
+ color: #555555;
100
+ background: #e6e6e6 url(images/e6e6e6_40x100_textures_02_glass_75.png) 0 50% repeat-x;
101
+ }
102
+ .ui-tabs-nav li a:hover {
103
+ background: #dadada url(images/dadada_40x100_textures_02_glass_75.png) 0 50% repeat-x;
104
+ color: #212121;
105
+ }
106
+ .ui-tabs-nav li.ui-tabs-selected {
107
+ border-bottom-color: #ffffff;
108
+ }
109
+ .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs-nav li.ui-tabs-selected a:hover {
110
+ background: #ffffff url(images/ffffff_40x100_textures_02_glass_65.png) 0 50% repeat-x;
111
+ color: #212121;
112
+ }
113
+ .ui-tabs-panel {
114
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
115
+ font-family: Verdana,Arial,sans-serif;
116
+ clear:left;
117
+ border: 1px solid #d3d3d3 !important;
118
+ background: #ffffff url(images/ffffff_40x100_textures_01_flat_75.png) 0 0 repeat-x;
119
+ color: #222222;
120
+ padding: 1.5em 1.7em;
121
+ font-size: 1.1em;
122
+ }
123
+ .ui-tabs-hide {
124
+ display: none;/* for accessible hiding: position: absolute; left: -99999999px*/;
125
+ }
126
+
127
+
128
+
129
+
130
+
131
+ /*slider*/
132
+ .ui-slider {
133
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
134
+ font-family: Verdana,Arial,sans-serif;
135
+ font-size: 1.1em;
136
+ background: #ffffff url(images/ffffff_40x100_textures_01_flat_75.png) 0 0 repeat-x;
137
+ border: 1px solid #aaaaaa;
138
+ height: .8em;
139
+ position: relative;
140
+ }
141
+ .ui-slider-handle {
142
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
143
+ position: absolute;
144
+ z-index: 2;
145
+ top: -3px;
146
+ width: 1.2em;
147
+ height: 1.2em;
148
+ background: #e6e6e6 url(images/e6e6e6_40x100_textures_02_glass_75.png) 0 50% repeat-x;
149
+ border: 1px solid #d3d3d3;
150
+ }
151
+ .ui-slider-handle:hover {
152
+ background: #dadada url(images/dadada_40x100_textures_02_glass_75.png) 0 50% repeat-x;
153
+ border: 1px solid #999999;
154
+ }
155
+ .ui-slider-handle-active, .ui-slider-handle-active:hover {
156
+ background: #ffffff url(images/ffffff_40x100_textures_02_glass_65.png) 0 50% repeat-x;
157
+ border: 1px solid #aaaaaa;
158
+ }
159
+ .ui-slider-range {
160
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
161
+ height: .8em;
162
+ background: #dadada url(images/dadada_40x100_textures_02_glass_75.png) 0 50% repeat-x;
163
+ position: absolute;
164
+ border: 1px solid #d3d3d3;
165
+ border-left: 0;
166
+ border-right: 0;
167
+ top: -1px;
168
+ z-index: 1;
169
+ opacity:.7;
170
+ filter:Alpha(Opacity=70);
171
+ }
172
+
173
+
174
+
175
+
176
+
177
+
178
+ /*dialog*/
179
+ .ui-dialog {
180
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
181
+ font-family: Verdana,Arial,sans-serif;
182
+ font-size: 1.1em;
183
+ background: #ffffff url(images/ffffff_40x100_textures_01_flat_75.png) 0 0 repeat-x;
184
+ color: #222222;
185
+ border: 4px solid #aaaaaa;
186
+ position: relative;
187
+ }
188
+ .ui-resizable-handle {
189
+ position: absolute;
190
+ font-size: 0.1px;
191
+ z-index: 99999;
192
+ }
193
+ .ui-resizable .ui-resizable-handle {
194
+ display: block;
195
+ }
196
+ body .ui-resizable-disabled .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */
197
+ body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */
198
+ .ui-resizable-n {
199
+ cursor: n-resize;
200
+ height: 7px;
201
+ width: 100%;
202
+ top: -5px;
203
+ left: 0px;
204
+ }
205
+ .ui-resizable-s {
206
+ cursor: s-resize;
207
+ height: 7px;
208
+ width: 100%;
209
+ bottom: -5px;
210
+ left: 0px;
211
+ }
212
+ .ui-resizable-e {
213
+ cursor: e-resize;
214
+ width: 7px;
215
+ right: -5px;
216
+ top: 0px;
217
+ height: 100%;
218
+ }
219
+ .ui-resizable-w {
220
+ cursor: w-resize;
221
+ width: 7px;
222
+ left: -5px;
223
+ top: 0px;
224
+ height: 100%;
225
+ }
226
+ .ui-resizable-se {
227
+ cursor: se-resize;
228
+ width: 13px;
229
+ height: 13px;
230
+ right: 0px;
231
+ bottom: 0px;
232
+ background: url(images/222222_11x11_icon_resize_se.gif) no-repeat 0 0;
233
+ }
234
+ .ui-resizable-sw {
235
+ cursor: sw-resize;
236
+ width: 9px;
237
+ height: 9px;
238
+ left: 0px;
239
+ bottom: 0px;
240
+ }
241
+ .ui-resizable-nw {
242
+ cursor: nw-resize;
243
+ width: 9px;
244
+ height: 9px;
245
+ left: 0px;
246
+ top: 0px;
247
+ }
248
+ .ui-resizable-ne {
249
+ cursor: ne-resize;
250
+ width: 9px;
251
+ height: 9px;
252
+ right: 0px;
253
+ top: 0px;
254
+ }
255
+ .ui-dialog-titlebar {
256
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
257
+ padding: .5em 1.5em .5em 1em;
258
+ color: #555555;
259
+ background: #e6e6e6 url(images/e6e6e6_40x100_textures_02_glass_75.png) 0 50% repeat-x;
260
+ border-bottom: 1px solid #d3d3d3;
261
+ font-size: 1em;
262
+ font-weight: normal;
263
+ position: relative;
264
+ }
265
+ .ui-dialog-title {}
266
+ .ui-dialog-titlebar-close {
267
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
268
+ background: url(images/888888_11x11_icon_close.gif) 0 0 no-repeat;
269
+ position: absolute;
270
+ right: 8px;
271
+ top: .7em;
272
+ width: 11px;
273
+ height: 11px;
274
+ z-index: 100;
275
+ }
276
+ .ui-dialog-titlebar-close-hover, .ui-dialog-titlebar-close:hover {
277
+ background: url(images/454545_11x11_icon_close.gif) 0 0 no-repeat;
278
+ }
279
+ .ui-dialog-titlebar-close:active {
280
+ background: url(images/454545_11x11_icon_close.gif) 0 0 no-repeat;
281
+ }
282
+ .ui-dialog-titlebar-close span {
283
+ display: none;
284
+ }
285
+ .ui-dialog-content {
286
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
287
+ color: #222222;
288
+ padding: 1.5em 1.7em;
289
+ }
290
+ .ui-dialog-buttonpane {
291
+ /*position: absolute; WP 2.8 fix */
292
+ bottom: 0;
293
+ width: 100%;
294
+ text-align: right;
295
+ border-top: 1px solid #aaaaaa;
296
+ background: #ffffff;
297
+ }
298
+ .ui-dialog-buttonpane button {
299
+ margin: .5em 8px;
300
+ color: #555555;
301
+ background: #e6e6e6 url(images/e6e6e6_40x100_textures_02_glass_75.png) 0 50% repeat-x;
302
+ font-size: 1em;
303
+ border: 1px solid #d3d3d3;
304
+ cursor: pointer;
305
+ padding: .2em .6em .3em .6em;
306
+ line-height: 1.4em;
307
+ }
308
+ .ui-dialog-buttonpane button:hover {
309
+ color: #212121;
310
+ background: #dadada url(images/dadada_40x100_textures_02_glass_75.png) 0 50% repeat-x;
311
+ border: 1px solid #999999;
312
+ }
313
+ .ui-dialog-buttonpane button:active {
314
+ color: #212121;
315
+ background: #ffffff url(images/ffffff_40x100_textures_02_glass_65.png) 0 50% repeat-x;
316
+ border: 1px solid #aaaaaa;
317
+ }
318
+ /* This file skins dialog */
319
+ .ui-dialog.ui-draggable .ui-dialog-titlebar,
320
+ .ui-dialog.ui-draggable .ui-dialog-titlebar {
321
+ cursor: move;
322
+ }
323
+
324
+
325
+
326
+
327
+
328
+
329
+
330
+ /*datepicker*/
331
+ /* Main Style Sheet for jQuery UI date picker */
332
+ .ui-datepicker-div, .ui-datepicker-inline, #ui-datepicker-div {
333
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
334
+ font-family: Verdana,Arial,sans-serif;
335
+ background: #ffffff url(images/ffffff_40x100_textures_01_flat_75.png) 0 0 repeat-x;
336
+ font-size: 1.1em;
337
+ border: 4px solid #aaaaaa;
338
+ width: 15.5em;
339
+ padding: 2.5em .5em .5em .5em;
340
+ position: relative;
341
+ }
342
+ .ui-datepicker-div, #ui-datepicker-div {
343
+ z-index: 9999; /*must have*/
344
+ display: none;
345
+ }
346
+ .ui-datepicker-inline {
347
+ float: left;
348
+ display: block;
349
+ }
350
+ .ui-datepicker-control {
351
+ display: none;
352
+ }
353
+ .ui-datepicker-current {
354
+ display: none;
355
+ }
356
+ .ui-datepicker-next, .ui-datepicker-prev {
357
+ position: absolute;
358
+ left: .5em;
359
+ top: .5em;
360
+ background: #e6e6e6 url(images/e6e6e6_40x100_textures_02_glass_75.png) 0 50% repeat-x;
361
+ }
362
+ .ui-datepicker-next {
363
+ left: 14.6em;
364
+ }
365
+ .ui-datepicker-next:hover, .ui-datepicker-prev:hover {
366
+ background: #dadada url(images/dadada_40x100_textures_02_glass_75.png) 0 50% repeat-x;
367
+ }
368
+ .ui-datepicker-next a, .ui-datepicker-prev a {
369
+ text-indent: -999999px;
370
+ width: 1.3em;
371
+ height: 1.4em;
372
+ display: block;
373
+ font-size: 1em;
374
+ background: url(images/888888_7x7_arrow_left.gif) 50% 50% no-repeat;
375
+ border: 1px solid #d3d3d3;
376
+ cursor: pointer;
377
+ }
378
+ .ui-datepicker-next a {
379
+ background: url(images/888888_7x7_arrow_right.gif) 50% 50% no-repeat;
380
+ }
381
+ .ui-datepicker-prev a:hover {
382
+ background: url(images/454545_7x7_arrow_left.gif) 50% 50% no-repeat;
383
+ }
384
+ .ui-datepicker-next a:hover {
385
+ background: url(images/454545_7x7_arrow_right.gif) 50% 50% no-repeat;
386
+ }
387
+ .ui-datepicker-prev a:active {
388
+ background: url(images/454545_7x7_arrow_left.gif) 50% 50% no-repeat;
389
+ }
390
+ .ui-datepicker-next a:active {
391
+ background: url(images/454545_7x7_arrow_right.gif) 50% 50% no-repeat;
392
+ }
393
+ .ui-datepicker-header select {
394
+ border: 1px solid #d3d3d3;
395
+ color: #555555;
396
+ background: #e6e6e6;
397
+ font-size: 1em;
398
+ line-height: 1.4em;
399
+ position: absolute;
400
+ top: .5em;
401
+ margin: 0 !important;
402
+ }
403
+ .ui-datepicker-header option:focus, .ui-datepicker-header option:hover {
404
+ background: #dadada;
405
+ }
406
+ .ui-datepicker-header select.ui-datepicker-new-month {
407
+ width: 7em;
408
+ left: 2.2em;
409
+ }
410
+ .ui-datepicker-header select.ui-datepicker-new-year {
411
+ width: 5em;
412
+ left: 9.4em;
413
+ }
414
+ table.ui-datepicker {
415
+ width: 15.5em;
416
+ text-align: right;
417
+ }
418
+ table.ui-datepicker td a {
419
+ padding: .1em .3em .1em 0;
420
+ display: block;
421
+ color: #555555;
422
+ background: #e6e6e6 url(images/e6e6e6_40x100_textures_02_glass_75.png) 0 50% repeat-x;
423
+ cursor: pointer;
424
+ border: 1px solid #ffffff;
425
+ }
426
+ table.ui-datepicker td a:hover {
427
+ border: 1px solid #999999;
428
+ color: #212121;
429
+ background: #dadada url(images/dadada_40x100_textures_02_glass_75.png) 0 50% repeat-x;
430
+ }
431
+ table.ui-datepicker td a:active {
432
+ border: 1px solid #aaaaaa;
433
+ color: #212121;
434
+ background: #ffffff url(images/ffffff_40x100_textures_02_glass_65.png) 0 50% repeat-x;
435
+ }
436
+ table.ui-datepicker .ui-datepicker-title-row td {
437
+ padding: .3em 0;
438
+ text-align: center;
439
+ font-size: .9em;
440
+ color: #222222;
441
+ text-transform: uppercase;
442
+ }
443
+ table.ui-datepicker .ui-datepicker-title-row td a {
444
+ color: #222222;
445
+ }
446
+ .ui-datepicker-cover {
447
+ display: none;
448
+ display/**/: block;
449
+ position: absolute;
450
+ z-index: -1;
451
+ filter: mask();
452
+ top: -4px;
453
+ left: -4px;
454
+ width: 193px;
455
+ height: 200px;
456
+ }
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+
467
+
468
+
469
+
470
+
471
+ /*
472
+ Generic ThemeRoller Classes
473
+ >> Make your jQuery Components ThemeRoller-Compatible!
474
+ */
475
+
476
+ /*component global class*/
477
+ .ui-component {
478
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
479
+ font-family: Verdana,Arial,sans-serif;
480
+ font-size: 1.1em;
481
+ }
482
+ /*component content styles*/
483
+ .ui-component-content {
484
+ border: 1px solid #aaaaaa;
485
+ background: #ffffff url(images/ffffff_40x100_textures_01_flat_75.png) 0 0 repeat-x;
486
+ color: #222222;
487
+ }
488
+ .ui-component-content a {
489
+ color: #222222;
490
+ text-decoration: underline;
491
+ }
492
+ /*component states*/
493
+ .ui-default-state {
494
+ border: 1px solid #d3d3d3;
495
+ background: #e6e6e6 url(images/e6e6e6_40x100_textures_02_glass_75.png) 0 50% repeat-x;
496
+ font-weight: normal;
497
+ color: #555555 !important;
498
+ }
499
+ .ui-default-state a {
500
+ color: #555555;
501
+ }
502
+ .ui-default-state:hover, .ui-hover-state {
503
+ border: 1px solid #999999;
504
+ background: #dadada url(images/dadada_40x100_textures_02_glass_75.png) 0 50% repeat-x;
505
+ font-weight: normal;
506
+ color: #212121 !important;
507
+ }
508
+ .ui-hover-state a {
509
+ color: #212121;
510
+ }
511
+ .ui-default-state:active, .ui-active-state {
512
+ border: 1px solid #aaaaaa;
513
+ background: #ffffff url(images/ffffff_40x100_textures_02_glass_65.png) 0 50% repeat-x;
514
+ font-weight: normal;
515
+ color: #212121 !important;
516
+ outline: none;
517
+ }
518
+ .ui-active-state a {
519
+ color: #212121;
520
+ outline: none;
521
+ }
522
+ /*icons*/
523
+ .ui-arrow-right-default {background: url(images/888888_7x7_arrow_right.gif) no-repeat 50% 50%;}
524
+ .ui-arrow-right-default:hover, .ui-arrow-right-hover {background: url(images/454545_7x7_arrow_right.gif) no-repeat 50% 50%;}
525
+ .ui-arrow-right-default:active, .ui-arrow-right-active {background: url(images/454545_7x7_arrow_right.gif) no-repeat 50% 50%;}
526
+ .ui-arrow-right-content {background: url(images/222222_7x7_arrow_right.gif) no-repeat 50% 50%;}
527
+
528
+ .ui-arrow-left-default {background: url(images/888888_7x7_arrow_left.gif) no-repeat 50% 50%;}
529
+ .ui-arrow-left-default:hover, .ui-arrow-left-hover {background: url(images/454545_7x7_arrow_left.gif) no-repeat 50% 50%;}
530
+ .ui-arrow-left-default:active, .ui-arrow-left-active {background: url(images/454545_7x7_arrow_left.gif) no-repeat 50% 50%;}
531
+ .ui-arrow-left-content {background: url(images/222222_7x7_arrow_left.gif) no-repeat 50% 50%;}
532
+
533
+ .ui-arrow-down-default {background: url(images/888888_7x7_arrow_down.gif) no-repeat 50% 50%;}
534
+ .ui-arrow-down-default:hover, .ui-arrow-down-hover {background: url(images/454545_7x7_arrow_down.gif) no-repeat 50% 50%;}
535
+ .ui-arrow-down-default:active, .ui-arrow-down-active {background: url(images/454545_7x7_arrow_down.gif) no-repeat 50% 50%;}
536
+ .ui-arrow-down-content {background: url(images/222222_7x7_arrow_down.gif) no-repeat 50% 50%;}
537
+
538
+ .ui-arrow-up-default {background: url(images/888888_7x7_arrow_up.gif) no-repeat 50% 50%;}
539
+ .ui-arrow-up-default:hover, .ui-arrow-up-hover {background: url(images/454545_7x7_arrow_up.gif) no-repeat 50% 50%;}
540
+ .ui-arrow-up-default:active, .ui-arrow-up-active {background: url(images/454545_7x7_arrow_up.gif) no-repeat 50% 50%;}
541
+ .ui-arrow-up-content {background: url(images/222222_7x7_arrow_up.gif) no-repeat 50% 50%;}
542
+
543
+ .ui-close-default {background: url(images/888888_11x11_icon_close.gif) no-repeat 50% 50%;}
544
+ .ui-close-default:hover, .ui-close-hover {background: url(images/454545_11x11_icon_close.gif) no-repeat 50% 50%;}
545
+ .ui-close-default:active, .ui-close-active {background: url(images/454545_11x11_icon_close.gif) no-repeat 50% 50%;}
546
+ .ui-close-content {background: url(images/454545_11x11_icon_close.gif) no-repeat 50% 50%;}
547
+
548
+ .ui-folder-closed-default {background: url(images/888888_11x11_icon_folder_closed.gif) no-repeat 50% 50%;}
549
+ .ui-folder-closed-default:hover, .ui-folder-closed-hover {background: url(images/454545_11x11_icon_folder_closed.gif) no-repeat 50% 50%;}
550
+ .ui-folder-closed-default:active, .ui-folder-closed-active {background: url(images/454545_11x11_icon_folder_closed.gif) no-repeat 50% 50%;}
551
+ .ui-folder-closed-content {background: url(images/888888_11x11_icon_folder_closed.gif) no-repeat 50% 50%;}
552
+
553
+ .ui-folder-open-default {background: url(images/888888_11x11_icon_folder_open.gif) no-repeat 50% 50%;}
554
+ .ui-folder-open-default:hover, .ui-folder-open-hover {background: url(images/454545_11x11_icon_folder_open.gif) no-repeat 50% 50%;}
555
+ .ui-folder-open-default:active, .ui-folder-open-active {background: url(images/454545_11x11_icon_folder_open.gif) no-repeat 50% 50%;}
556
+ .ui-folder-open-content {background: url(images/454545_11x11_icon_folder_open.gif) no-repeat 50% 50%;}
557
+
558
+ .ui-doc-default {background: url(images/888888_11x11_icon_doc.gif) no-repeat 50% 50%;}
559
+ .ui-doc-default:hover, .ui-doc-hover {background: url(images/454545_11x11_icon_doc.gif) no-repeat 50% 50%;}
560
+ .ui-doc-default:active, .ui-doc-active {background: url(images/454545_11x11_icon_doc.gif) no-repeat 50% 50%;}
561
+ .ui-doc-content {background: url(images/222222_11x11_icon_doc.gif) no-repeat 50% 50%;}
562
+
563
+ .ui-arrows-leftright-default {background: url(images/888888_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;}
564
+ .ui-arrows-leftright-default:hover, .ui-arrows-leftright-hover {background: url(images/454545_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;}
565
+ .ui-arrows-leftright-default:active, .ui-arrows-leftright-active {background: url(images/454545_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;}
566
+ .ui-arrows-leftright-content {background: url(images/222222_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;}
567
+
568
+ .ui-arrows-updown-default {background: url(images/888888_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;}
569
+ .ui-arrows-updown-default:hover, .ui-arrows-updown-hover {background: url(images/454545_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;}
570
+ .ui-arrows-updown-default:active, .ui-arrows-updown-active {background: url(images/454545_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;}
571
+ .ui-arrows-updown-content {background: url(images/222222_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;}
572
+
573
+ .ui-minus-default {background: url(images/888888_11x11_icon_minus.gif) no-repeat 50% 50%;}
574
+ .ui-minus-default:hover, .ui-minus-hover {background: url(images/454545_11x11_icon_minus.gif) no-repeat 50% 50%;}
575
+ .ui-minus-default:active, .ui-minus-active {background: url(images/454545_11x11_icon_minus.gif) no-repeat 50% 50%;}
576
+ .ui-minus-content {background: url(images/222222_11x11_icon_minus.gif) no-repeat 50% 50%;}
577
+
578
+ .ui-plus-default {background: url(images/888888_11x11_icon_plus.gif) no-repeat 50% 50%;}
579
+ .ui-plus-default:hover, .ui-plus-hover {background: url(images/454545_11x11_icon_plus.gif) no-repeat 50% 50%;}
580
+ .ui-plus-default:active, .ui-plus-active {background: url(images/454545_11x11_icon_plus.gif) no-repeat 50% 50%;}
581
+ .ui-plus-content {background: url(images/222222_11x11_icon_plus.gif) no-repeat 50% 50%;}
582
+
583
+ /*hidden elements*/
584
+ .ui-hidden {
585
+ display: none;/* for accessible hiding: position: absolute; left: -99999999px*/;
586
+ }
587
+ .ui-accessible-hidden {
588
+ position: absolute; left: -99999999px;
589
+ }
590
+ /*reset styles*/
591
+ .ui-reset {
592
+ /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;
593
+ }
594
+ /*clearfix class*/
595
+ .ui-clearfix:after {
596
+ content: ".";
597
+ display: block;
598
+ height: 0;
599
+ clear: both;
600
+ visibility: hidden;
601
+ }
602
+ .ui-clearfix {display: inline-block;}
603
+ /* Hides from IE-mac \*/
604
+ * html .ui-clearfix {height: 1%;}
605
+ .ui-clearfix {display: block;}
606
+ /* End hide from IE-mac */
607
+
608
+ /* Note: for resizable styles, use the styles listed above in the dialog section */
609
+
610
+ .ui-widget-overlay, .ui-dialog-overlay { position: absolute !important; top: 0 !important; left: 0 !important; width: 100%; height: 100%; }
611
+ .ui-widget-overlay, .ui-dialog-overlay { background: #000/*{bgColorOverlay}*/ none/*{bgImgUrlOverlay}*/ 0/*{bgOverlayXPos}*/ 0/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .5;filter:Alpha(Opacity=50)/*{opacityOverlay}*/; }
612
+ .ui-widget-shadow { margin: -4px/*{offsetTopShadow}*/ 0 0 -4px/*{offsetLeftShadow}*/; padding: 4px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ none/*{bgImgUrlShadow}*/ 0/*{bgShadowXPos}*/ 0/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .35;filter:Alpha(Opacity=35)/*{opacityShadow}*/; -moz-border-radius: 4px/*{cornerRadiusShadow}*/; -webkit-border-radius: 4px/*{cornerRadiusShadow}*/; }
i18n/wp-native-dashboard-de_DE.mo CHANGED
Binary file
i18n/wp-native-dashboard-de_DE.po CHANGED
@@ -19,68 +19,44 @@ msgstr ""
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
- #: automattic.php:132
23
- #: automattic.php:289
24
  #@ wp-native-dashboard
25
  msgid "The network connection to <strong>svn.automattic.com</strong> is currently not available. Please try again later."
26
  msgstr "Die Netzwerkverbindung zu <strong>svn.automattic.com</strong> ist derzeit nicht verfügbar. Bitte versuchen Sie es später erneut."
27
 
28
- #: automattic.php:179
29
- #: automattic.php:247
30
- #: automattic.php:302
31
- #: wp-native-dashboard.php:311
32
  #@ wp-native-dashboard
33
  msgid "right to left"
34
  msgstr "rechts nach links"
35
 
36
- #: automattic.php:182
37
  #@ wp-native-dashboard
38
  msgid "Download"
39
  msgstr "Herunterladen"
40
 
41
- #: automattic.php:209
42
  #@ wp-native-dashboard
43
  msgid "You do not have the permission to delete language files."
44
  msgstr "Sie haben nicht die Berechtigung zum Löschen von Sprachdateien."
45
 
46
- #: automattic.php:249
47
- #: wp-native-dashboard.php:313
48
  #@ wp-native-dashboard
49
  msgid "Delete"
50
  msgstr "Löschen"
51
 
52
- #: automattic.php:260
53
  #@ wp-native-dashboard
54
  msgid "The download is currently not available."
55
  msgstr "Der Download ist derzeit nicht verfügbar."
56
 
57
- #: automattic.php:287
58
- #, php-format
59
- #@ wp-native-dashboard
60
- msgid "All listed languages <em><small>(rev. %d)</small></em> should be supported by polyglot translation teams as download into your WordPress installation."
61
- msgstr "Alle aufgeführten Sprachen <small><em>(rev.% d)</em></small> sollten durch Polyglot Übersetzungteams als Download für Ihre WordPress-Installation verfügbar sein."
62
-
63
- #: automattic.php:291
64
  #: wp-native-dashboard.php:332
65
  #@ wp-native-dashboard
66
  msgid "Available for download:"
67
  msgstr "verfügbare Downloads:"
68
 
69
- #: automattic.php:305
70
- #@ wp-native-dashboard
71
- msgid "installed"
72
- msgstr "installiert"
73
-
74
- #: automattic.php:306
75
- #@ wp-native-dashboard
76
- msgid "(build in)"
77
- msgstr "(im Aufbau)"
78
-
79
- #: automattic.php:307
80
- #@ wp-native-dashboard
81
- msgid "download"
82
- msgstr "herunterladen"
83
-
84
  #: loginselector.php:27
85
  #: personalprofile.php:20
86
  #@ wp-native-dashboard
@@ -92,75 +68,60 @@ msgstr "Sprache"
92
  msgid "Select your prefered language that will be used to show the Admin Center."
93
  msgstr "Wählen Sie Ihre bevorzugte Sprache, die im Admin-Center verwendet werden soll."
94
 
95
- #: wp-native-dashboard.php:218
96
  #@ wp-native-dashboard
97
  msgid "Native Dashboard"
98
  msgstr "Native Dashboard"
99
 
100
- #: wp-native-dashboard.php:233
101
  msgid "Cheatin&#8217; uh?"
102
  msgstr ""
103
 
104
- #: wp-native-dashboard.php:261
105
  #@ wp-native-dashboard
106
  msgid "Capabilities"
107
  msgstr "Fähigkeiten"
108
 
109
- #: wp-native-dashboard.php:262
110
  #@ wp-native-dashboard
111
  msgid "Installed Languages"
112
- msgstr "Installierten Sprachen"
113
 
114
- #: wp-native-dashboard.php:263
115
  #@ wp-native-dashboard
116
  msgid "Downloads"
117
  msgstr "Downloads"
118
 
119
- #: wp-native-dashboard.php:270
120
  #@ wp-native-dashboard
121
  msgid "extend the <em>WordPress Logon Screen</em> to choose a language too."
122
  msgstr "erweitere den <em>WordPress Anmelde-Bildschirm</em> um eine Sprache auszuwählen."
123
 
124
- #: wp-native-dashboard.php:273
125
  #@ wp-native-dashboard
126
  msgid "extend <a href=\"profile.php\" target=\"_blank\">Personal Profile Settings</a> with users prefered language."
127
  msgstr "erweitere die <a href=\"profile.php\" target=\"_blank\">persönlichen Profil-Einstellungen</a> um eine benutzerspezifische Sprachwahl."
128
 
129
- #: wp-native-dashboard.php:276
130
  #@ wp-native-dashboard
131
  msgid "extend <em>Admin Center Headline</em> with a language quick selector."
132
  msgstr "erweitere die <em>Admin-Center Kopfzeile</em> mit einer Sprachumschaltung."
133
 
134
- #: wp-native-dashboard.php:279
135
  #@ wp-native-dashboard
136
  msgid "read more &raquo;"
137
  msgstr "Lesen Sie mehr »"
138
 
139
- #: wp-native-dashboard.php:279
140
  #@ wp-native-dashboard
141
  msgid "If you are using one of the current available <a href=\"http://wordpress.org/extend/plugins/search.php?q=multilingual\" target=\"_blank\">multilingual plugins</a>, which permits you writing and publishing posts in several languages, you may also have the need, that native speaking authors should be able to choose their prefered backend language while writing. It's your decision if and how this will be possible. This feature set does not impact your frontend language (defined by config or by any multilingual plugin)."
142
- msgstr "Wenn Sie eines der aktuellen <a href=\"http://wordpress.org/extend/plugins/search.php?q=multilingual\" target=\"_blank\">Plugins für Mehrsprachigkeit</a> benutzen, das Ihnen erlaubt, Beiträge in mehreren Sprachen zu schreiben und zu veröffentlichen, könnten es notwendig werden, dass die muttersprachlichen Autoren in der Lage sein sollten, in ihrer bevorzugte Sprache im Backend zu schreiben. Es ist Ihre Entscheidung, ob und wie dies möglich sein wird. Diese Funktionen haben keinen Einfluss auf Ihre Frontend Sprache (definiert durch die Konfiguration oder durch ein Plugin für Mehrsprachigkeit)."
143
 
144
- #: wp-native-dashboard.php:287
145
  #@ wp-native-dashboard
146
  msgid "Your WordPress installation currectly supports this list of languages at your Dashboard."
147
  msgstr "Ihre WordPress-Installation unterstützt momentan diese Liste der Sprachen in Ihrem Dashboard."
148
 
149
- #: wp-native-dashboard.php:328
150
- #@ wp-native-dashboard
151
- msgid "A lot of languages should be provided by polyglot translation teams as download into your WordPress installation."
152
- msgstr "Viele Sprachen werden von Polyglot Übersetzungsteams als Download für Ihre WordPress-Installation angeboten."
153
-
154
- #: wp-native-dashboard.php:330
155
- #@ wp-native-dashboard
156
- msgid "Downloads:"
157
- msgstr "Downloads:"
158
-
159
- #: wp-native-dashboard.php:330
160
- #@ wp-native-dashboard
161
- msgid "Sorry, your installation doesn't support direct file access, complete support comming soon."
162
- msgstr "Es tut uns leid, Ihre Installation unterstützt keinen direkten Dateizugriff, volle Unterstützung steht in Kürze zur Verfügung."
163
-
164
  #: wp-native-dashboard.php:332
165
  #@ wp-native-dashboard
166
  msgid "check repository &raquo;"
@@ -176,3 +137,33 @@ msgstr "Native Dashboard Einstellungen"
176
  msgid "cleanup all settings at plugin deactivation."
177
  msgstr "alle Einstellungen bei Plugin-Deaktivierung entfernen."
178
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Textdomain-Support: yes"
21
 
22
+ #: automattic.php:237
 
23
  #@ wp-native-dashboard
24
  msgid "The network connection to <strong>svn.automattic.com</strong> is currently not available. Please try again later."
25
  msgstr "Die Netzwerkverbindung zu <strong>svn.automattic.com</strong> ist derzeit nicht verfügbar. Bitte versuchen Sie es später erneut."
26
 
27
+ #: automattic.php:284
28
+ #: automattic.php:421
29
+ #: wp-native-dashboard.php:315
 
30
  #@ wp-native-dashboard
31
  msgid "right to left"
32
  msgstr "rechts nach links"
33
 
34
+ #: automattic.php:287
35
  #@ wp-native-dashboard
36
  msgid "Download"
37
  msgstr "Herunterladen"
38
 
39
+ #: automattic.php:349
40
  #@ wp-native-dashboard
41
  msgid "You do not have the permission to delete language files."
42
  msgstr "Sie haben nicht die Berechtigung zum Löschen von Sprachdateien."
43
 
44
+ #: automattic.php:423
45
+ #: wp-native-dashboard.php:317
46
  #@ wp-native-dashboard
47
  msgid "Delete"
48
  msgstr "Löschen"
49
 
50
+ #: automattic.php:434
51
  #@ wp-native-dashboard
52
  msgid "The download is currently not available."
53
  msgstr "Der Download ist derzeit nicht verfügbar."
54
 
 
 
 
 
 
 
 
55
  #: wp-native-dashboard.php:332
56
  #@ wp-native-dashboard
57
  msgid "Available for download:"
58
  msgstr "verfügbare Downloads:"
59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  #: loginselector.php:27
61
  #: personalprofile.php:20
62
  #@ wp-native-dashboard
68
  msgid "Select your prefered language that will be used to show the Admin Center."
69
  msgstr "Wählen Sie Ihre bevorzugte Sprache, die im Admin-Center verwendet werden soll."
70
 
71
+ #: wp-native-dashboard.php:232
72
  #@ wp-native-dashboard
73
  msgid "Native Dashboard"
74
  msgstr "Native Dashboard"
75
 
76
+ #: wp-native-dashboard.php:247
77
  msgid "Cheatin&#8217; uh?"
78
  msgstr ""
79
 
80
+ #: wp-native-dashboard.php:278
81
  #@ wp-native-dashboard
82
  msgid "Capabilities"
83
  msgstr "Fähigkeiten"
84
 
85
+ #: wp-native-dashboard.php:279
86
  #@ wp-native-dashboard
87
  msgid "Installed Languages"
88
+ msgstr "Installierte Sprachen"
89
 
90
+ #: wp-native-dashboard.php:280
91
  #@ wp-native-dashboard
92
  msgid "Downloads"
93
  msgstr "Downloads"
94
 
95
+ #: wp-native-dashboard.php:287
96
  #@ wp-native-dashboard
97
  msgid "extend the <em>WordPress Logon Screen</em> to choose a language too."
98
  msgstr "erweitere den <em>WordPress Anmelde-Bildschirm</em> um eine Sprache auszuwählen."
99
 
100
+ #: wp-native-dashboard.php:290
101
  #@ wp-native-dashboard
102
  msgid "extend <a href=\"profile.php\" target=\"_blank\">Personal Profile Settings</a> with users prefered language."
103
  msgstr "erweitere die <a href=\"profile.php\" target=\"_blank\">persönlichen Profil-Einstellungen</a> um eine benutzerspezifische Sprachwahl."
104
 
105
+ #: wp-native-dashboard.php:293
106
  #@ wp-native-dashboard
107
  msgid "extend <em>Admin Center Headline</em> with a language quick selector."
108
  msgstr "erweitere die <em>Admin-Center Kopfzeile</em> mit einer Sprachumschaltung."
109
 
110
+ #: wp-native-dashboard.php:296
111
  #@ wp-native-dashboard
112
  msgid "read more &raquo;"
113
  msgstr "Lesen Sie mehr »"
114
 
115
+ #: wp-native-dashboard.php:296
116
  #@ wp-native-dashboard
117
  msgid "If you are using one of the current available <a href=\"http://wordpress.org/extend/plugins/search.php?q=multilingual\" target=\"_blank\">multilingual plugins</a>, which permits you writing and publishing posts in several languages, you may also have the need, that native speaking authors should be able to choose their prefered backend language while writing. It's your decision if and how this will be possible. This feature set does not impact your frontend language (defined by config or by any multilingual plugin)."
118
+ msgstr "Wenn Sie eines der aktuellen <a href=\"http://wordpress.org/extend/plugins/search.php?q=multilingual\" target=\"_blank\">Plugins für Mehrsprachigkeit</a> benutzen, das Ihnen erlaubt, Beiträge in mehreren Sprachen zu schreiben und zu veröffentlichen, könnte es notwendig werden, dass die muttersprachlichen Autoren in der Lage sein sollten, in ihrer bevorzugte Sprache im Backend zu schreiben. Es ist Ihre Entscheidung, ob und wie dies möglich sein wird. Diese Funktionen haben keinen Einfluss auf Ihre Frontend Sprache (definiert durch die Konfiguration oder durch ein Plugin für Mehrsprachigkeit)."
119
 
120
+ #: wp-native-dashboard.php:304
121
  #@ wp-native-dashboard
122
  msgid "Your WordPress installation currectly supports this list of languages at your Dashboard."
123
  msgstr "Ihre WordPress-Installation unterstützt momentan diese Liste der Sprachen in Ihrem Dashboard."
124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  #: wp-native-dashboard.php:332
126
  #@ wp-native-dashboard
127
  msgid "check repository &raquo;"
137
  msgid "cleanup all settings at plugin deactivation."
138
  msgstr "alle Einstellungen bei Plugin-Deaktivierung entfernen."
139
 
140
+ #: automattic.php:54
141
+ #: automattic.php:75
142
+ #: automattic.php:154
143
+ #: automattic.php:175
144
+ #@ wp-native-dashboard
145
+ msgid "Ok"
146
+ msgstr "Ok"
147
+
148
+ #: automattic.php:58
149
+ #: automattic.php:158
150
+ #@ wp-native-dashboard
151
+ msgid "Cancel"
152
+ msgstr "Abbrechen"
153
+
154
+ #: automattic.php:173
155
+ #@ wp-native-dashboard
156
+ msgid "Error"
157
+ msgstr "Fehler"
158
+
159
+ #: automattic.php:52
160
+ #: automattic.php:152
161
+ #@ wp-native-dashboard
162
+ msgid "User Credentials required"
163
+ msgstr "Anmeldeinformationen erforderlich"
164
+
165
+ #: wp-native-dashboard.php:331
166
+ #@ wp-native-dashboard
167
+ msgid "A lot of languages should be provided by polyglott translation teams as download into your WordPress installation."
168
+ msgstr "Viele Sprachen werden von Polyglott Übersetzungsteams als Download für Ihre WordPress-Installation angeboten."
169
+
langswitcher.php CHANGED
@@ -20,16 +20,15 @@ class wp_native_dashboard_langswitcher {
20
 
21
  function on_print_dashboard_switcher() {
22
  $langs = wp_native_dashboard_collect_installed_languages();
23
-
24
  $loc = get_locale();
25
  echo '<div id="csp-langswitcher-actions" class="alignleft">';
26
- echo '<div id="csp-langswitcher-current"><span class="csp-'.$loc.'">'.$loc.'</span></div>';
27
  echo '<div id="csp-langswitcher-toggle"><br/></div>';
28
  if (count($langs) > 1) {
29
- echo '<div id="csp-langoptions" style="width: 92px; display: none;">';
30
  foreach($langs as $lang) {
31
  if ($lang != $loc) {
32
- echo '<a href="javascript:void(0);" class="csp-langoption" hreflang="'.$lang.'"><span class="csp-'.$lang.'">'.$lang.'</span></a>';
33
  }
34
  }
35
  echo '</div>';
20
 
21
  function on_print_dashboard_switcher() {
22
  $langs = wp_native_dashboard_collect_installed_languages();
 
23
  $loc = get_locale();
24
  echo '<div id="csp-langswitcher-actions" class="alignleft">';
25
+ echo '<div id="csp-langswitcher-current"><span class="csp-'.$loc.'">'.wp_native_dashboard_get_name_of($loc).'</span></div>';
26
  echo '<div id="csp-langswitcher-toggle"><br/></div>';
27
  if (count($langs) > 1) {
28
+ echo '<div id="csp-langoptions" style="display: none;">';
29
  foreach($langs as $lang) {
30
  if ($lang != $loc) {
31
+ echo '<a href="javascript:void(0);" class="csp-langoption" hreflang="'.$lang.'"><span class="csp-'.$lang.'">'.wp_native_dashboard_get_name_of($lang).'</span></a>';
32
  }
33
  }
34
  echo '</div>';
language-names.php ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $wpnd_language_names = array(
4
+ 'af' => 'Afrikaans',
5
+ 'ar' => 'العربية/الإمارات',
6
+ 'be' => 'Беларускі',
7
+ 'bg' => 'Български',
8
+ 'by' => 'Беларускі',
9
+ 'ca' => 'Сatalà',
10
+ 'ckb' => 'Kurdi',
11
+ 'cs' => 'Čeština',
12
+ 'da' => 'Dansk',
13
+ 'de' => 'Deutsch',
14
+ 'el' => 'Ελληνικά',
15
+ 'en' => 'English',
16
+ 'eo' => 'Esperanto',
17
+ 'es' => 'Español',
18
+ 'et' => 'Eesti',
19
+ 'eu' => 'Euskara',
20
+ 'fa' => '"فارسی"',
21
+ 'fi' => 'Suomi',
22
+ 'fo' => 'Føroyskt',
23
+ 'fr' => 'Français',
24
+ 'fy' => 'Frysk',
25
+ 'ga' => 'Gaeilge',
26
+ 'he' => 'עברית',
27
+ 'hi' => 'हिन्दी',
28
+ 'hr' => 'Hrvatski',
29
+ 'hu' => 'Magyar',
30
+ 'id' => 'Bahasa',
31
+ 'in' => 'Bahasa',
32
+ 'is' => 'Íslenska',
33
+ 'it' => 'Italiano',
34
+ 'ja' => "日本語",
35
+ 'kk' => 'Қазақша',
36
+ 'ko' => '한국어',
37
+ 'ky' => 'Кыргызча',
38
+ 'lb' => 'Lëtzebuergesch',
39
+ 'lt' => 'Lietuvių',
40
+ 'lv' => 'Latviešu',
41
+ 'mk' => 'Македонски',
42
+ 'nb' => '‪Norsk Bokmål‬',
43
+ 'nl' => 'Nederlands',
44
+ 'nn' => 'Norsk',
45
+ 'pl' => 'Polski',
46
+ 'pt' => 'Português',
47
+ 'ro' => 'Română',
48
+ 'ru' => 'Русский',
49
+ 'sk' => 'Slovenčina',
50
+ 'sl' => 'Slovenščina',
51
+ 'sr' => 'Српски',
52
+ 'sv' => 'Svenska',
53
+ 'th' => 'ไทย/ประเทศไทย',
54
+ 'tl' => 'Tagalog',
55
+ 'tr' => 'Türkçe',
56
+ 'uk' => 'Українська',
57
+ 'vi' => 'Tiếng Việt',
58
+ 'xh' => 'isiXhosa',
59
+ 'zh' => '中文',
60
+ 'zu' => 'isiZulu'
61
+ );
62
+
63
+ ?>
loginselector.php CHANGED
@@ -33,7 +33,7 @@ class wp_native_dashboard_loginselector {
33
  foreach($langs as $lang) {
34
  echo "<option value=\"$lang\"";
35
  if ($loc == $lang) echo ' selected="selected"';
36
- echo ">$lang</option>";
37
  }
38
  ?>
39
  </select>
33
  foreach($langs as $lang) {
34
  echo "<option value=\"$lang\"";
35
  if ($loc == $lang) echo ' selected="selected"';
36
+ echo ">".wp_native_dashboard_get_name_of($lang)."</option>";
37
  }
38
  ?>
39
  </select>
personalprofile.php CHANGED
@@ -34,7 +34,7 @@ class wp_native_dashboard_personalprofile {
34
  foreach($langs as $lang) {
35
  echo "<option value=\"$lang\"";
36
  if ($u->wp_native_dashboard_language == $lang) echo ' selected="selected"';
37
- echo ">$lang</option>";
38
  }
39
  ?>
40
  </select>
34
  foreach($langs as $lang) {
35
  echo "<option value=\"$lang\"";
36
  if ($u->wp_native_dashboard_language == $lang) echo ' selected="selected"';
37
+ echo ">".wp_native_dashboard_get_name_of($lang)."</option>";
38
  }
39
  ?>
40
  </select>
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: codestyling
3
  Tags: wordpress, dashboard, multi-lingual, languages, backend, localization, plugin
4
  Requires at least: 2.7
5
  Tested up to: 2.9-rare
6
- Stable tag: 1.0.1
7
 
8
  Enables selection of administration language either by logon, dashboard quick switcher or user profile setting.
9
 
@@ -19,13 +19,16 @@ Several options can be enabled and also combinations out of:
19
  The plugin also includes a repository scan on demand (svn.automattic.com) for available language file downloads.
20
  You can download the required files into your installation and immediately use them at admin pages.
21
  The new administration page is restricted to administrators only, the profile setting also work for subscriber.
22
- Currently downloads are limit to direct file access at your host and will be deactivated if impossible.
23
 
24
- = Next Steps =
25
 
26
- Upcomming versions will support also those hoster, that have strong permissions and/or safemode environments.
27
- The download of language files will be done like plugin updates (using FTP instead).
28
- If you have a local WordPress community providing their own downloads for language files, please let me know, if you would like to get it integrated it too.
 
 
 
 
29
 
30
  = Requirements =
31
 
@@ -43,6 +46,11 @@ Please visit [the official website](http://www.code-styling.de/english/developme
43
 
44
  == Changelog ==
45
 
 
 
 
 
 
46
  = Version 1.0.1 =
47
  * Forcing jQuery usage even if a backend page (from another plugin eg.) doesn't make use of.
48
  * providing official page link for supporting purpose.
@@ -66,3 +74,4 @@ Please visit [the official website](http://www.code-styling.de/english/developme
66
  1. administration page
67
  1. download scan process
68
  1. full administration page
 
3
  Tags: wordpress, dashboard, multi-lingual, languages, backend, localization, plugin
4
  Requires at least: 2.7
5
  Tested up to: 2.9-rare
6
+ Stable tag: 1.1.0
7
 
8
  Enables selection of administration language either by logon, dashboard quick switcher or user profile setting.
9
 
19
  The plugin also includes a repository scan on demand (svn.automattic.com) for available language file downloads.
20
  You can download the required files into your installation and immediately use them at admin pages.
21
  The new administration page is restricted to administrators only, the profile setting also work for subscriber.
 
22
 
23
+ = Download and File Management =
24
 
25
+ Starting with version 1.1.0 of this plugin it uses now the WordPress build-in file management from core. If the plugin detects, that you are not permitted to write directly to disk, it uses the FTP user credentials for download and remove of language files.
26
+
27
+ = WordPress / WPMU and BuddyPress =
28
+
29
+ If you have a local WordPress community providing their own download repository for language files, please let me know, if you would like to get it integrated.
30
+ Because i didn't found an official language file repository for BuddyPress and WPMU, it currently only permits WordPress language file downloads.
31
+ If you have more specific informations about, please let me know, it's easy to integrate a new download section (also with detection the kind of WP).
32
 
33
  = Requirements =
34
 
46
 
47
  == Changelog ==
48
 
49
+ = Version 1.1.0 =
50
+ * full support of core file system usage (FTP if necessary)
51
+ * locale to language name mapping introduced (user friendly namings)
52
+ * beautyfied some UI states (alternate rows correction after download)
53
+
54
  = Version 1.0.1 =
55
  * Forcing jQuery usage even if a backend page (from another plugin eg.) doesn't make use of.
56
  * providing official page link for supporting purpose.
74
  1. administration page
75
  1. download scan process
76
  1. full administration page
77
+ 1. user credentials required for writing
screenshot-1.png CHANGED
Binary file
screenshot-2.png CHANGED
Binary file
screenshot-3.png CHANGED
Binary file
screenshot-4.png CHANGED
Binary file
screenshot-6.png CHANGED
Binary file
screenshot-7.png ADDED
Binary file
wp-native-dashboard.php CHANGED
@@ -5,7 +5,7 @@ Plugin URI: http://www.code-styling.de/english/development/wordpress-plugin-wp-
5
  Description: You can configure your blog working at administration with different languages depends on users choice and capabilities the admin has been enabled.
6
  Author: Heiko Rabe
7
  Author URI: http://www.code-styling.de/
8
- Version: 1.0.1
9
 
10
  License:
11
  ==============================================================================
@@ -35,13 +35,18 @@ if (!function_exists ('add_action')) {
35
 
36
  if ( !defined('WP_PLUGIN_URL') )
37
  define('WP_PLUGIN_URL', WP_CONTENT_URL.'/plugins');
 
 
 
38
 
 
 
39
  function wp_native_dashboard_collect_installed_languages() {
40
  $installed = array();
41
- $d = @opendir(WP_CONTENT_DIR.'/languages');
42
  if (!$d) return false;
43
  while(false !== ($item = readdir($d))) {
44
- $f = str_replace("\\",'/',WP_CONTENT_DIR.'/languages' . '/' . $item);
45
  if ('.' == $item || '..' == $item)
46
  continue;
47
  if (is_file($f)){
@@ -56,6 +61,13 @@ function wp_native_dashboard_collect_installed_languages() {
56
  return $installed;
57
  }
58
 
 
 
 
 
 
 
 
59
  function wp_native_dashboard_is_rtl_language($locale) {
60
  $rtl = array('ar', 'ckb', 'fa', 'he', 'ur');
61
  return in_array(array_shift(split('_',$locale)), $rtl);
@@ -78,10 +90,10 @@ class wp_native_dashboard {
78
  $this->defaults->cleanup_on_deactivate = false;
79
 
80
  //try to get the options now
81
- $this->options = get_option('wp-native-dashboard', $this->defaults);
82
 
83
  //keep it for later use
84
- $this->plugin_url = WP_PLUGIN_URL.'/'.dirname(plugin_basename(__FILE__));
85
 
86
  //detect the current main version
87
  global $wp_version;
@@ -251,6 +263,7 @@ class wp_native_dashboard {
251
  wp_enqueue_script('common');
252
  wp_enqueue_script('wp-lists');
253
  wp_enqueue_script('postbox');
 
254
 
255
  // enqueue here your scripts/css needed for page or load some additional data
256
  global $text_direction;
@@ -258,6 +271,8 @@ class wp_native_dashboard {
258
  wp_enqueue_style('wp-native-dashboard-css-rtl', $this->plugin_url.'/css/style-rtl.css');
259
  else
260
  wp_enqueue_style('wp-native-dashboard-css', $this->plugin_url.'/css/style.css');
 
 
261
 
262
  //add several metaboxes now, all metaboxes registered during load page can be switched off/on at "Screen Options" automatically, nothing special to do therefore
263
  add_meta_box('wp-native-dashboard-acl', __('Capabilities', 'wp-native-dashboard'), array(&$this, 'on_print_metabox_content_acl'), $this->pagehook, 'normal', 'core');
@@ -287,32 +302,19 @@ class wp_native_dashboard {
287
  $installed = wp_native_dashboard_collect_installed_languages();
288
  ?>
289
  <p><?php _e('Your WordPress installation currectly supports this list of languages at your Dashboard.','wp-native-dashboard'); ?></p>
290
- <?php
291
- //global $wp_filesystem;
292
- //var_dump($wp_filesystem);
293
- //$url = wp_nonce_url('options-general.php?page=wp-native-dashboard');
294
- //var_dump(get_filesystem_method(array()));
295
- //var_dump(request_filesystem_credentials($url));
296
- // wp-admin/includes/plugin.php:412
297
- // wp-admin/includes/file.php:631
298
-
299
- //testing if we are able to use direct file system
300
- //TODO: next version will support also all other types
301
- $can_write_direct = (get_filesystem_method(array()) == 'direct');
302
- ?>
303
  <table id="table_local_i18n" class="widefat fixed" cellspacing="0">
304
  <tbody>
305
  <?php
306
  $state=0;
307
  foreach($installed as $lang) {
308
  $state = ($state + 1) % 2;
309
- $mo = str_replace('\\','/', WP_CONTENT_DIR.'/languages/'.$lang.'.mo');
310
  ?>
311
  <tr id="tr-i18n-installed-<?php echo $lang; ?>" class="<?php if ($state) echo 'alternate'; ?>">
312
- <td><span class="i18n-file csp-<?php echo $lang; ?>"><?php echo $lang; ?></span></td>
313
  <td><?php echo (wp_native_dashboard_is_rtl_language($lang) ? __('right to left', 'wp-native-dashboard') : '&nbsp;'); ?></td>
314
  <td><?php echo (is_file($mo) ? filesize($mo). '&nbsp;Bytes' : '-n.a.-'); ?></td>
315
- <td><?php if($lang != 'en_US' && $can_write_direct) : ?><a class="csp-delete-local-file" href="<?php echo $mo; ?>"><?php _e('Delete','wp-native-dashboard'); ?></a><?php endif; ?></td>
316
  </tr>
317
  <?php
318
  }
@@ -325,12 +327,8 @@ class wp_native_dashboard {
325
  function on_print_metabox_automattic_i18n() {
326
  $color = '#21759B';
327
  $perc = 0.0;
328
- $can_write_direct = (get_filesystem_method(array()) == 'direct');
329
  ?>
330
- <p><?php echo sprintf(__('A lot of languages should be provided by polyglot translation teams as download into your WordPress installation.','wp-native-dashboard'), $revision); ?></p>
331
- <?php if (!$can_write_direct) : ?>
332
- <p class="csp-read-more center"><b><?php _e('Downloads:', 'wp-native-dashboard'); ?></b>&nbsp;<?php _e('Sorry, your installation doesn\'t support direct file access, complete support comming soon.', 'wp-native-dashboard'); ?></p>
333
- <?php else : ?>
334
  <p class="csp-read-more center"><?php _e('Available for download:', 'wp-native-dashboard'); ?> <a id="csp-check-repository" href="#svn"><?php _e('check repository &raquo;','wp-native-dashboard'); ?></a> <span><img src="images/loading.gif" class="ajax-feedback" title="" alt="" /></span></p>
335
  <div id="svn-downloads">
336
  <div class="progressbar" style="display:none;">
@@ -342,7 +340,7 @@ class wp_native_dashboard {
342
  <tbody></tbody>
343
  </table>
344
  </div>
345
- <?php endif;
346
  }
347
 
348
  //executed to show the plugins complete admin page
@@ -383,6 +381,7 @@ class wp_native_dashboard {
383
  </div>
384
  </form>
385
  </div>
 
386
  <script type="text/javascript">
387
  //<![CDATA[
388
  jQuery(document).ready( function($) {
5
  Description: You can configure your blog working at administration with different languages depends on users choice and capabilities the admin has been enabled.
6
  Author: Heiko Rabe
7
  Author URI: http://www.code-styling.de/
8
+ Version: 1.1.0
9
 
10
  License:
11
  ==============================================================================
35
 
36
  if ( !defined('WP_PLUGIN_URL') )
37
  define('WP_PLUGIN_URL', WP_CONTENT_URL.'/plugins');
38
+
39
+ if ( !defined('WP_LANG_DIR') )
40
+ define('WP_LANG_DIR', WP_CONTENT_URL.'/languages');
41
 
42
+ include_once(dirname(__file__).'/language-names.php');
43
+
44
  function wp_native_dashboard_collect_installed_languages() {
45
  $installed = array();
46
+ $d = @opendir(WP_LANG_DIR);
47
  if (!$d) return false;
48
  while(false !== ($item = readdir($d))) {
49
+ $f = str_replace("\\", '/', WP_LANG_DIR.'/' . $item);
50
  if ('.' == $item || '..' == $item)
51
  continue;
52
  if (is_file($f)){
61
  return $installed;
62
  }
63
 
64
+ function wp_native_dashboard_get_name_of($locale) {
65
+ global $wpnd_language_names;
66
+ list($lang,) = explode('_', $locale);
67
+ $name = $wpnd_language_names[$lang];
68
+ return '<b>'.$name .'</b>&nbsp;<i>('.$locale.')</i>';
69
+ }
70
+
71
  function wp_native_dashboard_is_rtl_language($locale) {
72
  $rtl = array('ar', 'ckb', 'fa', 'he', 'ur');
73
  return in_array(array_shift(split('_',$locale)), $rtl);
90
  $this->defaults->cleanup_on_deactivate = false;
91
 
92
  //try to get the options now
93
+ $this->options = get_option('wp-native-dashboard', $this->defaults);
94
 
95
  //keep it for later use
96
+ $this->plugin_url = WP_PLUGIN_URL.'/'.dirname(plugin_basename(__FILE__));
97
 
98
  //detect the current main version
99
  global $wp_version;
263
  wp_enqueue_script('common');
264
  wp_enqueue_script('wp-lists');
265
  wp_enqueue_script('postbox');
266
+ wp_enqueue_script('jquery-ui-dialog');
267
 
268
  // enqueue here your scripts/css needed for page or load some additional data
269
  global $text_direction;
271
  wp_enqueue_style('wp-native-dashboard-css-rtl', $this->plugin_url.'/css/style-rtl.css');
272
  else
273
  wp_enqueue_style('wp-native-dashboard-css', $this->plugin_url.'/css/style.css');
274
+
275
+ wp_enqueue_style('wp-native-dashboard-ui', $this->plugin_url.'/css/ui.all.css');
276
 
277
  //add several metaboxes now, all metaboxes registered during load page can be switched off/on at "Screen Options" automatically, nothing special to do therefore
278
  add_meta_box('wp-native-dashboard-acl', __('Capabilities', 'wp-native-dashboard'), array(&$this, 'on_print_metabox_content_acl'), $this->pagehook, 'normal', 'core');
302
  $installed = wp_native_dashboard_collect_installed_languages();
303
  ?>
304
  <p><?php _e('Your WordPress installation currectly supports this list of languages at your Dashboard.','wp-native-dashboard'); ?></p>
 
 
 
 
 
 
 
 
 
 
 
 
 
305
  <table id="table_local_i18n" class="widefat fixed" cellspacing="0">
306
  <tbody>
307
  <?php
308
  $state=0;
309
  foreach($installed as $lang) {
310
  $state = ($state + 1) % 2;
311
+ $mo = str_replace('\\','/', WP_LANG_DIR.'/'.$lang.'.mo');
312
  ?>
313
  <tr id="tr-i18n-installed-<?php echo $lang; ?>" class="<?php if ($state) echo 'alternate'; ?>">
314
+ <td><span class="i18n-file csp-<?php echo $lang; ?>"><?php echo wp_native_dashboard_get_name_of($lang); ?></span></td>
315
  <td><?php echo (wp_native_dashboard_is_rtl_language($lang) ? __('right to left', 'wp-native-dashboard') : '&nbsp;'); ?></td>
316
  <td><?php echo (is_file($mo) ? filesize($mo). '&nbsp;Bytes' : '-n.a.-'); ?></td>
317
+ <td><?php if($lang != 'en_US') : ?><a class="csp-delete-local-file" href="<?php echo $mo; ?>"><?php _e('Delete','wp-native-dashboard'); ?></a>&nbsp;<span><img src="images/loading.gif" class="ajax-feedback" title="" alt="" /></span><?php endif; ?></td>
318
  </tr>
319
  <?php
320
  }
327
  function on_print_metabox_automattic_i18n() {
328
  $color = '#21759B';
329
  $perc = 0.0;
 
330
  ?>
331
+ <p><?php echo sprintf(__('A lot of languages should be provided by polyglott translation teams as download into your WordPress installation.','wp-native-dashboard'), $revision); ?></p>
 
 
 
332
  <p class="csp-read-more center"><?php _e('Available for download:', 'wp-native-dashboard'); ?> <a id="csp-check-repository" href="#svn"><?php _e('check repository &raquo;','wp-native-dashboard'); ?></a> <span><img src="images/loading.gif" class="ajax-feedback" title="" alt="" /></span></p>
333
  <div id="svn-downloads">
334
  <div class="progressbar" style="display:none;">
340
  <tbody></tbody>
341
  </table>
342
  </div>
343
+ <?php
344
  }
345
 
346
  //executed to show the plugins complete admin page
381
  </div>
382
  </form>
383
  </div>
384
+ <div id="csp-credentials"></div>
385
  <script type="text/javascript">
386
  //<![CDATA[
387
  jQuery(document).ready( function($) {