Broken Link Checker - Version 1.2.2

Version Description

  • All Pro features now included in the free version!
  • Updated Japanese translation.
  • Updated Polish translation.
  • Updated Portuguese translation.
  • Added Romanian translation.
  • Fixed a tab layout bug in IE 7.
  • Fixed UTF-8 characters outside the domain name being encoded incorrectly (may only work with Curl).
  • Fixed a missing translation in email notifications.
  • Fixed a rare "only variables can be returned by reference" notice.
  • Added a donation button and a MaxCDN ad to the Settings page.
  • Added a "Go to Settings" button to the Broken Links page, and a "Go to Broken Links" button to the Settings page.
  • Settings page now looks better on small screens.
  • Email notifications are now enabled by default.
  • "Link status" in the search form no longer defaults to the currently displayed filter/view.
  • Made the "installation failed" message a bit more helpful.
Download this release

Release Info

Developer whiteshadow
Plugin Icon 128x128 Broken Link Checker
Version 1.2.2
Comparing to
See all releases

Code changes from version 0.9.7.2 to 1.2.2

broken-link-checker.php CHANGED
@@ -3,22 +3,20 @@
3
  Plugin Name: Broken Link Checker
4
  Plugin URI: http://w-shadow.com/blog/2007/08/05/broken-link-checker-for-wordpress/
5
  Description: Checks your blog for broken links and missing images and notifies you on the dashboard if any are found.
6
- Version: 0.9.7.2
7
  Author: Janis Elsts
8
  Author URI: http://w-shadow.com/blog/
9
  Text Domain: broken-link-checker
10
  */
11
 
12
- if ( !function_exists('blc_get_plugin_file') ){
13
- /**
14
- * Retrieve the fully qualified filename of BLC's main PHP file.
15
- *
16
- * @return string
17
- */
18
- function blc_get_plugin_file(){
19
- //You'd be surprised on how useful this can be.
20
- return __FILE__;
21
- }
22
  }
23
 
24
  //Load the actual plugin
3
  Plugin Name: Broken Link Checker
4
  Plugin URI: http://w-shadow.com/blog/2007/08/05/broken-link-checker-for-wordpress/
5
  Description: Checks your blog for broken links and missing images and notifies you on the dashboard if any are found.
6
+ Version: 1.2.2
7
  Author: Janis Elsts
8
  Author URI: http://w-shadow.com/blog/
9
  Text Domain: broken-link-checker
10
  */
11
 
12
+ //Path to this file
13
+ if ( !defined('BLC_PLUGIN_FILE') ){
14
+ define('BLC_PLUGIN_FILE', __FILE__);
15
+ }
16
+
17
+ //Path to the plugin's directory
18
+ if ( !defined('BLC_DIRECTORY') ){
19
+ define('BLC_DIRECTORY', dirname(__FILE__));
 
 
20
  }
21
 
22
  //Load the actual plugin
core/core.php CHANGED
@@ -12,7 +12,7 @@ if ( !function_exists( 'microtime_float' ) ) {
12
  }
13
 
14
  require BLC_DIRECTORY . '/includes/screen-options/screen-options.php';
15
- require BLC_DIRECTORY . '/includes/survey.php';
16
 
17
  if (!class_exists('wsBrokenLinkChecker')) {
18
 
@@ -214,48 +214,29 @@ class wsBrokenLinkChecker {
214
  wp_enqueue_script('jquery-ui-core'); //Used for background color animation
215
  wp_enqueue_script('jquery-ui-dialog');
216
  wp_enqueue_script('jquery-ui-tabs');
217
- wp_enqueue_script('jquery-cookie', plugins_url('js/jquery.cookie.js', blc_get_plugin_file())); //Used for storing last widget states, etc
218
  }
219
 
220
  function enqueue_link_page_scripts(){
221
  wp_enqueue_script('jquery-ui-core'); //Used for background color animation
222
  wp_enqueue_script('jquery-ui-dialog'); //Used for the search form
223
- wp_enqueue_script('sprintf', plugins_url('js/sprintf.js', blc_get_plugin_file())); //Used in error messages
224
  }
225
 
226
  /**
227
- * Output the JavaScript that adds the "Feedback" widget to screen meta.
228
  *
229
  * @return void
230
  */
231
- function print_uservoice_widget(){
232
  ?>
233
  <script type="text/javascript">
234
- (function($){
235
- $('#screen-meta-links').append(
236
- '<div id="blc-feedback-widget-wrap" class="hide-if-no-js screen-meta-toggle">' +
237
- '<a href="#" id="blc-feedback-widget" class="show-settings">Feedback</a>' +
238
- '</div>'
239
- );
240
-
241
- $('#blc-feedback-widget').click(function(){
242
  //Launch UserVoice
243
  UserVoice.Popin.show(uservoiceOptions);
244
  return false;
245
  });
246
- })(jQuery);
247
- </script>
248
- <?php
249
- }
250
-
251
- /**
252
- * Load the UserVoice script for use with the "Feedback" widget
253
- *
254
- * @return void
255
- */
256
- function uservoice_widget(){
257
- ?>
258
- <script type="text/javascript">
259
  var uservoiceOptions = {
260
  key: 'whiteshadow',
261
  host: 'feedback.w-shadow.com',
@@ -374,9 +355,33 @@ class wsBrokenLinkChecker {
374
  add_action( 'admin_print_scripts-' . $options_page_hook, array(&$this, 'enqueue_settings_scripts') );
375
  add_action( 'admin_print_scripts-' . $links_page_hook, array(&$this, 'enqueue_link_page_scripts') );
376
 
377
- //Add the UserVoice widget to the plugin's pages
 
 
 
 
 
 
 
 
378
  add_action( 'admin_footer-' . $options_page_hook, array(&$this, 'uservoice_widget') );
379
  add_action( 'admin_footer-' . $links_page_hook, array(&$this, 'uservoice_widget') );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
380
  }
381
 
382
  /**
@@ -545,6 +550,12 @@ class wsBrokenLinkChecker {
545
 
546
  }
547
 
 
 
 
 
 
 
548
  //Show one when recheck is started, too.
549
  if ( !empty($_GET['recheck-initiated']) ){
550
  echo '<div id="message" class="updated fade"><p><strong>',
@@ -555,11 +566,6 @@ class wsBrokenLinkChecker {
555
  //Cull invalid and missing modules
556
  $moduleManager->validate_active_modules();
557
 
558
- //Output the "Feedback" button that links to the plugin's UserVoice forum
559
- $this->print_uservoice_widget();
560
- //Output the "Upgrade to Pro" button
561
- $this->display_pro_link();
562
-
563
  $debug = $this->get_debug_info();
564
 
565
  $details_text = __('Details', 'broken-link-checker');
@@ -584,7 +590,28 @@ class wsBrokenLinkChecker {
584
  );
585
  ?>
586
 
587
- <div class="wrap"><?php screen_icon(); ?><h2><?php _e('Broken Link Checker Options', 'broken-link-checker'); ?></h2>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
588
 
589
  <form name="link_checker_options" id="link_checker_options" method="post" action="<?php
590
  echo admin_url('options-general.php?page=link-checker-settings&noheader=1');
@@ -598,7 +625,13 @@ class wsBrokenLinkChecker {
598
  <ul class="hide-if-no-js">
599
  <?php
600
  foreach($section_names as $section_id => $section_name){
601
- printf('<li><a href="#section-%s">%s</a></li>', esc_attr($section_id), $section_name);
 
 
 
 
 
 
602
  }
603
  ?>
604
  </ul>
@@ -1012,8 +1045,14 @@ class wsBrokenLinkChecker {
1012
 
1013
  <p class="submit"><input type="submit" name="submit" class='button-primary' value="<?php _e('Save Changes') ?>" /></p>
1014
  </form>
 
 
 
 
1015
  </div>
1016
 
 
 
1017
  <?php
1018
  //The various JS for this page is stored in a separate file for the purposes readability.
1019
  include dirname($this->loader) . '/includes/admin/options-page-js.php';
@@ -1096,12 +1135,6 @@ class wsBrokenLinkChecker {
1096
  $label_class = '';
1097
  $active = $active || $module_data['ModuleAlwaysActive'];
1098
 
1099
- if ( $module_data['ModuleRequiresPro'] && !defined('BLC_PRO_VERSION') ){
1100
- $active = false;
1101
- $disabled = true;
1102
- $label_class .= ' module-requires-pro';
1103
- }
1104
-
1105
  if ( $module_data['ModuleAlwaysActive'] ){
1106
  $disabled = true;
1107
  $name_prefix = 'module-always-active';
@@ -1112,23 +1145,16 @@ class wsBrokenLinkChecker {
1112
  $checked .= ' disabled="disabled"';
1113
  }
1114
 
1115
- $pro_notice = sprintf(
1116
- '<span class="pro-notice"><a href="%s" title="%s">Pro</a></span>',
1117
- esc_attr('http://wpplugins.com/plugin/173/broken-link-checker-pro'),
1118
- esc_attr(__('Upgrade to Pro to enable this feature', 'broken-link-checker'))
1119
- );
1120
-
1121
  printf(
1122
  '<label class="%s">
1123
- <input type="checkbox" name="%s[%s]" id="module-checkbox-%s"%s /> %s %s
1124
  </label>',
1125
  esc_attr($label_class),
1126
  $name_prefix,
1127
  esc_attr($module_id),
1128
  esc_attr($module_id),
1129
  $checked,
1130
- $module_data['Name'],
1131
- ($module_data['ModuleRequiresPro'] && !defined('BLC_PRO_VERSION')) ? $pro_notice : ''
1132
  );
1133
 
1134
  if ( $module_data['ModuleAlwaysActive'] ){
@@ -1166,8 +1192,8 @@ class wsBrokenLinkChecker {
1166
  * @return void
1167
  */
1168
  function options_page_css(){
1169
- wp_enqueue_style('blc-options-page', plugins_url('css/options-page.css', blc_get_plugin_file()), array(), '0.9.6' );
1170
- wp_enqueue_style('blc-screen-meta-links', plugins_url('css/screen-meta-links.css', blc_get_plugin_file()), array(), '0.9.6' );
1171
  }
1172
 
1173
 
@@ -1287,10 +1313,8 @@ class wsBrokenLinkChecker {
1287
  printf( __('Database error : %s', 'broken-link-checker'), $wpdb->last_error);
1288
  }
1289
 
1290
- //Add "Feedback", "Upgrade to Pro" and an optional "[Plugin news]" button to screen meta
1291
- $this->print_uservoice_widget();
1292
  $this->display_plugin_news_link();
1293
- $this->display_pro_link();
1294
  ?>
1295
 
1296
  <script type='text/javascript'>
@@ -1862,7 +1886,6 @@ class wsBrokenLinkChecker {
1862
  */
1863
  function links_page_css(){
1864
  wp_enqueue_style('blc-links-page', plugins_url('css/links-page.css', $this->loader), array(), '0.9.6' );
1865
- wp_enqueue_style('blc-screen-meta-links', plugins_url('css/screen-meta-links.css', blc_get_plugin_file()), array(), '0.9.5' );
1866
  }
1867
 
1868
  /**
@@ -2124,7 +2147,7 @@ class wsBrokenLinkChecker {
2124
  /*****************************************
2125
  Check links
2126
  ******************************************/
2127
- while ( $links = $this->get_links_to_check(50) ){
2128
 
2129
  //Some unchecked links found
2130
  //FB::log("Checking ".count($links)." link(s)");
@@ -2665,8 +2688,8 @@ class wsBrokenLinkChecker {
2665
  }
2666
 
2667
  //Try the plugin's own directory.
2668
- if ( @is_writable( dirname( blc_get_plugin_file() ) ) ){
2669
- return dirname( blc_get_plugin_file() ) . '/wp_blc_lock';
2670
  } else {
2671
 
2672
  //Try the system-wide temp directory
@@ -2722,7 +2745,7 @@ class wsBrokenLinkChecker {
2722
  }
2723
 
2724
  function lockfile_warning(){
2725
- $my_dir = '/plugins/' . basename(dirname(blc_get_plugin_file())) . '/';
2726
  $settings_page = admin_url( 'options-general.php?page=link-checker-settings#lockfile_directory' );
2727
 
2728
  //Make the notice customized to the current settings
@@ -3014,7 +3037,7 @@ class wsBrokenLinkChecker {
3014
  }
3015
 
3016
  //Add a link to the "Broken Links" tab.
3017
- $body .= __("You can see all broken links here:", 'brokenk-link-checker') . "<br>";
3018
  $link_page = admin_url('tools.php?page=view-broken-links');
3019
  $body .= sprintf('<a href="%1$s">%1$s</a>', $link_page);
3020
 
@@ -3095,12 +3118,7 @@ class wsBrokenLinkChecker {
3095
  * @return void
3096
  */
3097
  function check_news(){
3098
- $url = 'http://w-shadow.com/plugin-news/';
3099
- if ( defined('BLC_PRO_VERSION') && BLC_PRO_VERSION ){
3100
- $url .= 'broken-link-checker-pro-news.txt';
3101
- } else {
3102
- $url .= 'broken-link-checker-news.txt';
3103
- }
3104
 
3105
  //Retrieve the appropriate "news" file
3106
  $res = wp_remote_get($url);
@@ -3145,28 +3163,6 @@ class wsBrokenLinkChecker {
3145
  <?php
3146
  }
3147
 
3148
- /**
3149
- * Display the "Upgrade to Pro" button unless already running the Pro version
3150
- *
3151
- * @return void
3152
- */
3153
- function display_pro_link(){
3154
- if ( defined('BLC_PRO_VERSION') && BLC_PRO_VERSION ){
3155
- return;
3156
- }
3157
- ?>
3158
- <script type="text/javascript">
3159
- (function($){
3160
- var wrapper = $('<div id="blc-upgrade-to-pro-wrap" class="hide-if-no-js screen-meta-toggle blc-meta-button"></div>').appendTo('#screen-meta-links');
3161
- $('<a id="blc-upgrade-to-pro-link" class="show-settings"></a>')
3162
- .attr('href', 'http://wpplugins.com/plugin/173/broken-link-checker-pro')
3163
- .html('Upgrade to Pro')
3164
- .appendTo(wrapper);
3165
- })(jQuery);
3166
- </script>
3167
- <?php
3168
- }
3169
-
3170
  }//class ends here
3171
 
3172
  } // if class_exists...
12
  }
13
 
14
  require BLC_DIRECTORY . '/includes/screen-options/screen-options.php';
15
+ require BLC_DIRECTORY . '/includes/screen-meta-links.php';
16
 
17
  if (!class_exists('wsBrokenLinkChecker')) {
18
 
214
  wp_enqueue_script('jquery-ui-core'); //Used for background color animation
215
  wp_enqueue_script('jquery-ui-dialog');
216
  wp_enqueue_script('jquery-ui-tabs');
217
+ wp_enqueue_script('jquery-cookie', plugins_url('js/jquery.cookie.js', BLC_PLUGIN_FILE)); //Used for storing last widget states, etc
218
  }
219
 
220
  function enqueue_link_page_scripts(){
221
  wp_enqueue_script('jquery-ui-core'); //Used for background color animation
222
  wp_enqueue_script('jquery-ui-dialog'); //Used for the search form
223
+ wp_enqueue_script('sprintf', plugins_url('js/sprintf.js', BLC_PLUGIN_FILE)); //Used in error messages
224
  }
225
 
226
  /**
227
+ * Load the UserVoice script for use with the "Feedback" widget
228
  *
229
  * @return void
230
  */
231
+ function uservoice_widget(){
232
  ?>
233
  <script type="text/javascript">
234
+ jQuery('#blc-feedback-widget').click(function(){
 
 
 
 
 
 
 
235
  //Launch UserVoice
236
  UserVoice.Popin.show(uservoiceOptions);
237
  return false;
238
  });
239
+
 
 
 
 
 
 
 
 
 
 
 
 
240
  var uservoiceOptions = {
241
  key: 'whiteshadow',
242
  host: 'feedback.w-shadow.com',
355
  add_action( 'admin_print_scripts-' . $options_page_hook, array(&$this, 'enqueue_settings_scripts') );
356
  add_action( 'admin_print_scripts-' . $links_page_hook, array(&$this, 'enqueue_link_page_scripts') );
357
 
358
+ //Add a "Feedback" button that links to the plugin's UserVoice forum
359
+ add_screen_meta_link(
360
+ 'blc-feedback-widget',
361
+ __('Feedback', 'broken-link-checker'),
362
+ '#',
363
+ array($options_page_hook, $links_page_hook)
364
+ );
365
+
366
+ //Add the supporting UserVoice-invocation code
367
  add_action( 'admin_footer-' . $options_page_hook, array(&$this, 'uservoice_widget') );
368
  add_action( 'admin_footer-' . $links_page_hook, array(&$this, 'uservoice_widget') );
369
+
370
+ //Make the Settings page link to the link list, and vice versa
371
+ add_screen_meta_link(
372
+ 'blc-settings-link',
373
+ __('Go to Settings', 'broken-link-checker'),
374
+ admin_url('options-general.php?page=link-checker-settings'),
375
+ $links_page_hook,
376
+ array('style' => 'font-weight: bold;')
377
+ );
378
+ add_screen_meta_link(
379
+ 'blc-links-page-link',
380
+ __('Go to Broken Links', 'broken-link-checker'),
381
+ admin_url('tools.php?page=view-broken-links'),
382
+ $options_page_hook,
383
+ array('style' => 'font-weight: bold;')
384
+ );
385
  }
386
 
387
  /**
550
 
551
  }
552
 
553
+ //Show a thank-you message when a donation is made.
554
+ if ( !empty($_GET['donated']) ){
555
+ echo '<div id="message" class="updated fade"><p><strong>',__('Thank you for your donation!', 'broken-link-checker'), '</strong></p></div>';
556
+
557
+ }
558
+
559
  //Show one when recheck is started, too.
560
  if ( !empty($_GET['recheck-initiated']) ){
561
  echo '<div id="message" class="updated fade"><p><strong>',
566
  //Cull invalid and missing modules
567
  $moduleManager->validate_active_modules();
568
 
 
 
 
 
 
569
  $debug = $this->get_debug_info();
570
 
571
  $details_text = __('Details', 'broken-link-checker');
590
  );
591
  ?>
592
 
593
+ <!--[if lte IE 7]>
594
+ <style type="text/css">
595
+ /* Simulate inline-block in IE7 */
596
+ ul.ui-tabs-nav li {
597
+ display: inline;
598
+ zoom: 1;
599
+ }
600
+ </style>
601
+ <![endif]-->
602
+
603
+ <div class="wrap" id="blc-settings-wrap">
604
+ <?php screen_icon(); ?><h2><?php _e('Broken Link Checker Options', 'broken-link-checker'); ?></h2>
605
+
606
+
607
+ <div id="blc-sidebar">
608
+ <div class="metabox-holder">
609
+ <?php include BLC_DIRECTORY . '/includes/admin/sidebar.php'; ?>
610
+ </div>
611
+ </div>
612
+
613
+
614
+ <div id="blc-admin-content">
615
 
616
  <form name="link_checker_options" id="link_checker_options" method="post" action="<?php
617
  echo admin_url('options-general.php?page=link-checker-settings&noheader=1');
625
  <ul class="hide-if-no-js">
626
  <?php
627
  foreach($section_names as $section_id => $section_name){
628
+ printf(
629
+ '<li id="tab-button-%s"><a href="#section-%s" title="%s">%s</a></li>',
630
+ esc_attr($section_id),
631
+ esc_attr($section_id),
632
+ esc_attr($section_name),
633
+ $section_name
634
+ );
635
  }
636
  ?>
637
  </ul>
1045
 
1046
  <p class="submit"><input type="submit" name="submit" class='button-primary' value="<?php _e('Save Changes') ?>" /></p>
1047
  </form>
1048
+
1049
+ </div> <!-- First postbox-container -->
1050
+
1051
+
1052
  </div>
1053
 
1054
+
1055
+
1056
  <?php
1057
  //The various JS for this page is stored in a separate file for the purposes readability.
1058
  include dirname($this->loader) . '/includes/admin/options-page-js.php';
1135
  $label_class = '';
1136
  $active = $active || $module_data['ModuleAlwaysActive'];
1137
 
 
 
 
 
 
 
1138
  if ( $module_data['ModuleAlwaysActive'] ){
1139
  $disabled = true;
1140
  $name_prefix = 'module-always-active';
1145
  $checked .= ' disabled="disabled"';
1146
  }
1147
 
 
 
 
 
 
 
1148
  printf(
1149
  '<label class="%s">
1150
+ <input type="checkbox" name="%s[%s]" id="module-checkbox-%s"%s /> %s
1151
  </label>',
1152
  esc_attr($label_class),
1153
  $name_prefix,
1154
  esc_attr($module_id),
1155
  esc_attr($module_id),
1156
  $checked,
1157
+ $module_data['Name']
 
1158
  );
1159
 
1160
  if ( $module_data['ModuleAlwaysActive'] ){
1192
  * @return void
1193
  */
1194
  function options_page_css(){
1195
+ wp_enqueue_style('blc-options-page', plugins_url('css/options-page.css', BLC_PLUGIN_FILE), array(), '0.9.6' );
1196
+ wp_enqueue_style('dashboard');
1197
  }
1198
 
1199
 
1313
  printf( __('Database error : %s', 'broken-link-checker'), $wpdb->last_error);
1314
  }
1315
 
1316
+ //Add an optional "[Plugin news]" button to screen meta
 
1317
  $this->display_plugin_news_link();
 
1318
  ?>
1319
 
1320
  <script type='text/javascript'>
1886
  */
1887
  function links_page_css(){
1888
  wp_enqueue_style('blc-links-page', plugins_url('css/links-page.css', $this->loader), array(), '0.9.6' );
 
1889
  }
1890
 
1891
  /**
2147
  /*****************************************
2148
  Check links
2149
  ******************************************/
2150
+ while ( $links = $this->get_links_to_check(30) ){
2151
 
2152
  //Some unchecked links found
2153
  //FB::log("Checking ".count($links)." link(s)");
2688
  }
2689
 
2690
  //Try the plugin's own directory.
2691
+ if ( @is_writable( BLC_DIRECTORY ) ){
2692
+ return BLC_DIRECTORY . '/wp_blc_lock';
2693
  } else {
2694
 
2695
  //Try the system-wide temp directory
2745
  }
2746
 
2747
  function lockfile_warning(){
2748
+ $my_dir = '/plugins/' . basename(BLC_DIRECTORY) . '/';
2749
  $settings_page = admin_url( 'options-general.php?page=link-checker-settings#lockfile_directory' );
2750
 
2751
  //Make the notice customized to the current settings
3037
  }
3038
 
3039
  //Add a link to the "Broken Links" tab.
3040
+ $body .= __("You can see all broken links here:", 'broken-link-checker') . "<br>";
3041
  $link_page = admin_url('tools.php?page=view-broken-links');
3042
  $body .= sprintf('<a href="%1$s">%1$s</a>', $link_page);
3043
 
3118
  * @return void
3119
  */
3120
  function check_news(){
3121
+ $url = 'http://w-shadow.com/plugin-news/broken-link-checker-news.txt';
 
 
 
 
 
3122
 
3123
  //Retrieve the appropriate "news" file
3124
  $res = wp_remote_get($url);
3163
  <?php
3164
  }
3165
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3166
  }//class ends here
3167
 
3168
  } // if class_exists...
core/init.php CHANGED
@@ -46,9 +46,6 @@ define('BLC_FOR_EDITING', 'edit');
46
  define('BLC_FOR_PARSING', 'parse');
47
  define('BLC_FOR_DISPLAY', 'display');
48
 
49
- //Path to the plugin's directory
50
- define('BLC_DIRECTORY', dirname(blc_get_plugin_file()));
51
-
52
  /***********************************************
53
  Configuration
54
  ************************************************/
@@ -80,7 +77,7 @@ $blc_config_manager = new blcConfigurationManager(
80
 
81
  'exclusion_list' => array(), //Links that contain a substring listed in this array won't be checked.
82
 
83
- 'send_email_notifications' => false,//Whether to send email notifications about broken links
84
  'notification_schedule' => 'daily', //How often (at most) notifications will be sent. Possible values : 'daily', 'weekly'
85
  'last_notification_sent' => 0, //When the last email notification was send (Unix timestamp)
86
 
@@ -256,7 +253,7 @@ add_filter('cron_schedules', 'blc_cron_schedules');
256
  function blc_activation_hook(){
257
  require BLC_DIRECTORY . '/includes/activation.php';
258
  }
259
- register_activation_hook(plugin_basename(blc_get_plugin_file()), 'blc_activation_hook');
260
 
261
  //Load the plugin if installed successfully
262
  if ( $blc_config_manager->options['installation_complete'] ){
@@ -285,7 +282,7 @@ if ( $blc_config_manager->options['installation_complete'] ){
285
 
286
  //It's an admin-side or Cron request. Load the core.
287
  require BLC_DIRECTORY . '/core/core.php';
288
- $ws_link_checker = new wsBrokenLinkChecker( blc_get_plugin_file() , $blc_config_manager );
289
 
290
  } else {
291
 
@@ -304,9 +301,12 @@ if ( $blc_config_manager->options['installation_complete'] ){
304
  } else {
305
  //Display installation errors (if any) on the Dashboard.
306
  function blc_print_installation_errors(){
 
 
 
307
  $logger = new blcCachedOptionLogger('blc_installation_log');
308
  $messages = array_merge(
309
- array('<strong>' . __('Broken Link Checker installation failed', 'broken-link-checker') . '</strong>', '', '<em>Installation log follows :</em>'),
310
  $logger->get_messages()
311
  );
312
  echo "<div class='error'><p>", implode("<br>\n", $messages), "</p></div>";
46
  define('BLC_FOR_PARSING', 'parse');
47
  define('BLC_FOR_DISPLAY', 'display');
48
 
 
 
 
49
  /***********************************************
50
  Configuration
51
  ************************************************/
77
 
78
  'exclusion_list' => array(), //Links that contain a substring listed in this array won't be checked.
79
 
80
+ 'send_email_notifications' => true, //Whether to send email notifications about broken links
81
  'notification_schedule' => 'daily', //How often (at most) notifications will be sent. Possible values : 'daily', 'weekly'
82
  'last_notification_sent' => 0, //When the last email notification was send (Unix timestamp)
83
 
253
  function blc_activation_hook(){
254
  require BLC_DIRECTORY . '/includes/activation.php';
255
  }
256
+ register_activation_hook(plugin_basename(BLC_PLUGIN_FILE), 'blc_activation_hook');
257
 
258
  //Load the plugin if installed successfully
259
  if ( $blc_config_manager->options['installation_complete'] ){
282
 
283
  //It's an admin-side or Cron request. Load the core.
284
  require BLC_DIRECTORY . '/core/core.php';
285
+ $ws_link_checker = new wsBrokenLinkChecker( BLC_PLUGIN_FILE, $blc_config_manager );
286
 
287
  } else {
288
 
301
  } else {
302
  //Display installation errors (if any) on the Dashboard.
303
  function blc_print_installation_errors(){
304
+ if ( $blc_config_manager->options['installation_complete'] ) {
305
+ return;
306
+ }
307
  $logger = new blcCachedOptionLogger('blc_installation_log');
308
  $messages = array_merge(
309
+ array('<strong>' . __('Broken Link Checker installation failed. Try deactivating and then reactivating the plugin.', 'broken-link-checker') . '</strong>', '', '<em>Installation log follows :</em>'),
310
  $logger->get_messages()
311
  );
312
  echo "<div class='error'><p>", implode("<br>\n", $messages), "</p></div>";
css/options-page.css CHANGED
@@ -1,3 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  #blc-debug-info-toggle {
2
  font-size: smaller;
3
  }
@@ -67,6 +101,10 @@
67
  ul.ui-tabs-nav {
68
  margin-bottom: -1px;
69
  padding-left: 1.5em;
 
 
 
 
70
  }
71
 
72
  ul.ui-tabs-nav li {
@@ -88,6 +126,14 @@ ul.ui-tabs-nav li {
88
 
89
  font-weight: bold;
90
  text-shadow: 0 1px 0 #FFFFFF;
 
 
 
 
 
 
 
 
91
  }
92
 
93
  ul.ui-tabs-nav li.ui-tabs-selected {
@@ -98,14 +144,14 @@ ul.ui-tabs-nav li.ui-tabs-selected {
98
 
99
  ul.ui-tabs-nav li a {
100
  display: inline-block;
101
- padding: 0.5em 1em 0.6em 1em;
102
  text-decoration: none;
103
  color: #C1C1C1;
 
104
  }
105
 
106
  ul.ui-tabs-nav li.ui-tabs-selected a {
107
  color: black;
108
- }
109
 
110
  /* Tab panels */
111
 
@@ -142,4 +188,10 @@ ul.ui-tabs-nav li.ui-tabs-selected a {
142
 
143
  .pro-notice a {
144
  font-style: italic;
 
 
 
 
 
 
145
  }
1
+ #blc-sidebar {
2
+ clear: right;
3
+ float: right;
4
+ position: relative;
5
+ width: 255px;
6
+ }
7
+
8
+ #blc-admin-content {
9
+ clear: left;
10
+ float: left;
11
+ margin-right: -275px;
12
+ width: 100%;
13
+ }
14
+
15
+ #blc-admin-content > * {
16
+ margin-right: 267px;
17
+ }
18
+
19
+ #donate {
20
+ border-color: green !important;
21
+ border-width: 2px;
22
+ }
23
+
24
+ #donate h3 {
25
+ color: green;
26
+ }
27
+
28
+
29
+ #link_checker_options .form-table th {
30
+ width: 25%;
31
+ min-width: 110px;
32
+ max-width: 200px;
33
+ }
34
+
35
  #blc-debug-info-toggle {
36
  font-size: smaller;
37
  }
101
  ul.ui-tabs-nav {
102
  margin-bottom: -1px;
103
  padding-left: 1.5em;
104
+
105
+ overflow: hidden;
106
+ white-space: nowrap;
107
+ padding-right: 3.5em;
108
  }
109
 
110
  ul.ui-tabs-nav li {
126
 
127
  font-weight: bold;
128
  text-shadow: 0 1px 0 #FFFFFF;
129
+
130
+ max-width: 20%;
131
+ overflow: hidden;
132
+ text-align: center;
133
+ }
134
+
135
+ #tab-button-which {
136
+ max-width: 25%;
137
  }
138
 
139
  ul.ui-tabs-nav li.ui-tabs-selected {
144
 
145
  ul.ui-tabs-nav li a {
146
  display: inline-block;
 
147
  text-decoration: none;
148
  color: #C1C1C1;
149
+ padding: 0.5em 1em 0.6em 1em;
150
  }
151
 
152
  ul.ui-tabs-nav li.ui-tabs-selected a {
153
  color: black;
154
+ }
155
 
156
  /* Tab panels */
157
 
188
 
189
  .pro-notice a {
190
  font-style: italic;
191
+ }
192
+
193
+ /* Right sidebar */
194
+
195
+ #blc-settings-wrap .hndle {
196
+ cursor: default;
197
  }
css/screen-meta-links.css DELETED
@@ -1,49 +0,0 @@
1
- #blc-feedback-widget-wrap,
2
- #blc-news-link-wrap,
3
- .blc-meta-button
4
- {
5
- float: right;
6
- height: 22px;
7
- padding: 0;
8
- margin: 0 6px 0 0;
9
- font-family: "Lucida Grande", Verdana, Arial, "Bitstream Vera Sans", sans-serif;
10
- background: #e3e3e3; /* original gray */
11
- /*background-color: #D2EFB3;*/ /* pastel green */
12
- /*background-color: #BFE2FF;*/ /* light blue */
13
- /* background-color: #FF9F2F; */ /* UserVoice orange */
14
- /* background-color: #FFB64F; */ /* different orange */
15
-
16
- border-bottom-left-radius: 3px;
17
- border-bottom-right-radius: 3px;
18
- -moz-border-radius-bottomleft: 3px;
19
- -moz-border-radius-bottomright: 3px;
20
- -webkit-border-bottom-left-radius: 3px;
21
- -webkit-border-bottom-right-radius: 3px;
22
- }
23
-
24
- #blc-feedback-widget-wrap a.show-settings,
25
- #blc-news-link-wrap a.show-settings,
26
- #screen-meta .blc-meta-button a.show-settings
27
- {
28
- background-image: none;
29
- padding:0 6px 0 6px;
30
- }
31
-
32
- #blc-feedback-widget-wrap a.show-settings {
33
- font-weight: bold;
34
- }
35
-
36
- /* "Upgrade to Pro" button */
37
- #blc-upgrade-to-pro-wrap {
38
- background-color: #FFB64F !important;
39
- }
40
-
41
- #blc-upgrade-to-pro-wrap a.show-settings {
42
- font-weight: bold;
43
- color: white !important;
44
- text-shadow: none !important;
45
- }
46
-
47
- #blc-upgrade-to-pro-wrap a.show-settings:hover {
48
- color: black !important;
49
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
idn/LICENCE ADDED
@@ -0,0 +1,502 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU LESSER GENERAL PUBLIC LICENSE
2
+ Version 2.1, February 1999
3
+
4
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
5
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ [This is the first released version of the Lesser GPL. It also counts
10
+ as the successor of the GNU Library Public License, version 2, hence
11
+ the version number 2.1.]
12
+
13
+ Preamble
14
+
15
+ The licenses for most software are designed to take away your
16
+ freedom to share and change it. By contrast, the GNU General Public
17
+ Licenses are intended to guarantee your freedom to share and change
18
+ free software--to make sure the software is free for all its users.
19
+
20
+ This license, the Lesser General Public License, applies to some
21
+ specially designated software packages--typically libraries--of the
22
+ Free Software Foundation and other authors who decide to use it. You
23
+ can use it too, but we suggest you first think carefully about whether
24
+ this license or the ordinary General Public License is the better
25
+ strategy to use in any particular case, based on the explanations below.
26
+
27
+ When we speak of free software, we are referring to freedom of use,
28
+ not price. Our General Public Licenses are designed to make sure that
29
+ you have the freedom to distribute copies of free software (and charge
30
+ for this service if you wish); that you receive source code or can get
31
+ it if you want it; that you can change the software and use pieces of
32
+ it in new free programs; and that you are informed that you can do
33
+ these things.
34
+
35
+ To protect your rights, we need to make restrictions that forbid
36
+ distributors to deny you these rights or to ask you to surrender these
37
+ rights. These restrictions translate to certain responsibilities for
38
+ you if you distribute copies of the library or if you modify it.
39
+
40
+ For example, if you distribute copies of the library, whether gratis
41
+ or for a fee, you must give the recipients all the rights that we gave
42
+ you. You must make sure that they, too, receive or can get the source
43
+ code. If you link other code with the library, you must provide
44
+ complete object files to the recipients, so that they can relink them
45
+ with the library after making changes to the library and recompiling
46
+ it. And you must show them these terms so they know their rights.
47
+
48
+ We protect your rights with a two-step method: (1) we copyright the
49
+ library, and (2) we offer you this license, which gives you legal
50
+ permission to copy, distribute and/or modify the library.
51
+
52
+ To protect each distributor, we want to make it very clear that
53
+ there is no warranty for the free library. Also, if the library is
54
+ modified by someone else and passed on, the recipients should know
55
+ that what they have is not the original version, so that the original
56
+ author's reputation will not be affected by problems that might be
57
+ introduced by others.
58
+
59
+ Finally, software patents pose a constant threat to the existence of
60
+ any free program. We wish to make sure that a company cannot
61
+ effectively restrict the users of a free program by obtaining a
62
+ restrictive license from a patent holder. Therefore, we insist that
63
+ any patent license obtained for a version of the library must be
64
+ consistent with the full freedom of use specified in this license.
65
+
66
+ Most GNU software, including some libraries, is covered by the
67
+ ordinary GNU General Public License. This license, the GNU Lesser
68
+ General Public License, applies to certain designated libraries, and
69
+ is quite different from the ordinary General Public License. We use
70
+ this license for certain libraries in order to permit linking those
71
+ libraries into non-free programs.
72
+
73
+ When a program is linked with a library, whether statically or using
74
+ a shared library, the combination of the two is legally speaking a
75
+ combined work, a derivative of the original library. The ordinary
76
+ General Public License therefore permits such linking only if the
77
+ entire combination fits its criteria of freedom. The Lesser General
78
+ Public License permits more lax criteria for linking other code with
79
+ the library.
80
+
81
+ We call this license the "Lesser" General Public License because it
82
+ does Less to protect the user's freedom than the ordinary General
83
+ Public License. It also provides other free software developers Less
84
+ of an advantage over competing non-free programs. These disadvantages
85
+ are the reason we use the ordinary General Public License for many
86
+ libraries. However, the Lesser license provides advantages in certain
87
+ special circumstances.
88
+
89
+ For example, on rare occasions, there may be a special need to
90
+ encourage the widest possible use of a certain library, so that it becomes
91
+ a de-facto standard. To achieve this, non-free programs must be
92
+ allowed to use the library. A more frequent case is that a free
93
+ library does the same job as widely used non-free libraries. In this
94
+ case, there is little to gain by limiting the free library to free
95
+ software only, so we use the Lesser General Public License.
96
+
97
+ In other cases, permission to use a particular library in non-free
98
+ programs enables a greater number of people to use a large body of
99
+ free software. For example, permission to use the GNU C Library in
100
+ non-free programs enables many more people to use the whole GNU
101
+ operating system, as well as its variant, the GNU/Linux operating
102
+ system.
103
+
104
+ Although the Lesser General Public License is Less protective of the
105
+ users' freedom, it does ensure that the user of a program that is
106
+ linked with the Library has the freedom and the wherewithal to run
107
+ that program using a modified version of the Library.
108
+
109
+ The precise terms and conditions for copying, distribution and
110
+ modification follow. Pay close attention to the difference between a
111
+ "work based on the library" and a "work that uses the library". The
112
+ former contains code derived from the library, whereas the latter must
113
+ be combined with the library in order to run.
114
+
115
+ GNU LESSER GENERAL PUBLIC LICENSE
116
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
117
+
118
+ 0. This License Agreement applies to any software library or other
119
+ program which contains a notice placed by the copyright holder or
120
+ other authorized party saying it may be distributed under the terms of
121
+ this Lesser General Public License (also called "this License").
122
+ Each licensee is addressed as "you".
123
+
124
+ A "library" means a collection of software functions and/or data
125
+ prepared so as to be conveniently linked with application programs
126
+ (which use some of those functions and data) to form executables.
127
+
128
+ The "Library", below, refers to any such software library or work
129
+ which has been distributed under these terms. A "work based on the
130
+ Library" means either the Library or any derivative work under
131
+ copyright law: that is to say, a work containing the Library or a
132
+ portion of it, either verbatim or with modifications and/or translated
133
+ straightforwardly into another language. (Hereinafter, translation is
134
+ included without limitation in the term "modification".)
135
+
136
+ "Source code" for a work means the preferred form of the work for
137
+ making modifications to it. For a library, complete source code means
138
+ all the source code for all modules it contains, plus any associated
139
+ interface definition files, plus the scripts used to control compilation
140
+ and installation of the library.
141
+
142
+ Activities other than copying, distribution and modification are not
143
+ covered by this License; they are outside its scope. The act of
144
+ running a program using the Library is not restricted, and output from
145
+ such a program is covered only if its contents constitute a work based
146
+ on the Library (independent of the use of the Library in a tool for
147
+ writing it). Whether that is true depends on what the Library does
148
+ and what the program that uses the Library does.
149
+
150
+ 1. You may copy and distribute verbatim copies of the Library's
151
+ complete source code as you receive it, in any medium, provided that
152
+ you conspicuously and appropriately publish on each copy an
153
+ appropriate copyright notice and disclaimer of warranty; keep intact
154
+ all the notices that refer to this License and to the absence of any
155
+ warranty; and distribute a copy of this License along with the
156
+ Library.
157
+
158
+ You may charge a fee for the physical act of transferring a copy,
159
+ and you may at your option offer warranty protection in exchange for a
160
+ fee.
161
+
162
+ 2. You may modify your copy or copies of the Library or any portion
163
+ of it, thus forming a work based on the Library, and copy and
164
+ distribute such modifications or work under the terms of Section 1
165
+ above, provided that you also meet all of these conditions:
166
+
167
+ a) The modified work must itself be a software library.
168
+
169
+ b) You must cause the files modified to carry prominent notices
170
+ stating that you changed the files and the date of any change.
171
+
172
+ c) You must cause the whole of the work to be licensed at no
173
+ charge to all third parties under the terms of this License.
174
+
175
+ d) If a facility in the modified Library refers to a function or a
176
+ table of data to be supplied by an application program that uses
177
+ the facility, other than as an argument passed when the facility
178
+ is invoked, then you must make a good faith effort to ensure that,
179
+ in the event an application does not supply such function or
180
+ table, the facility still operates, and performs whatever part of
181
+ its purpose remains meaningful.
182
+
183
+ (For example, a function in a library to compute square roots has
184
+ a purpose that is entirely well-defined independent of the
185
+ application. Therefore, Subsection 2d requires that any
186
+ application-supplied function or table used by this function must
187
+ be optional: if the application does not supply it, the square
188
+ root function must still compute square roots.)
189
+
190
+ These requirements apply to the modified work as a whole. If
191
+ identifiable sections of that work are not derived from the Library,
192
+ and can be reasonably considered independent and separate works in
193
+ themselves, then this License, and its terms, do not apply to those
194
+ sections when you distribute them as separate works. But when you
195
+ distribute the same sections as part of a whole which is a work based
196
+ on the Library, the distribution of the whole must be on the terms of
197
+ this License, whose permissions for other licensees extend to the
198
+ entire whole, and thus to each and every part regardless of who wrote
199
+ it.
200
+
201
+ Thus, it is not the intent of this section to claim rights or contest
202
+ your rights to work written entirely by you; rather, the intent is to
203
+ exercise the right to control the distribution of derivative or
204
+ collective works based on the Library.
205
+
206
+ In addition, mere aggregation of another work not based on the Library
207
+ with the Library (or with a work based on the Library) on a volume of
208
+ a storage or distribution medium does not bring the other work under
209
+ the scope of this License.
210
+
211
+ 3. You may opt to apply the terms of the ordinary GNU General Public
212
+ License instead of this License to a given copy of the Library. To do
213
+ this, you must alter all the notices that refer to this License, so
214
+ that they refer to the ordinary GNU General Public License, version 2,
215
+ instead of to this License. (If a newer version than version 2 of the
216
+ ordinary GNU General Public License has appeared, then you can specify
217
+ that version instead if you wish.) Do not make any other change in
218
+ these notices.
219
+
220
+ Once this change is made in a given copy, it is irreversible for
221
+ that copy, so the ordinary GNU General Public License applies to all
222
+ subsequent copies and derivative works made from that copy.
223
+
224
+ This option is useful when you wish to copy part of the code of
225
+ the Library into a program that is not a library.
226
+
227
+ 4. You may copy and distribute the Library (or a portion or
228
+ derivative of it, under Section 2) in object code or executable form
229
+ under the terms of Sections 1 and 2 above provided that you accompany
230
+ it with the complete corresponding machine-readable source code, which
231
+ must be distributed under the terms of Sections 1 and 2 above on a
232
+ medium customarily used for software interchange.
233
+
234
+ If distribution of object code is made by offering access to copy
235
+ from a designated place, then offering equivalent access to copy the
236
+ source code from the same place satisfies the requirement to
237
+ distribute the source code, even though third parties are not
238
+ compelled to copy the source along with the object code.
239
+
240
+ 5. A program that contains no derivative of any portion of the
241
+ Library, but is designed to work with the Library by being compiled or
242
+ linked with it, is called a "work that uses the Library". Such a
243
+ work, in isolation, is not a derivative work of the Library, and
244
+ therefore falls outside the scope of this License.
245
+
246
+ However, linking a "work that uses the Library" with the Library
247
+ creates an executable that is a derivative of the Library (because it
248
+ contains portions of the Library), rather than a "work that uses the
249
+ library". The executable is therefore covered by this License.
250
+ Section 6 states terms for distribution of such executables.
251
+
252
+ When a "work that uses the Library" uses material from a header file
253
+ that is part of the Library, the object code for the work may be a
254
+ derivative work of the Library even though the source code is not.
255
+ Whether this is true is especially significant if the work can be
256
+ linked without the Library, or if the work is itself a library. The
257
+ threshold for this to be true is not precisely defined by law.
258
+
259
+ If such an object file uses only numerical parameters, data
260
+ structure layouts and accessors, and small macros and small inline
261
+ functions (ten lines or less in length), then the use of the object
262
+ file is unrestricted, regardless of whether it is legally a derivative
263
+ work. (Executables containing this object code plus portions of the
264
+ Library will still fall under Section 6.)
265
+
266
+ Otherwise, if the work is a derivative of the Library, you may
267
+ distribute the object code for the work under the terms of Section 6.
268
+ Any executables containing that work also fall under Section 6,
269
+ whether or not they are linked directly with the Library itself.
270
+
271
+ 6. As an exception to the Sections above, you may also combine or
272
+ link a "work that uses the Library" with the Library to produce a
273
+ work containing portions of the Library, and distribute that work
274
+ under terms of your choice, provided that the terms permit
275
+ modification of the work for the customer's own use and reverse
276
+ engineering for debugging such modifications.
277
+
278
+ You must give prominent notice with each copy of the work that the
279
+ Library is used in it and that the Library and its use are covered by
280
+ this License. You must supply a copy of this License. If the work
281
+ during execution displays copyright notices, you must include the
282
+ copyright notice for the Library among them, as well as a reference
283
+ directing the user to the copy of this License. Also, you must do one
284
+ of these things:
285
+
286
+ a) Accompany the work with the complete corresponding
287
+ machine-readable source code for the Library including whatever
288
+ changes were used in the work (which must be distributed under
289
+ Sections 1 and 2 above); and, if the work is an executable linked
290
+ with the Library, with the complete machine-readable "work that
291
+ uses the Library", as object code and/or source code, so that the
292
+ user can modify the Library and then relink to produce a modified
293
+ executable containing the modified Library. (It is understood
294
+ that the user who changes the contents of definitions files in the
295
+ Library will not necessarily be able to recompile the application
296
+ to use the modified definitions.)
297
+
298
+ b) Use a suitable shared library mechanism for linking with the
299
+ Library. A suitable mechanism is one that (1) uses at run time a
300
+ copy of the library already present on the user's computer system,
301
+ rather than copying library functions into the executable, and (2)
302
+ will operate properly with a modified version of the library, if
303
+ the user installs one, as long as the modified version is
304
+ interface-compatible with the version that the work was made with.
305
+
306
+ c) Accompany the work with a written offer, valid for at
307
+ least three years, to give the same user the materials
308
+ specified in Subsection 6a, above, for a charge no more
309
+ than the cost of performing this distribution.
310
+
311
+ d) If distribution of the work is made by offering access to copy
312
+ from a designated place, offer equivalent access to copy the above
313
+ specified materials from the same place.
314
+
315
+ e) Verify that the user has already received a copy of these
316
+ materials or that you have already sent this user a copy.
317
+
318
+ For an executable, the required form of the "work that uses the
319
+ Library" must include any data and utility programs needed for
320
+ reproducing the executable from it. However, as a special exception,
321
+ the materials to be distributed need not include anything that is
322
+ normally distributed (in either source or binary form) with the major
323
+ components (compiler, kernel, and so on) of the operating system on
324
+ which the executable runs, unless that component itself accompanies
325
+ the executable.
326
+
327
+ It may happen that this requirement contradicts the license
328
+ restrictions of other proprietary libraries that do not normally
329
+ accompany the operating system. Such a contradiction means you cannot
330
+ use both them and the Library together in an executable that you
331
+ distribute.
332
+
333
+ 7. You may place library facilities that are a work based on the
334
+ Library side-by-side in a single library together with other library
335
+ facilities not covered by this License, and distribute such a combined
336
+ library, provided that the separate distribution of the work based on
337
+ the Library and of the other library facilities is otherwise
338
+ permitted, and provided that you do these two things:
339
+
340
+ a) Accompany the combined library with a copy of the same work
341
+ based on the Library, uncombined with any other library
342
+ facilities. This must be distributed under the terms of the
343
+ Sections above.
344
+
345
+ b) Give prominent notice with the combined library of the fact
346
+ that part of it is a work based on the Library, and explaining
347
+ where to find the accompanying uncombined form of the same work.
348
+
349
+ 8. You may not copy, modify, sublicense, link with, or distribute
350
+ the Library except as expressly provided under this License. Any
351
+ attempt otherwise to copy, modify, sublicense, link with, or
352
+ distribute the Library is void, and will automatically terminate your
353
+ rights under this License. However, parties who have received copies,
354
+ or rights, from you under this License will not have their licenses
355
+ terminated so long as such parties remain in full compliance.
356
+
357
+ 9. You are not required to accept this License, since you have not
358
+ signed it. However, nothing else grants you permission to modify or
359
+ distribute the Library or its derivative works. These actions are
360
+ prohibited by law if you do not accept this License. Therefore, by
361
+ modifying or distributing the Library (or any work based on the
362
+ Library), you indicate your acceptance of this License to do so, and
363
+ all its terms and conditions for copying, distributing or modifying
364
+ the Library or works based on it.
365
+
366
+ 10. Each time you redistribute the Library (or any work based on the
367
+ Library), the recipient automatically receives a license from the
368
+ original licensor to copy, distribute, link with or modify the Library
369
+ subject to these terms and conditions. You may not impose any further
370
+ restrictions on the recipients' exercise of the rights granted herein.
371
+ You are not responsible for enforcing compliance by third parties with
372
+ this License.
373
+
374
+ 11. If, as a consequence of a court judgment or allegation of patent
375
+ infringement or for any other reason (not limited to patent issues),
376
+ conditions are imposed on you (whether by court order, agreement or
377
+ otherwise) that contradict the conditions of this License, they do not
378
+ excuse you from the conditions of this License. If you cannot
379
+ distribute so as to satisfy simultaneously your obligations under this
380
+ License and any other pertinent obligations, then as a consequence you
381
+ may not distribute the Library at all. For example, if a patent
382
+ license would not permit royalty-free redistribution of the Library by
383
+ all those who receive copies directly or indirectly through you, then
384
+ the only way you could satisfy both it and this License would be to
385
+ refrain entirely from distribution of the Library.
386
+
387
+ If any portion of this section is held invalid or unenforceable under any
388
+ particular circumstance, the balance of the section is intended to apply,
389
+ and the section as a whole is intended to apply in other circumstances.
390
+
391
+ It is not the purpose of this section to induce you to infringe any
392
+ patents or other property right claims or to contest validity of any
393
+ such claims; this section has the sole purpose of protecting the
394
+ integrity of the free software distribution system which is
395
+ implemented by public license practices. Many people have made
396
+ generous contributions to the wide range of software distributed
397
+ through that system in reliance on consistent application of that
398
+ system; it is up to the author/donor to decide if he or she is willing
399
+ to distribute software through any other system and a licensee cannot
400
+ impose that choice.
401
+
402
+ This section is intended to make thoroughly clear what is believed to
403
+ be a consequence of the rest of this License.
404
+
405
+ 12. If the distribution and/or use of the Library is restricted in
406
+ certain countries either by patents or by copyrighted interfaces, the
407
+ original copyright holder who places the Library under this License may add
408
+ an explicit geographical distribution limitation excluding those countries,
409
+ so that distribution is permitted only in or among countries not thus
410
+ excluded. In such case, this License incorporates the limitation as if
411
+ written in the body of this License.
412
+
413
+ 13. The Free Software Foundation may publish revised and/or new
414
+ versions of the Lesser General Public License from time to time.
415
+ Such new versions will be similar in spirit to the present version,
416
+ but may differ in detail to address new problems or concerns.
417
+
418
+ Each version is given a distinguishing version number. If the Library
419
+ specifies a version number of this License which applies to it and
420
+ "any later version", you have the option of following the terms and
421
+ conditions either of that version or of any later version published by
422
+ the Free Software Foundation. If the Library does not specify a
423
+ license version number, you may choose any version ever published by
424
+ the Free Software Foundation.
425
+
426
+ 14. If you wish to incorporate parts of the Library into other free
427
+ programs whose distribution conditions are incompatible with these,
428
+ write to the author to ask for permission. For software which is
429
+ copyrighted by the Free Software Foundation, write to the Free
430
+ Software Foundation; we sometimes make exceptions for this. Our
431
+ decision will be guided by the two goals of preserving the free status
432
+ of all derivatives of our free software and of promoting the sharing
433
+ and reuse of software generally.
434
+
435
+ NO WARRANTY
436
+
437
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
438
+ WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
439
+ EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
440
+ OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
441
+ KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
442
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
443
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
444
+ LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
445
+ THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
446
+
447
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
448
+ WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
449
+ AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
450
+ FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
451
+ CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
452
+ LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
453
+ RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
454
+ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
455
+ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
456
+ DAMAGES.
457
+
458
+ END OF TERMS AND CONDITIONS
459
+
460
+ How to Apply These Terms to Your New Libraries
461
+
462
+ If you develop a new library, and you want it to be of the greatest
463
+ possible use to the public, we recommend making it free software that
464
+ everyone can redistribute and change. You can do so by permitting
465
+ redistribution under these terms (or, alternatively, under the terms of the
466
+ ordinary General Public License).
467
+
468
+ To apply these terms, attach the following notices to the library. It is
469
+ safest to attach them to the start of each source file to most effectively
470
+ convey the exclusion of warranty; and each file should have at least the
471
+ "copyright" line and a pointer to where the full notice is found.
472
+
473
+ <one line to give the library's name and a brief idea of what it does.>
474
+ Copyright (C) <year> <name of author>
475
+
476
+ This library is free software; you can redistribute it and/or
477
+ modify it under the terms of the GNU Lesser General Public
478
+ License as published by the Free Software Foundation; either
479
+ version 2.1 of the License, or (at your option) any later version.
480
+
481
+ This library is distributed in the hope that it will be useful,
482
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
483
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
484
+ Lesser General Public License for more details.
485
+
486
+ You should have received a copy of the GNU Lesser General Public
487
+ License along with this library; if not, write to the Free Software
488
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
489
+
490
+ Also add information on how to contact you by electronic and paper mail.
491
+
492
+ You should also get your employer (if you work as a programmer) or your
493
+ school, if any, to sign a "copyright disclaimer" for the library, if
494
+ necessary. Here is a sample; alter the names:
495
+
496
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
497
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
498
+
499
+ <signature of Ty Coon>, 1 April 1990
500
+ Ty Coon, President of Vice
501
+
502
+ That's all there is to it!
idn/ReadMe.txt ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *******************************************************************************
2
+ * *
3
+ * IDNA Convert (idna_convert.class.php) *
4
+ * *
5
+ * http://idnaconv.phlymail.de mailto:phlymail@phlylabs.de *
6
+ *******************************************************************************
7
+ * (c) 2004-2008 phlyLabs, Berlin *
8
+ * This file is encoded in UTF-8 *
9
+ *******************************************************************************
10
+
11
+ Introduction
12
+ ------------
13
+
14
+ The class idna_convert allows to convert internationalized domain names
15
+ (see RFC 3490, 3491, 3492 and 3454 for detials) as they can be used with various
16
+ registries worldwide to be translated between their original (localized) form
17
+ and their encoded form as it will be used in the DNS (Domain Name System).
18
+
19
+ The class provides two public methods, encode() and decode(), which do exactly
20
+ what you would expect them to do. You are allowed to use complete domain names,
21
+ simple strings and complete email addresses as well. That means, that you might
22
+ use any of the following notations:
23
+
24
+ - www.nörgler.com
25
+ - xn--nrgler-wxa
26
+ - xn--brse-5qa.xn--knrz-1ra.info
27
+
28
+ Errors, incorrectly encoded or invalid strings will lead to either a FALSE
29
+ response (when in strict mode) or to only partially converted strings.
30
+ You can query the occured error by calling the method get_last_error().
31
+
32
+ Unicode strings are expected to be either UTF-8 strings, UCS-4 strings or UCS-4
33
+ arrays. The default format is UTF-8. For setting different encodings, you can
34
+ call the method setParams() - please see the inline documentation for details.
35
+ ACE strings (the Punycode form) are always 7bit ASCII strings.
36
+
37
+ ATTENTION: As of version 0.6.0 of this class it is written in the OOP style of PHP5.
38
+ Since PHP4 is no longer actively maintained, you should switch to PHP5 as fast as
39
+ possible.
40
+ We expect to see no compatibility issues with the upcoming PHP6, too.
41
+
42
+
43
+ Files
44
+ -----
45
+ idna_convert.class.php - The actual class
46
+ example.php - An example web page for converting
47
+ transcode_wrapper.php - Convert various encodings, see below
48
+ uctc.php - phlyLabs' Unicode Transcoder, see below
49
+ ReadMe.txt - This file
50
+ LICENCE - The LGPL licence file
51
+
52
+ The class is contained in idna_convert.class.php.
53
+
54
+
55
+ Examples
56
+ --------
57
+ 1. Say we wish to encode the domain name nörgler.com:
58
+
59
+ // Include the class
60
+ require_once('idna_convert.class.php');
61
+ // Instantiate it *
62
+ $IDN = new idna_convert();
63
+ // The input string, if input is not UTF-8 or UCS-4, it must be converted before
64
+ $input = utf8_encode('nörgler.com');
65
+ // Encode it to its punycode presentation
66
+ $output = $IDN->encode($input);
67
+ // Output, what we got now
68
+ echo $output; // This will read: xn--nrgler-wxa.com
69
+
70
+
71
+ 2. We received an email from a punycoded domain and are willing to learn, how
72
+ the domain name reads originally
73
+
74
+ // Include the class
75
+ require_once('idna_convert.class.php');
76
+ // Instantiate it (depending on the version you are using) with
77
+ $IDN = new idna_convert();
78
+ // The input string
79
+ $input = 'andre@xn--brse-5qa.xn--knrz-1ra.info';
80
+ // Encode it to its punycode presentation
81
+ $output = $IDN->decode($input);
82
+ // Output, what we got now, if output should be in a format different to UTF-8
83
+ // or UCS-4, you will have to convert it before outputting it
84
+ echo utf8_decode($output); // This will read: andre@börse.knörz.info
85
+
86
+
87
+ 3. The input is read from a UCS-4 coded file and encoded line by line. By
88
+ appending the optional second parameter we tell enode() about the input
89
+ format to be used
90
+
91
+ // Include the class
92
+ require_once('idna_convert.class.php');
93
+ // Instantiate it
94
+ $IDN = new dinca_convert();
95
+ // Iterate through the input file line by line
96
+ foreach (file('ucs4-domains.txt') as $line) {
97
+ echo $IDN->encode(trim($line), 'ucs4_string');
98
+ echo "\n";
99
+ }
100
+
101
+
102
+ Transcode wrapper
103
+ -----------------
104
+ In case you have strings in different encoding than ISO-8859-1 and UTF-8 you might need to
105
+ translate these strings to UTF-8 before feeding the IDNA converter with it.
106
+ PHP's built in functions utf8_encode() and utf8_decode() can only deal with ISO-8859-1.
107
+ Use the file transcode_wrapper.php for the conversion. It requires either iconv, libiconv
108
+ or mbstring installed together with one of the relevant PHP extensions.
109
+ The functions you will find useful are
110
+ encode_utf8() as a replacement for utf8_encode() and
111
+ decode_utf8() as a replacement for utf8_decode().
112
+
113
+ Example usage:
114
+ <?php
115
+ require_once('idna_convert.class.php');
116
+ require_once('transcode_wrapper.php');
117
+ $mystring = '<something in e.g. ISO-8859-15';
118
+ $mystring = encode_utf8($mystring, 'ISO-8859-15');
119
+ echo $IDN->encode($mystring);
120
+ ?>
121
+
122
+
123
+ UCTC - Unicode Transcoder
124
+ -------------------------
125
+ Another class you might find useful when dealing with one or more of the Unicode encoding
126
+ flavours. The class is static, it requires PHP5. It can transcode into each other:
127
+ - UCS-4 string / array
128
+ - UTF-8
129
+ - UTF-7
130
+ - UTF-7 IMAP (modified UTF-7)
131
+ All encodings expect / return a string in the given format, with one major exception:
132
+ UCS-4 array is jsut an array, where each value represents one codepoint in the string, i.e.
133
+ every value is a 32bit integer value.
134
+
135
+ Example usage:
136
+ <?php
137
+ require_once('uctc.php');
138
+ $mystring = 'nörgler.com';
139
+ echo uctc::convert($mystring, 'utf8', 'utf7imap');
140
+ ?>
141
+
142
+
143
+ Contact us
144
+ ----------
145
+ In case of errors, bugs, questions, wishes, please don't hesitate to contact us
146
+ under the email address above.
147
+
148
+ The team of phlyLabs
149
+ http://phlylabs.de
150
+ mailto:phlymail@phlylabs.de
idn/idna_convert.class.php ADDED
@@ -0,0 +1,2707 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {{{ license
3
+
4
+ /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */
5
+ //
6
+ // +----------------------------------------------------------------------+
7
+ // | This library is free software; you can redistribute it and/or modify |
8
+ // | it under the terms of the GNU Lesser General Public License as |
9
+ // | published by the Free Software Foundation; either version 2.1 of the |
10
+ // | License, or (at your option) any later version. |
11
+ // | |
12
+ // | This library is distributed in the hope that it will be useful, but |
13
+ // | WITHOUT ANY WARRANTY; without even the implied warranty of |
14
+ // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
15
+ // | Lesser General Public License for more details. |
16
+ // | |
17
+ // | You should have received a copy of the GNU Lesser General Public |
18
+ // | License along with this library; if not, write to the Free Software |
19
+ // | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 |
20
+ // | USA. |
21
+ // +----------------------------------------------------------------------+
22
+ //
23
+
24
+ // }}}
25
+
26
+ /**
27
+ * Encode/decode Internationalized Domain Names.
28
+ *
29
+ * The class allows to convert internationalized domain names
30
+ * (see RFC 3490 for details) as they can be used with various registries worldwide
31
+ * to be translated between their original (localized) form and their encoded form
32
+ * as it will be used in the DNS (Domain Name System).
33
+ *
34
+ * The class provides two public methods, encode() and decode(), which do exactly
35
+ * what you would expect them to do. You are allowed to use complete domain names,
36
+ * simple strings and complete email addresses as well. That means, that you might
37
+ * use any of the following notations:
38
+ *
39
+ * - www.nörgler.com
40
+ * - xn--nrgler-wxa
41
+ * - xn--brse-5qa.xn--knrz-1ra.info
42
+ *
43
+ * Unicode input might be given as either UTF-8 string, UCS-4 string or UCS-4
44
+ * array. Unicode output is available in the same formats.
45
+ * You can select your preferred format via {@link set_paramter()}.
46
+ *
47
+ * ACE input and output is always expected to be ASCII.
48
+ *
49
+ * @author Matthias Sommerfeld <mso@phlylabs.de>
50
+ * @author Leonid Kogan <lko@neuse.de>
51
+ * @copyright 2004-2009 phlyLabs Berlin, http://phlylabs.de
52
+ * @version 0.6.3
53
+ * @changelog since 0.5.1 class updated to PHP5/6 style should be compatible to PHP 4.3+
54
+ * - added a missing replace mapping for THAI CHARACTER SARA AM
55
+ */
56
+ class idna_convert
57
+ {
58
+ // NP See below
59
+
60
+ // Internal settings, do not mess with them
61
+ private $_punycode_prefix = 'xn--';
62
+ private $_invalid_ucs = 0x80000000;
63
+ private $_max_ucs = 0x10FFFF;
64
+ private $_base = 36;
65
+ private $_tmin = 1;
66
+ private $_tmax = 26;
67
+ private $_skew = 38;
68
+ private $_damp = 700;
69
+ private $_initial_bias = 72;
70
+ private $_initial_n = 0x80;
71
+ private $_sbase = 0xAC00;
72
+ private $_lbase = 0x1100;
73
+ private $_vbase = 0x1161;
74
+ private $_tbase = 0x11A7;
75
+ private $_lcount = 19;
76
+ private $_vcount = 21;
77
+ private $_tcount = 28;
78
+ private $_ncount = 588; // _vcount * _tcount
79
+ private $_scount = 11172; // _lcount * _tcount * _vcount
80
+ private $_error = false;
81
+
82
+ // See {@link set_paramter()} for details of how to change the following
83
+ // settings from within your script / application
84
+ private $_api_encoding = 'utf8'; // Default input charset is UTF-8
85
+ private $_allow_overlong = false; // Overlong UTF-8 encodings are forbidden
86
+ private $_strict_mode = false; // Behave strict or not
87
+
88
+
89
+ /**
90
+ * the constructor
91
+ *
92
+ * @param array $options
93
+ * @return boolean
94
+ * @since 0.5.2
95
+ */
96
+ public function __construct($options = false)
97
+ {
98
+ $this->slast = $this->_sbase + $this->_lcount * $this->_vcount * $this->_tcount;
99
+ // If parameters are given, pass these to the respective method
100
+ if (is_array($options)) return $this->set_parameter($options);
101
+ return true;
102
+ }
103
+
104
+ /**
105
+ * Sets a new option value. Available options and values:
106
+ * [encoding - Use either UTF-8, UCS4 as array or UCS4 as string as input ('utf8' for UTF-8,
107
+ * 'ucs4_string' and 'ucs4_array' respectively for UCS4); The output is always UTF-8]
108
+ * [overlong - Unicode does not allow unnecessarily long encodings of chars,
109
+ * to allow this, set this parameter to true, else to false;
110
+ * default is false.]
111
+ * [strict - true: strict mode, good for registration purposes - Causes errors
112
+ * on failures; false: loose mode, ideal for "wildlife" applications
113
+ * by silently ignoring errors and returning the original input instead
114
+ *
115
+ * @param mixed Parameter to set (string: single parameter; array of Parameter => Value pairs)
116
+ * @param string Value to use (if parameter 1 is a string)
117
+ * @return boolean true on success, false otherwise
118
+ */
119
+ public function set_parameter($option, $value = false)
120
+ {
121
+ if (!is_array($option)) {
122
+ $option = array($option => $value);
123
+ }
124
+ foreach ($option as $k => $v) {
125
+ switch ($k) {
126
+ case 'encoding':
127
+ switch ($v) {
128
+ case 'utf8':
129
+ case 'ucs4_string':
130
+ case 'ucs4_array':
131
+ $this->_api_encoding = $v;
132
+ break;
133
+ default:
134
+ $this->_error('Set Parameter: Unknown parameter '.$v.' for option '.$k);
135
+ return false;
136
+ }
137
+ break;
138
+ case 'overlong':
139
+ $this->_allow_overlong = ($v) ? true : false;
140
+ break;
141
+ case 'strict':
142
+ $this->_strict_mode = ($v) ? true : false;
143
+ break;
144
+ default:
145
+ $this->_error('Set Parameter: Unknown option '.$k);
146
+ return false;
147
+ }
148
+ }
149
+ return true;
150
+ }
151
+
152
+ /**
153
+ * Decode a given ACE domain name
154
+ * @param string Domain name (ACE string)
155
+ * [@param string Desired output encoding, see {@link set_parameter}]
156
+ * @return string Decoded Domain name (UTF-8 or UCS-4)
157
+ */
158
+ public function decode($input, $one_time_encoding = false)
159
+ {
160
+ // Optionally set
161
+ if ($one_time_encoding) {
162
+ switch ($one_time_encoding) {
163
+ case 'utf8':
164
+ case 'ucs4_string':
165
+ case 'ucs4_array':
166
+ break;
167
+ default:
168
+ $this->_error('Unknown encoding '.$one_time_encoding);
169
+ return false;
170
+ }
171
+ }
172
+ // Make sure to drop any newline characters around
173
+ $input = trim($input);
174
+
175
+ // Negotiate input and try to determine, whether it is a plain string,
176
+ // an email address or something like a complete URL
177
+ if (strpos($input, '@')) { // Maybe it is an email address
178
+ // No no in strict mode
179
+ if ($this->_strict_mode) {
180
+ $this->_error('Only simple domain name parts can be handled in strict mode');
181
+ return false;
182
+ }
183
+ list ($email_pref, $input) = explode('@', $input, 2);
184
+ $arr = explode('.', $input);
185
+ foreach ($arr as $k => $v) {
186
+ if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) {
187
+ $conv = $this->_decode($v);
188
+ if ($conv) $arr[$k] = $conv;
189
+ }
190
+ }
191
+ $input = join('.', $arr);
192
+ $arr = explode('.', $email_pref);
193
+ foreach ($arr as $k => $v) {
194
+ if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) {
195
+ $conv = $this->_decode($v);
196
+ if ($conv) $arr[$k] = $conv;
197
+ }
198
+ }
199
+ $email_pref = join('.', $arr);
200
+ $return = $email_pref . '@' . $input;
201
+ } elseif (preg_match('![:\./]!', $input)) { // Or a complete domain name (with or without paths / parameters)
202
+ // No no in strict mode
203
+ if ($this->_strict_mode) {
204
+ $this->_error('Only simple domain name parts can be handled in strict mode');
205
+ return false;
206
+ }
207
+ $parsed = parse_url($input);
208
+ if (isset($parsed['host'])) {
209
+ $arr = explode('.', $parsed['host']);
210
+ foreach ($arr as $k => $v) {
211
+ $conv = $this->_decode($v);
212
+ if ($conv) $arr[$k] = $conv;
213
+ }
214
+ $parsed['host'] = join('.', $arr);
215
+ $return =
216
+ (empty($parsed['scheme']) ? '' : $parsed['scheme'].(strtolower($parsed['scheme']) == 'mailto' ? ':' : '://'))
217
+ .(empty($parsed['user']) ? '' : $parsed['user'].(empty($parsed['pass']) ? '' : ':'.$parsed['pass']).'@')
218
+ .$parsed['host']
219
+ .(empty($parsed['port']) ? '' : ':'.$parsed['port'])
220
+ .(empty($parsed['path']) ? '' : $parsed['path'])
221
+ .(empty($parsed['query']) ? '' : '?'.$parsed['query'])
222
+ .(empty($parsed['fragment']) ? '' : '#'.$parsed['fragment']);
223
+ } else { // parse_url seems to have failed, try without it
224
+ $arr = explode('.', $input);
225
+ foreach ($arr as $k => $v) {
226
+ $conv = $this->_decode($v);
227
+ $arr[$k] = ($conv) ? $conv : $v;
228
+ }
229
+ $return = join('.', $arr);
230
+ }
231
+ } else { // Otherwise we consider it being a pure domain name string
232
+ $return = $this->_decode($input);
233
+ if (!$return) $return = $input;
234
+ }
235
+ // The output is UTF-8 by default, other output formats need conversion here
236
+ // If one time encoding is given, use this, else the objects property
237
+ switch (($one_time_encoding) ? $one_time_encoding : $this->_api_encoding) {
238
+ case 'utf8':
239
+ return $return;
240
+ break;
241
+ case 'ucs4_string':
242
+ return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return));
243
+ break;
244
+ case 'ucs4_array':
245
+ return $this->_utf8_to_ucs4($return);
246
+ break;
247
+ default:
248
+ $this->_error('Unsupported output format');
249
+ return false;
250
+ }
251
+ }
252
+
253
+ /**
254
+ * Encode a given UTF-8 domain name
255
+ * @param string Domain name (UTF-8 or UCS-4)
256
+ * [@param string Desired input encoding, see {@link set_parameter}]
257
+ * @return string Encoded Domain name (ACE string)
258
+ */
259
+ public function encode($decoded, $one_time_encoding = false)
260
+ {
261
+ // Forcing conversion of input to UCS4 array
262
+ // If one time encoding is given, use this, else the objects property
263
+ switch ($one_time_encoding ? $one_time_encoding : $this->_api_encoding) {
264
+ case 'utf8':
265
+ $decoded = $this->_utf8_to_ucs4($decoded);
266
+ break;
267
+ case 'ucs4_string':
268
+ $decoded = $this->_ucs4_string_to_ucs4($decoded);
269
+ case 'ucs4_array':
270
+ break;
271
+ default:
272
+ $this->_error('Unsupported input format: '.($one_time_encoding ? $one_time_encoding : $this->_api_encoding));
273
+ return false;
274
+ }
275
+
276
+ // No input, no output, what else did you expect?
277
+ if (empty($decoded)) return '';
278
+
279
+ // Anchors for iteration
280
+ $last_begin = 0;
281
+ // Output string
282
+ $output = '';
283
+ foreach ($decoded as $k => $v) {
284
+ // Make sure to use just the plain dot
285
+ switch($v) {
286
+ case 0x3002:
287
+ case 0xFF0E:
288
+ case 0xFF61:
289
+ $decoded[$k] = 0x2E;
290
+ // Right, no break here, the above are converted to dots anyway
291
+ // Stumbling across an anchoring character
292
+ case 0x2E:
293
+ case 0x2F:
294
+ case 0x3A:
295
+ case 0x3F:
296
+ case 0x40:
297
+ // Neither email addresses nor URLs allowed in strict mode
298
+ if ($this->_strict_mode) {
299
+ $this->_error('Neither email addresses nor URLs are allowed in strict mode.');
300
+ return false;
301
+ } else {
302
+ // Skip first char
303
+ if ($k) {
304
+ $encoded = '';
305
+ $encoded = $this->_encode(array_slice($decoded, $last_begin, (($k)-$last_begin)));
306
+ if ($encoded) {
307
+ $output .= $encoded;
308
+ } else {
309
+ $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($k)-$last_begin)));
310
+ }
311
+ $output .= chr($decoded[$k]);
312
+ }
313
+ $last_begin = $k + 1;
314
+ }
315
+ }
316
+ }
317
+ // Catch the rest of the string
318
+ if ($last_begin) {
319
+ $inp_len = sizeof($decoded);
320
+ $encoded = '';
321
+ $encoded = $this->_encode(array_slice($decoded, $last_begin, (($inp_len)-$last_begin)));
322
+ if ($encoded) {
323
+ $output .= $encoded;
324
+ } else {
325
+ $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($inp_len)-$last_begin)));
326
+ }
327
+ return $output;
328
+ } else {
329
+ if ($output = $this->_encode($decoded)) {
330
+ return $output;
331
+ } else {
332
+ return $this->_ucs4_to_utf8($decoded);
333
+ }
334
+ }
335
+ }
336
+
337
+ /**
338
+ * Use this method to get the last error ocurred
339
+ * @param void
340
+ * @return string The last error, that occured
341
+ */
342
+ public function get_last_error()
343
+ {
344
+ return $this->_error;
345
+ }
346
+
347
+ /**
348
+ * The actual decoding algorithm
349
+ * @param string
350
+ * @return mixed
351
+ */
352
+ private function _decode($encoded)
353
+ {
354
+ $decoded = array();
355
+ // find the Punycode prefix
356
+ if (!preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $encoded)) {
357
+ $this->_error('This is not a punycode string');
358
+ return false;
359
+ }
360
+ $encode_test = preg_replace('!^'.preg_quote($this->_punycode_prefix, '!').'!', '', $encoded);
361
+ // If nothing left after removing the prefix, it is hopeless
362
+ if (!$encode_test) {
363
+ $this->_error('The given encoded string was empty');
364
+ return false;
365
+ }
366
+ // Find last occurence of the delimiter
367
+ $delim_pos = strrpos($encoded, '-');
368
+ if ($delim_pos > strlen($this->_punycode_prefix)) {
369
+ for ($k = strlen($this->_punycode_prefix); $k < $delim_pos; ++$k) {
370
+ $decoded[] = ord($encoded{$k});
371
+ }
372
+ }
373
+ $deco_len = count($decoded);
374
+ $enco_len = strlen($encoded);
375
+
376
+ // Wandering through the strings; init
377
+ $is_first = true;
378
+ $bias = $this->_initial_bias;
379
+ $idx = 0;
380
+ $char = $this->_initial_n;
381
+
382
+ for ($enco_idx = ($delim_pos) ? ($delim_pos + 1) : 0; $enco_idx < $enco_len; ++$deco_len) {
383
+ for ($old_idx = $idx, $w = 1, $k = $this->_base; 1 ; $k += $this->_base) {
384
+ $digit = $this->_decode_digit($encoded{$enco_idx++});
385
+ $idx += $digit * $w;
386
+ $t = ($k <= $bias) ? $this->_tmin :
387
+ (($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias));
388
+ if ($digit < $t) break;
389
+ $w = (int) ($w * ($this->_base - $t));
390
+ }
391
+ $bias = $this->_adapt($idx - $old_idx, $deco_len + 1, $is_first);
392
+ $is_first = false;
393
+ $char += (int) ($idx / ($deco_len + 1));
394
+ $idx %= ($deco_len + 1);
395
+ if ($deco_len > 0) {
396
+ // Make room for the decoded char
397
+ for ($i = $deco_len; $i > $idx; $i--) $decoded[$i] = $decoded[($i - 1)];
398
+ }
399
+ $decoded[$idx++] = $char;
400
+ }
401
+ return $this->_ucs4_to_utf8($decoded);
402
+ }
403
+
404
+ /**
405
+ * The actual encoding algorithm
406
+ * @param string
407
+ * @return mixed
408
+ */
409
+ private function _encode($decoded)
410
+ {
411
+ // We cannot encode a domain name containing the Punycode prefix
412
+ $extract = strlen($this->_punycode_prefix);
413
+ $check_pref = $this->_utf8_to_ucs4($this->_punycode_prefix);
414
+ $check_deco = array_slice($decoded, 0, $extract);
415
+
416
+ if ($check_pref == $check_deco) {
417
+ $this->_error('This is already a punycode string');
418
+ return false;
419
+ }
420
+ // We will not try to encode strings consisting of basic code points only
421
+ $encodable = false;
422
+ foreach ($decoded as $k => $v) {
423
+ if ($v > 0x7a) {
424
+ $encodable = true;
425
+ break;
426
+ }
427
+ }
428
+ if (!$encodable) {
429
+ $this->_error('The given string does not contain encodable chars');
430
+ return false;
431
+ }
432
+ // Do NAMEPREP
433
+ $decoded = $this->_nameprep($decoded);
434
+ if (!$decoded || !is_array($decoded)) return false; // NAMEPREP failed
435
+ $deco_len = count($decoded);
436
+ if (!$deco_len) return false; // Empty array
437
+ $codecount = 0; // How many chars have been consumed
438
+ $encoded = '';
439
+ // Copy all basic code points to output
440
+ for ($i = 0; $i < $deco_len; ++$i) {
441
+ $test = $decoded[$i];
442
+ // Will match [-0-9a-zA-Z]
443
+ if ((0x2F < $test && $test < 0x40) || (0x40 < $test && $test < 0x5B)
444
+ || (0x60 < $test && $test <= 0x7B) || (0x2D == $test)) {
445
+ $encoded .= chr($decoded[$i]);
446
+ $codecount++;
447
+ }
448
+ }
449
+ if ($codecount == $deco_len) return $encoded; // All codepoints were basic ones
450
+
451
+ // Start with the prefix; copy it to output
452
+ $encoded = $this->_punycode_prefix.$encoded;
453
+ // If we have basic code points in output, add an hyphen to the end
454
+ if ($codecount) $encoded .= '-';
455
+ // Now find and encode all non-basic code points
456
+ $is_first = true;
457
+ $cur_code = $this->_initial_n;
458
+ $bias = $this->_initial_bias;
459
+ $delta = 0;
460
+ while ($codecount < $deco_len) {
461
+ // Find the smallest code point >= the current code point and
462
+ // remember the last ouccrence of it in the input
463
+ for ($i = 0, $next_code = $this->_max_ucs; $i < $deco_len; $i++) {
464
+ if ($decoded[$i] >= $cur_code && $decoded[$i] <= $next_code) {
465
+ $next_code = $decoded[$i];
466
+ }
467
+ }
468
+ $delta += ($next_code - $cur_code) * ($codecount + 1);
469
+ $cur_code = $next_code;
470
+
471
+ // Scan input again and encode all characters whose code point is $cur_code
472
+ for ($i = 0; $i < $deco_len; $i++) {
473
+ if ($decoded[$i] < $cur_code) {
474
+ $delta++;
475
+ } elseif ($decoded[$i] == $cur_code) {
476
+ for ($q = $delta, $k = $this->_base; 1; $k += $this->_base) {
477
+ $t = ($k <= $bias) ? $this->_tmin :
478
+ (($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias);
479
+ if ($q < $t) break;
480
+ $encoded .= $this->_encode_digit(intval($t + (($q - $t) % ($this->_base - $t)))); //v0.4.5 Changed from ceil() to intval()
481
+ $q = (int) (($q - $t) / ($this->_base - $t));
482
+ }
483
+ $encoded .= $this->_encode_digit($q);
484
+ $bias = $this->_adapt($delta, $codecount+1, $is_first);
485
+ $codecount++;
486
+ $delta = 0;
487
+ $is_first = false;
488
+ }
489
+ }
490
+ $delta++;
491
+ $cur_code++;
492
+ }
493
+ return $encoded;
494
+ }
495
+
496
+ /**
497
+ * Adapt the bias according to the current code point and position
498
+ * @param int $delta
499
+ * @param int $npoints
500
+ * @param int $is_first
501
+ * @return int
502
+ */
503
+ private function _adapt($delta, $npoints, $is_first)
504
+ {
505
+ $delta = intval($is_first ? ($delta / $this->_damp) : ($delta / 2));
506
+ $delta += intval($delta / $npoints);
507
+ for ($k = 0; $delta > (($this->_base - $this->_tmin) * $this->_tmax) / 2; $k += $this->_base) {
508
+ $delta = intval($delta / ($this->_base - $this->_tmin));
509
+ }
510
+ return intval($k + ($this->_base - $this->_tmin + 1) * $delta / ($delta + $this->_skew));
511
+ }
512
+
513
+ /**
514
+ * Encoding a certain digit
515
+ * @param int $d
516
+ * @return string
517
+ */
518
+ private function _encode_digit($d)
519
+ {
520
+ return chr($d + 22 + 75 * ($d < 26));
521
+ }
522
+
523
+ /**
524
+ * Decode a certain digit
525
+ * @param int $cp
526
+ * @return int
527
+ */
528
+ private function _decode_digit($cp)
529
+ {
530
+ $cp = ord($cp);
531
+ return ($cp - 48 < 10) ? $cp - 22 : (($cp - 65 < 26) ? $cp - 65 : (($cp - 97 < 26) ? $cp - 97 : $this->_base));
532
+ }
533
+
534
+ /**
535
+ * Internal error handling method
536
+ * @param string $error
537
+ */
538
+ private function _error($error = '')
539
+ {
540
+ $this->_error = $error;
541
+ }
542
+
543
+ /**
544
+ * Do Nameprep according to RFC3491 and RFC3454
545
+ * @param array Unicode Characters
546
+ * @return string Unicode Characters, Nameprep'd
547
+ */
548
+ private function _nameprep($input)
549
+ {
550
+ $output = array();
551
+ $error = false;
552
+ //
553
+ // Mapping
554
+ // Walking through the input array, performing the required steps on each of
555
+ // the input chars and putting the result into the output array
556
+ // While mapping required chars we apply the cannonical ordering
557
+ foreach ($input as $v) {
558
+ // Map to nothing == skip that code point
559
+ if (in_array($v, $this->NP['map_nothing'])) continue;
560
+ // Try to find prohibited input
561
+ if (in_array($v, $this->NP['prohibit']) || in_array($v, $this->NP['general_prohibited'])) {
562
+ $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v));
563
+ return false;
564
+ }
565
+ foreach ($this->NP['prohibit_ranges'] as $range) {
566
+ if ($range[0] <= $v && $v <= $range[1]) {
567
+ $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v));
568
+ return false;
569
+ }
570
+ }
571
+ // Hangul syllable decomposition
572
+ if (0xAC00 <= $v && $v <= 0xD7AF) {
573
+ foreach ($this->_hangul_decompose($v) as $out) $output[] = (int) $out;
574
+ // There's a decomposition mapping for that code point
575
+ } elseif (isset($this->NP['replacemaps'][$v])) {
576
+ foreach ($this->_apply_cannonical_ordering($this->NP['replacemaps'][$v]) as $out) {
577
+ $output[] = (int) $out;
578
+ }
579
+ } else {
580
+ $output[] = (int) $v;
581
+ }
582
+ }
583
+ // Before applying any Combining, try to rearrange any Hangul syllables
584
+ $output = $this->_hangul_compose($output);
585
+ //
586
+ // Combine code points
587
+ //
588
+ $last_class = 0;
589
+ $last_starter = 0;
590
+ $out_len = count($output);
591
+ for ($i = 0; $i < $out_len; ++$i) {
592
+ $class = $this->_get_combining_class($output[$i]);
593
+ if ((!$last_class || $last_class > $class) && $class) {
594
+ // Try to match
595
+ $seq_len = $i - $last_starter;
596
+ $out = $this->_combine(array_slice($output, $last_starter, $seq_len));
597
+ // On match: Replace the last starter with the composed character and remove
598
+ // the now redundant non-starter(s)
599
+ if ($out) {
600
+ $output[$last_starter] = $out;
601
+ if (count($out) != $seq_len) {
602
+ for ($j = $i+1; $j < $out_len; ++$j) $output[$j-1] = $output[$j];
603
+ unset($output[$out_len]);
604
+ }
605
+ // Rewind the for loop by one, since there can be more possible compositions
606
+ $i--;
607
+ $out_len--;
608
+ $last_class = ($i == $last_starter) ? 0 : $this->_get_combining_class($output[$i-1]);
609
+ continue;
610
+ }
611
+ }
612
+ // The current class is 0
613
+ if (!$class) $last_starter = $i;
614
+ $last_class = $class;
615
+ }
616
+ return $output;
617
+ }
618
+
619
+ /**
620
+ * Decomposes a Hangul syllable
621
+ * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
622
+ * @param integer 32bit UCS4 code point
623
+ * @return array Either Hangul Syllable decomposed or original 32bit value as one value array
624
+ */
625
+ private function _hangul_decompose($char)
626
+ {
627
+ $sindex = (int) $char - $this->_sbase;
628
+ if ($sindex < 0 || $sindex >= $this->_scount) return array($char);
629
+ $result = array();
630
+ $result[] = (int) $this->_lbase + $sindex / $this->_ncount;
631
+ $result[] = (int) $this->_vbase + ($sindex % $this->_ncount) / $this->_tcount;
632
+ $T = intval($this->_tbase + $sindex % $this->_tcount);
633
+ if ($T != $this->_tbase) $result[] = $T;
634
+ return $result;
635
+ }
636
+ /**
637
+ * Ccomposes a Hangul syllable
638
+ * (see http://www.unicode.org/unicode/reports/tr15/#Hangul
639
+ * @param array Decomposed UCS4 sequence
640
+ * @return array UCS4 sequence with syllables composed
641
+ */
642
+ private function _hangul_compose($input)
643
+ {
644
+ $inp_len = count($input);
645
+ if (!$inp_len) return array();
646
+ $result = array();
647
+ $last = (int) $input[0];
648
+ $result[] = $last; // copy first char from input to output
649
+
650
+ for ($i = 1; $i < $inp_len; ++$i) {
651
+ $char = (int) $input[$i];
652
+ $sindex = $last - $this->_sbase;
653
+ $lindex = $last - $this->_lbase;
654
+ $vindex = $char - $this->_vbase;
655
+ $tindex = $char - $this->_tbase;
656
+ // Find out, whether two current characters are LV and T
657
+ if (0 <= $sindex && $sindex < $this->_scount && ($sindex % $this->_tcount == 0)
658
+ && 0 <= $tindex && $tindex <= $this->_tcount) {
659
+ // create syllable of form LVT
660
+ $last += $tindex;
661
+ $result[(count($result) - 1)] = $last; // reset last
662
+ continue; // discard char
663
+ }
664
+ // Find out, whether two current characters form L and V
665
+ if (0 <= $lindex && $lindex < $this->_lcount && 0 <= $vindex && $vindex < $this->_vcount) {
666
+ // create syllable of form LV
667
+ $last = (int) $this->_sbase + ($lindex * $this->_vcount + $vindex) * $this->_tcount;
668
+ $result[(count($result) - 1)] = $last; // reset last
669
+ continue; // discard char
670
+ }
671
+ // if neither case was true, just add the character
672
+ $last = $char;
673
+ $result[] = $char;
674
+ }
675
+ return $result;
676
+ }
677
+
678
+ /**
679
+ * Returns the combining class of a certain wide char
680
+ * @param integer Wide char to check (32bit integer)
681
+ * @return integer Combining class if found, else 0
682
+ */
683
+ private function _get_combining_class($char)
684
+ {
685
+ return isset($this->NP['norm_combcls'][$char]) ? $this->NP['norm_combcls'][$char] : 0;
686
+ }
687
+
688
+ /**
689
+ * Apllies the cannonical ordering of a decomposed UCS4 sequence
690
+ * @param array Decomposed UCS4 sequence
691
+ * @return array Ordered USC4 sequence
692
+ */
693
+ private function _apply_cannonical_ordering($input)
694
+ {
695
+ $swap = true;
696
+ $size = count($input);
697
+ while ($swap) {
698
+ $swap = false;
699
+ $last = $this->_get_combining_class(intval($input[0]));
700
+ for ($i = 0; $i < $size-1; ++$i) {
701
+ $next = $this->_get_combining_class(intval($input[$i+1]));
702
+ if ($next != 0 && $last > $next) {
703
+ // Move item leftward until it fits
704
+ for ($j = $i + 1; $j > 0; --$j) {
705
+ if ($this->_get_combining_class(intval($input[$j-1])) <= $next) break;
706
+ $t = intval($input[$j]);
707
+ $input[$j] = intval($input[$j-1]);
708
+ $input[$j-1] = $t;
709
+ $swap = true;
710
+ }
711
+ // Reentering the loop looking at the old character again
712
+ $next = $last;
713
+ }
714
+ $last = $next;
715
+ }
716
+ }
717
+ return $input;
718
+ }
719
+
720
+ /**
721
+ * Do composition of a sequence of starter and non-starter
722
+ * @param array UCS4 Decomposed sequence
723
+ * @return array Ordered USC4 sequence
724
+ */
725
+ private function _combine($input)
726
+ {
727
+ $inp_len = count($input);
728
+ foreach ($this->NP['replacemaps'] as $np_src => $np_target) {
729
+ if ($np_target[0] != $input[0]) continue;
730
+ if (count($np_target) != $inp_len) continue;
731
+ $hit = false;
732
+ foreach ($input as $k2 => $v2) {
733
+ if ($v2 == $np_target[$k2]) {
734
+ $hit = true;
735
+ } else {
736
+ $hit = false;
737
+ break;
738
+ }
739
+ }
740
+ if ($hit) return $np_src;
741
+ }
742
+ return false;
743
+ }
744
+
745
+ /**
746
+ * This converts an UTF-8 encoded string to its UCS-4 representation
747
+ * By talking about UCS-4 "strings" we mean arrays of 32bit integers representing
748
+ * each of the "chars". This is due to PHP not being able to handle strings with
749
+ * bit depth different from 8. This apllies to the reverse method _ucs4_to_utf8(), too.
750
+ * The following UTF-8 encodings are supported:
751
+ * bytes bits representation
752
+ * 1 7 0xxxxxxx
753
+ * 2 11 110xxxxx 10xxxxxx
754
+ * 3 16 1110xxxx 10xxxxxx 10xxxxxx
755
+ * 4 21 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
756
+ * 5 26 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
757
+ * 6 31 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
758
+ * Each x represents a bit that can be used to store character data.
759
+ * The five and six byte sequences are part of Annex D of ISO/IEC 10646-1:2000
760
+ * @param string $input
761
+ * @return string
762
+ */
763
+ private function _utf8_to_ucs4($input)
764
+ {
765
+ $output = array();
766
+ $out_len = 0;
767
+ // Patch by Daniel Hahler; work around prolbem with mbstring.func_overload
768
+ if (function_exists('mb_strlen')) {
769
+ $inp_len = mb_strlen($input, '8bit');
770
+ } else {
771
+ $inp_len = strlen($input);
772
+ }
773
+ $mode = 'next';
774
+ $test = 'none';
775
+ for ($k = 0; $k < $inp_len; ++$k) {
776
+ $v = ord($input{$k}); // Extract byte from input string
777
+ if ($v < 128) { // We found an ASCII char - put into stirng as is
778
+ $output[$out_len] = $v;
779
+ ++$out_len;
780
+ if ('add' == $mode) {
781
+ $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
782
+ return false;
783
+ }
784
+ continue;
785
+ }
786
+ if ('next' == $mode) { // Try to find the next start byte; determine the width of the Unicode char
787
+ $start_byte = $v;
788
+ $mode = 'add';
789
+ $test = 'range';
790
+ if ($v >> 5 == 6) { // &110xxxxx 10xxxxx
791
+ $next_byte = 0; // Tells, how many times subsequent bitmasks must rotate 6bits to the left
792
+ $v = ($v - 192) << 6;
793
+ } elseif ($v >> 4 == 14) { // &1110xxxx 10xxxxxx 10xxxxxx
794
+ $next_byte = 1;
795
+ $v = ($v - 224) << 12;
796
+ } elseif ($v >> 3 == 30) { // &11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
797
+ $next_byte = 2;
798
+ $v = ($v - 240) << 18;
799
+ } elseif ($v >> 2 == 62) { // &111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
800
+ $next_byte = 3;
801
+ $v = ($v - 248) << 24;
802
+ } elseif ($v >> 1 == 126) { // &1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
803
+ $next_byte = 4;
804
+ $v = ($v - 252) << 30;
805
+ } else {
806
+ $this->_error('This might be UTF-8, but I don\'t understand it at byte '.$k);
807
+ return false;
808
+ }
809
+ if ('add' == $mode) {
810
+ $output[$out_len] = (int) $v;
811
+ ++$out_len;
812
+ continue;
813
+ }
814
+ }
815
+ if ('add' == $mode) {
816
+ if (!$this->_allow_overlong && $test == 'range') {
817
+ $test = 'none';
818
+ if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) {
819
+ $this->_error('Bogus UTF-8 character detected (out of legal range) at byte '.$k);
820
+ return false;
821
+ }
822
+ }
823
+ if ($v >> 6 == 2) { // Bit mask must be 10xxxxxx
824
+ $v = ($v - 128) << ($next_byte * 6);
825
+ $output[($out_len - 1)] += $v;
826
+ --$next_byte;
827
+ } else {
828
+ $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
829
+ return false;
830
+ }
831
+ if ($next_byte < 0) {
832
+ $mode = 'next';
833
+ }
834
+ }
835
+ } // for
836
+ return $output;
837
+ }
838
+
839
+ /**
840
+ * Convert UCS-4 string into UTF-8 string
841
+ * See _utf8_to_ucs4() for details
842
+ * @param string $input
843
+ * @return string
844
+ */
845
+ private function _ucs4_to_utf8($input)
846
+ {
847
+ $output = '';
848
+ foreach ($input as $k => $v) {
849
+ if ($v < 128) { // 7bit are transferred literally
850
+ $output .= chr($v);
851
+ } elseif ($v < (1 << 11)) { // 2 bytes
852
+ $output .= chr(192+($v >> 6)).chr(128+($v & 63));
853
+ } elseif ($v < (1 << 16)) { // 3 bytes
854
+ $output .= chr(224+($v >> 12)).chr(128+(($v >> 6) & 63)).chr(128+($v & 63));
855
+ } elseif ($v < (1 << 21)) { // 4 bytes
856
+ $output .= chr(240+($v >> 18)).chr(128+(($v >> 12) & 63)).chr(128+(($v >> 6) & 63)).chr(128+($v & 63));
857
+ } elseif (self::$safe_mode) {
858
+ $output .= self::$safe_char;
859
+ } else {
860
+ $this->_error('Conversion from UCS-4 to UTF-8 failed: malformed input at byte '.$k);
861
+ return false;
862
+ }
863
+ }
864
+ return $output;
865
+ }
866
+
867
+ /**
868
+ * Convert UCS-4 array into UCS-4 string
869
+ *
870
+ * @param array $input
871
+ * @return string
872
+ */
873
+ private function _ucs4_to_ucs4_string($input)
874
+ {
875
+ $output = '';
876
+ // Take array values and split output to 4 bytes per value
877
+ // The bit mask is 255, which reads &11111111
878
+ foreach ($input as $v) {
879
+ $output .= chr(($v >> 24) & 255).chr(($v >> 16) & 255).chr(($v >> 8) & 255).chr($v & 255);
880
+ }
881
+ return $output;
882
+ }
883
+
884
+ /**
885
+ * Convert UCS-4 strin into UCS-4 garray
886
+ *
887
+ * @param string $input
888
+ * @return array
889
+ */
890
+ private function _ucs4_string_to_ucs4($input)
891
+ {
892
+ $output = array();
893
+ $inp_len = strlen($input);
894
+ // Input length must be dividable by 4
895
+ if ($inp_len % 4) {
896
+ $this->_error('Input UCS4 string is broken');
897
+ return false;
898
+ }
899
+ // Empty input - return empty output
900
+ if (!$inp_len) return $output;
901
+ for ($i = 0, $out_len = -1; $i < $inp_len; ++$i) {
902
+ // Increment output position every 4 input bytes
903
+ if (!($i % 4)) {
904
+ $out_len++;
905
+ $output[$out_len] = 0;
906
+ }
907
+ $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) );
908
+ }
909
+ return $output;
910
+ }
911
+
912
+ /**
913
+ * Holds all relevant mapping tables, loaded from a seperate file on construct
914
+ * See RFC3454 for details
915
+ *
916
+ * @private array
917
+ * @since 0.5.2
918
+ *
919
+ */
920
+ private $NP = array
921
+ ('map_nothing' => array
922
+ (0xAD, 0x34F, 0x1806, 0x180B, 0x180C, 0x180D, 0x200B
923
+ ,0x200C, 0x200D, 0x2060, 0xFE00, 0xFE01, 0xFE02, 0xFE03
924
+ ,0xFE04, 0xFE05, 0xFE06, 0xFE07, 0xFE08, 0xFE09, 0xFE0A
925
+ ,0xFE0B, 0xFE0C, 0xFE0D, 0xFE0E, 0xFE0F, 0xFEFF
926
+ )
927
+ ,'general_prohibited' => array
928
+ (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC, 0xD, 0xE
929
+ ,0xF, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17
930
+ ,0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20
931
+ ,0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29
932
+ ,0x2A, 0x2B, 0x2C, 0x2F, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F
933
+ ,0x40, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x7B, 0x7C
934
+ ,0x7D, 0x7E, 0x7F, 0x3002
935
+ )
936
+ ,'prohibit' => array
937
+ (0xA0, 0x340, 0x341, 0x6DD, 0x70F, 0x1680, 0x180E, 0x2000
938
+ ,0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007
939
+ ,0x2008, 0x2009, 0x200A, 0x200B, 0x200C, 0x200D, 0x200E
940
+ ,0x200F, 0x2028, 0x2029, 0x202A, 0x202B, 0x202C, 0x202D
941
+ ,0x202E, 0x202F, 0x205F, 0x206A, 0x206B, 0x206C, 0x206D
942
+ ,0x206E, 0x206F, 0x3000, 0xFEFF, 0xFFF9, 0xFFFA, 0xFFFB
943
+ ,0xFFFC, 0xFFFD, 0xFFFE, 0xFFFF, 0x1FFFE, 0x1FFFF, 0x2FFFE
944
+ ,0x2FFFF, 0x3FFFE, 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE
945
+ ,0x5FFFF, 0x6FFFE, 0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE
946
+ ,0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE
947
+ ,0xBFFFF, 0xCFFFE, 0xCFFFF, 0xDFFFE, 0xDFFFF, 0xE0001
948
+ ,0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, 0x10FFFE, 0x10FFFF
949
+ )
950
+ ,'prohibit_ranges' => array
951
+ (array(0x80, 0x9F), array(0x2060, 0x206F)
952
+ ,array(0x1D173, 0x1D17A), array(0xE000, 0xF8FF)
953
+ ,array(0xF0000, 0xFFFFD), array(0x100000, 0x10FFFD)
954
+ ,array(0xFDD0, 0xFDEF), array(0xD800, 0xDFFF)
955
+ ,array(0x2FF0, 0x2FFB), array(0xE0020, 0xE007F)
956
+ )
957
+ ,'replacemaps' => array
958
+ (0x41 => array(0x61)
959
+ ,0x42 => array(0x62)
960
+ ,0x43 => array(0x63)
961
+ ,0x44 => array(0x64)
962
+ ,0x45 => array(0x65)
963
+ ,0x46 => array(0x66)
964
+ ,0x47 => array(0x67)
965
+ ,0x48 => array(0x68)
966
+ ,0x49 => array(0x69)
967
+ ,0x4A => array(0x6A)
968
+ ,0x4B => array(0x6B)
969
+ ,0x4C => array(0x6C)
970
+ ,0x4D => array(0x6D)
971
+ ,0x4E => array(0x6E)
972
+ ,0x4F => array(0x6F)
973
+ ,0x50 => array(0x70)
974
+ ,0x51 => array(0x71)
975
+ ,0x52 => array(0x72)
976
+ ,0x53 => array(0x73)
977
+ ,0x54 => array(0x74)
978
+ ,0x55 => array(0x75)
979
+ ,0x56 => array(0x76)
980
+ ,0x57 => array(0x77)
981
+ ,0x58 => array(0x78)
982
+ ,0x59 => array(0x79)
983
+ ,0x5A => array(0x7A)
984
+ ,0xB5 => array(0x3BC)
985
+ ,0xC0 => array(0xE0)
986
+ ,0xC1 => array(0xE1)
987
+ ,0xC2 => array(0xE2)
988
+ ,0xC3 => array(0xE3)
989
+ ,0xC4 => array(0xE4)
990
+ ,0xC5 => array(0xE5)
991
+ ,0xC6 => array(0xE6)
992
+ ,0xC7 => array(0xE7)
993
+ ,0xC8 => array(0xE8)
994
+ ,0xC9 => array(0xE9)
995
+ ,0xCA => array(0xEA)
996
+ ,0xCB => array(0xEB)
997
+ ,0xCC => array(0xEC)
998
+ ,0xCD => array(0xED)
999
+ ,0xCE => array(0xEE)
1000
+ ,0xCF => array(0xEF)
1001
+ ,0xD0 => array(0xF0)
1002
+ ,0xD1 => array(0xF1)
1003
+ ,0xD2 => array(0xF2)
1004
+ ,0xD3 => array(0xF3)
1005
+ ,0xD4 => array(0xF4)
1006
+ ,0xD5 => array(0xF5)
1007
+ ,0xD6 => array(0xF6)
1008
+ ,0xD8 => array(0xF8)
1009
+ ,0xD9 => array(0xF9)
1010
+ ,0xDA => array(0xFA)
1011
+ ,0xDB => array(0xFB)
1012
+ ,0xDC => array(0xFC)
1013
+ ,0xDD => array(0xFD)
1014
+ ,0xDE => array(0xFE)
1015
+ ,0xDF => array(0x73, 0x73)
1016
+ ,0x100 => array(0x101)
1017
+ ,0x102 => array(0x103)
1018
+ ,0x104 => array(0x105)
1019
+ ,0x106 => array(0x107)
1020
+ ,0x108 => array(0x109)
1021
+ ,0x10A => array(0x10B)
1022
+ ,0x10C => array(0x10D)
1023
+ ,0x10E => array(0x10F)
1024
+ ,0x110 => array(0x111)
1025
+ ,0x112 => array(0x113)
1026
+ ,0x114 => array(0x115)
1027
+ ,0x116 => array(0x117)
1028
+ ,0x118 => array(0x119)
1029
+ ,0x11A => array(0x11B)
1030
+ ,0x11C => array(0x11D)
1031
+ ,0x11E => array(0x11F)
1032
+ ,0x120 => array(0x121)
1033
+ ,0x122 => array(0x123)
1034
+ ,0x124 => array(0x125)
1035
+ ,0x126 => array(0x127)
1036
+ ,0x128 => array(0x129)
1037
+ ,0x12A => array(0x12B)
1038
+ ,0x12C => array(0x12D)
1039
+ ,0x12E => array(0x12F)
1040
+ ,0x130 => array(0x69, 0x307)
1041
+ ,0x132 => array(0x133)
1042
+ ,0x134 => array(0x135)
1043
+ ,0x136 => array(0x137)
1044
+ ,0x139 => array(0x13A)
1045
+ ,0x13B => array(0x13C)
1046
+ ,0x13D => array(0x13E)
1047
+ ,0x13F => array(0x140)
1048
+ ,0x141 => array(0x142)
1049
+ ,0x143 => array(0x144)
1050
+ ,0x145 => array(0x146)
1051
+ ,0x147 => array(0x148)
1052
+ ,0x149 => array(0x2BC, 0x6E)
1053
+ ,0x14A => array(0x14B)
1054
+ ,0x14C => array(0x14D)
1055
+ ,0x14E => array(0x14F)
1056
+ ,0x150 => array(0x151)
1057
+ ,0x152 => array(0x153)
1058
+ ,0x154 => array(0x155)
1059
+ ,0x156 => array(0x157)
1060
+ ,0x158 => array(0x159)
1061
+ ,0x15A => array(0x15B)
1062
+ ,0x15C => array(0x15D)
1063
+ ,0x15E => array(0x15F)
1064
+ ,0x160 => array(0x161)
1065
+ ,0x162 => array(0x163)
1066
+ ,0x164 => array(0x165)
1067
+ ,0x166 => array(0x167)
1068
+ ,0x168 => array(0x169)
1069
+ ,0x16A => array(0x16B)
1070
+ ,0x16C => array(0x16D)
1071
+ ,0x16E => array(0x16F)
1072
+ ,0x170 => array(0x171)
1073
+ ,0x172 => array(0x173)
1074
+ ,0x174 => array(0x175)
1075
+ ,0x176 => array(0x177)
1076
+ ,0x178 => array(0xFF)
1077
+ ,0x179 => array(0x17A)
1078
+ ,0x17B => array(0x17C)
1079
+ ,0x17D => array(0x17E)
1080
+ ,0x17F => array(0x73)
1081
+ ,0x181 => array(0x253)
1082
+ ,0x182 => array(0x183)
1083
+ ,0x184 => array(0x185)
1084
+ ,0x186 => array(0x254)
1085
+ ,0x187 => array(0x188)
1086
+ ,0x189 => array(0x256)
1087
+ ,0x18A => array(0x257)
1088
+ ,0x18B => array(0x18C)
1089
+ ,0x18E => array(0x1DD)
1090
+ ,0x18F => array(0x259)
1091
+ ,0x190 => array(0x25B)
1092
+ ,0x191 => array(0x192)
1093
+ ,0x193 => array(0x260)
1094
+ ,0x194 => array(0x263)
1095
+ ,0x196 => array(0x269)
1096
+ ,0x197 => array(0x268)
1097
+ ,0x198 => array(0x199)
1098
+ ,0x19C => array(0x26F)
1099
+ ,0x19D => array(0x272)
1100
+ ,0x19F => array(0x275)
1101
+ ,0x1A0 => array(0x1A1)
1102
+ ,0x1A2 => array(0x1A3)
1103
+ ,0x1A4 => array(0x1A5)
1104
+ ,0x1A6 => array(0x280)
1105
+ ,0x1A7 => array(0x1A8)
1106
+ ,0x1A9 => array(0x283)
1107
+ ,0x1AC => array(0x1AD)
1108
+ ,0x1AE => array(0x288)
1109
+ ,0x1AF => array(0x1B0)
1110
+ ,0x1B1 => array(0x28A)
1111
+ ,0x1B2 => array(0x28B)
1112
+ ,0x1B3 => array(0x1B4)
1113
+ ,0x1B5 => array(0x1B6)
1114
+ ,0x1B7 => array(0x292)
1115
+ ,0x1B8 => array(0x1B9)
1116
+ ,0x1BC => array(0x1BD)
1117
+ ,0x1C4 => array(0x1C6)
1118
+ ,0x1C5 => array(0x1C6)
1119
+ ,0x1C7 => array(0x1C9)
1120
+ ,0x1C8 => array(0x1C9)
1121
+ ,0x1CA => array(0x1CC)
1122
+ ,0x1CB => array(0x1CC)
1123
+ ,0x1CD => array(0x1CE)
1124
+ ,0x1CF => array(0x1D0)
1125
+ ,0x1D1 => array(0x1D2)
1126
+ ,0x1D3 => array(0x1D4)
1127
+ ,0x1D5 => array(0x1D6)
1128
+ ,0x1D7 => array(0x1D8)
1129
+ ,0x1D9 => array(0x1DA)
1130
+ ,0x1DB => array(0x1DC)
1131
+ ,0x1DE => array(0x1DF)
1132
+ ,0x1E0 => array(0x1E1)
1133
+ ,0x1E2 => array(0x1E3)
1134
+ ,0x1E4 => array(0x1E5)
1135
+ ,0x1E6 => array(0x1E7)
1136
+ ,0x1E8 => array(0x1E9)
1137
+ ,0x1EA => array(0x1EB)
1138
+ ,0x1EC => array(0x1ED)
1139
+ ,0x1EE => array(0x1EF)
1140
+ ,0x1F0 => array(0x6A, 0x30C)
1141
+ ,0x1F1 => array(0x1F3)
1142
+ ,0x1F2 => array(0x1F3)
1143
+ ,0x1F4 => array(0x1F5)
1144
+ ,0x1F6 => array(0x195)
1145
+ ,0x1F7 => array(0x1BF)
1146
+ ,0x1F8 => array(0x1F9)
1147
+ ,0x1FA => array(0x1FB)
1148
+ ,0x1FC => array(0x1FD)
1149
+ ,0x1FE => array(0x1FF)
1150
+ ,0x200 => array(0x201)
1151
+ ,0x202 => array(0x203)
1152
+ ,0x204 => array(0x205)
1153
+ ,0x206 => array(0x207)
1154
+ ,0x208 => array(0x209)
1155
+ ,0x20A => array(0x20B)
1156
+ ,0x20C => array(0x20D)
1157
+ ,0x20E => array(0x20F)
1158
+ ,0x210 => array(0x211)
1159
+ ,0x212 => array(0x213)
1160
+ ,0x214 => array(0x215)
1161
+ ,0x216 => array(0x217)
1162
+ ,0x218 => array(0x219)
1163
+ ,0x21A => array(0x21B)
1164
+ ,0x21C => array(0x21D)
1165
+ ,0x21E => array(0x21F)
1166
+ ,0x220 => array(0x19E)
1167
+ ,0x222 => array(0x223)
1168
+ ,0x224 => array(0x225)
1169
+ ,0x226 => array(0x227)
1170
+ ,0x228 => array(0x229)
1171
+ ,0x22A => array(0x22B)
1172
+ ,0x22C => array(0x22D)
1173
+ ,0x22E => array(0x22F)
1174
+ ,0x230 => array(0x231)
1175
+ ,0x232 => array(0x233)
1176
+ ,0x345 => array(0x3B9)
1177
+ ,0x37A => array(0x20, 0x3B9)
1178
+ ,0x386 => array(0x3AC)
1179
+ ,0x388 => array(0x3AD)
1180
+ ,0x389 => array(0x3AE)
1181
+ ,0x38A => array(0x3AF)
1182
+ ,0x38C => array(0x3CC)
1183
+ ,0x38E => array(0x3CD)
1184
+ ,0x38F => array(0x3CE)
1185
+ ,0x390 => array(0x3B9, 0x308, 0x301)
1186
+ ,0x391 => array(0x3B1)
1187
+ ,0x392 => array(0x3B2)
1188
+ ,0x393 => array(0x3B3)
1189
+ ,0x394 => array(0x3B4)
1190
+ ,0x395 => array(0x3B5)
1191
+ ,0x396 => array(0x3B6)
1192
+ ,0x397 => array(0x3B7)
1193
+ ,0x398 => array(0x3B8)
1194
+ ,0x399 => array(0x3B9)
1195
+ ,0x39A => array(0x3BA)
1196
+ ,0x39B => array(0x3BB)
1197
+ ,0x39C => array(0x3BC)
1198
+ ,0x39D => array(0x3BD)
1199
+ ,0x39E => array(0x3BE)
1200
+ ,0x39F => array(0x3BF)
1201
+ ,0x3A0 => array(0x3C0)
1202
+ ,0x3A1 => array(0x3C1)
1203
+ ,0x3A3 => array(0x3C3)
1204
+ ,0x3A4 => array(0x3C4)
1205
+ ,0x3A5 => array(0x3C5)
1206
+ ,0x3A6 => array(0x3C6)
1207
+ ,0x3A7 => array(0x3C7)
1208
+ ,0x3A8 => array(0x3C8)
1209
+ ,0x3A9 => array(0x3C9)
1210
+ ,0x3AA => array(0x3CA)
1211
+ ,0x3AB => array(0x3CB)
1212
+ ,0x3B0 => array(0x3C5, 0x308, 0x301)
1213
+ ,0x3C2 => array(0x3C3)
1214
+ ,0x3D0 => array(0x3B2)
1215
+ ,0x3D1 => array(0x3B8)
1216
+ ,0x3D2 => array(0x3C5)
1217
+ ,0x3D3 => array(0x3CD)
1218
+ ,0x3D4 => array(0x3CB)
1219
+ ,0x3D5 => array(0x3C6)
1220
+ ,0x3D6 => array(0x3C0)
1221
+ ,0x3D8 => array(0x3D9)
1222
+ ,0x3DA => array(0x3DB)
1223
+ ,0x3DC => array(0x3DD)
1224
+ ,0x3DE => array(0x3DF)
1225
+ ,0x3E0 => array(0x3E1)
1226
+ ,0x3E2 => array(0x3E3)
1227
+ ,0x3E4 => array(0x3E5)
1228
+ ,0x3E6 => array(0x3E7)
1229
+ ,0x3E8 => array(0x3E9)
1230
+ ,0x3EA => array(0x3EB)
1231
+ ,0x3EC => array(0x3ED)
1232
+ ,0x3EE => array(0x3EF)
1233
+ ,0x3F0 => array(0x3BA)
1234
+ ,0x3F1 => array(0x3C1)
1235
+ ,0x3F2 => array(0x3C3)
1236
+ ,0x3F4 => array(0x3B8)
1237
+ ,0x3F5 => array(0x3B5)
1238
+ ,0x400 => array(0x450)
1239
+ ,0x401 => array(0x451)
1240
+ ,0x402 => array(0x452)
1241
+ ,0x403 => array(0x453)
1242
+ ,0x404 => array(0x454)
1243
+ ,0x405 => array(0x455)
1244
+ ,0x406 => array(0x456)
1245
+ ,0x407 => array(0x457)
1246
+ ,0x408 => array(0x458)
1247
+ ,0x409 => array(0x459)
1248
+ ,0x40A => array(0x45A)
1249
+ ,0x40B => array(0x45B)
1250
+ ,0x40C => array(0x45C)
1251
+ ,0x40D => array(0x45D)
1252
+ ,0x40E => array(0x45E)
1253
+ ,0x40F => array(0x45F)
1254
+ ,0x410 => array(0x430)
1255
+ ,0x411 => array(0x431)
1256
+ ,0x412 => array(0x432)
1257
+ ,0x413 => array(0x433)
1258
+ ,0x414 => array(0x434)
1259
+ ,0x415 => array(0x435)
1260
+ ,0x416 => array(0x436)
1261
+ ,0x417 => array(0x437)
1262
+ ,0x418 => array(0x438)
1263
+ ,0x419 => array(0x439)
1264
+ ,0x41A => array(0x43A)
1265
+ ,0x41B => array(0x43B)
1266
+ ,0x41C => array(0x43C)
1267
+ ,0x41D => array(0x43D)
1268
+ ,0x41E => array(0x43E)
1269
+ ,0x41F => array(0x43F)
1270
+ ,0x420 => array(0x440)
1271
+ ,0x421 => array(0x441)
1272
+ ,0x422 => array(0x442)
1273
+ ,0x423 => array(0x443)
1274
+ ,0x424 => array(0x444)
1275
+ ,0x425 => array(0x445)
1276
+ ,0x426 => array(0x446)
1277
+ ,0x427 => array(0x447)
1278
+ ,0x428 => array(0x448)
1279
+ ,0x429 => array(0x449)
1280
+ ,0x42A => array(0x44A)
1281
+ ,0x42B => array(0x44B)
1282
+ ,0x42C => array(0x44C)
1283
+ ,0x42D => array(0x44D)
1284
+ ,0x42E => array(0x44E)
1285
+ ,0x42F => array(0x44F)
1286
+ ,0x460 => array(0x461)
1287
+ ,0x462 => array(0x463)
1288
+ ,0x464 => array(0x465)
1289
+ ,0x466 => array(0x467)
1290
+ ,0x468 => array(0x469)
1291
+ ,0x46A => array(0x46B)
1292
+ ,0x46C => array(0x46D)
1293
+ ,0x46E => array(0x46F)
1294
+ ,0x470 => array(0x471)
1295
+ ,0x472 => array(0x473)
1296
+ ,0x474 => array(0x475)
1297
+ ,0x476 => array(0x477)
1298
+ ,0x478 => array(0x479)
1299
+ ,0x47A => array(0x47B)
1300
+ ,0x47C => array(0x47D)
1301
+ ,0x47E => array(0x47F)
1302
+ ,0x480 => array(0x481)
1303
+ ,0x48A => array(0x48B)
1304
+ ,0x48C => array(0x48D)
1305
+ ,0x48E => array(0x48F)
1306
+ ,0x490 => array(0x491)
1307
+ ,0x492 => array(0x493)
1308
+ ,0x494 => array(0x495)
1309
+ ,0x496 => array(0x497)
1310
+ ,0x498 => array(0x499)
1311
+ ,0x49A => array(0x49B)
1312
+ ,0x49C => array(0x49D)
1313
+ ,0x49E => array(0x49F)
1314
+ ,0x4A0 => array(0x4A1)
1315
+ ,0x4A2 => array(0x4A3)
1316
+ ,0x4A4 => array(0x4A5)
1317
+ ,0x4A6 => array(0x4A7)
1318
+ ,0x4A8 => array(0x4A9)
1319
+ ,0x4AA => array(0x4AB)
1320
+ ,0x4AC => array(0x4AD)
1321
+ ,0x4AE => array(0x4AF)
1322
+ ,0x4B0 => array(0x4B1)
1323
+ ,0x4B2 => array(0x4B3)
1324
+ ,0x4B4 => array(0x4B5)
1325
+ ,0x4B6 => array(0x4B7)
1326
+ ,0x4B8 => array(0x4B9)
1327
+ ,0x4BA => array(0x4BB)
1328
+ ,0x4BC => array(0x4BD)
1329
+ ,0x4BE => array(0x4BF)
1330
+ ,0x4C1 => array(0x4C2)
1331
+ ,0x4C3 => array(0x4C4)
1332
+ ,0x4C5 => array(0x4C6)
1333
+ ,0x4C7 => array(0x4C8)
1334
+ ,0x4C9 => array(0x4CA)
1335
+ ,0x4CB => array(0x4CC)
1336
+ ,0x4CD => array(0x4CE)
1337
+ ,0x4D0 => array(0x4D1)
1338
+ ,0x4D2 => array(0x4D3)
1339
+ ,0x4D4 => array(0x4D5)
1340
+ ,0x4D6 => array(0x4D7)
1341
+ ,0x4D8 => array(0x4D9)
1342
+ ,0x4DA => array(0x4DB)
1343
+ ,0x4DC => array(0x4DD)
1344
+ ,0x4DE => array(0x4DF)
1345
+ ,0x4E0 => array(0x4E1)
1346
+ ,0x4E2 => array(0x4E3)
1347
+ ,0x4E4 => array(0x4E5)
1348
+ ,0x4E6 => array(0x4E7)
1349
+ ,0x4E8 => array(0x4E9)
1350
+ ,0x4EA => array(0x4EB)
1351
+ ,0x4EC => array(0x4ED)
1352
+ ,0x4EE => array(0x4EF)
1353
+ ,0x4F0 => array(0x4F1)
1354
+ ,0x4F2 => array(0x4F3)
1355
+ ,0x4F4 => array(0x4F5)
1356
+ ,0x4F8 => array(0x4F9)
1357
+ ,0x500 => array(0x501)
1358
+ ,0x502 => array(0x503)
1359
+ ,0x504 => array(0x505)
1360
+ ,0x506 => array(0x507)
1361
+ ,0x508 => array(0x509)
1362
+ ,0x50A => array(0x50B)
1363
+ ,0x50C => array(0x50D)
1364
+ ,0x50E => array(0x50F)
1365
+ ,0x531 => array(0x561)
1366
+ ,0x532 => array(0x562)
1367
+ ,0x533 => array(0x563)
1368
+ ,0x534 => array(0x564)
1369
+ ,0x535 => array(0x565)
1370
+ ,0x536 => array(0x566)
1371
+ ,0x537 => array(0x567)
1372
+ ,0x538 => array(0x568)
1373
+ ,0x539 => array(0x569)
1374
+ ,0x53A => array(0x56A)
1375
+ ,0x53B => array(0x56B)
1376
+ ,0x53C => array(0x56C)
1377
+ ,0x53D => array(0x56D)
1378
+ ,0x53E => array(0x56E)
1379
+ ,0x53F => array(0x56F)
1380
+ ,0x540 => array(0x570)
1381
+ ,0x541 => array(0x571)
1382
+ ,0x542 => array(0x572)
1383
+ ,0x543 => array(0x573)
1384
+ ,0x544 => array(0x574)
1385
+ ,0x545 => array(0x575)
1386
+ ,0x546 => array(0x576)
1387
+ ,0x547 => array(0x577)
1388
+ ,0x548 => array(0x578)
1389
+ ,0x549 => array(0x579)
1390
+ ,0x54A => array(0x57A)
1391
+ ,0x54B => array(0x57B)
1392
+ ,0x54C => array(0x57C)
1393
+ ,0x54D => array(0x57D)
1394
+ ,0x54E => array(0x57E)
1395
+ ,0x54F => array(0x57F)
1396
+ ,0x550 => array(0x580)
1397
+ ,0x551 => array(0x581)
1398
+ ,0x552 => array(0x582)
1399
+ ,0x553 => array(0x583)
1400
+ ,0x554 => array(0x584)
1401
+ ,0x555 => array(0x585)
1402
+ ,0x556 => array(0x586)
1403
+ ,0x587 => array(0x565, 0x582)
1404
+ ,0xE33 => array(0xE4D, 0xE32)
1405
+ ,0x1E00 => array(0x1E01)
1406
+ ,0x1E02 => array(0x1E03)
1407
+ ,0x1E04 => array(0x1E05)
1408
+ ,0x1E06 => array(0x1E07)
1409
+ ,0x1E08 => array(0x1E09)
1410
+ ,0x1E0A => array(0x1E0B)
1411
+ ,0x1E0C => array(0x1E0D)
1412
+ ,0x1E0E => array(0x1E0F)
1413
+ ,0x1E10 => array(0x1E11)
1414
+ ,0x1E12 => array(0x1E13)
1415
+ ,0x1E14 => array(0x1E15)
1416
+ ,0x1E16 => array(0x1E17)
1417
+ ,0x1E18 => array(0x1E19)
1418
+ ,0x1E1A => array(0x1E1B)
1419
+ ,0x1E1C => array(0x1E1D)
1420
+ ,0x1E1E => array(0x1E1F)
1421
+ ,0x1E20 => array(0x1E21)
1422
+ ,0x1E22 => array(0x1E23)
1423
+ ,0x1E24 => array(0x1E25)
1424
+ ,0x1E26 => array(0x1E27)
1425
+ ,0x1E28 => array(0x1E29)
1426
+ ,0x1E2A => array(0x1E2B)
1427
+ ,0x1E2C => array(0x1E2D)
1428
+ ,0x1E2E => array(0x1E2F)
1429
+ ,0x1E30 => array(0x1E31)
1430
+ ,0x1E32 => array(0x1E33)
1431
+ ,0x1E34 => array(0x1E35)
1432
+ ,0x1E36 => array(0x1E37)
1433
+ ,0x1E38 => array(0x1E39)
1434
+ ,0x1E3A => array(0x1E3B)
1435
+ ,0x1E3C => array(0x1E3D)
1436
+ ,0x1E3E => array(0x1E3F)
1437
+ ,0x1E40 => array(0x1E41)
1438
+ ,0x1E42 => array(0x1E43)
1439
+ ,0x1E44 => array(0x1E45)
1440
+ ,0x1E46 => array(0x1E47)
1441
+ ,0x1E48 => array(0x1E49)
1442
+ ,0x1E4A => array(0x1E4B)
1443
+ ,0x1E4C => array(0x1E4D)
1444
+ ,0x1E4E => array(0x1E4F)
1445
+ ,0x1E50 => array(0x1E51)
1446
+ ,0x1E52 => array(0x1E53)
1447
+ ,0x1E54 => array(0x1E55)
1448
+ ,0x1E56 => array(0x1E57)
1449
+ ,0x1E58 => array(0x1E59)
1450
+ ,0x1E5A => array(0x1E5B)
1451
+ ,0x1E5C => array(0x1E5D)
1452
+ ,0x1E5E => array(0x1E5F)
1453
+ ,0x1E60 => array(0x1E61)
1454
+ ,0x1E62 => array(0x1E63)
1455
+ ,0x1E64 => array(0x1E65)
1456
+ ,0x1E66 => array(0x1E67)
1457
+ ,0x1E68 => array(0x1E69)
1458
+ ,0x1E6A => array(0x1E6B)
1459
+ ,0x1E6C => array(0x1E6D)
1460
+ ,0x1E6E => array(0x1E6F)
1461
+ ,0x1E70 => array(0x1E71)
1462
+ ,0x1E72 => array(0x1E73)
1463
+ ,0x1E74 => array(0x1E75)
1464
+ ,0x1E76 => array(0x1E77)
1465
+ ,0x1E78 => array(0x1E79)
1466
+ ,0x1E7A => array(0x1E7B)
1467
+ ,0x1E7C => array(0x1E7D)
1468
+ ,0x1E7E => array(0x1E7F)
1469
+ ,0x1E80 => array(0x1E81)
1470
+ ,0x1E82 => array(0x1E83)
1471
+ ,0x1E84 => array(0x1E85)
1472
+ ,0x1E86 => array(0x1E87)
1473
+ ,0x1E88 => array(0x1E89)
1474
+ ,0x1E8A => array(0x1E8B)
1475
+ ,0x1E8C => array(0x1E8D)
1476
+ ,0x1E8E => array(0x1E8F)
1477
+ ,0x1E90 => array(0x1E91)
1478
+ ,0x1E92 => array(0x1E93)
1479
+ ,0x1E94 => array(0x1E95)
1480
+ ,0x1E96 => array(0x68, 0x331)
1481
+ ,0x1E97 => array(0x74, 0x308)
1482
+ ,0x1E98 => array(0x77, 0x30A)
1483
+ ,0x1E99 => array(0x79, 0x30A)
1484
+ ,0x1E9A => array(0x61, 0x2BE)
1485
+ ,0x1E9B => array(0x1E61)
1486
+ ,0x1EA0 => array(0x1EA1)
1487
+ ,0x1EA2 => array(0x1EA3)
1488
+ ,0x1EA4 => array(0x1EA5)
1489
+ ,0x1EA6 => array(0x1EA7)
1490
+ ,0x1EA8 => array(0x1EA9)
1491
+ ,0x1EAA => array(0x1EAB)
1492
+ ,0x1EAC => array(0x1EAD)
1493
+ ,0x1EAE => array(0x1EAF)
1494
+ ,0x1EB0 => array(0x1EB1)
1495
+ ,0x1EB2 => array(0x1EB3)
1496
+ ,0x1EB4 => array(0x1EB5)
1497
+ ,0x1EB6 => array(0x1EB7)
1498
+ ,0x1EB8 => array(0x1EB9)
1499
+ ,0x1EBA => array(0x1EBB)
1500
+ ,0x1EBC => array(0x1EBD)
1501
+ ,0x1EBE => array(0x1EBF)
1502
+ ,0x1EC0 => array(0x1EC1)
1503
+ ,0x1EC2 => array(0x1EC3)
1504
+ ,0x1EC4 => array(0x1EC5)
1505
+ ,0x1EC6 => array(0x1EC7)
1506
+ ,0x1EC8 => array(0x1EC9)
1507
+ ,0x1ECA => array(0x1ECB)
1508
+ ,0x1ECC => array(0x1ECD)
1509
+ ,0x1ECE => array(0x1ECF)
1510
+ ,0x1ED0 => array(0x1ED1)
1511
+ ,0x1ED2 => array(0x1ED3)
1512
+ ,0x1ED4 => array(0x1ED5)
1513
+ ,0x1ED6 => array(0x1ED7)
1514
+ ,0x1ED8 => array(0x1ED9)
1515
+ ,0x1EDA => array(0x1EDB)
1516
+ ,0x1EDC => array(0x1EDD)
1517
+ ,0x1EDE => array(0x1EDF)
1518
+ ,0x1EE0 => array(0x1EE1)
1519
+ ,0x1EE2 => array(0x1EE3)
1520
+ ,0x1EE4 => array(0x1EE5)
1521
+ ,0x1EE6 => array(0x1EE7)
1522
+ ,0x1EE8 => array(0x1EE9)
1523
+ ,0x1EEA => array(0x1EEB)
1524
+ ,0x1EEC => array(0x1EED)
1525
+ ,0x1EEE => array(0x1EEF)
1526
+ ,0x1EF0 => array(0x1EF1)
1527
+ ,0x1EF2 => array(0x1EF3)
1528
+ ,0x1EF4 => array(0x1EF5)
1529
+ ,0x1EF6 => array(0x1EF7)
1530
+ ,0x1EF8 => array(0x1EF9)
1531
+ ,0x1F08 => array(0x1F00)
1532
+ ,0x1F09 => array(0x1F01)
1533
+ ,0x1F0A => array(0x1F02)
1534
+ ,0x1F0B => array(0x1F03)
1535
+ ,0x1F0C => array(0x1F04)
1536
+ ,0x1F0D => array(0x1F05)
1537
+ ,0x1F0E => array(0x1F06)
1538
+ ,0x1F0F => array(0x1F07)
1539
+ ,0x1F18 => array(0x1F10)
1540
+ ,0x1F19 => array(0x1F11)
1541
+ ,0x1F1A => array(0x1F12)
1542
+ ,0x1F1B => array(0x1F13)
1543
+ ,0x1F1C => array(0x1F14)
1544
+ ,0x1F1D => array(0x1F15)
1545
+ ,0x1F28 => array(0x1F20)
1546
+ ,0x1F29 => array(0x1F21)
1547
+ ,0x1F2A => array(0x1F22)
1548
+ ,0x1F2B => array(0x1F23)
1549
+ ,0x1F2C => array(0x1F24)
1550
+ ,0x1F2D => array(0x1F25)
1551
+ ,0x1F2E => array(0x1F26)
1552
+ ,0x1F2F => array(0x1F27)
1553
+ ,0x1F38 => array(0x1F30)
1554
+ ,0x1F39 => array(0x1F31)
1555
+ ,0x1F3A => array(0x1F32)
1556
+ ,0x1F3B => array(0x1F33)
1557
+ ,0x1F3C => array(0x1F34)
1558
+ ,0x1F3D => array(0x1F35)
1559
+ ,0x1F3E => array(0x1F36)
1560
+ ,0x1F3F => array(0x1F37)
1561
+ ,0x1F48 => array(0x1F40)
1562
+ ,0x1F49 => array(0x1F41)
1563
+ ,0x1F4A => array(0x1F42)
1564
+ ,0x1F4B => array(0x1F43)
1565
+ ,0x1F4C => array(0x1F44)
1566
+ ,0x1F4D => array(0x1F45)
1567
+ ,0x1F50 => array(0x3C5, 0x313)
1568
+ ,0x1F52 => array(0x3C5, 0x313, 0x300)
1569
+ ,0x1F54 => array(0x3C5, 0x313, 0x301)
1570
+ ,0x1F56 => array(0x3C5, 0x313, 0x342)
1571
+ ,0x1F59 => array(0x1F51)
1572
+ ,0x1F5B => array(0x1F53)
1573
+ ,0x1F5D => array(0x1F55)
1574
+ ,0x1F5F => array(0x1F57)
1575
+ ,0x1F68 => array(0x1F60)
1576
+ ,0x1F69 => array(0x1F61)
1577
+ ,0x1F6A => array(0x1F62)
1578
+ ,0x1F6B => array(0x1F63)
1579
+ ,0x1F6C => array(0x1F64)
1580
+ ,0x1F6D => array(0x1F65)
1581
+ ,0x1F6E => array(0x1F66)
1582
+ ,0x1F6F => array(0x1F67)
1583
+ ,0x1F80 => array(0x1F00, 0x3B9)
1584
+ ,0x1F81 => array(0x1F01, 0x3B9)
1585
+ ,0x1F82 => array(0x1F02, 0x3B9)
1586
+ ,0x1F83 => array(0x1F03, 0x3B9)
1587
+ ,0x1F84 => array(0x1F04, 0x3B9)
1588
+ ,0x1F85 => array(0x1F05, 0x3B9)
1589
+ ,0x1F86 => array(0x1F06, 0x3B9)
1590
+ ,0x1F87 => array(0x1F07, 0x3B9)
1591
+ ,0x1F88 => array(0x1F00, 0x3B9)
1592
+ ,0x1F89 => array(0x1F01, 0x3B9)
1593
+ ,0x1F8A => array(0x1F02, 0x3B9)
1594
+ ,0x1F8B => array(0x1F03, 0x3B9)
1595
+ ,0x1F8C => array(0x1F04, 0x3B9)
1596
+ ,0x1F8D => array(0x1F05, 0x3B9)
1597
+ ,0x1F8E => array(0x1F06, 0x3B9)
1598
+ ,0x1F8F => array(0x1F07, 0x3B9)
1599
+ ,0x1F90 => array(0x1F20, 0x3B9)
1600
+ ,0x1F91 => array(0x1F21, 0x3B9)
1601
+ ,0x1F92 => array(0x1F22, 0x3B9)
1602
+ ,0x1F93 => array(0x1F23, 0x3B9)
1603
+ ,0x1F94 => array(0x1F24, 0x3B9)
1604
+ ,0x1F95 => array(0x1F25, 0x3B9)
1605
+ ,0x1F96 => array(0x1F26, 0x3B9)
1606
+ ,0x1F97 => array(0x1F27, 0x3B9)
1607
+ ,0x1F98 => array(0x1F20, 0x3B9)
1608
+ ,0x1F99 => array(0x1F21, 0x3B9)
1609
+ ,0x1F9A => array(0x1F22, 0x3B9)
1610
+ ,0x1F9B => array(0x1F23, 0x3B9)
1611
+ ,0x1F9C => array(0x1F24, 0x3B9)
1612
+ ,0x1F9D => array(0x1F25, 0x3B9)
1613
+ ,0x1F9E => array(0x1F26, 0x3B9)
1614
+ ,0x1F9F => array(0x1F27, 0x3B9)
1615
+ ,0x1FA0 => array(0x1F60, 0x3B9)
1616
+ ,0x1FA1 => array(0x1F61, 0x3B9)
1617
+ ,0x1FA2 => array(0x1F62, 0x3B9)
1618
+ ,0x1FA3 => array(0x1F63, 0x3B9)
1619
+ ,0x1FA4 => array(0x1F64, 0x3B9)
1620
+ ,0x1FA5 => array(0x1F65, 0x3B9)
1621
+ ,0x1FA6 => array(0x1F66, 0x3B9)
1622
+ ,0x1FA7 => array(0x1F67, 0x3B9)
1623
+ ,0x1FA8 => array(0x1F60, 0x3B9)
1624
+ ,0x1FA9 => array(0x1F61, 0x3B9)
1625
+ ,0x1FAA => array(0x1F62, 0x3B9)
1626
+ ,0x1FAB => array(0x1F63, 0x3B9)
1627
+ ,0x1FAC => array(0x1F64, 0x3B9)
1628
+ ,0x1FAD => array(0x1F65, 0x3B9)
1629
+ ,0x1FAE => array(0x1F66, 0x3B9)
1630
+ ,0x1FAF => array(0x1F67, 0x3B9)
1631
+ ,0x1FB2 => array(0x1F70, 0x3B9)
1632
+ ,0x1FB3 => array(0x3B1, 0x3B9)
1633
+ ,0x1FB4 => array(0x3AC, 0x3B9)
1634
+ ,0x1FB6 => array(0x3B1, 0x342)
1635
+ ,0x1FB7 => array(0x3B1, 0x342, 0x3B9)
1636
+ ,0x1FB8 => array(0x1FB0)
1637
+ ,0x1FB9 => array(0x1FB1)
1638
+ ,0x1FBA => array(0x1F70)
1639
+ ,0x1FBB => array(0x1F71)
1640
+ ,0x1FBC => array(0x3B1, 0x3B9)
1641
+ ,0x1FBE => array(0x3B9)
1642
+ ,0x1FC2 => array(0x1F74, 0x3B9)
1643
+ ,0x1FC3 => array(0x3B7, 0x3B9)
1644
+ ,0x1FC4 => array(0x3AE, 0x3B9)
1645
+ ,0x1FC6 => array(0x3B7, 0x342)
1646
+ ,0x1FC7 => array(0x3B7, 0x342, 0x3B9)
1647
+ ,0x1FC8 => array(0x1F72)
1648
+ ,0x1FC9 => array(0x1F73)
1649
+ ,0x1FCA => array(0x1F74)
1650
+ ,0x1FCB => array(0x1F75)
1651
+ ,0x1FCC => array(0x3B7, 0x3B9)
1652
+ ,0x1FD2 => array(0x3B9, 0x308, 0x300)
1653
+ ,0x1FD3 => array(0x3B9, 0x308, 0x301)
1654
+ ,0x1FD6 => array(0x3B9, 0x342)
1655
+ ,0x1FD7 => array(0x3B9, 0x308, 0x342)
1656
+ ,0x1FD8 => array(0x1FD0)
1657
+ ,0x1FD9 => array(0x1FD1)
1658
+ ,0x1FDA => array(0x1F76)
1659
+ ,0x1FDB => array(0x1F77)
1660
+ ,0x1FE2 => array(0x3C5, 0x308, 0x300)
1661
+ ,0x1FE3 => array(0x3C5, 0x308, 0x301)
1662
+ ,0x1FE4 => array(0x3C1, 0x313)
1663
+ ,0x1FE6 => array(0x3C5, 0x342)
1664
+ ,0x1FE7 => array(0x3C5, 0x308, 0x342)
1665
+ ,0x1FE8 => array(0x1FE0)
1666
+ ,0x1FE9 => array(0x1FE1)
1667
+ ,0x1FEA => array(0x1F7A)
1668
+ ,0x1FEB => array(0x1F7B)
1669
+ ,0x1FEC => array(0x1FE5)
1670
+ ,0x1FF2 => array(0x1F7C, 0x3B9)
1671
+ ,0x1FF3 => array(0x3C9, 0x3B9)
1672
+ ,0x1FF4 => array(0x3CE, 0x3B9)
1673
+ ,0x1FF6 => array(0x3C9, 0x342)
1674
+ ,0x1FF7 => array(0x3C9, 0x342, 0x3B9)
1675
+ ,0x1FF8 => array(0x1F78)
1676
+ ,0x1FF9 => array(0x1F79)
1677
+ ,0x1FFA => array(0x1F7C)
1678
+ ,0x1FFB => array(0x1F7D)
1679
+ ,0x1FFC => array(0x3C9, 0x3B9)
1680
+ ,0x20A8 => array(0x72, 0x73)
1681
+ ,0x2102 => array(0x63)
1682
+ ,0x2103 => array(0xB0, 0x63)
1683
+ ,0x2107 => array(0x25B)
1684
+ ,0x2109 => array(0xB0, 0x66)
1685
+ ,0x210B => array(0x68)
1686
+ ,0x210C => array(0x68)
1687
+ ,0x210D => array(0x68)
1688
+ ,0x2110 => array(0x69)
1689
+ ,0x2111 => array(0x69)
1690
+ ,0x2112 => array(0x6C)
1691
+ ,0x2115 => array(0x6E)
1692
+ ,0x2116 => array(0x6E, 0x6F)
1693
+ ,0x2119 => array(0x70)
1694
+ ,0x211A => array(0x71)
1695
+ ,0x211B => array(0x72)
1696
+ ,0x211C => array(0x72)
1697
+ ,0x211D => array(0x72)
1698
+ ,0x2120 => array(0x73, 0x6D)
1699
+ ,0x2121 => array(0x74, 0x65, 0x6C)
1700
+ ,0x2122 => array(0x74, 0x6D)
1701
+ ,0x2124 => array(0x7A)
1702
+ ,0x2126 => array(0x3C9)
1703
+ ,0x2128 => array(0x7A)
1704
+ ,0x212A => array(0x6B)
1705
+ ,0x212B => array(0xE5)
1706
+ ,0x212C => array(0x62)
1707
+ ,0x212D => array(0x63)
1708
+ ,0x2130 => array(0x65)
1709
+ ,0x2131 => array(0x66)
1710
+ ,0x2133 => array(0x6D)
1711
+ ,0x213E => array(0x3B3)
1712
+ ,0x213F => array(0x3C0)
1713
+ ,0x2145 => array(0x64)
1714
+ ,0x2160 => array(0x2170)
1715
+ ,0x2161 => array(0x2171)
1716
+ ,0x2162 => array(0x2172)
1717
+ ,0x2163 => array(0x2173)
1718
+ ,0x2164 => array(0x2174)
1719
+ ,0x2165 => array(0x2175)
1720
+ ,0x2166 => array(0x2176)
1721
+ ,0x2167 => array(0x2177)
1722
+ ,0x2168 => array(0x2178)
1723
+ ,0x2169 => array(0x2179)
1724
+ ,0x216A => array(0x217A)
1725
+ ,0x216B => array(0x217B)
1726
+ ,0x216C => array(0x217C)
1727
+ ,0x216D => array(0x217D)
1728
+ ,0x216E => array(0x217E)
1729
+ ,0x216F => array(0x217F)
1730
+ ,0x24B6 => array(0x24D0)
1731
+ ,0x24B7 => array(0x24D1)
1732
+ ,0x24B8 => array(0x24D2)
1733
+ ,0x24B9 => array(0x24D3)
1734
+ ,0x24BA => array(0x24D4)
1735
+ ,0x24BB => array(0x24D5)
1736
+ ,0x24BC => array(0x24D6)
1737
+ ,0x24BD => array(0x24D7)
1738
+ ,0x24BE => array(0x24D8)
1739
+ ,0x24BF => array(0x24D9)
1740
+ ,0x24C0 => array(0x24DA)
1741
+ ,0x24C1 => array(0x24DB)
1742
+ ,0x24C2 => array(0x24DC)
1743
+ ,0x24C3 => array(0x24DD)
1744
+ ,0x24C4 => array(0x24DE)
1745
+ ,0x24C5 => array(0x24DF)
1746
+ ,0x24C6 => array(0x24E0)
1747
+ ,0x24C7 => array(0x24E1)
1748
+ ,0x24C8 => array(0x24E2)
1749
+ ,0x24C9 => array(0x24E3)
1750
+ ,0x24CA => array(0x24E4)
1751
+ ,0x24CB => array(0x24E5)
1752
+ ,0x24CC => array(0x24E6)
1753
+ ,0x24CD => array(0x24E7)
1754
+ ,0x24CE => array(0x24E8)
1755
+ ,0x24CF => array(0x24E9)
1756
+ ,0x3371 => array(0x68, 0x70, 0x61)
1757
+ ,0x3373 => array(0x61, 0x75)
1758
+ ,0x3375 => array(0x6F, 0x76)
1759
+ ,0x3380 => array(0x70, 0x61)
1760
+ ,0x3381 => array(0x6E, 0x61)
1761
+ ,0x3382 => array(0x3BC, 0x61)
1762
+ ,0x3383 => array(0x6D, 0x61)
1763
+ ,0x3384 => array(0x6B, 0x61)
1764
+ ,0x3385 => array(0x6B, 0x62)
1765
+ ,0x3386 => array(0x6D, 0x62)
1766
+ ,0x3387 => array(0x67, 0x62)
1767
+ ,0x338A => array(0x70, 0x66)
1768
+ ,0x338B => array(0x6E, 0x66)
1769
+ ,0x338C => array(0x3BC, 0x66)
1770
+ ,0x3390 => array(0x68, 0x7A)
1771
+ ,0x3391 => array(0x6B, 0x68, 0x7A)
1772
+ ,0x3392 => array(0x6D, 0x68, 0x7A)
1773
+ ,0x3393 => array(0x67, 0x68, 0x7A)
1774
+ ,0x3394 => array(0x74, 0x68, 0x7A)
1775
+ ,0x33A9 => array(0x70, 0x61)
1776
+ ,0x33AA => array(0x6B, 0x70, 0x61)
1777
+ ,0x33AB => array(0x6D, 0x70, 0x61)
1778
+ ,0x33AC => array(0x67, 0x70, 0x61)
1779
+ ,0x33B4 => array(0x70, 0x76)
1780
+ ,0x33B5 => array(0x6E, 0x76)
1781
+ ,0x33B6 => array(0x3BC, 0x76)
1782
+ ,0x33B7 => array(0x6D, 0x76)
1783
+ ,0x33B8 => array(0x6B, 0x76)
1784
+ ,0x33B9 => array(0x6D, 0x76)
1785
+ ,0x33BA => array(0x70, 0x77)
1786
+ ,0x33BB => array(0x6E, 0x77)
1787
+ ,0x33BC => array(0x3BC, 0x77)
1788
+ ,0x33BD => array(0x6D, 0x77)
1789
+ ,0x33BE => array(0x6B, 0x77)
1790
+ ,0x33BF => array(0x6D, 0x77)
1791
+ ,0x33C0 => array(0x6B, 0x3C9)
1792
+ ,0x33C1 => array(0x6D, 0x3C9) /*
1793
+ ,0x33C2 => array(0x61, 0x2E, 0x6D, 0x2E) */
1794
+ ,0x33C3 => array(0x62, 0x71)
1795
+ ,0x33C6 => array(0x63, 0x2215, 0x6B, 0x67)
1796
+ ,0x33C7 => array(0x63, 0x6F, 0x2E)
1797
+ ,0x33C8 => array(0x64, 0x62)
1798
+ ,0x33C9 => array(0x67, 0x79)
1799
+ ,0x33CB => array(0x68, 0x70)
1800
+ ,0x33CD => array(0x6B, 0x6B)
1801
+ ,0x33CE => array(0x6B, 0x6D)
1802
+ ,0x33D7 => array(0x70, 0x68)
1803
+ ,0x33D9 => array(0x70, 0x70, 0x6D)
1804
+ ,0x33DA => array(0x70, 0x72)
1805
+ ,0x33DC => array(0x73, 0x76)
1806
+ ,0x33DD => array(0x77, 0x62)
1807
+ ,0xFB00 => array(0x66, 0x66)
1808
+ ,0xFB01 => array(0x66, 0x69)
1809
+ ,0xFB02 => array(0x66, 0x6C)
1810
+ ,0xFB03 => array(0x66, 0x66, 0x69)
1811
+ ,0xFB04 => array(0x66, 0x66, 0x6C)
1812
+ ,0xFB05 => array(0x73, 0x74)
1813
+ ,0xFB06 => array(0x73, 0x74)
1814
+ ,0xFB13 => array(0x574, 0x576)
1815
+ ,0xFB14 => array(0x574, 0x565)
1816
+ ,0xFB15 => array(0x574, 0x56B)
1817
+ ,0xFB16 => array(0x57E, 0x576)
1818
+ ,0xFB17 => array(0x574, 0x56D)
1819
+ ,0xFF21 => array(0xFF41)
1820
+ ,0xFF22 => array(0xFF42)
1821
+ ,0xFF23 => array(0xFF43)
1822
+ ,0xFF24 => array(0xFF44)
1823
+ ,0xFF25 => array(0xFF45)
1824
+ ,0xFF26 => array(0xFF46)
1825
+ ,0xFF27 => array(0xFF47)
1826
+ ,0xFF28 => array(0xFF48)
1827
+ ,0xFF29 => array(0xFF49)
1828
+ ,0xFF2A => array(0xFF4A)
1829
+ ,0xFF2B => array(0xFF4B)
1830
+ ,0xFF2C => array(0xFF4C)
1831
+ ,0xFF2D => array(0xFF4D)
1832
+ ,0xFF2E => array(0xFF4E)
1833
+ ,0xFF2F => array(0xFF4F)
1834
+ ,0xFF30 => array(0xFF50)
1835
+ ,0xFF31 => array(0xFF51)
1836
+ ,0xFF32 => array(0xFF52)
1837
+ ,0xFF33 => array(0xFF53)
1838
+ ,0xFF34 => array(0xFF54)
1839
+ ,0xFF35 => array(0xFF55)
1840
+ ,0xFF36 => array(0xFF56)
1841
+ ,0xFF37 => array(0xFF57)
1842
+ ,0xFF38 => array(0xFF58)
1843
+ ,0xFF39 => array(0xFF59)
1844
+ ,0xFF3A => array(0xFF5A)
1845
+ ,0x10400 => array(0x10428)
1846
+ ,0x10401 => array(0x10429)
1847
+ ,0x10402 => array(0x1042A)
1848
+ ,0x10403 => array(0x1042B)
1849
+ ,0x10404 => array(0x1042C)
1850
+ ,0x10405 => array(0x1042D)
1851
+ ,0x10406 => array(0x1042E)
1852
+ ,0x10407 => array(0x1042F)
1853
+ ,0x10408 => array(0x10430)
1854
+ ,0x10409 => array(0x10431)
1855
+ ,0x1040A => array(0x10432)
1856
+ ,0x1040B => array(0x10433)
1857
+ ,0x1040C => array(0x10434)
1858
+ ,0x1040D => array(0x10435)
1859
+ ,0x1040E => array(0x10436)
1860
+ ,0x1040F => array(0x10437)
1861
+ ,0x10410 => array(0x10438)
1862
+ ,0x10411 => array(0x10439)
1863
+ ,0x10412 => array(0x1043A)
1864
+ ,0x10413 => array(0x1043B)
1865
+ ,0x10414 => array(0x1043C)
1866
+ ,0x10415 => array(0x1043D)
1867
+ ,0x10416 => array(0x1043E)
1868
+ ,0x10417 => array(0x1043F)
1869
+ ,0x10418 => array(0x10440)
1870
+ ,0x10419 => array(0x10441)
1871
+ ,0x1041A => array(0x10442)
1872
+ ,0x1041B => array(0x10443)
1873
+ ,0x1041C => array(0x10444)
1874
+ ,0x1041D => array(0x10445)
1875
+ ,0x1041E => array(0x10446)
1876
+ ,0x1041F => array(0x10447)
1877
+ ,0x10420 => array(0x10448)
1878
+ ,0x10421 => array(0x10449)
1879
+ ,0x10422 => array(0x1044A)
1880
+ ,0x10423 => array(0x1044B)
1881
+ ,0x10424 => array(0x1044C)
1882
+ ,0x10425 => array(0x1044D)
1883
+ ,0x1D400 => array(0x61)
1884
+ ,0x1D401 => array(0x62)
1885
+ ,0x1D402 => array(0x63)
1886
+ ,0x1D403 => array(0x64)
1887
+ ,0x1D404 => array(0x65)
1888
+ ,0x1D405 => array(0x66)
1889
+ ,0x1D406 => array(0x67)
1890
+ ,0x1D407 => array(0x68)
1891
+ ,0x1D408 => array(0x69)
1892
+ ,0x1D409 => array(0x6A)
1893
+ ,0x1D40A => array(0x6B)
1894
+ ,0x1D40B => array(0x6C)
1895
+ ,0x1D40C => array(0x6D)
1896
+ ,0x1D40D => array(0x6E)
1897
+ ,0x1D40E => array(0x6F)
1898
+ ,0x1D40F => array(0x70)
1899
+ ,0x1D410 => array(0x71)
1900
+ ,0x1D411 => array(0x72)
1901
+ ,0x1D412 => array(0x73)
1902
+ ,0x1D413 => array(0x74)
1903
+ ,0x1D414 => array(0x75)
1904
+ ,0x1D415 => array(0x76)
1905
+ ,0x1D416 => array(0x77)
1906
+ ,0x1D417 => array(0x78)
1907
+ ,0x1D418 => array(0x79)
1908
+ ,0x1D419 => array(0x7A)
1909
+ ,0x1D434 => array(0x61)
1910
+ ,0x1D435 => array(0x62)
1911
+ ,0x1D436 => array(0x63)
1912
+ ,0x1D437 => array(0x64)
1913
+ ,0x1D438 => array(0x65)
1914
+ ,0x1D439 => array(0x66)
1915
+ ,0x1D43A => array(0x67)
1916
+ ,0x1D43B => array(0x68)
1917
+ ,0x1D43C => array(0x69)
1918
+ ,0x1D43D => array(0x6A)
1919
+ ,0x1D43E => array(0x6B)
1920
+ ,0x1D43F => array(0x6C)
1921
+ ,0x1D440 => array(0x6D)
1922
+ ,0x1D441 => array(0x6E)
1923
+ ,0x1D442 => array(0x6F)
1924
+ ,0x1D443 => array(0x70)
1925
+ ,0x1D444 => array(0x71)
1926
+ ,0x1D445 => array(0x72)
1927
+ ,0x1D446 => array(0x73)
1928
+ ,0x1D447 => array(0x74)
1929
+ ,0x1D448 => array(0x75)
1930
+ ,0x1D449 => array(0x76)
1931
+ ,0x1D44A => array(0x77)
1932
+ ,0x1D44B => array(0x78)
1933
+ ,0x1D44C => array(0x79)
1934
+ ,0x1D44D => array(0x7A)
1935
+ ,0x1D468 => array(0x61)
1936
+ ,0x1D469 => array(0x62)
1937
+ ,0x1D46A => array(0x63)
1938
+ ,0x1D46B => array(0x64)
1939
+ ,0x1D46C => array(0x65)
1940
+ ,0x1D46D => array(0x66)
1941
+ ,0x1D46E => array(0x67)
1942
+ ,0x1D46F => array(0x68)
1943
+ ,0x1D470 => array(0x69)
1944
+ ,0x1D471 => array(0x6A)
1945
+ ,0x1D472 => array(0x6B)
1946
+ ,0x1D473 => array(0x6C)
1947
+ ,0x1D474 => array(0x6D)
1948
+ ,0x1D475 => array(0x6E)
1949
+ ,0x1D476 => array(0x6F)
1950
+ ,0x1D477 => array(0x70)
1951
+ ,0x1D478 => array(0x71)
1952
+ ,0x1D479 => array(0x72)
1953
+ ,0x1D47A => array(0x73)
1954
+ ,0x1D47B => array(0x74)
1955
+ ,0x1D47C => array(0x75)
1956
+ ,0x1D47D => array(0x76)
1957
+ ,0x1D47E => array(0x77)
1958
+ ,0x1D47F => array(0x78)
1959
+ ,0x1D480 => array(0x79)
1960
+ ,0x1D481 => array(0x7A)
1961
+ ,0x1D49C => array(0x61)
1962
+ ,0x1D49E => array(0x63)
1963
+ ,0x1D49F => array(0x64)
1964
+ ,0x1D4A2 => array(0x67)
1965
+ ,0x1D4A5 => array(0x6A)
1966
+ ,0x1D4A6 => array(0x6B)
1967
+ ,0x1D4A9 => array(0x6E)
1968
+ ,0x1D4AA => array(0x6F)
1969
+ ,0x1D4AB => array(0x70)
1970
+ ,0x1D4AC => array(0x71)
1971
+ ,0x1D4AE => array(0x73)
1972
+ ,0x1D4AF => array(0x74)
1973
+ ,0x1D4B0 => array(0x75)
1974
+ ,0x1D4B1 => array(0x76)
1975
+ ,0x1D4B2 => array(0x77)
1976
+ ,0x1D4B3 => array(0x78)
1977
+ ,0x1D4B4 => array(0x79)
1978
+ ,0x1D4B5 => array(0x7A)
1979
+ ,0x1D4D0 => array(0x61)
1980
+ ,0x1D4D1 => array(0x62)
1981
+ ,0x1D4D2 => array(0x63)
1982
+ ,0x1D4D3 => array(0x64)
1983
+ ,0x1D4D4 => array(0x65)
1984
+ ,0x1D4D5 => array(0x66)
1985
+ ,0x1D4D6 => array(0x67)
1986
+ ,0x1D4D7 => array(0x68)
1987
+ ,0x1D4D8 => array(0x69)
1988
+ ,0x1D4D9 => array(0x6A)
1989
+ ,0x1D4DA => array(0x6B)
1990
+ ,0x1D4DB => array(0x6C)
1991
+ ,0x1D4DC => array(0x6D)
1992
+ ,0x1D4DD => array(0x6E)
1993
+ ,0x1D4DE => array(0x6F)
1994
+ ,0x1D4DF => array(0x70)
1995
+ ,0x1D4E0 => array(0x71)
1996
+ ,0x1D4E1 => array(0x72)
1997
+ ,0x1D4E2 => array(0x73)
1998
+ ,0x1D4E3 => array(0x74)
1999
+ ,0x1D4E4 => array(0x75)
2000
+ ,0x1D4E5 => array(0x76)
2001
+ ,0x1D4E6 => array(0x77)
2002
+ ,0x1D4E7 => array(0x78)
2003
+ ,0x1D4E8 => array(0x79)
2004
+ ,0x1D4E9 => array(0x7A)
2005
+ ,0x1D504 => array(0x61)
2006
+ ,0x1D505 => array(0x62)
2007
+ ,0x1D507 => array(0x64)
2008
+ ,0x1D508 => array(0x65)
2009
+ ,0x1D509 => array(0x66)
2010
+ ,0x1D50A => array(0x67)
2011
+ ,0x1D50D => array(0x6A)
2012
+ ,0x1D50E => array(0x6B)
2013
+ ,0x1D50F => array(0x6C)
2014
+ ,0x1D510 => array(0x6D)
2015
+ ,0x1D511 => array(0x6E)
2016
+ ,0x1D512 => array(0x6F)
2017
+ ,0x1D513 => array(0x70)
2018
+ ,0x1D514 => array(0x71)
2019
+ ,0x1D516 => array(0x73)
2020
+ ,0x1D517 => array(0x74)
2021
+ ,0x1D518 => array(0x75)
2022
+ ,0x1D519 => array(0x76)
2023
+ ,0x1D51A => array(0x77)
2024
+ ,0x1D51B => array(0x78)
2025
+ ,0x1D51C => array(0x79)
2026
+ ,0x1D538 => array(0x61)
2027
+ ,0x1D539 => array(0x62)
2028
+ ,0x1D53B => array(0x64)
2029
+ ,0x1D53C => array(0x65)
2030
+ ,0x1D53D => array(0x66)
2031
+ ,0x1D53E => array(0x67)
2032
+ ,0x1D540 => array(0x69)
2033
+ ,0x1D541 => array(0x6A)
2034
+ ,0x1D542 => array(0x6B)
2035
+ ,0x1D543 => array(0x6C)
2036
+ ,0x1D544 => array(0x6D)
2037
+ ,0x1D546 => array(0x6F)
2038
+ ,0x1D54A => array(0x73)
2039
+ ,0x1D54B => array(0x74)
2040
+ ,0x1D54C => array(0x75)
2041
+ ,0x1D54D => array(0x76)
2042
+ ,0x1D54E => array(0x77)
2043
+ ,0x1D54F => array(0x78)
2044
+ ,0x1D550 => array(0x79)
2045
+ ,0x1D56C => array(0x61)
2046
+ ,0x1D56D => array(0x62)
2047
+ ,0x1D56E => array(0x63)
2048
+ ,0x1D56F => array(0x64)
2049
+ ,0x1D570 => array(0x65)
2050
+ ,0x1D571 => array(0x66)
2051
+ ,0x1D572 => array(0x67)
2052
+ ,0x1D573 => array(0x68)
2053
+ ,0x1D574 => array(0x69)
2054
+ ,0x1D575 => array(0x6A)
2055
+ ,0x1D576 => array(0x6B)
2056
+ ,0x1D577 => array(0x6C)
2057
+ ,0x1D578 => array(0x6D)
2058
+ ,0x1D579 => array(0x6E)
2059
+ ,0x1D57A => array(0x6F)
2060
+ ,0x1D57B => array(0x70)
2061
+ ,0x1D57C => array(0x71)
2062
+ ,0x1D57D => array(0x72)
2063
+ ,0x1D57E => array(0x73)
2064
+ ,0x1D57F => array(0x74)
2065
+ ,0x1D580 => array(0x75)
2066
+ ,0x1D581 => array(0x76)
2067
+ ,0x1D582 => array(0x77)
2068
+ ,0x1D583 => array(0x78)
2069
+ ,0x1D584 => array(0x79)
2070
+ ,0x1D585 => array(0x7A)
2071
+ ,0x1D5A0 => array(0x61)
2072
+ ,0x1D5A1 => array(0x62)
2073
+ ,0x1D5A2 => array(0x63)
2074
+ ,0x1D5A3 => array(0x64)
2075
+ ,0x1D5A4 => array(0x65)
2076
+ ,0x1D5A5 => array(0x66)
2077
+ ,0x1D5A6 => array(0x67)
2078
+ ,0x1D5A7 => array(0x68)
2079
+ ,0x1D5A8 => array(0x69)
2080
+ ,0x1D5A9 => array(0x6A)
2081
+ ,0x1D5AA => array(0x6B)
2082
+ ,0x1D5AB => array(0x6C)
2083
+ ,0x1D5AC => array(0x6D)
2084
+ ,0x1D5AD => array(0x6E)
2085
+ ,0x1D5AE => array(0x6F)
2086
+ ,0x1D5AF => array(0x70)
2087
+ ,0x1D5B0 => array(0x71)
2088
+ ,0x1D5B1 => array(0x72)
2089
+ ,0x1D5B2 => array(0x73)
2090
+ ,0x1D5B3 => array(0x74)
2091
+ ,0x1D5B4 => array(0x75)
2092
+ ,0x1D5B5 => array(0x76)
2093
+ ,0x1D5B6 => array(0x77)
2094
+ ,0x1D5B7 => array(0x78)
2095
+ ,0x1D5B8 => array(0x79)
2096
+ ,0x1D5B9 => array(0x7A)
2097
+ ,0x1D5D4 => array(0x61)
2098
+ ,0x1D5D5 => array(0x62)
2099
+ ,0x1D5D6 => array(0x63)
2100
+ ,0x1D5D7 => array(0x64)
2101
+ ,0x1D5D8 => array(0x65)
2102
+ ,0x1D5D9 => array(0x66)
2103
+ ,0x1D5DA => array(0x67)
2104
+ ,0x1D5DB => array(0x68)
2105
+ ,0x1D5DC => array(0x69)
2106
+ ,0x1D5DD => array(0x6A)
2107
+ ,0x1D5DE => array(0x6B)
2108
+ ,0x1D5DF => array(0x6C)
2109
+ ,0x1D5E0 => array(0x6D)
2110
+ ,0x1D5E1 => array(0x6E)
2111
+ ,0x1D5E2 => array(0x6F)
2112
+ ,0x1D5E3 => array(0x70)
2113
+ ,0x1D5E4 => array(0x71)
2114
+ ,0x1D5E5 => array(0x72)
2115
+ ,0x1D5E6 => array(0x73)
2116
+ ,0x1D5E7 => array(0x74)
2117
+ ,0x1D5E8 => array(0x75)
2118
+ ,0x1D5E9 => array(0x76)
2119
+ ,0x1D5EA => array(0x77)
2120
+ ,0x1D5EB => array(0x78)
2121
+ ,0x1D5EC => array(0x79)
2122
+ ,0x1D5ED => array(0x7A)
2123
+ ,0x1D608 => array(0x61)
2124
+ ,0x1D609 => array(0x62)
2125
+ ,0x1D60A => array(0x63)
2126
+ ,0x1D60B => array(0x64)
2127
+ ,0x1D60C => array(0x65)
2128
+ ,0x1D60D => array(0x66)
2129
+ ,0x1D60E => array(0x67)
2130
+ ,0x1D60F => array(0x68)
2131
+ ,0x1D610 => array(0x69)
2132
+ ,0x1D611 => array(0x6A)
2133
+ ,0x1D612 => array(0x6B)
2134
+ ,0x1D613 => array(0x6C)
2135
+ ,0x1D614 => array(0x6D)
2136
+ ,0x1D615 => array(0x6E)
2137
+ ,0x1D616 => array(0x6F)
2138
+ ,0x1D617 => array(0x70)
2139
+ ,0x1D618 => array(0x71)
2140
+ ,0x1D619 => array(0x72)
2141
+ ,0x1D61A => array(0x73)
2142
+ ,0x1D61B => array(0x74)
2143
+ ,0x1D61C => array(0x75)
2144
+ ,0x1D61D => array(0x76)
2145
+ ,0x1D61E => array(0x77)
2146
+ ,0x1D61F => array(0x78)
2147
+ ,0x1D620 => array(0x79)
2148
+ ,0x1D621 => array(0x7A)
2149
+ ,0x1D63C => array(0x61)
2150
+ ,0x1D63D => array(0x62)
2151
+ ,0x1D63E => array(0x63)
2152
+ ,0x1D63F => array(0x64)
2153
+ ,0x1D640 => array(0x65)
2154
+ ,0x1D641 => array(0x66)
2155
+ ,0x1D642 => array(0x67)
2156
+ ,0x1D643 => array(0x68)
2157
+ ,0x1D644 => array(0x69)
2158
+ ,0x1D645 => array(0x6A)
2159
+ ,0x1D646 => array(0x6B)
2160
+ ,0x1D647 => array(0x6C)
2161
+ ,0x1D648 => array(0x6D)
2162
+ ,0x1D649 => array(0x6E)
2163
+ ,0x1D64A => array(0x6F)
2164
+ ,0x1D64B => array(0x70)
2165
+ ,0x1D64C => array(0x71)
2166
+ ,0x1D64D => array(0x72)
2167
+ ,0x1D64E => array(0x73)
2168
+ ,0x1D64F => array(0x74)
2169
+ ,0x1D650 => array(0x75)
2170
+ ,0x1D651 => array(0x76)
2171
+ ,0x1D652 => array(0x77)
2172
+ ,0x1D653 => array(0x78)
2173
+ ,0x1D654 => array(0x79)
2174
+ ,0x1D655 => array(0x7A)
2175
+ ,0x1D670 => array(0x61)
2176
+ ,0x1D671 => array(0x62)
2177
+ ,0x1D672 => array(0x63)
2178
+ ,0x1D673 => array(0x64)
2179
+ ,0x1D674 => array(0x65)
2180
+ ,0x1D675 => array(0x66)
2181
+ ,0x1D676 => array(0x67)
2182
+ ,0x1D677 => array(0x68)
2183
+ ,0x1D678 => array(0x69)
2184
+ ,0x1D679 => array(0x6A)
2185
+ ,0x1D67A => array(0x6B)
2186
+ ,0x1D67B => array(0x6C)
2187
+ ,0x1D67C => array(0x6D)
2188
+ ,0x1D67D => array(0x6E)
2189
+ ,0x1D67E => array(0x6F)
2190
+ ,0x1D67F => array(0x70)
2191
+ ,0x1D680 => array(0x71)
2192
+ ,0x1D681 => array(0x72)
2193
+ ,0x1D682 => array(0x73)
2194
+ ,0x1D683 => array(0x74)
2195
+ ,0x1D684 => array(0x75)
2196
+ ,0x1D685 => array(0x76)
2197
+ ,0x1D686 => array(0x77)
2198
+ ,0x1D687 => array(0x78)
2199
+ ,0x1D688 => array(0x79)
2200
+ ,0x1D689 => array(0x7A)
2201
+ ,0x1D6A8 => array(0x3B1)
2202
+ ,0x1D6A9 => array(0x3B2)
2203
+ ,0x1D6AA => array(0x3B3)
2204
+ ,0x1D6AB => array(0x3B4)
2205
+ ,0x1D6AC => array(0x3B5)
2206
+ ,0x1D6AD => array(0x3B6)
2207
+ ,0x1D6AE => array(0x3B7)
2208
+ ,0x1D6AF => array(0x3B8)
2209
+ ,0x1D6B0 => array(0x3B9)
2210
+ ,0x1D6B1 => array(0x3BA)
2211
+ ,0x1D6B2 => array(0x3BB)
2212
+ ,0x1D6B3 => array(0x3BC)
2213
+ ,0x1D6B4 => array(0x3BD)
2214
+ ,0x1D6B5 => array(0x3BE)
2215
+ ,0x1D6B6 => array(0x3BF)
2216
+ ,0x1D6B7 => array(0x3C0)
2217
+ ,0x1D6B8 => array(0x3C1)
2218
+ ,0x1D6B9 => array(0x3B8)
2219
+ ,0x1D6BA => array(0x3C3)
2220
+ ,0x1D6BB => array(0x3C4)
2221
+ ,0x1D6BC => array(0x3C5)
2222
+ ,0x1D6BD => array(0x3C6)
2223
+ ,0x1D6BE => array(0x3C7)
2224
+ ,0x1D6BF => array(0x3C8)
2225
+ ,0x1D6C0 => array(0x3C9)
2226
+ ,0x1D6D3 => array(0x3C3)
2227
+ ,0x1D6E2 => array(0x3B1)
2228
+ ,0x1D6E3 => array(0x3B2)
2229
+ ,0x1D6E4 => array(0x3B3)
2230
+ ,0x1D6E5 => array(0x3B4)
2231
+ ,0x1D6E6 => array(0x3B5)
2232
+ ,0x1D6E7 => array(0x3B6)
2233
+ ,0x1D6E8 => array(0x3B7)
2234
+ ,0x1D6E9 => array(0x3B8)
2235
+ ,0x1D6EA => array(0x3B9)
2236
+ ,0x1D6EB => array(0x3BA)
2237
+ ,0x1D6EC => array(0x3BB)
2238
+ ,0x1D6ED => array(0x3BC)
2239
+ ,0x1D6EE => array(0x3BD)
2240
+ ,0x1D6EF => array(0x3BE)
2241
+ ,0x1D6F0 => array(0x3BF)
2242
+ ,0x1D6F1 => array(0x3C0)
2243
+ ,0x1D6F2 => array(0x3C1)
2244
+ ,0x1D6F3 => array(0x3B8)
2245
+ ,0x1D6F4 => array(0x3C3)
2246
+ ,0x1D6F5 => array(0x3C4)
2247
+ ,0x1D6F6 => array(0x3C5)
2248
+ ,0x1D6F7 => array(0x3C6)
2249
+ ,0x1D6F8 => array(0x3C7)
2250
+ ,0x1D6F9 => array(0x3C8)
2251
+ ,0x1D6FA => array(0x3C9)
2252
+ ,0x1D70D => array(0x3C3)
2253
+ ,0x1D71C => array(0x3B1)
2254
+ ,0x1D71D => array(0x3B2)
2255
+ ,0x1D71E => array(0x3B3)
2256
+ ,0x1D71F => array(0x3B4)
2257
+ ,0x1D720 => array(0x3B5)
2258
+ ,0x1D721 => array(0x3B6)
2259
+ ,0x1D722 => array(0x3B7)
2260
+ ,0x1D723 => array(0x3B8)
2261
+ ,0x1D724 => array(0x3B9)
2262
+ ,0x1D725 => array(0x3BA)
2263
+ ,0x1D726 => array(0x3BB)
2264
+ ,0x1D727 => array(0x3BC)
2265
+ ,0x1D728 => array(0x3BD)
2266
+ ,0x1D729 => array(0x3BE)
2267
+ ,0x1D72A => array(0x3BF)
2268
+ ,0x1D72B => array(0x3C0)
2269
+ ,0x1D72C => array(0x3C1)
2270
+ ,0x1D72D => array(0x3B8)
2271
+ ,0x1D72E => array(0x3C3)
2272
+ ,0x1D72F => array(0x3C4)
2273
+ ,0x1D730 => array(0x3C5)
2274
+ ,0x1D731 => array(0x3C6)
2275
+ ,0x1D732 => array(0x3C7)
2276
+ ,0x1D733 => array(0x3C8)
2277
+ ,0x1D734 => array(0x3C9)
2278
+ ,0x1D747 => array(0x3C3)
2279
+ ,0x1D756 => array(0x3B1)
2280
+ ,0x1D757 => array(0x3B2)
2281
+ ,0x1D758 => array(0x3B3)
2282
+ ,0x1D759 => array(0x3B4)
2283
+ ,0x1D75A => array(0x3B5)
2284
+ ,0x1D75B => array(0x3B6)
2285
+ ,0x1D75C => array(0x3B7)
2286
+ ,0x1D75D => array(0x3B8)
2287
+ ,0x1D75E => array(0x3B9)
2288
+ ,0x1D75F => array(0x3BA)
2289
+ ,0x1D760 => array(0x3BB)
2290
+ ,0x1D761 => array(0x3BC)
2291
+ ,0x1D762 => array(0x3BD)
2292
+ ,0x1D763 => array(0x3BE)
2293
+ ,0x1D764 => array(0x3BF)
2294
+ ,0x1D765 => array(0x3C0)
2295
+ ,0x1D766 => array(0x3C1)
2296
+ ,0x1D767 => array(0x3B8)
2297
+ ,0x1D768 => array(0x3C3)
2298
+ ,0x1D769 => array(0x3C4)
2299
+ ,0x1D76A => array(0x3C5)
2300
+ ,0x1D76B => array(0x3C6)
2301
+ ,0x1D76C => array(0x3C7)
2302
+ ,0x1D76D => array(0x3C8)
2303
+ ,0x1D76E => array(0x3C9)
2304
+ ,0x1D781 => array(0x3C3)
2305
+ ,0x1D790 => array(0x3B1)
2306
+ ,0x1D791 => array(0x3B2)
2307
+ ,0x1D792 => array(0x3B3)
2308
+ ,0x1D793 => array(0x3B4)
2309
+ ,0x1D794 => array(0x3B5)
2310
+ ,0x1D795 => array(0x3B6)
2311
+ ,0x1D796 => array(0x3B7)
2312
+ ,0x1D797 => array(0x3B8)
2313
+ ,0x1D798 => array(0x3B9)
2314
+ ,0x1D799 => array(0x3BA)
2315
+ ,0x1D79A => array(0x3BB)
2316
+ ,0x1D79B => array(0x3BC)
2317
+ ,0x1D79C => array(0x3BD)
2318
+ ,0x1D79D => array(0x3BE)
2319
+ ,0x1D79E => array(0x3BF)
2320
+ ,0x1D79F => array(0x3C0)
2321
+ ,0x1D7A0 => array(0x3C1)
2322
+ ,0x1D7A1 => array(0x3B8)
2323
+ ,0x1D7A2 => array(0x3C3)
2324
+ ,0x1D7A3 => array(0x3C4)
2325
+ ,0x1D7A4 => array(0x3C5)
2326
+ ,0x1D7A5 => array(0x3C6)
2327
+ ,0x1D7A6 => array(0x3C7)
2328
+ ,0x1D7A7 => array(0x3C8)
2329
+ ,0x1D7A8 => array(0x3C9)
2330
+ ,0x1D7BB => array(0x3C3)
2331
+ ,0x3F9 => array(0x3C3)
2332
+ ,0x1D2C => array(0x61)
2333
+ ,0x1D2D => array(0xE6)
2334
+ ,0x1D2E => array(0x62)
2335
+ ,0x1D30 => array(0x64)
2336
+ ,0x1D31 => array(0x65)
2337
+ ,0x1D32 => array(0x1DD)
2338
+ ,0x1D33 => array(0x67)
2339
+ ,0x1D34 => array(0x68)
2340
+ ,0x1D35 => array(0x69)
2341
+ ,0x1D36 => array(0x6A)
2342
+ ,0x1D37 => array(0x6B)
2343
+ ,0x1D38 => array(0x6C)
2344
+ ,0x1D39 => array(0x6D)
2345
+ ,0x1D3A => array(0x6E)
2346
+ ,0x1D3C => array(0x6F)
2347
+ ,0x1D3D => array(0x223)
2348
+ ,0x1D3E => array(0x70)
2349
+ ,0x1D3F => array(0x72)
2350
+ ,0x1D40 => array(0x74)
2351
+ ,0x1D41 => array(0x75)
2352
+ ,0x1D42 => array(0x77)
2353
+ ,0x213B => array(0x66, 0x61, 0x78)
2354
+ ,0x3250 => array(0x70, 0x74, 0x65)
2355
+ ,0x32CC => array(0x68, 0x67)
2356
+ ,0x32CE => array(0x65, 0x76)
2357
+ ,0x32CF => array(0x6C, 0x74, 0x64)
2358
+ ,0x337A => array(0x69, 0x75)
2359
+ ,0x33DE => array(0x76, 0x2215, 0x6D)
2360
+ ,0x33DF => array(0x61, 0x2215, 0x6D)
2361
+ )
2362
+ ,'norm_combcls' => array
2363
+ (0x334 => 1
2364
+ ,0x335 => 1
2365
+ ,0x336 => 1
2366
+ ,0x337 => 1
2367
+ ,0x338 => 1
2368
+ ,0x93C => 7
2369
+ ,0x9BC => 7
2370
+ ,0xA3C => 7
2371
+ ,0xABC => 7
2372
+ ,0xB3C => 7
2373
+ ,0xCBC => 7
2374
+ ,0x1037 => 7
2375
+ ,0x3099 => 8
2376
+ ,0x309A => 8
2377
+ ,0x94D => 9
2378
+ ,0x9CD => 9
2379
+ ,0xA4D => 9
2380
+ ,0xACD => 9
2381
+ ,0xB4D => 9
2382
+ ,0xBCD => 9
2383
+ ,0xC4D => 9
2384
+ ,0xCCD => 9
2385
+ ,0xD4D => 9
2386
+ ,0xDCA => 9
2387
+ ,0xE3A => 9
2388
+ ,0xF84 => 9
2389
+ ,0x1039 => 9
2390
+ ,0x1714 => 9
2391
+ ,0x1734 => 9
2392
+ ,0x17D2 => 9
2393
+ ,0x5B0 => 10
2394
+ ,0x5B1 => 11
2395
+ ,0x5B2 => 12
2396
+ ,0x5B3 => 13
2397
+ ,0x5B4 => 14
2398
+ ,0x5B5 => 15
2399
+ ,0x5B6 => 16
2400
+ ,0x5B7 => 17
2401
+ ,0x5B8 => 18
2402
+ ,0x5B9 => 19
2403
+ ,0x5BB => 20
2404
+ ,0x5Bc => 21
2405
+ ,0x5BD => 22
2406
+ ,0x5BF => 23
2407
+ ,0x5C1 => 24
2408
+ ,0x5C2 => 25
2409
+ ,0xFB1E => 26
2410
+ ,0x64B => 27
2411
+ ,0x64C => 28
2412
+ ,0x64D => 29
2413
+ ,0x64E => 30
2414
+ ,0x64F => 31
2415
+ ,0x650 => 32
2416
+ ,0x651 => 33
2417
+ ,0x652 => 34
2418
+ ,0x670 => 35
2419
+ ,0x711 => 36
2420
+ ,0xC55 => 84
2421
+ ,0xC56 => 91
2422
+ ,0xE38 => 103
2423
+ ,0xE39 => 103
2424
+ ,0xE48 => 107
2425
+ ,0xE49 => 107
2426
+ ,0xE4A => 107
2427
+ ,0xE4B => 107
2428
+ ,0xEB8 => 118
2429
+ ,0xEB9 => 118
2430
+ ,0xEC8 => 122
2431
+ ,0xEC9 => 122
2432
+ ,0xECA => 122
2433
+ ,0xECB => 122
2434
+ ,0xF71 => 129
2435
+ ,0xF72 => 130
2436
+ ,0xF7A => 130
2437
+ ,0xF7B => 130
2438
+ ,0xF7C => 130
2439
+ ,0xF7D => 130
2440
+ ,0xF80 => 130
2441
+ ,0xF74 => 132
2442
+ ,0x321 => 202
2443
+ ,0x322 => 202
2444
+ ,0x327 => 202
2445
+ ,0x328 => 202
2446
+ ,0x31B => 216
2447
+ ,0xF39 => 216
2448
+ ,0x1D165 => 216
2449
+ ,0x1D166 => 216
2450
+ ,0x1D16E => 216
2451
+ ,0x1D16F => 216
2452
+ ,0x1D170 => 216
2453
+ ,0x1D171 => 216
2454
+ ,0x1D172 => 216
2455
+ ,0x302A => 218
2456
+ ,0x316 => 220
2457
+ ,0x317 => 220
2458
+ ,0x318 => 220
2459
+ ,0x319 => 220
2460
+ ,0x31C => 220
2461
+ ,0x31D => 220
2462
+ ,0x31E => 220
2463
+ ,0x31F => 220
2464
+ ,0x320 => 220
2465
+ ,0x323 => 220
2466
+ ,0x324 => 220
2467
+ ,0x325 => 220
2468
+ ,0x326 => 220
2469
+ ,0x329 => 220
2470
+ ,0x32A => 220
2471
+ ,0x32B => 220
2472
+ ,0x32C => 220
2473
+ ,0x32D => 220
2474
+ ,0x32E => 220
2475
+ ,0x32F => 220
2476
+ ,0x330 => 220
2477
+ ,0x331 => 220
2478
+ ,0x332 => 220
2479
+ ,0x333 => 220
2480
+ ,0x339 => 220
2481
+ ,0x33A => 220
2482
+ ,0x33B => 220
2483
+ ,0x33C => 220
2484
+ ,0x347 => 220
2485
+ ,0x348 => 220
2486
+ ,0x349 => 220
2487
+ ,0x34D => 220
2488
+ ,0x34E => 220
2489
+ ,0x353 => 220
2490
+ ,0x354 => 220
2491
+ ,0x355 => 220
2492
+ ,0x356 => 220
2493
+ ,0x591 => 220
2494
+ ,0x596 => 220
2495
+ ,0x59B => 220
2496
+ ,0x5A3 => 220
2497
+ ,0x5A4 => 220
2498
+ ,0x5A5 => 220
2499
+ ,0x5A6 => 220
2500
+ ,0x5A7 => 220
2501
+ ,0x5AA => 220
2502
+ ,0x655 => 220
2503
+ ,0x656 => 220
2504
+ ,0x6E3 => 220
2505
+ ,0x6EA => 220
2506
+ ,0x6ED => 220
2507
+ ,0x731 => 220
2508
+ ,0x734 => 220
2509
+ ,0x737 => 220
2510
+ ,0x738 => 220
2511
+ ,0x739 => 220
2512
+ ,0x73B => 220
2513
+ ,0x73C => 220
2514
+ ,0x73E => 220
2515
+ ,0x742 => 220
2516
+ ,0x744 => 220
2517
+ ,0x746 => 220
2518
+ ,0x748 => 220
2519
+ ,0x952 => 220
2520
+ ,0xF18 => 220
2521
+ ,0xF19 => 220
2522
+ ,0xF35 => 220
2523
+ ,0xF37 => 220
2524
+ ,0xFC6 => 220
2525
+ ,0x193B => 220
2526
+ ,0x20E8 => 220
2527
+ ,0x1D17B => 220
2528
+ ,0x1D17C => 220
2529
+ ,0x1D17D => 220
2530
+ ,0x1D17E => 220
2531
+ ,0x1D17F => 220
2532
+ ,0x1D180 => 220
2533
+ ,0x1D181 => 220
2534
+ ,0x1D182 => 220
2535
+ ,0x1D18A => 220
2536
+ ,0x1D18B => 220
2537
+ ,0x59A => 222
2538
+ ,0x5AD => 222
2539
+ ,0x1929 => 222
2540
+ ,0x302D => 222
2541
+ ,0x302E => 224
2542
+ ,0x302F => 224
2543
+ ,0x1D16D => 226
2544
+ ,0x5AE => 228
2545
+ ,0x18A9 => 228
2546
+ ,0x302B => 228
2547
+ ,0x300 => 230
2548
+ ,0x301 => 230
2549
+ ,0x302 => 230
2550
+ ,0x303 => 230
2551
+ ,0x304 => 230
2552
+ ,0x305 => 230
2553
+ ,0x306 => 230
2554
+ ,0x307 => 230
2555
+ ,0x308 => 230
2556
+ ,0x309 => 230
2557
+ ,0x30A => 230
2558
+ ,0x30B => 230
2559
+ ,0x30C => 230
2560
+ ,0x30D => 230
2561
+ ,0x30E => 230
2562
+ ,0x30F => 230
2563
+ ,0x310 => 230
2564
+ ,0x311 => 230
2565
+ ,0x312 => 230
2566
+ ,0x313 => 230
2567
+ ,0x314 => 230
2568
+ ,0x33D => 230
2569
+ ,0x33E => 230
2570
+ ,0x33F => 230
2571
+ ,0x340 => 230
2572
+ ,0x341 => 230
2573
+ ,0x342 => 230
2574
+ ,0x343 => 230
2575
+ ,0x344 => 230
2576
+ ,0x346 => 230
2577
+ ,0x34A => 230
2578
+ ,0x34B => 230
2579
+ ,0x34C => 230
2580
+ ,0x350 => 230
2581
+ ,0x351 => 230
2582
+ ,0x352 => 230
2583
+ ,0x357 => 230
2584
+ ,0x363 => 230
2585
+ ,0x364 => 230
2586
+ ,0x365 => 230
2587
+ ,0x366 => 230
2588
+ ,0x367 => 230
2589
+ ,0x368 => 230
2590
+ ,0x369 => 230
2591
+ ,0x36A => 230
2592
+ ,0x36B => 230
2593
+ ,0x36C => 230
2594
+ ,0x36D => 230
2595
+ ,0x36E => 230
2596
+ ,0x36F => 230
2597
+ ,0x483 => 230
2598
+ ,0x484 => 230
2599
+ ,0x485 => 230
2600
+ ,0x486 => 230
2601
+ ,0x592 => 230
2602
+ ,0x593 => 230
2603
+ ,0x594 => 230
2604
+ ,0x595 => 230
2605
+ ,0x597 => 230
2606
+ ,0x598 => 230
2607
+ ,0x599 => 230
2608
+ ,0x59C => 230
2609
+ ,0x59D => 230
2610
+ ,0x59E => 230
2611
+ ,0x59F => 230
2612
+ ,0x5A0 => 230
2613
+ ,0x5A1 => 230
2614
+ ,0x5A8 => 230
2615
+ ,0x5A9 => 230
2616
+ ,0x5AB => 230
2617
+ ,0x5AC => 230
2618
+ ,0x5AF => 230
2619
+ ,0x5C4 => 230
2620
+ ,0x610 => 230
2621
+ ,0x611 => 230
2622
+ ,0x612 => 230
2623
+ ,0x613 => 230
2624
+ ,0x614 => 230
2625
+ ,0x615 => 230
2626
+ ,0x653 => 230
2627
+ ,0x654 => 230
2628
+ ,0x657 => 230
2629
+ ,0x658 => 230
2630
+ ,0x6D6 => 230
2631
+ ,0x6D7 => 230
2632
+ ,0x6D8 => 230
2633
+ ,0x6D9 => 230
2634
+ ,0x6DA => 230
2635
+ ,0x6DB => 230
2636
+ ,0x6DC => 230
2637
+ ,0x6DF => 230
2638
+ ,0x6E0 => 230
2639
+ ,0x6E1 => 230
2640
+ ,0x6E2 => 230
2641
+ ,0x6E4 => 230
2642
+ ,0x6E7 => 230
2643
+ ,0x6E8 => 230
2644
+ ,0x6EB => 230
2645
+ ,0x6EC => 230
2646
+ ,0x730 => 230
2647
+ ,0x732 => 230
2648
+ ,0x733 => 230
2649
+ ,0x735 => 230
2650
+ ,0x736 => 230
2651
+ ,0x73A => 230
2652
+ ,0x73D => 230
2653
+ ,0x73F => 230
2654
+ ,0x740 => 230
2655
+ ,0x741 => 230
2656
+ ,0x743 => 230
2657
+ ,0x745 => 230
2658
+ ,0x747 => 230
2659
+ ,0x749 => 230
2660
+ ,0x74A => 230
2661
+ ,0x951 => 230
2662
+ ,0x953 => 230
2663
+ ,0x954 => 230
2664
+ ,0xF82 => 230
2665
+ ,0xF83 => 230
2666
+ ,0xF86 => 230
2667
+ ,0xF87 => 230
2668
+ ,0x170D => 230
2669
+ ,0x193A => 230
2670
+ ,0x20D0 => 230
2671
+ ,0x20D1 => 230
2672
+ ,0x20D4 => 230
2673
+ ,0x20D5 => 230
2674
+ ,0x20D6 => 230
2675
+ ,0x20D7 => 230
2676
+ ,0x20DB => 230
2677
+ ,0x20DC => 230
2678
+ ,0x20E1 => 230
2679
+ ,0x20E7 => 230
2680
+ ,0x20E9 => 230
2681
+ ,0xFE20 => 230
2682
+ ,0xFE21 => 230
2683
+ ,0xFE22 => 230
2684
+ ,0xFE23 => 230
2685
+ ,0x1D185 => 230
2686
+ ,0x1D186 => 230
2687
+ ,0x1D187 => 230
2688
+ ,0x1D189 => 230
2689
+ ,0x1D188 => 230
2690
+ ,0x1D1AA => 230
2691
+ ,0x1D1AB => 230
2692
+ ,0x1D1AC => 230
2693
+ ,0x1D1AD => 230
2694
+ ,0x315 => 232
2695
+ ,0x31A => 232
2696
+ ,0x302C => 232
2697
+ ,0x35F => 233
2698
+ ,0x362 => 233
2699
+ ,0x35D => 234
2700
+ ,0x35E => 234
2701
+ ,0x360 => 234
2702
+ ,0x361 => 234
2703
+ ,0x345 => 240
2704
+ )
2705
+ );
2706
+ }
2707
+ ?>
idn/transcode_wrapper.php ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * transcode wrapper functions
4
+ * @package IDNA Convert
5
+ * @subpackage charset transcoding
6
+ * @author Matthias Sommerfeld, <mso@phlylabs.de>
7
+ * @version 0.1.0
8
+ */
9
+
10
+ /**
11
+ * Convert a string from any of various encodings to UTF-8
12
+ *
13
+ * @param string String to encode
14
+ *[@param string Encoding; Default: ISO-8859-1]
15
+ *[@param bool Safe Mode: if set to TRUE, the original string is retunred on errors]
16
+ * @return string The encoded string or false on failure
17
+ * @since 0.0.1
18
+ */
19
+ function encode_utf8($string = '', $encoding = 'iso-8859-1', $safe_mode = false)
20
+ {
21
+ $safe = ($safe_mode) ? $string : false;
22
+ if (strtoupper($encoding) == 'UTF-8' || strtoupper($encoding) == 'UTF8') {
23
+ return $string;
24
+ } elseif (strtoupper($encoding) == 'ISO-8859-1') {
25
+ return utf8_encode($string);
26
+ } elseif (strtoupper($encoding) == 'WINDOWS-1252') {
27
+ return utf8_encode(map_w1252_iso8859_1($string));
28
+ } elseif (strtoupper($encoding) == 'UNICODE-1-1-UTF-7') {
29
+ $encoding = 'utf-7';
30
+ }
31
+ if (function_exists('mb_convert_encoding')) {
32
+ $conv = @mb_convert_encoding($string, 'UTF-8', strtoupper($encoding));
33
+ if ($conv) return $conv;
34
+ }
35
+ if (function_exists('iconv')) {
36
+ $conv = @iconv(strtoupper($encoding), 'UTF-8', $string);
37
+ if ($conv) return $conv;
38
+ }
39
+ if (function_exists('libiconv')) {
40
+ $conv = @libiconv(strtoupper($encoding), 'UTF-8', $string);
41
+ if ($conv) return $conv;
42
+ }
43
+ return $safe;
44
+ }
45
+
46
+ /**
47
+ * Convert a string from UTF-8 to any of various encodings
48
+ *
49
+ * @param string String to decode
50
+ *[@param string Encoding; Default: ISO-8859-1]
51
+ *[@param bool Safe Mode: if set to TRUE, the original string is retunred on errors]
52
+ * @return string The decoded string or false on failure
53
+ * @since 0.0.1
54
+ */
55
+ function decode_utf8($string = '', $encoding = 'iso-8859-1', $safe_mode = false)
56
+ {
57
+ $safe = ($safe_mode) ? $string : false;
58
+ if (!$encoding) $encoding = 'ISO-8859-1';
59
+ if (strtoupper($encoding) == 'UTF-8' || strtoupper($encoding) == 'UTF8') {
60
+ return $string;
61
+ } elseif (strtoupper($encoding) == 'ISO-8859-1') {
62
+ return utf8_decode($string);
63
+ } elseif (strtoupper($encoding) == 'WINDOWS-1252') {
64
+ return map_iso8859_1_w1252(utf8_decode($string));
65
+ } elseif (strtoupper($encoding) == 'UNICODE-1-1-UTF-7') {
66
+ $encoding = 'utf-7';
67
+ }
68
+ if (function_exists('mb_convert_encoding')) {
69
+ $conv = @mb_convert_encoding($string, strtoupper($encoding), 'UTF-8');
70
+ if ($conv) return $conv;
71
+ }
72
+ if (function_exists('iconv')) {
73
+ $conv = @iconv('UTF-8', strtoupper($encoding), $string);
74
+ if ($conv) return $conv;
75
+ }
76
+ if (function_exists('libiconv')) {
77
+ $conv = @libiconv('UTF-8', strtoupper($encoding), $string);
78
+ if ($conv) return $conv;
79
+ }
80
+ return $safe;
81
+ }
82
+
83
+ /**
84
+ * Special treatment for our guys in Redmond
85
+ * Windows-1252 is basically ISO-8859-1 -- with some exceptions, which get accounted for here
86
+ * @param string Your input in Win1252
87
+ * @param string The resulting ISO-8859-1 string
88
+ * @since 3.0.8
89
+ */
90
+ function map_w1252_iso8859_1($string = '')
91
+ {
92
+ if ($string == '') return '';
93
+ $return = '';
94
+ for ($i = 0; $i < strlen($string); ++$i) {
95
+ $c = ord($string{$i});
96
+ switch ($c) {
97
+ case 129: $return .= chr(252); break;
98
+ case 132: $return .= chr(228); break;
99
+ case 142: $return .= chr(196); break;
100
+ case 148: $return .= chr(246); break;
101
+ case 153: $return .= chr(214); break;
102
+ case 154: $return .= chr(220); break;
103
+ case 225: $return .= chr(223); break;
104
+ default: $return .= chr($c); break;
105
+ }
106
+ }
107
+ return $return;
108
+ }
109
+
110
+ /**
111
+ * Special treatment for our guys in Redmond
112
+ * Windows-1252 is basically ISO-8859-1 -- with some exceptions, which get accounted for here
113
+ * @param string Your input in ISO-8859-1
114
+ * @param string The resulting Win1252 string
115
+ * @since 3.0.8
116
+ */
117
+ function map_iso8859_1_w1252($string = '')
118
+ {
119
+ if ($string == '') return '';
120
+ $return = '';
121
+ for ($i = 0; $i < strlen($string); ++$i) {
122
+ $c = ord($string{$i});
123
+ switch ($c) {
124
+ case 196: $return .= chr(142); break;
125
+ case 214: $return .= chr(153); break;
126
+ case 220: $return .= chr(154); break;
127
+ case 223: $return .= chr(225); break;
128
+ case 228: $return .= chr(132); break;
129
+ case 246: $return .= chr(148); break;
130
+ case 252: $return .= chr(129); break;
131
+ default: $return .= chr($c); break;
132
+ }
133
+ }
134
+ return $return;
135
+ }
136
+
137
+ ?>
idn/uctc.php ADDED
@@ -0,0 +1,298 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * UCTC - The Unicode Transcoder
4
+ *
5
+ * Converts between various flavours of Unicode representations like UCS-4 or UTF8
6
+ * Supported schemes:
7
+ * - UCS-4 Little Endian / Big Endian / Array (partially)
8
+ * - UTF-16 Little Endian / Big Endian (not yet)
9
+ * - UTF-8
10
+ * - UTF-7
11
+ * - UTF-7 IMAP (modified UTF-7)
12
+ *
13
+ * @author Matthias Sommerfeld <mso@phlylabs.de>
14
+ * @version 0.0.5
15
+ * @package phlyMail
16
+ */
17
+ class uctc {
18
+ private static $mechs = array('ucs4', /*'ucs4le', 'ucs4be', */'ucs4array', /*'utf16', 'utf16le', 'utf16be', */'utf8', 'utf7', 'utf7imap');
19
+ private static $allow_overlong = false;
20
+ private static $safe_mode;
21
+ private static $safe_char;
22
+
23
+ /**
24
+ * The actual conversion routine
25
+ *
26
+ * @param mixed $data The data to convert, usually a string, array when converting from UCS-4 array
27
+ * @param string $from Original encoding of the data
28
+ * @param string $to Target encoding of the data
29
+ * @param bool $safe_mode SafeMode tries to correct invalid codepoints
30
+ * @return mixed False on failure, String or array on success, depending on target encoding
31
+ * @access public
32
+ * @since 0.0.1
33
+ */
34
+ public static function convert($data, $from, $to, $safe_mode = false, $safe_char = 0xFFFC)
35
+ {
36
+ self::$safe_mode = ($safe_mode) ? true : false;
37
+ self::$safe_char = ($safe_char) ? $safe_char : 0xFFFC;
38
+ if (self::$safe_mode) self::$allow_overlong = true;
39
+ if (!in_array($from, self::$mechs)) throw new Exception('Invalid input format specified');
40
+ if (!in_array($to, self::$mechs)) throw new Exception('Invalid output format specified');
41
+ if ($from != 'ucs4array') eval('$data = self::'.$from.'_ucs4array($data);');
42
+ if ($to != 'ucs4array') eval('$data = self::ucs4array_'.$to.'($data);');
43
+ return $data;
44
+ }
45
+
46
+ /**
47
+ * This converts an UTF-8 encoded string to its UCS-4 representation
48
+ *
49
+ * @param string $input The UTF-8 string to convert
50
+ * @return array Array of 32bit values representing each codepoint
51
+ * @access private
52
+ */
53
+ private static function utf8_ucs4array($input)
54
+ {
55
+ $output = array();
56
+ $out_len = 0;
57
+ $inp_len = strlen($input);
58
+ $mode = 'next';
59
+ $test = 'none';
60
+ for ($k = 0; $k < $inp_len; ++$k) {
61
+ $v = ord($input{$k}); // Extract byte from input string
62
+
63
+ if ($v < 128) { // We found an ASCII char - put into stirng as is
64
+ $output[$out_len] = $v;
65
+ ++$out_len;
66
+ if ('add' == $mode) {
67
+ if (self::$safe_mode) {
68
+ $output[$out_len-2] = self::$safe_char;
69
+ $mode = 'next';
70
+ } else {
71
+ throw new Exception('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
72
+ }
73
+ }
74
+ continue;
75
+ }
76
+ if ('next' == $mode) { // Try to find the next start byte; determine the width of the Unicode char
77
+ $start_byte = $v;
78
+ $mode = 'add';
79
+ $test = 'range';
80
+ if ($v >> 5 == 6) { // &110xxxxx 10xxxxx
81
+ $next_byte = 0; // Tells, how many times subsequent bitmasks must rotate 6bits to the left
82
+ $v = ($v - 192) << 6;
83
+ } elseif ($v >> 4 == 14) { // &1110xxxx 10xxxxxx 10xxxxxx
84
+ $next_byte = 1;
85
+ $v = ($v - 224) << 12;
86
+ } elseif ($v >> 3 == 30) { // &11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
87
+ $next_byte = 2;
88
+ $v = ($v - 240) << 18;
89
+ } elseif (self::$safe_mode) {
90
+ $mode = 'next';
91
+ $output[$out_len] = self::$safe_char;
92
+ ++$out_len;
93
+ continue;
94
+ } else {
95
+ throw new Exception('This might be UTF-8, but I don\'t understand it at byte '.$k);
96
+ }
97
+ if ($inp_len-$k-$next_byte < 2) {
98
+ $output[$out_len] = self::$safe_char;
99
+ $mode = 'no';
100
+ continue;
101
+ }
102
+
103
+ if ('add' == $mode) {
104
+ $output[$out_len] = (int) $v;
105
+ ++$out_len;
106
+ continue;
107
+ }
108
+ }
109
+ if ('add' == $mode) {
110
+ if (!self::$allow_overlong && $test == 'range') {
111
+ $test = 'none';
112
+ if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) {
113
+ throw new Exception('Bogus UTF-8 character detected (out of legal range) at byte '.$k);
114
+ }
115
+ }
116
+ if ($v >> 6 == 2) { // Bit mask must be 10xxxxxx
117
+ $v = ($v-128) << ($next_byte*6);
118
+ $output[($out_len-1)] += $v;
119
+ --$next_byte;
120
+ } else {
121
+ if (self::$safe_mode) {
122
+ $output[$out_len-1] = ord(self::$safe_char);
123
+ $k--;
124
+ $mode = 'next';
125
+ continue;
126
+ } else {
127
+ throw new Exception('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k);
128
+ }
129
+ }
130
+ if ($next_byte < 0) {
131
+ $mode = 'next';
132
+ }
133
+ }
134
+ } // for
135
+ return $output;
136
+ }
137
+
138
+ /**
139
+ * Convert UCS-4 string into UTF-8 string
140
+ * See utf8_ucs4array() for details
141
+ * @access private
142
+ */
143
+ private static function ucs4array_utf8($input)
144
+ {
145
+ $output = '';
146
+ foreach ($input as $v) {
147
+ if ($v < 128) { // 7bit are transferred literally
148
+ $output .= chr($v);
149
+ } elseif ($v < (1 << 11)) { // 2 bytes
150
+ $output .= chr(192+($v >> 6)).chr(128+($v & 63));
151
+ } elseif ($v < (1 << 16)) { // 3 bytes
152
+ $output .= chr(224+($v >> 12)).chr(128+(($v >> 6) & 63)).chr(128+($v & 63));
153
+ } elseif ($v < (1 << 21)) { // 4 bytes
154
+ $output .= chr(240+($v >> 18)).chr(128+(($v >> 12) & 63)).chr(128+(($v >> 6) & 63)).chr(128+($v & 63));
155
+ } elseif (self::$safe_mode) {
156
+ $output .= self::$safe_char;
157
+ } else {
158
+ throw new Exception('Conversion from UCS-4 to UTF-8 failed: malformed input at byte '.$k);
159
+ }
160
+ }
161
+ return $output;
162
+ }
163
+
164
+ private static function utf7imap_ucs4array($input)
165
+ {
166
+ return self::utf7_ucs4array(str_replace(',', '/', $input), '&');
167
+ }
168
+
169
+ private static function utf7_ucs4array($input, $sc = '+')
170
+ {
171
+ $output = array();
172
+ $out_len = 0;
173
+ $inp_len = strlen($input);
174
+ $mode = 'd';
175
+ $b64 = '';
176
+
177
+ for ($k = 0; $k < $inp_len; ++$k) {
178
+ $c = $input{$k};
179
+ if (0 == ord($c)) continue; // Ignore zero bytes
180
+ if ('b' == $mode) {
181
+ // Sequence got terminated
182
+ if (!preg_match('![A-Za-z0-9/'.preg_quote($sc, '!').']!', $c)) {
183
+ if ('-' == $c) {
184
+ if ($b64 == '') {
185
+ $output[$out_len] = ord($sc);
186
+ $out_len++;
187
+ $mode = 'd';
188
+ continue;
189
+ }
190
+ }
191
+ $tmp = base64_decode($b64);
192
+ $tmp = substr($tmp, -1 * (strlen($tmp) % 2));
193
+ for ($i = 0; $i < strlen($tmp); $i++) {
194
+ if ($i % 2) {
195
+ $output[$out_len] += ord($tmp{$i});
196
+ $out_len++;
197
+ } else {
198
+ $output[$out_len] = ord($tmp{$i}) << 8;
199
+ }
200
+ }
201
+ $mode = 'd';
202
+ $b64 = '';
203
+ continue;
204
+ } else {
205
+ $b64 .= $c;
206
+ }
207
+ }
208
+ if ('d' == $mode) {
209
+ if ($sc == $c) {
210
+ $mode = 'b';
211
+ continue;
212
+ }
213
+ $output[$out_len] = ord($c);
214
+ $out_len++;
215
+ }
216
+ }
217
+ return $output;
218
+ }
219
+
220
+ private static function ucs4array_utf7imap($input)
221
+ {
222
+ return str_replace('/', ',', self::ucs4array_utf7($input, '&'));
223
+ }
224
+
225
+ private static function ucs4array_utf7($input, $sc = '+')
226
+ {
227
+ $output = '';
228
+ $mode = 'd';
229
+ $b64 = '';
230
+ foreach ($input as $v) {
231
+ $is_direct = (0x20 <= $v && $v <= 0x7e && $v != ord($sc));
232
+ if ($mode == 'b') {
233
+ if ($is_direct) {
234
+ if ($b64 == chr(0).$sc) {
235
+ $output .= $sc.'-';
236
+ $b64 = '';
237
+ } else {
238
+ while (strlen($b64) % 3) $b64 .= chr(0);
239
+ $output .= $sc.base64_encode($b64).'-';
240
+ }
241
+ $mode = 'd';
242
+ } else {
243
+ $b64 .= (chr(($v >> 8) & 255). chr($v & 255));
244
+ }
245
+ }
246
+ if ($mode == 'd') {
247
+ if ($is_direct) {
248
+ $output .= chr($v);
249
+ } else {
250
+ $b64 = (chr(($v >> 8) & 255). chr($v & 255));
251
+ $mode = 'b';
252
+ }
253
+ }
254
+ }
255
+ return $output;
256
+ }
257
+
258
+ /**
259
+ * Convert UCS-4 array into UCS-4 string (Little Endian at the moment)
260
+ * @access private
261
+ */
262
+ private static function ucs4array_ucs4($input)
263
+ {
264
+ $output = '';
265
+ foreach ($input as $v) {
266
+ $output .= chr(($v >> 24) & 255).chr(($v >> 16) & 255).chr(($v >> 8) & 255).chr($v & 255);
267
+ }
268
+ return $output;
269
+ }
270
+
271
+ /**
272
+ * Convert UCS-4 string (LE in the moment) into UCS-4 garray
273
+ * @access private
274
+ */
275
+ private static function ucs4_ucs4array($input)
276
+ {
277
+ $output = array();
278
+
279
+ $inp_len = strlen($input);
280
+ // Input length must be dividable by 4
281
+ if ($inp_len % 4) {
282
+ throw new Exception('Input UCS4 string is broken');
283
+ }
284
+ // Empty input - return empty output
285
+ if (!$inp_len) return $output;
286
+
287
+ for ($i = 0, $out_len = -1; $i < $inp_len; ++$i) {
288
+ if (!($i % 4)) { // Increment output position every 4 input bytes
289
+ $out_len++;
290
+ $output[$out_len] = 0;
291
+ }
292
+ $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) );
293
+ }
294
+ return $output;
295
+ }
296
+
297
+ }
298
+ ?>
images/maxcdn.gif ADDED
Binary file
includes/activation.php CHANGED
@@ -73,7 +73,11 @@ blcUtility::optimize_database();
73
 
74
  $blclog->info('Completing installation...');
75
  $blc_config_manager->options['installation_complete'] = true;
76
- $blc_config_manager->save_options();
 
 
 
 
77
 
78
  $blclog->info(sprintf(
79
  'Installation/update completed at %s with %d queries executed.',
73
 
74
  $blclog->info('Completing installation...');
75
  $blc_config_manager->options['installation_complete'] = true;
76
+ if ( $blc_config_manager->save_options() ){
77
+ $blclog->info('Configuration saved.');
78
+ } else {
79
+ $blclog->error('Error saving plugin configuration!');
80
+ };
81
 
82
  $blclog->info(sprintf(
83
  'Installation/update completed at %s with %d queries executed.',
includes/admin/search-form.php CHANGED
@@ -4,7 +4,7 @@
4
  <div class="search-box">
5
 
6
  <?php
7
- //If we're currently displaying search results offer the user the option to s
8
  //save the search query as a custom filter.
9
  if ( $filter_id == 'search' ){
10
  ?>
@@ -54,7 +54,7 @@
54
  if ( !empty($search_params['s_filter']) ){
55
  $search_subfilter = $search_params['s_filter'];
56
  } else {
57
- $search_subfilter = $filter_id;
58
  }
59
 
60
  $linkQuery = & blcLinkQuery::getInstance();
4
  <div class="search-box">
5
 
6
  <?php
7
+ //If we're currently displaying search results offer the user the option to
8
  //save the search query as a custom filter.
9
  if ( $filter_id == 'search' ){
10
  ?>
54
  if ( !empty($search_params['s_filter']) ){
55
  $search_subfilter = $search_params['s_filter'];
56
  } else {
57
+ $search_subfilter = 'all';
58
  }
59
 
60
  $linkQuery = & blcLinkQuery::getInstance();
includes/admin/sidebar.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="donate" class="postbox">
2
+ <h3 class="hndle"><?php _e('Donate $10, $20 or $50!', 'broken-link-checker'); ?></h3>
3
+ <div class="inside">
4
+ <p><?php
5
+ _e('If you like this plugin, please donate to support development and maintenance!', 'broken-link-checker');
6
+ ?></p>
7
+
8
+ <form style="text-align: center;" action="https://www.paypal.com/cgi-bin/webscr" method="post">
9
+ <input type="hidden" name="cmd" value="_donations">
10
+ <input type="hidden" name="business" value="G3GGNXHBSHKYC">
11
+ <input type="hidden" name="lc" value="US">
12
+ <input type="hidden" name="item_name" value="Broken Link Checker">
13
+ <input type="hidden" name="no_note" value="1">
14
+ <input type="hidden" name="no_shipping" value="1">
15
+ <input type="hidden" name="currency_code" value="USD">
16
+ <input type="hidden" name="bn" value="PP-DonationsBF:btn_donateCC_LG.gif:NonHosted">
17
+
18
+ <input type="hidden" name="return" value="<?php
19
+ echo esc_attr(admin_url('options-general.php?page=link-checker-settings&donated=1'));
20
+ ?>" />
21
+ <input type="hidden" name="cbt" value="<?php
22
+ echo esc_attr(__('Return to WordPress Dashboard', 'broken-link-checker'));
23
+ ?>" />
24
+ <input type="hidden" name="cancel_return" value="<?php
25
+ echo esc_attr(admin_url('options-general.php?page=link-checker-settings&donation_canceled=1'));
26
+ ?>" />
27
+
28
+ <input type="image" src="https://www.sandbox.paypal.com/en_US/GB/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online." style="max-width:170px;height:47px;">
29
+ </form>
30
+ </div>
31
+ </div>
32
+
33
+ <div id="advertising" class="postbox">
34
+ <h3 class="hndle"><?php _e('Recommended', 'broken-link-checker'); ?></h3>
35
+ <div class="inside" style="text-align: center;">
36
+ <a href="http://www.maxcdn.com/wordpress-cdn.php?type=banner&&affId=102167&&img=c_160x600_maxcdn_simple.gif">
37
+ <img src="<?php echo esc_attr(plugins_url('images/maxcdn.gif', BLC_PLUGIN_FILE)); ?>" border=0>
38
+ </a>
39
+ <img src="http://impression.clickinc.com/impressions/servlet/Impression?merchant=70291&&type=impression&&affId=102167&&img=c_160x600_maxcdn_simple.gif" style="display:none" border=0>
40
+ </div>
41
+ </div>
includes/admin/table-printer.php CHANGED
@@ -242,11 +242,6 @@ class blcTablePrinter {
242
  $bulk_actions["bulk-delete-sources"] = __('Delete sources', 'broken-link-checker');
243
  }
244
 
245
- //Bulk editing is only available in the Pro version
246
- if ( !defined('BLC_PRO_VERSION') || !BLC_PRO_VERSION ){
247
- unset($bulk_actions['bulk-edit']);
248
- }
249
-
250
  $bulk_actions_html = '';
251
  foreach($bulk_actions as $value => $name){
252
  $bulk_actions_html .= sprintf('<option value="%s">%s</option>', $value, $name);
@@ -583,7 +578,7 @@ class blcTablePrinter {
583
  $actions['edit'] = "<span class='edit'><a href='javascript:void(0)' class='blc-edit-button' title='" . esc_attr( __('Edit link URL' , 'broken-link-checker') ) . "'>". __('Edit URL' , 'broken-link-checker') ."</a>";
584
 
585
  $actions['delete'] = "<span class='delete'><a class='submitdelete blc-unlink-button' title='" . esc_attr( __('Remove this link from all posts', 'broken-link-checker') ). "' ".
586
- "id='unlink-button-$rownum' href='javascript:void(0);'>" . __('Unlink', 'broken-link-checker') . "</a>";
587
 
588
  if ( $link->broken ){
589
  $actions['discard'] = sprintf(
242
  $bulk_actions["bulk-delete-sources"] = __('Delete sources', 'broken-link-checker');
243
  }
244
 
 
 
 
 
 
245
  $bulk_actions_html = '';
246
  foreach($bulk_actions as $value => $name){
247
  $bulk_actions_html .= sprintf('<option value="%s">%s</option>', $value, $name);
578
  $actions['edit'] = "<span class='edit'><a href='javascript:void(0)' class='blc-edit-button' title='" . esc_attr( __('Edit link URL' , 'broken-link-checker') ) . "'>". __('Edit URL' , 'broken-link-checker') ."</a>";
579
 
580
  $actions['delete'] = "<span class='delete'><a class='submitdelete blc-unlink-button' title='" . esc_attr( __('Remove this link from all posts', 'broken-link-checker') ). "' ".
581
+ "href='javascript:void(0);'>" . __('Unlink', 'broken-link-checker') . "</a>";
582
 
583
  if ( $link->broken ){
584
  $actions['discard'] = sprintf(
includes/any-post.php CHANGED
@@ -60,7 +60,6 @@ class blcPostTypeOverlord {
60
  'ModuleCategory' => 'container',
61
  'ModuleContext' => 'all',
62
  'ModuleClassName' => 'blcAnyPostContainerManager',
63
- 'ModuleRequiresPro' => in_array($post_type, $built_in) ? 'false' : 'true',
64
  )
65
  );
66
  }
60
  'ModuleCategory' => 'container',
61
  'ModuleContext' => 'all',
62
  'ModuleClassName' => 'blcAnyPostContainerManager',
 
63
  )
64
  );
65
  }
includes/config-manager.php CHANGED
@@ -70,7 +70,7 @@ class blcConfigurationManager {
70
  * Save plugin options to the databse.
71
  *
72
  * @param string $option_name (Optional) Save the options under this name
73
- * @return bool True on success, false on failure
74
  */
75
  function save_options( $option_name = '' ){
76
  if ( !empty($option_name) ){
@@ -78,9 +78,8 @@ class blcConfigurationManager {
78
  }
79
 
80
  if ( empty($this->option_name) ) return false;
81
-
82
- update_option( $this->option_name, $this->options );
83
- return true;
84
  }
85
  }
86
 
70
  * Save plugin options to the databse.
71
  *
72
  * @param string $option_name (Optional) Save the options under this name
73
+ * @return bool True if settings were saved, false if settings haven't been changed or if there was an error.
74
  */
75
  function save_options( $option_name = '' ){
76
  if ( !empty($option_name) ){
78
  }
79
 
80
  if ( empty($this->option_name) ) return false;
81
+
82
+ return update_option( $this->option_name, $this->options );
 
83
  }
84
  }
85
 
includes/containers.php CHANGED
@@ -36,7 +36,8 @@ class blcContainerManager extends blcModule {
36
  */
37
  function &get_container($container){
38
  $container['fields'] = $this->get_parseable_fields();
39
- return new $this->container_class_name($container);
 
40
  }
41
 
42
  /**
36
  */
37
  function &get_container($container){
38
  $container['fields'] = $this->get_parseable_fields();
39
+ $container_obj = new $this->container_class_name($container);
40
+ return $container_obj;
41
  }
42
 
43
  /**
includes/module-manager.php CHANGED
@@ -249,26 +249,27 @@ class blcModuleManager {
249
  * @return blcModule A reference to a module object, or NULL on error.
250
  */
251
  function &get_module($module_id, $autoload = true, $category=''){
 
252
  if ( !is_string($module_id) ){
253
  //$backtrace = debug_backtrace();
254
  //FB::error($backtrace, "get_module called with a non-string argument");
255
- return null;
256
  }
257
 
258
  if ( empty($this->loaded[$module_id]) ){
259
  if ( $autoload && $this->is_active($module_id) ){
260
  if ( !$this->load_module($module_id) ){
261
- return null;
262
  }
263
  } else {
264
- return null;
265
  }
266
  }
267
 
268
  if ( !empty($category) ){
269
  $data = $this->get_module_data($module_id);
270
  if ( $data['ModuleCategory'] != $category ){
271
- return null;
272
  }
273
  }
274
 
@@ -555,11 +556,6 @@ class blcModuleManager {
555
  }
556
  }
557
 
558
- //Only load Pro-version modules with BLC Pro
559
- if ( $module_data['ModuleRequiresPro'] && !defined('BLC_PRO_VERSION') ){
560
- return false;
561
- }
562
-
563
  //Load a normal module
564
  if ( empty($module_data['virtual']) ){
565
 
249
  * @return blcModule A reference to a module object, or NULL on error.
250
  */
251
  function &get_module($module_id, $autoload = true, $category=''){
252
+ $no_result = null;
253
  if ( !is_string($module_id) ){
254
  //$backtrace = debug_backtrace();
255
  //FB::error($backtrace, "get_module called with a non-string argument");
256
+ return $no_result;
257
  }
258
 
259
  if ( empty($this->loaded[$module_id]) ){
260
  if ( $autoload && $this->is_active($module_id) ){
261
  if ( !$this->load_module($module_id) ){
262
+ return $no_result;
263
  }
264
  } else {
265
+ return $no_result;
266
  }
267
  }
268
 
269
  if ( !empty($category) ){
270
  $data = $this->get_module_data($module_id);
271
  if ( $data['ModuleCategory'] != $category ){
272
+ return $no_result;
273
  }
274
  }
275
 
556
  }
557
  }
558
 
 
 
 
 
 
559
  //Load a normal module
560
  if ( empty($module_data['virtual']) ){
561
 
includes/screen-meta-links.php ADDED
@@ -0,0 +1,241 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @author Janis Elsts
5
+ * @copyright 2010
6
+ */
7
+
8
+
9
+ if ( !class_exists('wsScreenMetaLinks10') ):
10
+
11
+ //Load JSON functions for PHP < 5.2
12
+ if (!class_exists('Services_JSON')){
13
+ require ABSPATH . WPINC . '/class-json.php';
14
+ }
15
+
16
+ class wsScreenMetaLinks10 {
17
+ var $registered_links; //List of meta links registered for each page.
18
+
19
+ /**
20
+ * Class constructor.
21
+ *
22
+ * @return void
23
+ */
24
+ function wsScreenMetaLinks10(){
25
+ $this->registered_links = array();
26
+
27
+ add_action('admin_notices', array(&$this, 'append_meta_links'));
28
+ add_action('admin_print_styles', array(&$this, 'add_link_styles'));
29
+ }
30
+
31
+ /**
32
+ * Add a new link to the screen meta area.
33
+ *
34
+ * Do not call this method directly. Instead, use the global add_screen_meta_link() function.
35
+ *
36
+ * @param string $id Link ID. Should be unique and a valid value for a HTML ID attribute.
37
+ * @param string $text Link text.
38
+ * @param string $href Link URL.
39
+ * @param string|array $page The page(s) where you want to add the link.
40
+ * @param array $attributes Optional. Additional attributes for the link tag.
41
+ * @return void
42
+ */
43
+ function add_screen_meta_link($id, $text, $href, $page, $attributes = null){
44
+ if ( !is_array($page) ){
45
+ $page = array($page);
46
+ }
47
+ if ( is_null($attributes) ){
48
+ $attributes = array();
49
+ }
50
+
51
+ //Basically a list of props for a jQuery() call
52
+ $link = compact('id', 'text', 'href');
53
+ $link = array_merge($link, $attributes);
54
+
55
+ //Add the CSS classes that will make the look like a proper meta link
56
+ if ( empty($link['class']) ){
57
+ $link['class'] = '';
58
+ }
59
+ $link['class'] = 'show-settings custom-screen-meta-link ' . $link['class'];
60
+
61
+ //Save the link in each relevant page's list
62
+ foreach($page as $page_id){
63
+ if ( !isset($this->registered_links[$page_id]) ){
64
+ $this->registered_links[$page_id] = array();
65
+ }
66
+ $this->registered_links[$page_id][] = $link;
67
+ }
68
+ }
69
+
70
+ /**
71
+ * Output the JS that appends the custom meta links to the page.
72
+ * Callback for the 'admin_notices' action.
73
+ *
74
+ * @access private
75
+ * @return void
76
+ */
77
+ function append_meta_links(){
78
+ global $hook_suffix;
79
+
80
+ //Find links registered for this page
81
+ $links = $this->get_links_for_page($hook_suffix);
82
+
83
+ if ( empty($links) ){
84
+ return;
85
+ }
86
+
87
+ ?>
88
+ <script type="text/javascript">
89
+ (function($, links){
90
+ var container = $('#screen-meta-links');
91
+ for(var i = 0; i < links.length; i++){
92
+ container.append(
93
+ $('<div/>')
94
+ .attr({
95
+ 'id' : links[i].id + '-wrap',
96
+ 'class' : 'hide-if-no-js screen-meta-toggle custom-screen-meta-link-wrap'
97
+ })
98
+ .append( $('<a/>', links[i]) )
99
+ );
100
+ }
101
+ })(jQuery, <?php echo $this->json_encode($links); ?>);
102
+ </script>
103
+ <?php
104
+ }
105
+
106
+ /**
107
+ * Get a list of custom screen meta links registered for a specific page.
108
+ *
109
+ * @param string $page
110
+ * @return array
111
+ */
112
+ function get_links_for_page($page){
113
+ $links = array();
114
+
115
+ if ( isset($this->registered_links[$page]) ){
116
+ $links = array_merge($links, $this->registered_links[$page]);
117
+ }
118
+ $page_as_screen = $this->page_to_screen_id($page);
119
+ if ( ($page_as_screen != $page) && isset($this->registered_links[$page_as_screen]) ){
120
+ $links = array_merge($links, $this->registered_links[$page_as_screen]);
121
+ }
122
+
123
+ return $links;
124
+ }
125
+
126
+ /**
127
+ * Output the CSS code for custom screen meta links. Required because WP only
128
+ * has styles for specific meta links (by #id), not meta links in general.
129
+ *
130
+ * Callback for 'admin_print_styles'.
131
+ *
132
+ * @access private
133
+ * @return void
134
+ */
135
+ function add_link_styles(){
136
+ global $hook_suffix;
137
+ //Don't output the CSS if there are no custom meta links for this page.
138
+ $links = $this->get_links_for_page($hook_suffix);
139
+ if ( empty($links) ){
140
+ return;
141
+ }
142
+
143
+ ?>
144
+ <style type="text/css">
145
+ .custom-screen-meta-link-wrap {
146
+ float: right;
147
+ height: 22px;
148
+ padding: 0;
149
+ margin: 0 6px 0 0;
150
+ font-family: "Lucida Grande", Verdana, Arial, "Bitstream Vera Sans", sans-serif;
151
+ background: #e3e3e3;
152
+
153
+ border-bottom-left-radius: 3px;
154
+ border-bottom-right-radius: 3px;
155
+ -moz-border-radius-bottomleft: 3px;
156
+ -moz-border-radius-bottomright: 3px;
157
+ -webkit-border-bottom-left-radius: 3px;
158
+ -webkit-border-bottom-right-radius: 3px;
159
+ }
160
+
161
+ #screen-meta .custom-screen-meta-link-wrap a.custom-screen-meta-link {
162
+ background-image: none;
163
+ padding-right: 6px;
164
+ }
165
+ </style>
166
+ <?php
167
+ }
168
+
169
+ /**
170
+ * Convert a page hook name to a screen ID.
171
+ *
172
+ * @uses convert_to_screen()
173
+ * @access private
174
+ *
175
+ * @param string $page
176
+ * @return string
177
+ */
178
+ function page_to_screen_id($page){
179
+ if ( function_exists('convert_to_screen') ){
180
+ $screen = convert_to_screen($page);
181
+ if ( isset($screen->id) ){
182
+ return $screen->id;
183
+ } else {
184
+ return '';
185
+ }
186
+ } else {
187
+ return str_replace( array('.php', '-new', '-add' ), '', $page);
188
+ }
189
+ }
190
+
191
+ /**
192
+ * Back-wards compatible json_encode(). Used to encode link data before
193
+ * passing it to the JavaScript that actually creates the links.
194
+ *
195
+ * @param mixed $data
196
+ * @return string
197
+ */
198
+ function json_encode($data){
199
+ if ( function_exists('json_encode') ){
200
+ return json_encode($data);
201
+ } else {
202
+ $json = new Services_JSON();
203
+ return( $json->encodeUnsafe($data) );
204
+ }
205
+ }
206
+
207
+ }
208
+
209
+ global $ws_screen_meta_links_versions;
210
+ if ( !isset($ws_screen_meta_links_versions) ){
211
+ $ws_screen_meta_links_versions = array();
212
+ }
213
+ $ws_screen_meta_links_versions['1.0'] = 'wsScreenMetaLinks10';
214
+
215
+ endif;
216
+
217
+ /**
218
+ * Add a new link to the screen meta area.
219
+ *
220
+ * @param string $id Link ID. Should be unique and a valid value for a HTML ID attribute.
221
+ * @param string $text Link text.
222
+ * @param string $href Link URL.
223
+ * @param string|array $page The page(s) where you want to add the link.
224
+ * @param array $attributes Optional. Additional attributes for the link tag.
225
+ * @return void
226
+ */
227
+ function add_screen_meta_link($id, $text, $href, $page, $attributes = null){
228
+ global $ws_screen_meta_links_versions;
229
+
230
+ static $instance = null;
231
+ if ( is_null($instance) ){
232
+ //Instantiate the latest version of the wsScreenMetaLinks class
233
+ uksort($ws_screen_meta_links_versions, 'version_compare');
234
+ $className = end($ws_screen_meta_links_versions);
235
+ $instance = new $className;
236
+ }
237
+
238
+ return $instance->add_screen_meta_link($id, $text, $href, $page, $attributes);
239
+ }
240
+
241
+ ?>
includes/utility-class.php CHANGED
@@ -19,7 +19,7 @@ if ( !function_exists('sys_get_temp_dir')) {
19
  }
20
 
21
  //Include the internationalized domain name converter (requires PHP 5)
22
- if ( defined('BLC_PRO_VERSION') && version_compare(phpversion(), '5.0.0', '>=') && !class_exists('idna_convert') ){
23
  include BLC_DIRECTORY . '/idn/idna_convert.class.php';
24
  if ( !function_exists('encode_utf8') ){
25
  include BLC_DIRECTORY . '/idn/transcode_wrapper.php';
@@ -392,10 +392,16 @@ class blcUtility {
392
  if ( empty($charset) ){
393
  $charset = get_bloginfo('charset');
394
  }
395
- if ( (strtoupper($charset) != 'UTF-8') && (strtoupper($charset) != 'UTF8') ){
396
- $url = encode_utf8($url, $charset, true);
397
- }
398
- $url = $idn->encode($url);
 
 
 
 
 
 
399
  }
400
 
401
  return $url;
19
  }
20
 
21
  //Include the internationalized domain name converter (requires PHP 5)
22
+ if ( version_compare(phpversion(), '5.0.0', '>=') && !class_exists('idna_convert') ){
23
  include BLC_DIRECTORY . '/idn/idna_convert.class.php';
24
  if ( !function_exists('encode_utf8') ){
25
  include BLC_DIRECTORY . '/idn/transcode_wrapper.php';
392
  if ( empty($charset) ){
393
  $charset = get_bloginfo('charset');
394
  }
395
+
396
+ //Encode only the host
397
+ if ( preg_match('@(\w+:/*)?([^/:]+)(.*$)?@s', $url, $matches) ){
398
+ $host = $matches[2];
399
+ if ( (strtoupper($charset) != 'UTF-8') && (strtoupper($charset) != 'UTF8') ){
400
+ $host = encode_utf8($host, $charset, true);
401
+ }
402
+ $host = $idn->encode($host);
403
+ $url = $matches[1] . $host . $matches[3];
404
+ }
405
  }
406
 
407
  return $url;
languages/broken-link-checker-ja.mo CHANGED
Binary file
languages/broken-link-checker-ja.po CHANGED
@@ -7,9 +7,9 @@ msgid ""
7
  msgstr ""
8
  "Project-Id-Version: Broken Link Checker 0.9.2\n"
9
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/broken-link-checker\n"
10
- "POT-Creation-Date: 2010-04-28 18:48+0000\n"
11
- "PO-Revision-Date: 2010-06-21 16:28+0900\n"
12
- "Last-Translator: 人間です <ningendesu@live.jp>\n"
13
  "Language-Team: 人間です <a@ningendesu.com>\n"
14
  "MIME-Version: 1.0\n"
15
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -18,763 +18,720 @@ msgstr ""
18
  "X-Poedit-Country: JAPAN\n"
19
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
20
 
21
- #: broken-link-checker.php:273
22
- msgid "Once Weekly"
23
- msgstr "週1回"
24
-
25
- #: core.php:137
26
- #: includes/admin/links-page-js.php:21
27
  msgid "Loading..."
28
  msgstr "読み込み中..."
29
 
30
- #: core.php:160
31
- #: core.php:696
32
  msgid "[ Network error ]"
33
  msgstr "[ネットワークエラー]"
34
 
35
- #: core.php:185
36
  msgid "Automatically expand the widget if broken links have been detected"
37
  msgstr "リンクエラーが検出された場合に、ウィジェットを自動的に展開する"
38
 
39
- #: core.php:296
40
- #, php-format
41
- msgid "Failed to delete old DB tables. Database error : %s"
42
- msgstr "古いDBのテーブルを削除に失敗しました。データベースエラー: %s"
43
-
44
- #: core.php:313
45
- #, php-format
46
- msgid "Unexpected error: The plugin doesn't know how to upgrade its database to version '%d'."
47
- msgstr "予期しないエラー: このプラグインがそのデータベースをバージョン '%d' にアップグレードする方法がわかりません。"
48
-
49
- #: core.php:349
50
- #: core.php:378
51
- #: core.php:420
52
- #: core.php:445
53
- #, php-format
54
- msgid "Failed to create table '%s'. Database error: %s"
55
- msgstr "テーブル '%s' を作成できませんでした。 データベースエラー: %s"
56
-
57
- #: core.php:473
58
  msgid "Link Checker Settings"
59
- msgstr "Link Checkerの設定"
60
 
61
- #: core.php:474
62
  msgid "Link Checker"
63
- msgstr "Link Checker"
64
-
65
- #: core.php:480
66
- msgid "View Broken Links"
67
- msgstr "リンクエラーを見る"
68
 
69
- #: core.php:481
70
- #: includes/links.php:771
71
  msgid "Broken Links"
72
  msgstr "リンクエラーをチェック"
73
 
74
- #: core.php:502
75
- #, php-format
76
- msgid "Highlight links broken for at least %s days"
77
- msgstr "最小 %s 日のリンクエラーをハイライト表示する"
78
 
79
- #: core.php:528
80
  msgid "Settings"
81
  msgstr "設定"
82
 
83
- #: core.php:538
84
- #: core.php:1039
85
  #, php-format
86
  msgid "Error: The plugin's database tables are not up to date! (Current version : %d, expected : %d)"
87
  msgstr "エラーが発生しました:プラグインのデータベーステーブルを最新の状態にされていません! (現在のバージョン:%d, 予期されるバージョン: %d)"
88
 
89
- #: core.php:653
90
  msgid "Settings saved."
91
  msgstr "設定を保存"
92
 
93
- #: core.php:661
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
  msgid "Broken Link Checker Options"
95
  msgstr "Broken Link Checkerのオプション"
96
 
97
- #: core.php:674
 
98
  msgid "Status"
99
  msgstr "ステータス"
100
 
101
- #: core.php:676
102
- #: core.php:1019
103
  msgid "Show debug info"
104
  msgstr "デバッグ情報を表示"
105
 
106
- #: core.php:709
107
- msgid "Re-check all pages"
108
- msgstr "すべてのページを再確認"
109
-
110
- #: core.php:733
111
  msgid "Check each link"
112
  msgstr "各リンクをチェック"
113
 
114
- #: core.php:738
115
  #, php-format
116
  msgid "Every %s hours"
117
  msgstr "%s 時間ごと"
118
 
119
- #: core.php:747
120
  msgid "Existing links will be checked this often. New links will usually be checked ASAP."
121
- msgstr "既存のリンクは、定期的にチェックされます。 新しいリンクは通常、至急チェックされます。"
122
 
123
- #: core.php:754
124
- msgid "Broken link CSS"
125
- msgstr "リンクエラーのCSS"
126
 
127
- #: core.php:759
128
- msgid "Apply <em>class=\"broken_link\"</em> to broken links"
129
- msgstr "リンクエラーのクラスは<em>class=\"broken_link\"</em>にする"
130
 
131
- #: core.php:771
132
- msgid "Removed link CSS"
133
- msgstr "削除されたリンク CSS"
134
 
135
- #: core.php:776
136
- msgid "Apply <em>class=\"removed_link\"</em> to unlinked links"
137
- msgstr "削除されたリンクのクラスは<em>class=\"broken_link\"</em>にする"
138
 
139
- #: core.php:788
140
- msgid "Broken link SEO"
141
- msgstr "リンクエラー SEO"
 
142
 
143
- #: core.php:793
144
- msgid "Apply <em>rel=\"nofollow\"</em> to broken links"
145
- msgstr "リンクエラーには<em>rel=\"nofollow\"</em>を付けておく"
146
 
147
- #: core.php:799
148
- msgid "Exclusion list"
149
- msgstr "除外リスト"
150
 
151
- #: core.php:800
152
- msgid "Don't check links where the URL contains any of these words (one per line) :"
153
- msgstr "URLはこれらの言葉(1行あたり1つ)が含まれるリンクをチェックしないでください:"
154
 
155
- #: core.php:810
156
- msgid "Custom fields"
157
- msgstr "カスタムフィールド"
158
 
159
- #: core.php:811
160
- msgid "Check URLs entered in these custom fields (one per line) :"
161
- msgstr "これらのカスタム フィールド (1 行に 1 つ) で入力した URL を確認します:"
162
 
163
- #: core.php:821
164
- msgid "E-mail notifications"
165
- msgstr "メールで通知"
166
 
167
- #: core.php:827
168
- msgid "Send me e-mail notifications about newly detected broken links"
169
- msgstr "新たに検出されたリンクエラーに関してメール通知を受ける"
170
 
171
- #: core.php:835
172
- msgid "Advanced"
173
- msgstr "高度な設定"
 
 
 
 
174
 
175
- #: core.php:841
 
176
  msgid "Timeout"
177
  msgstr "タイムアウト"
178
 
179
- #: core.php:847
180
- #: core.php:891
 
181
  #, php-format
182
  msgid "%s seconds"
183
  msgstr "%s 秒"
184
 
185
- #: core.php:856
186
  msgid "Links that take longer than this to load will be marked as broken."
187
  msgstr "これよりも読み込みに時間がかかったリンクはリンクエラーとマークする"
188
 
189
- #: core.php:863
190
  msgid "Link monitor"
191
  msgstr "リンクモニター"
192
 
193
- #: core.php:869
194
  msgid "Run continuously while the Dashboard is open"
195
  msgstr "継続的にダッシュボードが開いている間実行する"
196
 
197
- #: core.php:877
198
  msgid "Run hourly in the background"
199
  msgstr "バックグラウンドで1時間ごとに実行する"
200
 
201
- #: core.php:885
202
  msgid "Max. execution time"
203
  msgstr "最大実行時間"
204
 
205
- #: core.php:902
206
  msgid "The plugin works by periodically launching a background job that parses your posts for links, checks the discovered URLs, and performs other time-consuming tasks. Here you can set for how long, at most, the link monitor may run each time before stopping."
207
- msgstr "このプラグインは、あなたの記事へのリンクを解析し、検出された URL をチェックし、他の時間のかかるタスクを実行するバックグラウンドジョブを定期的に起動することで動作します。 ここでは、リンクモニタが停止する前に実行することができる時間を設定することができます。"
208
 
209
- #: core.php:912
210
  msgid "Custom temporary directory"
211
  msgstr "一時ディレクトリ"
212
 
213
- #: core.php:921
214
  msgid "OK"
215
  msgstr "OK"
216
 
217
- #: core.php:924
218
  msgid "Error : This directory isn't writable by PHP."
219
  msgstr "エラー : PHP が書き込み可能ではありません。"
220
 
221
- #: core.php:929
222
  msgid "Error : This directory doesn't exist."
223
  msgstr "エラー : このディレクトリーが存在しません。"
224
 
225
- #: core.php:937
226
  msgid "Set this field if you want the plugin to use a custom directory for its lockfiles. Otherwise, leave it blank."
227
- msgstr "ロックファイルにカスタムディレクトリを使用するには、このフィールドを設定します。 それ以外の場合、空白のままにしておきます。"
228
 
229
- #: core.php:944
230
  msgid "Server load limit"
231
  msgstr "サーバーの負担の制限"
232
 
233
- #: core.php:985
 
 
 
 
 
234
  #, php-format
235
  msgid "Link checking will be suspended if the average <a href=\"%s\">server load</a> rises above this number. Leave this field blank to disable load limiting."
236
- msgstr "平均サーバーの<a href=\"%s\">負荷がこの数</a>以上に上昇する場合上昇するとリンクチェックが中断されます。負荷制限を無効にするには、このフィールドを空白にしておきます。"
237
 
238
- #: core.php:995
 
 
 
 
239
  msgid "Load limiting only works on Linux-like systems where <code>/proc/loadavg</code> is present and accessible."
240
  msgstr "負荷制限が動作し、アクセス可能な '/proc/loadavg' を Linux のようなシステムで動作します。"
241
 
242
- #: core.php:1004
243
- msgid "Save Changes"
244
- msgstr "変更を保存"
245
-
246
- #: core.php:1017
247
- msgid "Hide debug info"
248
- msgstr "デバッグ情報を隠す"
249
-
250
- #: core.php:1125
251
- #: core.php:1458
252
- #: core.php:1490
253
- #, php-format
254
- msgid "Database error : %s"
255
- msgstr "データベース エラー: %s"
256
-
257
- #: core.php:1200
258
- msgid "Bulk Actions"
259
- msgstr "一括操作"
260
-
261
- #: core.php:1201
262
- msgid "Recheck"
263
  msgstr "再確認"
264
 
265
- #: core.php:1202
266
- msgid "Fix redirects"
267
- msgstr "リダイレクトを修正"
268
 
269
- #: core.php:1203
270
- #: core.php:1357
271
- #: includes/admin/links-page-js.php:293
272
- msgid "Unlink"
273
- msgstr "リンク解除"
274
 
275
- #: core.php:1204
276
- msgid "Delete sources"
277
- msgstr "ソースを削除"
278
 
279
- #: core.php:1218
280
- #: core.php:1392
281
- msgid "Apply"
282
- msgstr "適用"
283
 
284
- #: core.php:1225
285
- msgid "&laquo;"
286
- msgstr "&laquo;"
287
 
288
- #: core.php:1226
289
- msgid "&raquo;"
290
- msgstr "&raquo;"
291
 
292
- #: core.php:1233
293
- #: core.php:1398
 
294
  #, php-format
295
- msgid "Displaying %s&#8211;%s of <span class=\"current-link-count\">%s</span>"
296
- msgstr "表示 %s&#8211;%s of <span class=\"current-link-count\">%s</span>"
297
-
298
- #: core.php:1252
299
- msgid "Source"
300
- msgstr "ソース"
301
-
302
- #: core.php:1253
303
- msgid "Link Text"
304
- msgstr "リンクテキスト"
305
-
306
- #: core.php:1254
307
- #: includes/admin/search-form.php:42
308
- msgid "URL"
309
- msgstr "URL"
310
-
311
- #: core.php:1330
312
- msgid "[An orphaned link! This is a bug.]"
313
- msgstr "[独立したリンク! これはバグです]"
314
-
315
- #: core.php:1354
316
- msgid "Show more info about this link"
317
- msgstr "このリンクに関する表示詳細情報をもっと見る"
318
-
319
- #: core.php:1354
320
- #: core.php:2726
321
- msgid "Details"
322
- msgstr "詳細"
323
-
324
- #: core.php:1356
325
- msgid "Remove this link from all posts"
326
- msgstr "すべての記事からこのリンクを削除"
327
-
328
- #: core.php:1362
329
- msgid "Remove this link from the list of broken links and mark it as valid"
330
- msgstr "リンクエラーのリストから、このリンクを削除し、有効なものとしてそれをマーク"
331
-
332
- #: core.php:1363
333
- #: includes/admin/links-page-js.php:78
334
- msgid "Not broken"
335
- msgstr "リンクエラーでない"
336
-
337
- #: core.php:1367
338
- msgid "Edit link URL"
339
- msgstr "リンクのURLを編集"
340
-
341
- #: core.php:1367
342
- #: includes/admin/links-page-js.php:199
343
- #: includes/admin/links-page-js.php:227
344
- msgid "Edit URL"
345
- msgstr "URLを編集"
346
-
347
- #: core.php:1373
348
- msgid "Cancel URL editing"
349
- msgstr "URLの編集をキャンセル"
350
-
351
- #: core.php:1373
352
- #: includes/admin/search-form.php:87
353
- msgid "Cancel"
354
- msgstr "キャンセル"
355
 
356
- #: core.php:1441
357
  msgid "You must enter a filter name!"
358
  msgstr "フィルター名を入力する必要があります!"
359
 
360
- #: core.php:1445
361
  msgid "Invalid search query."
362
  msgstr "無効な検索クエリ"
363
 
364
- #: core.php:1453
365
  #, php-format
366
  msgid "Filter \"%s\" created"
367
  msgstr "フィルター %s を作成しました。"
368
 
369
- #: core.php:1481
370
  msgid "Filter ID not specified."
371
  msgstr "フィルタが指定されないIDです。"
372
 
373
- #: core.php:1487
374
  msgid "Filter deleted"
375
  msgstr "フィルタを削除"
376
 
377
- #: core.php:1535
378
  #, php-format
379
  msgid "Replaced %d redirect with a direct link"
380
  msgid_plural "Replaced %d redirects with direct links"
381
- msgstr[0] "%d個の直接リンクをリダイレクト置き換え"
382
- msgstr[1] "%d個の直接リンクをリダイレクト置き換え"
383
 
384
- #: core.php:1546
385
  #, php-format
386
  msgid "Failed to fix %d redirect"
387
  msgid_plural "Failed to fix %d redirects"
388
  msgstr[0] "%d リダイレクトの修正に失敗しました。"
389
  msgstr[1] "%d リダイレクトの修正に失敗しました。"
390
 
391
- #: core.php:1556
392
  msgid "None of the selected links are redirects!"
393
  msgstr "選択したリンクはリダイレクトではありません。"
394
 
395
- #: core.php:1602
 
 
 
 
 
 
 
 
 
 
 
 
 
 
396
  #, php-format
397
  msgid "%d link removed"
398
  msgid_plural "%d links removed"
399
  msgstr[0] "%d リンクの削除"
400
  msgstr[1] "%d リンクの削除"
401
 
402
- #: core.php:1613
403
  #, php-format
404
  msgid "Failed to remove %d link"
405
  msgid_plural "Failed to remove %d links"
406
  msgstr[0] "%d リンクを削除できませんでした。"
407
  msgstr[1] "%d リンクを削除できませんでした。"
408
 
409
- #: core.php:1701
 
 
 
 
 
 
 
410
  msgid "Didn't find anything to delete!"
411
  msgstr "削除するには何も見つかりませんでした!"
412
 
413
- #: core.php:1729
414
  #, php-format
415
  msgid "%d link scheduled for rechecking"
416
  msgid_plural "%d links scheduled for rechecking"
417
- msgstr[0] "%d個のリンク再確認のためのスケジュール"
418
- msgstr[1] "%d個のリンク再確認のためのスケジュール"
419
-
420
- #: core.php:1752
421
- msgid "Post published on"
422
- msgstr "投稿を公開"
423
-
424
- #: core.php:1757
425
- msgid "Link last checked"
426
- msgstr "最後リンクチェック"
427
 
428
- #: core.php:1761
429
- msgid "Never"
430
- msgstr "決して"
431
-
432
- #: core.php:1767
433
- #: includes/admin/search-form.php:45
434
- msgid "HTTP code"
435
- msgstr "HTTP コード"
436
-
437
- #: core.php:1772
438
- msgid "Response time"
439
- msgstr "応答時間"
440
 
441
- #: core.php:1774
442
  #, php-format
443
- msgid "%2.3f seconds"
444
- msgstr "%2.3f 秒"
445
-
446
- #: core.php:1777
447
- msgid "Final URL"
448
- msgstr "最終的なURL"
449
-
450
- #: core.php:1782
451
- msgid "Redirect count"
452
- msgstr "リダイレクトの回数"
453
-
454
- #: core.php:1787
455
- msgid "Instance count"
456
- msgstr "インスタンス数"
457
 
458
- #: core.php:1796
459
  #, php-format
460
- msgid "This link has failed %d time."
461
- msgid_plural "This link has failed %d times."
462
- msgstr[0] "最終チェック %d 時間前"
463
- msgstr[1] "最終チェック %d 時間前"
464
 
465
- #: core.php:1804
466
- #, php-format
467
- msgid "This link has been broken for %s."
468
- msgstr " %s の間リンクエラー状態です。"
469
 
470
- #: core.php:1815
471
- msgid "Log"
472
- msgstr "ログ"
473
 
474
- #: core.php:1841
475
- msgid "less than a minute"
476
- msgstr "1 分未満"
477
 
478
- #: core.php:1849
479
- #, php-format
480
- msgid "%d minute"
481
- msgid_plural "%d minutes"
482
- msgstr[0] "%d 分"
483
- msgstr[1] "%d 分"
484
 
485
- #: core.php:1863
486
- #: core.php:1890
487
- #, php-format
488
- msgid "%d hour"
489
- msgid_plural "%d hours"
490
- msgstr[0] "%d 時間"
491
- msgstr[1] "%d 時間"
492
 
493
- #: core.php:1878
494
- #: core.php:1919
495
  #, php-format
496
- msgid "%d day"
497
- msgid_plural "%d days"
498
- msgstr[0] "%d 日"
499
- msgstr[1] "%d 日"
500
 
501
- #: core.php:1908
502
- #, php-format
503
- msgid "%d month"
504
- msgid_plural "%d months"
505
- msgstr[0] "%d 分"
506
- msgstr[1] "%d 分"
 
 
 
 
507
 
508
- #: core.php:2231
509
  msgid "View broken links"
510
  msgstr "リンクエラーを表示"
511
 
512
- #: core.php:2232
513
  #, php-format
514
  msgid "Found %d broken link"
515
  msgid_plural "Found %d broken links"
516
- msgstr[0] "%d のリンクエラーを発見"
517
- msgstr[1] "%d のリンクエラーを発見"
518
 
519
- #: core.php:2238
520
  msgid "No broken links found."
521
  msgstr "リンクを発見しました。"
522
 
523
- #: core.php:2245
524
  #, php-format
525
  msgid "%d URL in the work queue"
526
  msgid_plural "%d URLs in the work queue"
527
  msgstr[0] "%d URLワークキュー内"
528
  msgstr[1] "%d URLワークキュー内"
529
 
530
- #: core.php:2248
531
  msgid "No URLs in the work queue."
532
- msgstr "ワーク キュー内の URL がありません。"
533
 
534
- #: core.php:2254
535
  #, php-format
536
  msgid "Detected %d unique URL"
537
  msgid_plural "Detected %d unique URLs"
538
- msgstr[0] "%d リンク検出 ユニークURL"
539
- msgstr[1] "%d リンク検出 ユニークURL"
540
 
541
- #: core.php:2255
542
  #, php-format
543
  msgid "in %d link"
544
  msgid_plural "in %d links"
545
  msgstr[0] "%dリンク"
546
  msgstr[1] "%d リンク"
547
 
548
- #: core.php:2260
549
  msgid "and still searching..."
550
- msgstr "そして、まだ検索..."
551
 
552
- #: core.php:2266
553
  msgid "Searching your blog for links..."
554
  msgstr "あなたのブログへのリンクを検索しています..."
555
 
556
- #: core.php:2268
557
  msgid "No links detected."
558
  msgstr "リンクの検出。"
559
 
560
- #: core.php:2353
561
- #: core.php:2389
562
- #: core.php:2452
563
- #: core.php:2534
564
- msgid "You're not allowed to do that!"
565
- msgstr "それを行うことが許可されていません!"
566
 
567
- #: core.php:2361
568
- #: core.php:2399
569
- #: core.php:2462
570
  #, php-format
571
  msgid "Oops, I can't find the link %d"
572
- msgstr "私のリンク %d を見つけることができません。"
573
-
574
- #: core.php:2368
575
- msgid "This link was manually marked as working by the user."
576
- msgstr "このリンクは手動での作業としてマークされました。"
577
 
578
- #: core.php:2374
579
  msgid "Oops, couldn't modify the link!"
580
  msgstr "リンクを変更できませんでした!"
581
 
582
- #: core.php:2377
583
- #: core.php:2488
584
  msgid "Error : link_id not specified"
585
  msgstr "エラー: link_id が指定されていません"
586
 
587
- #: core.php:2409
588
  msgid "Oops, the new URL is invalid!"
589
- msgstr "おっと、新しい URL が無効です!"
590
 
591
- #: core.php:2420
592
- #: core.php:2471
593
  msgid "An unexpected error occured!"
594
  msgstr "予期しないエラーが発生しました !"
595
 
596
- #: core.php:2438
597
  msgid "Error : link_id or new_url not specified"
598
  msgstr "エラー: link_id または new_url が指定されていません"
599
 
600
- #: core.php:2497
601
  msgid "You don't have sufficient privileges to access this information!"
602
- msgstr "この情報にアクセスする権限を持っていない!"
603
 
604
- #: core.php:2510
605
  msgid "Error : link ID not specified"
606
  msgstr "エラー: リンクIDは指定しませんでした。"
607
 
608
- #: core.php:2521
609
  #, php-format
610
  msgid "Failed to load link details (%s)"
611
  msgstr "リンクの詳細 (%s) の読み込みに失敗しました"
612
 
613
- #: core.php:2717
 
 
 
 
 
 
 
 
 
 
 
614
  #, php-format
615
  msgid "Please make the directory <code>%1$s</code> writable by plugins or <a href=\"%2$s\">set a custom temporary directory</a>."
616
  msgstr "ディレクトリ <code>%1$s</code> プラグインによって書き込み可能にするか、カスタム一時ディレクトリを <a href=\"%2$s\">設定</a>してください。"
617
 
618
- #: core.php:2724
619
  msgid "Broken Link Checker can't create a lockfile."
620
  msgstr "Broken Link Checker ロックファイルを作成できません。"
621
 
622
- #: core.php:2729
623
  msgid "The plugin uses a file-based locking mechanism to ensure that only one instance of the resource-heavy link checking algorithm is running at any given time. Unfortunately, BLC can't find a writable directory where it could store the lockfile - it failed to detect the location of your server's temporary directory, and the plugin's own directory isn't writable by PHP. To fix this problem, please make the plugin's directory writable or enter a specify a custom temporary directory in the plugin's settings."
624
  msgstr "このプラグインは、リソースの重いリンクチェックアルゴリズムの1つだけのインスタンスが任意の時点で実行しているように、ファイルベースのロックメカニズムを使用します。残念ながら、ロックファイルを保存できる書き込み可能なディレクトリを見つけることができません。- サーバーの一時ディレクトリの場所を検出できませんでしたし、プラグインのディレクトリを PHP が書き込み可能ではありません。この問題を解決するには、プラグインのディレクトリを書き込み可能にするか、プラグインの設定でカスタムの一時ディレクトリを指定してください。"
625
 
626
- #: core.php:2748
627
  msgid "PHP version"
628
  msgstr "PHPバージョン"
629
 
630
- #: core.php:2754
631
  msgid "MySQL version"
632
  msgstr "MySQLバージョン"
633
 
634
- #: core.php:2767
635
  msgid "You have an old version of CURL. Redirect detection may not work properly."
636
  msgstr "CURLのバージョンが古いため、リダイレクト検出が正しく動作しないことがあります。"
637
 
638
- #: core.php:2779
639
- #: core.php:2795
640
- #: core.php:2800
641
  msgid "Not installed"
642
  msgstr "インストールされていません"
643
 
644
- #: core.php:2782
645
  msgid "CURL version"
646
  msgstr "CURLバージョン"
647
 
648
- #: core.php:2788
649
  msgid "Installed"
650
  msgstr "インストールされています"
651
 
652
- #: core.php:2801
653
  msgid "You must have either CURL or Snoopy installed for the plugin to work!"
654
  msgstr "CURL か Snoopy はプラグイン動作するためにインストールされている必要があります!"
655
 
656
- #: core.php:2812
657
  msgid "On"
658
  msgstr "ON"
659
 
660
- #: core.php:2813
661
  msgid "Redirects may be detected as broken links when safe_mode is on."
662
  msgstr "セーフモードが有効な場合リダイレクトリンクエラーとして検出されることがあります。"
663
 
664
- #: core.php:2818
665
- #: core.php:2832
666
  msgid "Off"
667
  msgstr "OFF"
668
 
669
- #: core.php:2826
670
  #, php-format
671
  msgid "On ( %s )"
672
  msgstr "ON ( %s )"
673
 
674
- #: core.php:2827
675
  msgid "Redirects may be detected as broken links when open_basedir is on."
676
  msgstr "ここにある場合リダイレクトリンクエラーとして検出されることがあります。"
677
 
678
- #: core.php:2846
679
  msgid "Can't create a lockfile. Please specify a custom temporary directory."
680
  msgstr "ロックファイルを作成することはできません。 カスタムの一時ディレクトリを指定してください。"
681
 
682
- #: core.php:2875
 
 
 
 
683
  #, php-format
684
  msgid "[%s] Broken links detected"
685
  msgstr "[%s] リンクエラーの検出"
686
 
687
- #: core.php:2881
688
  #, php-format
689
  msgid "Broken Link Checker has detected %d new broken link on your site."
690
  msgid_plural "Broken Link Checker has detected %d new broken links on your site."
691
- msgstr[0] "Broken Link Checkerは、あなたのサイトに新しいリンク %d がリンクエラーと検出されました。"
692
- msgstr[1] "Broken Link Checkerは、あなたのサイトに新しいリンク %d がリンクエラーと検出されました。"
693
 
694
- #: core.php:2896
695
  #, php-format
696
  msgid "Here's a list of the first %d broken links:"
697
  msgid_plural "Here's a list of the first %d broken links:"
698
- msgstr[0] "このリンクエラーが、最初の %d の一覧。"
699
- msgstr[1] "このリンクエラーが、最初の %d の一覧。"
700
 
701
- #: core.php:2904
702
  msgid "Here's a list of the new broken links: "
703
  msgstr "リンクエラーの一覧 : "
704
 
705
- #: core.php:2916
706
  #, php-format
707
  msgid "Link text : %s"
708
  msgstr "リンク テキスト: %s"
709
 
710
- #: core.php:2917
711
  #, php-format
712
  msgid "Link URL : <a href=\"%s\">%s</a>"
713
  msgstr "リンクのURL : <a href=\"%s\">%s</a>"
714
 
715
- #: core.php:2918
716
  #, php-format
717
  msgid "Source : %s"
718
  msgstr "ソース : %s"
719
 
720
- #: core.php:2932
721
  msgid "You can see all broken links here:"
722
  msgstr "すべてのリンクエラーを見ることができます:"
723
 
724
- #: includes/admin/links-page-js.php:40
725
- #: includes/admin/links-page-js.php:234
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
726
  msgid "Wait..."
727
  msgstr "処理中..."
728
 
729
- #: includes/admin/links-page-js.php:109
730
- msgid "Save URL"
731
- msgstr "URL を保存"
732
-
733
- #: includes/admin/links-page-js.php:120
734
- msgid "Saving changes..."
735
- msgstr "変更を保存しています..."
736
 
737
- #: includes/admin/links-page-js.php:166
738
  #, php-format
739
  msgid "%d instances of the link were successfully modified."
740
- msgstr "%d インスタンスのリンクが正常に変更されました。"
 
 
 
 
 
741
 
742
- #: includes/admin/links-page-js.php:178
743
  msgid "The link could not be modified."
744
  msgstr "リンクを変更できませんでした。"
745
 
746
- #: includes/admin/links-page-js.php:181
747
- #: includes/admin/links-page-js.php:285
748
  msgid "The following error(s) occured :"
749
- msgstr "次のエラーが発生しました:"
750
 
751
- #: includes/admin/links-page-js.php:271
752
  #, php-format
753
  msgid "%d instances of the link were successfully unlinked."
754
  msgstr "リンク%dのインスタンスが正常に解除されました。"
755
 
756
- #: includes/admin/links-page-js.php:277
757
  #, php-format
758
  msgid "However, %d instances couldn't be removed."
759
- msgstr "しかし、 %d 個のインスタンスは削除できませんでした。"
760
 
761
- #: includes/admin/links-page-js.php:282
762
  msgid "The plugin failed to remove the link."
763
  msgstr "プラグインは、リンクを削除できませんでした。"
764
 
765
- #: includes/admin/links-page-js.php:337
 
 
 
 
 
 
766
  msgid "Enter a name for the new custom filter"
767
  msgstr "新しいカスタムフィルターの名前を入力します。"
768
 
769
- #: includes/admin/links-page-js.php:348
770
  msgid ""
771
  "You are about to delete the current filter.\n"
772
  "'Cancel' to stop, 'OK' to delete"
773
  msgstr ""
774
- "あなたは現在のフィルタを削除しようとしています。 \n"
775
  "「OK」で削除、「キャンセル」で中止します。"
776
 
777
- #: includes/admin/links-page-js.php:371
778
  msgid ""
779
  "Are you sure you want to delete all posts, bookmarks or other items that contain any of the selected links? This action can't be undone.\n"
780
  "'Cancel' to stop, 'OK' to delete"
@@ -783,371 +740,811 @@ msgstr ""
783
  "この操作は元に戻すことはできません。\n"
784
  "「OK」で削除、「キャンセル」で中止します。"
785
 
786
- #: includes/admin/search-form.php:13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
787
  msgid "Save This Search As a Filter"
788
  msgstr "この検索フィルターとして保存"
789
 
790
- #: includes/admin/search-form.php:23
791
  msgid "Delete This Filter"
792
  msgstr "このフィルターを削除"
793
 
794
- #: includes/admin/search-form.php:29
795
- #: includes/links.php:798
796
  msgid "Search"
797
  msgstr "検索"
798
 
799
- #: includes/admin/search-form.php:39
800
  msgid "Link text"
801
  msgstr "リンクテキスト"
802
 
 
 
 
 
 
803
  #: includes/admin/search-form.php:48
 
 
 
 
 
804
  msgid "Link status"
805
  msgstr "リンクのステータス"
806
 
807
- #: includes/admin/search-form.php:64
 
808
  msgid "Link type"
809
  msgstr "リンクの種類"
810
 
811
- #: includes/admin/search-form.php:68
812
  msgid "Any"
813
  msgstr "任意"
814
 
815
- #: includes/admin/search-form.php:69
816
- msgid "Normal link"
817
- msgstr "通常のリンク"
818
 
819
- #: includes/admin/search-form.php:70
820
- #: includes/parsers/image.php:142
821
- msgid "Image"
822
- msgstr "イメージ"
823
 
824
- #: includes/admin/search-form.php:71
825
- #: includes/containers/custom_field.php:176
826
- msgid "Custom field"
827
- msgstr "カスタムフィールド"
 
 
828
 
829
- #: includes/admin/search-form.php:72
830
- #: includes/containers/blogroll.php:13
831
- msgid "Bookmark"
832
- msgstr "ブックマーク"
833
 
834
- #: includes/admin/search-form.php:73
835
- #: includes/containers/comment.php:137
836
- msgid "Comment"
837
- msgstr "コメント"
838
 
839
- #: includes/admin/search-form.php:86
840
- msgid "Search Links"
841
- msgstr "リンク検索"
842
 
843
- #: includes/checkers/http.php:186
844
- #: includes/checkers/http.php:253
845
- #, php-format
846
- msgid "HTTP code : %d"
847
- msgstr "HTTP コード : %d"
848
 
849
- #: includes/checkers/http.php:188
850
- #: includes/checkers/http.php:255
851
- msgid "(No response)"
852
- msgstr "(応答なし)"
853
 
854
- #: includes/checkers/http.php:194
855
- msgid "Most likely the connection timed out or the domain doesn't exist."
856
- msgstr "ほとんどの場合、ドメインが存在しないかサーバーが一切反応しないためタイムアウトしました。"
 
857
 
858
- #: includes/checkers/http.php:262
859
- msgid "Request timed out."
860
- msgstr "要求がタイムアウトしました。"
861
 
862
- #: includes/checkers/http.php:280
863
- msgid "Using Snoopy"
864
- msgstr "Snoopyを使用"
865
 
866
- #: includes/containers.php:262
867
- #, php-format
868
- msgid "Container type '%s' not recognized"
869
- msgstr "コンテナの型 '%s' が認識されません。"
870
 
871
- #: includes/containers.php:792
872
- #, php-format
873
- msgid "%d '%s' has been deleted"
874
- msgid_plural "%d '%s' have been deleted"
875
- msgstr[0] "%d '%s' は削除されています"
876
- msgstr[1] "%d '%s' は削除されています"
877
 
878
- #: includes/containers/blogroll.php:19
879
- #: includes/containers/blogroll.php:38
880
- msgid "Edit this bookmark"
881
- msgstr "このブックマークを編集"
882
 
883
- #: includes/containers/blogroll.php:38
884
- #: includes/containers/comment.php:107
885
- #: includes/containers/custom_field.php:201
886
- #: includes/containers/post.php:16
887
- msgid "Edit"
888
- msgstr "編集"
 
889
 
890
- #: includes/containers/blogroll.php:39
891
  #, php-format
892
- msgid ""
893
- "You are about to delete this link '%s'\n"
894
- " 'Cancel' to stop, 'OK' to delete."
895
- msgstr ""
896
- "このリンク '%s' 削除しようとしています。\n"
897
- "「OK」で削除、「キャンセル」で中止します。"
898
 
899
- #: includes/containers/blogroll.php:39
900
- #: includes/containers/custom_field.php:206
901
- #: includes/containers/post.php:21
902
- msgid "Delete"
903
- msgstr "削除"
904
 
905
- #: includes/containers/blogroll.php:75
906
- #: includes/containers/comment.php:36
907
- #: includes/containers/post.php:86
908
- msgid "Nothing to update"
909
- msgstr "何も更新してません"
910
 
911
- #: includes/containers/blogroll.php:89
912
- #, php-format
913
- msgid "Updating bookmark %d failed"
914
- msgstr "ブックマーク %d の更新に失敗しました"
915
 
916
- #: includes/containers/blogroll.php:120
917
- #, php-format
918
- msgid "Failed to delete blogroll link \"%s\" (%d)"
919
- msgstr "ブログロールのリンク '%s' を削除できませんでした (%d)"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
920
 
921
- #: includes/containers/blogroll.php:280
 
 
 
 
 
 
 
 
922
  #, php-format
923
- msgid "%d blogroll link deleted"
924
- msgid_plural "%d blogroll links deleted"
925
- msgstr[0] "%d個のブログロールのリンクを削除"
926
- msgstr[1] "%d個のブログロールのリンクを削除"
 
 
927
 
928
- #: includes/containers/comment.php:46
 
 
 
 
 
 
 
 
929
  #, php-format
930
- msgid "Updating comment %d failed"
931
- msgstr "更新コメントの %d は失敗しました"
 
 
932
 
933
- #: includes/containers/comment.php:64
934
  #, php-format
935
- msgid "Failed to delete comment %d"
936
- msgstr "%d 個のコメントを削除できませんでした。"
937
 
938
- #: includes/containers/comment.php:107
939
- #: includes/containers/comment.php:149
940
- msgid "Edit comment"
941
- msgstr "コメントを編集"
942
 
943
- #: includes/containers/comment.php:114
944
- msgid "Delete Permanently"
945
- msgstr "完全に削除します"
946
 
947
- #: includes/containers/comment.php:116
948
- msgid "Move this comment to the trash"
949
- msgstr "このコメントをゴミ箱に移動"
 
950
 
951
- #: includes/containers/comment.php:116
952
- msgctxt "verb"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
953
  msgid "Trash"
954
  msgstr "ゴミ箱"
955
 
956
- #: includes/containers/comment.php:120
957
- msgid "View comment"
958
- msgstr "ビューのコメント"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
959
 
960
- #: includes/containers/comment.php:120
961
- #: includes/containers/custom_field.php:209
962
- #: includes/containers/post.php:24
 
 
 
 
 
963
  msgid "View"
964
- msgstr "ビュー"
 
 
 
 
 
965
 
966
- #: includes/containers/comment.php:273
 
 
 
 
 
 
967
  #, php-format
968
- msgid "%d comment moved to the trash"
969
- msgid_plural "%d comments moved to the trash"
970
- msgstr[0] "%dコメントをゴミ箱に移動"
971
- msgstr[1] "%dコメントをゴミ箱に移動"
972
 
973
- #: includes/containers/comment.php:283
 
974
  #, php-format
975
- msgid "%d comment has been deleted"
976
- msgid_plural "%d comments have been deleted"
977
- msgstr[0] "%d個のコメントが削除されました"
978
- msgstr[1] "%d個のコメントが削除されました"
979
 
980
- #: includes/containers/custom_field.php:191
981
- #: includes/containers/custom_field.php:201
982
- #: includes/containers/post.php:16
983
- #: includes/containers/post.php:41
984
- msgid "Edit this post"
985
- msgstr "この記事を編集"
986
 
987
- #: includes/containers/custom_field.php:204
988
- #: includes/containers/post.php:19
989
- msgid "Trash"
990
- msgstr "ゴミ箱"
 
991
 
992
- #: includes/containers/custom_field.php:206
993
- #: includes/containers/post.php:21
994
- msgid "Delete this post permanently"
995
- msgstr "この記事を完全に削除"
 
 
996
 
997
- #: includes/containers/custom_field.php:206
998
- #: includes/containers/post.php:21
999
  #, php-format
1000
- msgid ""
1001
- "You are about to delete this post '%s'\n"
1002
- " 'Cancel' to stop, 'OK' to delete."
1003
- msgstr ""
1004
- "あなたはこのポスト'%s' \n"
1005
- "を削除しようとしています。"
1006
 
1007
- #: includes/containers/custom_field.php:209
1008
- #: includes/containers/post.php:24
1009
  #, php-format
1010
- msgid "View \"%s\""
1011
- msgstr "\"%s\" を見る"
 
 
1012
 
1013
- #: includes/containers/custom_field.php:248
1014
- #: includes/containers/post.php:127
1015
  #, php-format
1016
- msgid "Failed to delete post \"%s\" (%d)"
1017
- msgstr "\"%s\" (%d) の投稿を削除できませんでした。"
 
 
1018
 
1019
- #: includes/containers/custom_field.php:479
1020
- #: includes/containers/post.php:300
1021
  #, php-format
1022
- msgid "%d post moved to the trash"
1023
- msgid_plural "%d posts moved to the trash"
1024
- msgstr[0] "%d ポストをゴミ箱に移動"
1025
- msgstr[1] "%d ポストをゴミ箱に移動"
1026
 
1027
- #: includes/containers/custom_field.php:481
1028
- #: includes/containers/post.php:302
1029
  #, php-format
1030
- msgid "%d post deleted"
1031
- msgid_plural "%d posts deleted"
1032
- msgstr[0] "%d ポストの削除"
1033
- msgstr[1] "%d ポストの削除"
1034
 
1035
- #: includes/containers/dummy.php:21
1036
- #: includes/containers/dummy.php:32
1037
  #, php-format
1038
- msgid "I don't know how to edit a '%s' [%d]."
1039
- msgstr "未知のため、'%s' [%d]を編集することができません。"
 
 
1040
 
1041
- #: includes/containers/post.php:96
 
1042
  #, php-format
1043
- msgid "Updating post %d failed"
1044
- msgstr "ポスト %d を更新できませんでした。"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1045
 
1046
  #: includes/instances.php:102
1047
- #: includes/instances.php:148
1048
  #, php-format
1049
  msgid "Container %s[%d] not found"
1050
  msgstr "%s[%d] コンテナーが見つかりません。"
1051
 
1052
  #: includes/instances.php:111
1053
- #: includes/instances.php:157
1054
  #, php-format
1055
  msgid "Parser '%s' not found."
1056
  msgstr "パーサー '%s' が見つかりません。"
1057
 
1058
- #: includes/links.php:157
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1059
  msgid "The plugin script was terminated while trying to check the link."
1060
- msgstr "リンクを確認しようとしたとき、プラグインか、スクリプトが終了しました。"
1061
 
1062
- #: includes/links.php:201
1063
  msgid "The plugin doesn't know how to check this type of link."
1064
  msgstr "未知のリンクの種類です。"
1065
 
1066
- #: includes/links.php:289
1067
  msgid "Link is valid."
1068
  msgstr "リンクは有効です。"
1069
 
1070
- #: includes/links.php:291
1071
  msgid "Link is broken."
1072
  msgstr "リンクエラーです。"
1073
 
1074
- #: includes/links.php:484
1075
- #: includes/links.php:586
1076
- #: includes/links.php:621
1077
  msgid "Link is not valid"
1078
- msgstr "リンクは有効では"
1079
 
1080
- #: includes/links.php:501
1081
  msgid "This link can not be edited because it is not used anywhere on this site."
1082
  msgstr "それはこのサイトで使用されていないためこのリンクを編集することはできません。"
1083
 
1084
- #: includes/links.php:527
1085
  msgid "Failed to create a DB entry for the new URL."
1086
- msgstr "新しい URLDB のエントリを作成できませんでした。"
1087
 
1088
- #: includes/links.php:599
1089
  msgid "This link is not a redirect"
1090
- msgstr "このリンクはリダイレクトされません"
1091
 
1092
- #: includes/links.php:648
1093
- #: includes/links.php:685
1094
  msgid "Couldn't delete the link's database record"
1095
- msgstr "リンクのデータベースのレコードを削除できませんでした"
1096
 
1097
- #: includes/links.php:770
1098
- msgid "Broken"
1099
- msgstr "リンクエラー"
 
1100
 
1101
- #: includes/links.php:772
1102
- msgid "No broken links found"
1103
- msgstr "リンクを発見します"
 
1104
 
1105
- #: includes/links.php:779
1106
- msgid "Redirects"
1107
- msgstr "リダイレクト"
1108
 
1109
- #: includes/links.php:780
1110
- msgid "Redirected Links"
1111
- msgstr "リダイレクトされたリンク"
1112
-
1113
- #: includes/links.php:781
1114
- msgid "No redirects found"
1115
- msgstr "リダイレクトが見つかりませんでした"
1116
-
1117
- #: includes/links.php:789
1118
- msgid "All"
1119
- msgstr "すべて"
1120
-
1121
- #: includes/links.php:790
1122
- msgid "Detected Links"
1123
- msgstr "検出されたリンク"
1124
-
1125
- #: includes/links.php:791
1126
- msgid "No links found (yet)"
1127
- msgstr "リンクは(まだ)見つかりません"
1128
 
1129
- #: includes/links.php:799
1130
- msgid "Search Results"
1131
- msgstr "検索結果"
 
1132
 
1133
- #: includes/links.php:800
1134
- #: includes/links.php:843
1135
- msgid "No links found for your query"
1136
- msgstr "クエリのないリンク"
 
1137
 
1138
- #: includes/parsers.php:151
1139
  #, php-format
1140
  msgid "Editing is not implemented in the '%s' parser"
1141
  msgstr "編集は、'%s'パーサーでは実装されていません"
1142
 
1143
- #: includes/parsers.php:166
1144
  #, php-format
1145
  msgid "Unlinking is not implemented in the '%s' parser"
1146
  msgstr "'%s'パーサーではリンク解除は実装されていません"
1147
 
1148
- #. Plugin Name of the plugin/theme
1149
- msgid "Broken Link Checker"
1150
- msgstr "Broken Link Checker"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1151
 
1152
  #. Plugin URI of the plugin/theme
1153
  msgid "http://w-shadow.com/blog/2007/08/05/broken-link-checker-for-wordpress/"
@@ -1155,7 +1552,7 @@ msgstr "http://w-shadow.com/blog/2007/08/05/broken-link-checker-for-wordpress/"
1155
 
1156
  #. Description of the plugin/theme
1157
  msgid "Checks your blog for broken links and missing images and notifies you on the dashboard if any are found."
1158
- msgstr "リンクエラーやリンクエラーの画像がないかブログをチェックし、いずれかが見つかった場合は、ダッシュボード等で通知します。"
1159
 
1160
  #. Author of the plugin/theme
1161
  msgid "Janis Elsts"
@@ -1165,3 +1562,46 @@ msgstr "Janis Elsts"
1165
  msgid "http://w-shadow.com/blog/"
1166
  msgstr "http://w-shadow.com/blog/"
1167
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  msgstr ""
8
  "Project-Id-Version: Broken Link Checker 0.9.2\n"
9
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/broken-link-checker\n"
10
+ "POT-Creation-Date: 2010-10-08 16:08+0000\n"
11
+ "PO-Revision-Date: 2010-11-11 19:36+0900\n"
12
+ "Last-Translator: ningendesu <a@ningendesu.com>\n"
13
  "Language-Team: 人間です <a@ningendesu.com>\n"
14
  "MIME-Version: 1.0\n"
15
  "Content-Type: text/plain; charset=UTF-8\n"
18
  "X-Poedit-Country: JAPAN\n"
19
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
20
 
21
+ #: core/core.php:152
22
+ #: includes/admin/links-page-js.php:37
 
 
 
 
23
  msgid "Loading..."
24
  msgstr "読み込み中..."
25
 
26
+ #: core/core.php:176
27
+ #: includes/admin/options-page-js.php:18
28
  msgid "[ Network error ]"
29
  msgstr "[ネットワークエラー]"
30
 
31
+ #: core/core.php:201
32
  msgid "Automatically expand the widget if broken links have been detected"
33
  msgstr "リンクエラーが検出された場合に、ウィジェットを自動的に展開する"
34
 
35
+ #: core/core.php:342
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  msgid "Link Checker Settings"
37
+ msgstr "リンクチェッカーの設定"
38
 
39
+ #: core/core.php:343
40
  msgid "Link Checker"
41
+ msgstr "Broken Link Checker"
 
 
 
 
42
 
43
+ #: core/core.php:348
44
+ #: includes/link-query.php:26
45
  msgid "Broken Links"
46
  msgstr "リンクエラーをチェック"
47
 
48
+ #: core/core.php:364
49
+ msgid "View Broken Links"
50
+ msgstr "リンクエラーを見る"
 
51
 
52
+ #: core/core.php:392
53
  msgid "Settings"
54
  msgstr "設定"
55
 
56
+ #: core/core.php:404
57
+ #: core/core.php:1186
58
  #, php-format
59
  msgid "Error: The plugin's database tables are not up to date! (Current version : %d, expected : %d)"
60
  msgstr "エラーが発生しました:プラグインのデータベーステーブルを最新の状態にされていません! (現在のバージョン:%d, 予期されるバージョン: %d)"
61
 
62
+ #: core/core.php:543
63
  msgid "Settings saved."
64
  msgstr "設定を保存"
65
 
66
+ #: core/core.php:550
67
+ msgid "Complete site recheck started."
68
+ msgstr "サイト全体の再確認が開始されました。"
69
+
70
+ #: core/core.php:564
71
+ #: core/core.php:2744
72
+ msgid "Details"
73
+ msgstr "詳細"
74
+
75
+ #: core/core.php:578
76
+ msgid "General"
77
+ msgstr "一般"
78
+
79
+ #: core/core.php:579
80
+ msgid "Look For Links In"
81
+ msgstr "リンクチェック対象"
82
+
83
+ #: core/core.php:580
84
+ msgid "Which Links To Check"
85
+ msgstr "リンク種類チェック対象"
86
+
87
+ #: core/core.php:581
88
+ msgid "Protocols & APIs"
89
+ msgstr "プロトコル&API"
90
+
91
+ #: core/core.php:582
92
+ msgid "Advanced"
93
+ msgstr "高度な設定"
94
+
95
+ #: core/core.php:586
96
  msgid "Broken Link Checker Options"
97
  msgstr "Broken Link Checkerのオプション"
98
 
99
+ #: core/core.php:612
100
+ #: includes/admin/table-printer.php:168
101
  msgid "Status"
102
  msgstr "ステータス"
103
 
104
+ #: core/core.php:614
105
+ #: includes/admin/options-page-js.php:56
106
  msgid "Show debug info"
107
  msgstr "デバッグ情報を表示"
108
 
109
+ #: core/core.php:642
 
 
 
 
110
  msgid "Check each link"
111
  msgstr "各リンクをチェック"
112
 
113
+ #: core/core.php:647
114
  #, php-format
115
  msgid "Every %s hours"
116
  msgstr "%s 時間ごと"
117
 
118
+ #: core/core.php:656
119
  msgid "Existing links will be checked this often. New links will usually be checked ASAP."
120
+ msgstr "既存のリンクは、定期的にチェックされます。新しいリンクは即チェックされます。"
121
 
122
+ #: core/core.php:663
123
+ msgid "E-mail notifications"
124
+ msgstr "メールで通知"
125
 
126
+ #: core/core.php:669
127
+ msgid "Send me e-mail notifications about newly detected broken links"
128
+ msgstr "新たに検出されたリンクエラーに関してメール通知を受ける"
129
 
130
+ #: core/core.php:676
131
+ msgid "Link tweaks"
132
+ msgstr "リンクの調整"
133
 
134
+ #: core/core.php:682
135
+ msgid "Apply custom formatting to broken links"
136
+ msgstr "リンクエラーにカスタムCSSを適用する"
137
 
138
+ #: core/core.php:686
139
+ #: core/core.php:714
140
+ msgid "Edit CSS"
141
+ msgstr "CSSを編集"
142
 
143
+ #: core/core.php:710
144
+ msgid "Apply custom formatting to removed links"
145
+ msgstr "削除したリンクにカスタムCSSを適用する"
146
 
147
+ #: core/core.php:738
148
+ msgid "Stop search engines from following broken links"
149
+ msgstr "検索エンジンがリンクエラーをリンクしたと認識しないようにする<small>リンクエラーに<code>rel=”nofollow”</code>が付きます</small>"
150
 
151
+ #: core/core.php:755
152
+ msgid "Look for links in"
153
+ msgstr "リンクチェック対象"
154
 
155
+ #: core/core.php:766
156
+ msgid "Post statuses"
157
+ msgstr "リンクチェックする記事のステータス"
158
 
159
+ #: core/core.php:799
160
+ msgid "Link types"
161
+ msgstr "リンクの種類"
162
 
163
+ #: core/core.php:805
164
+ msgid "Error : All link parsers missing!"
165
+ msgstr "エラー: すべてのリンクパーサがなくなっています!"
166
 
167
+ #: core/core.php:812
168
+ msgid "Exclusion list"
169
+ msgstr "除外リスト"
170
 
171
+ #: core/core.php:813
172
+ msgid "Don't check links where the URL contains any of these words (one per line) :"
173
+ msgstr "URLが含まれるリンクをチェックしない(1行に1つ):"
174
+
175
+ #: core/core.php:831
176
+ msgid "Check links using"
177
+ msgstr "リンクチェックに使用するもの"
178
 
179
+ #: core/core.php:850
180
+ #: includes/links.php:849
181
  msgid "Timeout"
182
  msgstr "タイムアウト"
183
 
184
+ #: core/core.php:856
185
+ #: core/core.php:902
186
+ #: core/core.php:2871
187
  #, php-format
188
  msgid "%s seconds"
189
  msgstr "%s 秒"
190
 
191
+ #: core/core.php:865
192
  msgid "Links that take longer than this to load will be marked as broken."
193
  msgstr "これよりも読み込みに時間がかかったリンクはリンクエラーとマークする"
194
 
195
+ #: core/core.php:872
196
  msgid "Link monitor"
197
  msgstr "リンクモニター"
198
 
199
+ #: core/core.php:880
200
  msgid "Run continuously while the Dashboard is open"
201
  msgstr "継続的にダッシュボードが開いている間実行する"
202
 
203
+ #: core/core.php:888
204
  msgid "Run hourly in the background"
205
  msgstr "バックグラウンドで1時間ごとに実行する"
206
 
207
+ #: core/core.php:896
208
  msgid "Max. execution time"
209
  msgstr "最大実行時間"
210
 
211
+ #: core/core.php:913
212
  msgid "The plugin works by periodically launching a background job that parses your posts for links, checks the discovered URLs, and performs other time-consuming tasks. Here you can set for how long, at most, the link monitor may run each time before stopping."
213
+ msgstr "このプラグインは、他の時間のかかるタスクを実行するバックグラウンドジョブを使用して、定期的に起動することで動作します。 ここでは、リンクモニタが停止する前に実行することができる時間を設定することができます。"
214
 
215
+ #: core/core.php:923
216
  msgid "Custom temporary directory"
217
  msgstr "一時ディレクトリ"
218
 
219
+ #: core/core.php:932
220
  msgid "OK"
221
  msgstr "OK"
222
 
223
+ #: core/core.php:935
224
  msgid "Error : This directory isn't writable by PHP."
225
  msgstr "エラー : PHP が書き込み可能ではありません。"
226
 
227
+ #: core/core.php:940
228
  msgid "Error : This directory doesn't exist."
229
  msgstr "エラー : このディレクトリーが存在しません。"
230
 
231
+ #: core/core.php:948
232
  msgid "Set this field if you want the plugin to use a custom directory for its lockfiles. Otherwise, leave it blank."
233
+ msgstr "ロックファイルにカスタムディレクトリを使用するには、このフィールドを設定します。変える必要がない場合は、このフィールドを空白にしておいてください。"
234
 
235
+ #: core/core.php:955
236
  msgid "Server load limit"
237
  msgstr "サーバーの負担の制限"
238
 
239
+ #: core/core.php:970
240
+ #, php-format
241
+ msgid "Current load : %s"
242
+ msgstr "現在の負担:%s"
243
+
244
+ #: core/core.php:976
245
  #, php-format
246
  msgid "Link checking will be suspended if the average <a href=\"%s\">server load</a> rises above this number. Leave this field blank to disable load limiting."
247
+ msgstr "サーバーの<a href=\"%s\">負荷</a>が設定した数値以上に上昇したら、リンクチェックが中断されます。負荷制限を無効にするには、このフィールドを空白にしておいてください。"
248
 
249
+ #: core/core.php:984
250
+ msgid "Not available"
251
+ msgstr "利用できません"
252
+
253
+ #: core/core.php:986
254
  msgid "Load limiting only works on Linux-like systems where <code>/proc/loadavg</code> is present and accessible."
255
  msgstr "負荷制限が動作し、アクセス可能な '/proc/loadavg' を Linux のようなシステムで動作します。"
256
 
257
+ #: core/core.php:994
258
+ msgid "Forced recheck"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
259
  msgstr "再確認"
260
 
261
+ #: core/core.php:997
262
+ msgid "Re-check all pages"
263
+ msgstr "すべてのページを再確認"
264
 
265
+ #: core/core.php:1001
266
+ msgid "The \"Nuclear Option\". Click this button to make the plugin empty its link database and recheck the entire site from scratch."
267
+ msgstr "これは\"核オプション\"です。リンクデーターベースを空にしてサイト全体を最初から再確認する場合はこのボタンをクリックします。"
 
 
268
 
269
+ #: core/core.php:1012
270
+ msgid "Save Changes"
271
+ msgstr "変更を保存"
272
 
273
+ #: core/core.php:1057
274
+ msgid "Configure"
275
+ msgstr "設定"
 
276
 
277
+ #: core/core.php:1117
278
+ msgid "Upgrade to Pro to enable this feature"
279
+ msgstr "この機能はプロ版でのみ使用できます"
280
 
281
+ #: core/core.php:1152
282
+ msgid "Check URLs entered in these custom fields (one per line) :"
283
+ msgstr "これらのカスタム フィールド (1 行に 1 つ) で入力した URL を確認します:"
284
 
285
+ #: core/core.php:1286
286
+ #: core/core.php:1370
287
+ #: core/core.php:1402
288
  #, php-format
289
+ msgid "Database error : %s"
290
+ msgstr "データベース エラー: %s"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
291
 
292
+ #: core/core.php:1352
293
  msgid "You must enter a filter name!"
294
  msgstr "フィルター名を入力する必要があります!"
295
 
296
+ #: core/core.php:1356
297
  msgid "Invalid search query."
298
  msgstr "無効な検索クエリ"
299
 
300
+ #: core/core.php:1365
301
  #, php-format
302
  msgid "Filter \"%s\" created"
303
  msgstr "フィルター %s を作成しました。"
304
 
305
+ #: core/core.php:1392
306
  msgid "Filter ID not specified."
307
  msgstr "フィルタが指定されないIDです。"
308
 
309
+ #: core/core.php:1399
310
  msgid "Filter deleted"
311
  msgstr "フィルタを削除"
312
 
313
+ #: core/core.php:1447
314
  #, php-format
315
  msgid "Replaced %d redirect with a direct link"
316
  msgid_plural "Replaced %d redirects with direct links"
317
+ msgstr[0] "%dのリダイレクトは直接のリンクに変更されました。"
318
+ msgstr[1] "%dのリダイレクトは直接のリンクに変更されました。"
319
 
320
+ #: core/core.php:1458
321
  #, php-format
322
  msgid "Failed to fix %d redirect"
323
  msgid_plural "Failed to fix %d redirects"
324
  msgstr[0] "%d リダイレクトの修正に失敗しました。"
325
  msgstr[1] "%d リダイレクトの修正に失敗しました。"
326
 
327
+ #: core/core.php:1468
328
  msgid "None of the selected links are redirects!"
329
  msgstr "選択したリンクはリダイレクトではありません。"
330
 
331
+ #: core/core.php:1547
332
+ #, php-format
333
+ msgid "%d link updated."
334
+ msgid_plural "%d links updated."
335
+ msgstr[0] "%dのリンクを更新しました。"
336
+ msgstr[1] "%dのリンクを更新しました。"
337
+
338
+ #: core/core.php:1558
339
+ #, php-format
340
+ msgid "Failed to update %d link."
341
+ msgid_plural "Failed to update %d links."
342
+ msgstr[0] "%dのリンク更新に失敗しました。"
343
+ msgstr[1] "%dのリンク更新に失敗しました。"
344
+
345
+ #: core/core.php:1612
346
  #, php-format
347
  msgid "%d link removed"
348
  msgid_plural "%d links removed"
349
  msgstr[0] "%d リンクの削除"
350
  msgstr[1] "%d リンクの削除"
351
 
352
+ #: core/core.php:1623
353
  #, php-format
354
  msgid "Failed to remove %d link"
355
  msgid_plural "Failed to remove %d links"
356
  msgstr[0] "%d リンクを削除できませんでした。"
357
  msgstr[1] "%d リンクを削除できませんでした。"
358
 
359
+ #: core/core.php:1732
360
+ #, php-format
361
+ msgid "%d item was skipped because it can't be moved to the Trash. You need to delete it manually."
362
+ msgid_plural "%d items were skipped because they can't be moved to the Trash. You need to delete them manually."
363
+ msgstr[0] "%dの項目をゴミ箱に移動できないため、スキップされました。手動で削除する必要があります。"
364
+ msgstr[1] "%dの項目をゴミ箱に移動できないため、スキップされました。手動で削除する必要があります。"
365
+
366
+ #: core/core.php:1753
367
  msgid "Didn't find anything to delete!"
368
  msgstr "削除するには何も見つかりませんでした!"
369
 
370
+ #: core/core.php:1781
371
  #, php-format
372
  msgid "%d link scheduled for rechecking"
373
  msgid_plural "%d links scheduled for rechecking"
374
+ msgstr[0] "%dのリンクを再確認します。"
375
+ msgstr[1] "%dのリンクを再確認します。"
 
 
 
 
 
 
 
 
376
 
377
+ #: core/core.php:1826
378
+ #: core/core.php:2431
379
+ msgid "This link was manually marked as working by the user."
380
+ msgstr "このリンクは手動での作業としてマークされました。"
 
 
 
 
 
 
 
 
381
 
382
+ #: core/core.php:1833
383
  #, php-format
384
+ msgid "Couldn't modify link %d"
385
+ msgstr "%dのリンクを変更することができませんでした"
 
 
 
 
 
 
 
 
 
 
 
 
386
 
387
+ #: core/core.php:1844
388
  #, php-format
389
+ msgid "%d link marked as not broken"
390
+ msgid_plural "%d links marked as not broken"
391
+ msgstr[0] "%dリンクを「リンクエラーでない」としました"
392
+ msgstr[1] "%dリンクを「リンクエラーでない」としました"
393
 
394
+ #: core/core.php:1884
395
+ msgid "Table columns"
396
+ msgstr "表の列"
 
397
 
398
+ #: core/core.php:1903
399
+ msgid "Show on screen"
400
+ msgstr "画面に表示する"
401
 
402
+ #: core/core.php:1910
403
+ msgid "links"
404
+ msgstr "リンク"
405
 
406
+ #: core/core.php:1911
407
+ #: includes/admin/table-printer.php:136
408
+ msgid "Apply"
409
+ msgstr "適用"
 
 
410
 
411
+ #: core/core.php:1915
412
+ msgid "Misc"
413
+ msgstr "その他"
 
 
 
 
414
 
415
+ #: core/core.php:1930
 
416
  #, php-format
417
+ msgid "Highlight links broken for at least %s days"
418
+ msgstr "発見してから%s日過ぎたリンクエラーをハイライト表示する"
 
 
419
 
420
+ #: core/core.php:1939
421
+ msgid "Color-code status codes"
422
+ msgstr "ステータスコードを色分けする"
423
+
424
+ #: core/core.php:1956
425
+ #: core/core.php:2416
426
+ #: core/core.php:2452
427
+ #: core/core.php:2515
428
+ msgid "You're not allowed to do that!"
429
+ msgstr "それを行うことが許可されていません!"
430
 
431
+ #: core/core.php:2297
432
  msgid "View broken links"
433
  msgstr "リンクエラーを表示"
434
 
435
+ #: core/core.php:2298
436
  #, php-format
437
  msgid "Found %d broken link"
438
  msgid_plural "Found %d broken links"
439
+ msgstr[0] "%dのリンクエラーを発見しました"
440
+ msgstr[1] "%dのリンクエラーを発見しました"
441
 
442
+ #: core/core.php:2304
443
  msgid "No broken links found."
444
  msgstr "リンクを発見しました。"
445
 
446
+ #: core/core.php:2311
447
  #, php-format
448
  msgid "%d URL in the work queue"
449
  msgid_plural "%d URLs in the work queue"
450
  msgstr[0] "%d URLワークキュー内"
451
  msgstr[1] "%d URLワークキュー内"
452
 
453
+ #: core/core.php:2314
454
  msgid "No URLs in the work queue."
455
+ msgstr "ワークキュー内のURLはありません"
456
 
457
+ #: core/core.php:2320
458
  #, php-format
459
  msgid "Detected %d unique URL"
460
  msgid_plural "Detected %d unique URLs"
461
+ msgstr[0] "%dリンク検出 ユニークURL"
462
+ msgstr[1] "%dリンク検出 ユニークURL"
463
 
464
+ #: core/core.php:2321
465
  #, php-format
466
  msgid "in %d link"
467
  msgid_plural "in %d links"
468
  msgstr[0] "%dリンク"
469
  msgstr[1] "%d リンク"
470
 
471
+ #: core/core.php:2326
472
  msgid "and still searching..."
473
+ msgstr "常にチェックしています..."
474
 
475
+ #: core/core.php:2332
476
  msgid "Searching your blog for links..."
477
  msgstr "あなたのブログへのリンクを検索しています..."
478
 
479
+ #: core/core.php:2334
480
  msgid "No links detected."
481
  msgstr "リンクの検出。"
482
 
483
+ #: core/core.php:2360
484
+ msgctxt "current load"
485
+ msgid "Unknown"
486
+ msgstr "不明"
 
 
487
 
488
+ #: core/core.php:2424
489
+ #: core/core.php:2462
490
+ #: core/core.php:2525
491
  #, php-format
492
  msgid "Oops, I can't find the link %d"
493
+ msgstr "リンク %d を見つけることができません。"
 
 
 
 
494
 
495
+ #: core/core.php:2437
496
  msgid "Oops, couldn't modify the link!"
497
  msgstr "リンクを変更できませんでした!"
498
 
499
+ #: core/core.php:2440
500
+ #: core/core.php:2551
501
  msgid "Error : link_id not specified"
502
  msgstr "エラー: link_id が指定されていません"
503
 
504
+ #: core/core.php:2472
505
  msgid "Oops, the new URL is invalid!"
506
+ msgstr "新しい URL が無効です!"
507
 
508
+ #: core/core.php:2483
509
+ #: core/core.php:2534
510
  msgid "An unexpected error occured!"
511
  msgstr "予期しないエラーが発生しました !"
512
 
513
+ #: core/core.php:2501
514
  msgid "Error : link_id or new_url not specified"
515
  msgstr "エラー: link_id または new_url が指定されていません"
516
 
517
+ #: core/core.php:2560
518
  msgid "You don't have sufficient privileges to access this information!"
519
+ msgstr "この情報にアクセスする権限を持っていません!"
520
 
521
+ #: core/core.php:2573
522
  msgid "Error : link ID not specified"
523
  msgstr "エラー: リンクIDは指定しませんでした。"
524
 
525
+ #: core/core.php:2587
526
  #, php-format
527
  msgid "Failed to load link details (%s)"
528
  msgstr "リンクの詳細 (%s) の読み込みに失敗しました"
529
 
530
+ #. #-#-#-#-# plugin.pot (Broken Link Checker 0.9.6) #-#-#-#-#
531
+ #. Plugin Name of the plugin/theme
532
+ #: core/core.php:2716
533
+ msgid "Broken Link Checker"
534
+ msgstr "Broken Link Checker"
535
+
536
+ #: core/core.php:2730
537
+ #, php-format
538
+ msgid "The current temporary directory is not accessible; please <a href=\"%s\">set a different one</a>."
539
+ msgstr "現在の一時ディレクトリにアクセス出来ません。別のディレクトリーを<a href=\"%s\">指定</a>してください。"
540
+
541
+ #: core/core.php:2735
542
  #, php-format
543
  msgid "Please make the directory <code>%1$s</code> writable by plugins or <a href=\"%2$s\">set a custom temporary directory</a>."
544
  msgstr "ディレクトリ <code>%1$s</code> プラグインによって書き込み可能にするか、カスタム一時ディレクトリを <a href=\"%2$s\">設定</a>してください。"
545
 
546
+ #: core/core.php:2742
547
  msgid "Broken Link Checker can't create a lockfile."
548
  msgstr "Broken Link Checker ロックファイルを作成できません。"
549
 
550
+ #: core/core.php:2747
551
  msgid "The plugin uses a file-based locking mechanism to ensure that only one instance of the resource-heavy link checking algorithm is running at any given time. Unfortunately, BLC can't find a writable directory where it could store the lockfile - it failed to detect the location of your server's temporary directory, and the plugin's own directory isn't writable by PHP. To fix this problem, please make the plugin's directory writable or enter a specify a custom temporary directory in the plugin's settings."
552
  msgstr "このプラグインは、リソースの重いリンクチェックアルゴリズムの1つだけのインスタンスが任意の時点で実行しているように、ファイルベースのロックメカニズムを使用します。残念ながら、ロックファイルを保存できる書き込み可能なディレクトリを見つけることができません。- サーバーの一時ディレクトリの場所を検出できませんでしたし、プラグインのディレクトリを PHP が書き込み可能ではありません。この問題を解決するには、プラグインのディレクトリを書き込み可能にするか、プラグインの設定でカスタムの一時ディレクトリを指定してください。"
553
 
554
+ #: core/core.php:2766
555
  msgid "PHP version"
556
  msgstr "PHPバージョン"
557
 
558
+ #: core/core.php:2772
559
  msgid "MySQL version"
560
  msgstr "MySQLバージョン"
561
 
562
+ #: core/core.php:2785
563
  msgid "You have an old version of CURL. Redirect detection may not work properly."
564
  msgstr "CURLのバージョンが古いため、リダイレクト検出が正しく動作しないことがあります。"
565
 
566
+ #: core/core.php:2797
567
+ #: core/core.php:2813
568
+ #: core/core.php:2818
569
  msgid "Not installed"
570
  msgstr "インストールされていません"
571
 
572
+ #: core/core.php:2800
573
  msgid "CURL version"
574
  msgstr "CURLバージョン"
575
 
576
+ #: core/core.php:2806
577
  msgid "Installed"
578
  msgstr "インストールされています"
579
 
580
+ #: core/core.php:2819
581
  msgid "You must have either CURL or Snoopy installed for the plugin to work!"
582
  msgstr "CURL か Snoopy はプラグイン動作するためにインストールされている必要があります!"
583
 
584
+ #: core/core.php:2830
585
  msgid "On"
586
  msgstr "ON"
587
 
588
+ #: core/core.php:2831
589
  msgid "Redirects may be detected as broken links when safe_mode is on."
590
  msgstr "セーフモードが有効な場合リダイレクトリンクエラーとして検出されることがあります。"
591
 
592
+ #: core/core.php:2836
593
+ #: core/core.php:2850
594
  msgid "Off"
595
  msgstr "OFF"
596
 
597
+ #: core/core.php:2844
598
  #, php-format
599
  msgid "On ( %s )"
600
  msgstr "ON ( %s )"
601
 
602
+ #: core/core.php:2845
603
  msgid "Redirects may be detected as broken links when open_basedir is on."
604
  msgstr "ここにある場合リダイレクトリンクエラーとして検出されることがあります。"
605
 
606
+ #: core/core.php:2864
607
  msgid "Can't create a lockfile. Please specify a custom temporary directory."
608
  msgstr "ロックファイルを作成することはできません。 カスタムの一時ディレクトリを指定してください。"
609
 
610
+ #: core/core.php:2888
611
+ msgid "If this value is zero even after several page reloads you have probably encountered a bug."
612
+ msgstr "この値がもししばらくたったあと再読込みしても0だった場合、バグが発生した可能性があります。"
613
+
614
+ #: core/core.php:2959
615
  #, php-format
616
  msgid "[%s] Broken links detected"
617
  msgstr "[%s] リンクエラーの検出"
618
 
619
+ #: core/core.php:2965
620
  #, php-format
621
  msgid "Broken Link Checker has detected %d new broken link on your site."
622
  msgid_plural "Broken Link Checker has detected %d new broken links on your site."
623
+ msgstr[0] "Broken Link Checkerは、あなたのサイトに新しいリンク%dがリンクエラーと検出されました。"
624
+ msgstr[1] "Broken Link Checkerは、あなたのサイトに新しいリンク%dがリンクエラーと検出されました。"
625
 
626
+ #: core/core.php:2980
627
  #, php-format
628
  msgid "Here's a list of the first %d broken links:"
629
  msgid_plural "Here's a list of the first %d broken links:"
630
+ msgstr[0] "%dの壊れたリンクのリスト:"
631
+ msgstr[1] "%dの壊れたリンクのリスト:"
632
 
633
+ #: core/core.php:2988
634
  msgid "Here's a list of the new broken links: "
635
  msgstr "リンクエラーの一覧 : "
636
 
637
+ #: core/core.php:3000
638
  #, php-format
639
  msgid "Link text : %s"
640
  msgstr "リンク テキスト: %s"
641
 
642
+ #: core/core.php:3001
643
  #, php-format
644
  msgid "Link URL : <a href=\"%s\">%s</a>"
645
  msgstr "リンクのURL : <a href=\"%s\">%s</a>"
646
 
647
+ #: core/core.php:3002
648
  #, php-format
649
  msgid "Source : %s"
650
  msgstr "ソース : %s"
651
 
652
+ #: core/core.php:3016
653
  msgid "You can see all broken links here:"
654
  msgstr "すべてのリンクエラーを見ることができます:"
655
 
656
+ #: core/init.php:236
657
+ msgid "Once Weekly"
658
+ msgstr "週1回"
659
+
660
+ #: core/init.php:242
661
+ msgid "Twice a Month"
662
+ msgstr "月2回"
663
+
664
+ #: core/init.php:309
665
+ msgid "Broken Link Checker installation failed"
666
+ msgstr "Broken Link Checker のオプション"
667
+
668
+ #: includes/admin/db-upgrade.php:95
669
+ #, php-format
670
+ msgid "Failed to delete old DB tables. Database error : %s"
671
+ msgstr "古いDBのテーブルの削除に失敗しました。データベースエラー: %s"
672
+
673
+ #: includes/admin/links-page-js.php:58
674
+ #: includes/admin/links-page-js.php:301
675
  msgid "Wait..."
676
  msgstr "処理中..."
677
 
678
+ #: includes/admin/links-page-js.php:99
679
+ #: includes/admin/table-printer.php:592
680
+ msgid "Not broken"
681
+ msgstr "リンクエラーでない"
 
 
 
682
 
683
+ #: includes/admin/links-page-js.php:213
684
  #, php-format
685
  msgid "%d instances of the link were successfully modified."
686
+ msgstr "%dのインスタンスのリンクが正常に変更されました。"
687
+
688
+ #: includes/admin/links-page-js.php:219
689
+ #, php-format
690
+ msgid "However, %d instances couldn't be edited and still point to the old URL."
691
+ msgstr "しかし、 %d のインスタンスは削除できませんでした。"
692
 
693
+ #: includes/admin/links-page-js.php:225
694
  msgid "The link could not be modified."
695
  msgstr "リンクを変更できませんでした。"
696
 
697
+ #: includes/admin/links-page-js.php:228
698
+ #: includes/admin/links-page-js.php:353
699
  msgid "The following error(s) occured :"
700
+ msgstr "エラーが発生しました:"
701
 
702
+ #: includes/admin/links-page-js.php:339
703
  #, php-format
704
  msgid "%d instances of the link were successfully unlinked."
705
  msgstr "リンク%dのインスタンスが正常に解除されました。"
706
 
707
+ #: includes/admin/links-page-js.php:345
708
  #, php-format
709
  msgid "However, %d instances couldn't be removed."
710
+ msgstr "しかし、%dのインスタンスは削除できませんでした。"
711
 
712
+ #: includes/admin/links-page-js.php:350
713
  msgid "The plugin failed to remove the link."
714
  msgstr "プラグインは、リンクを削除できませんでした。"
715
 
716
+ #: includes/admin/links-page-js.php:361
717
+ #: includes/admin/table-printer.php:237
718
+ #: includes/admin/table-printer.php:586
719
+ msgid "Unlink"
720
+ msgstr "リンク解除"
721
+
722
+ #: includes/admin/links-page-js.php:405
723
  msgid "Enter a name for the new custom filter"
724
  msgstr "新しいカスタムフィルターの名前を入力します。"
725
 
726
+ #: includes/admin/links-page-js.php:416
727
  msgid ""
728
  "You are about to delete the current filter.\n"
729
  "'Cancel' to stop, 'OK' to delete"
730
  msgstr ""
731
+ "現在のフィルタを削除しようとしています。 \n"
732
  "「OK」で削除、「キャンセル」で中止します。"
733
 
734
+ #: includes/admin/links-page-js.php:439
735
  msgid ""
736
  "Are you sure you want to delete all posts, bookmarks or other items that contain any of the selected links? This action can't be undone.\n"
737
  "'Cancel' to stop, 'OK' to delete"
740
  "この操作は元に戻すことはできません。\n"
741
  "「OK」で削除、「キャンセル」で中止します。"
742
 
743
+ #: includes/admin/links-page-js.php:449
744
+ msgid ""
745
+ "Are you sure you want to remove the selected links? This action can't be undone.\n"
746
+ "'Cancel' to stop, 'OK' to remove"
747
+ msgstr ""
748
+ "選択したリンクを削除してよろしいですか?元に戻すことはできません。\n"
749
+ "この操作は元に戻すことはできません。\n"
750
+ "「OK」で削除、「キャンセル」で中止します。"
751
+
752
+ #: includes/admin/links-page-js.php:558
753
+ msgid "Enter a search string first."
754
+ msgstr "検索文字列が最初に入力してください。"
755
+
756
+ #: includes/admin/links-page-js.php:565
757
+ msgid "Select one or more links to edit."
758
+ msgstr "ひとつまたは複数のリンクを編集することができます。"
759
+
760
+ #: includes/admin/options-page-js.php:54
761
+ msgid "Hide debug info"
762
+ msgstr "デバッグ情報を隠す"
763
+
764
+ #: includes/admin/search-form.php:16
765
  msgid "Save This Search As a Filter"
766
  msgstr "この検索フィルターとして保存"
767
 
768
+ #: includes/admin/search-form.php:26
769
  msgid "Delete This Filter"
770
  msgstr "このフィルターを削除"
771
 
772
+ #: includes/admin/search-form.php:32
773
+ #: includes/link-query.php:53
774
  msgid "Search"
775
  msgstr "検索"
776
 
777
+ #: includes/admin/search-form.php:42
778
  msgid "Link text"
779
  msgstr "リンクテキスト"
780
 
781
+ #: includes/admin/search-form.php:45
782
+ #: includes/admin/table-printer.php:173
783
+ msgid "URL"
784
+ msgstr "URL"
785
+
786
  #: includes/admin/search-form.php:48
787
+ #: includes/admin/table-printer.php:460
788
+ msgid "HTTP code"
789
+ msgstr "HTTP コード"
790
+
791
+ #: includes/admin/search-form.php:51
792
  msgid "Link status"
793
  msgstr "リンクのステータス"
794
 
795
+ #: includes/admin/search-form.php:68
796
+ #: includes/admin/search-form.php:85
797
  msgid "Link type"
798
  msgstr "リンクの種類"
799
 
800
+ #: includes/admin/search-form.php:70
801
  msgid "Any"
802
  msgstr "任意"
803
 
804
+ #: includes/admin/search-form.php:74
805
+ msgid "Links used in"
806
+ msgstr "リンクチェック対象"
807
 
808
+ #: includes/admin/search-form.php:112
809
+ msgid "Search Links"
810
+ msgstr "リンク検索"
 
811
 
812
+ #: includes/admin/search-form.php:113
813
+ #: includes/admin/table-printer.php:318
814
+ #: includes/admin/table-printer.php:600
815
+ #: includes/admin/table-printer.php:606
816
+ msgid "Cancel"
817
+ msgstr "キャンセル"
818
 
819
+ #: includes/admin/table-printer.php:150
820
+ msgid "Compact View"
821
+ msgstr "一覧表示"
 
822
 
823
+ #: includes/admin/table-printer.php:151
824
+ msgid "Detailed View"
825
+ msgstr "詳細表示"
 
826
 
827
+ #: includes/admin/table-printer.php:178
828
+ msgid "Source"
829
+ msgstr "ソース"
830
 
831
+ #: includes/admin/table-printer.php:184
832
+ msgid "Link Text"
833
+ msgstr "リンクテキスト"
 
 
834
 
835
+ #: includes/admin/table-printer.php:232
836
+ msgid "Bulk Actions"
837
+ msgstr "一括操作"
 
838
 
839
+ #: includes/admin/table-printer.php:233
840
+ #: includes/admin/table-printer.php:583
841
+ msgid "Edit URL"
842
+ msgstr "URLを編集"
843
 
844
+ #: includes/admin/table-printer.php:234
845
+ msgid "Recheck"
846
+ msgstr "再確認"
847
 
848
+ #: includes/admin/table-printer.php:235
849
+ msgid "Fix redirects"
850
+ msgstr "リダイレクトを修正"
851
 
852
+ #: includes/admin/table-printer.php:236
853
+ msgid "Mark as not broken"
854
+ msgstr "リンクエラーでない"
 
855
 
856
+ #: includes/admin/table-printer.php:240
857
+ msgid "Move sources to Trash"
858
+ msgstr "ゴミ箱に移動"
 
 
 
859
 
860
+ #: includes/admin/table-printer.php:242
861
+ msgid "Delete sources"
862
+ msgstr "ソースを削除"
 
863
 
864
+ #: includes/admin/table-printer.php:262
865
+ msgid "&laquo;"
866
+ msgstr "&laquo;"
867
+
868
+ #: includes/admin/table-printer.php:263
869
+ msgid "&raquo;"
870
+ msgstr "&raquo;"
871
 
872
+ #: includes/admin/table-printer.php:271
873
  #, php-format
874
+ msgid "Displaying %s&#8211;%s of <span class=\"current-link-count\">%s</span>"
875
+ msgstr "表示 %s&#8211;%s of <span class=\"current-link-count\">%s</span>"
 
 
 
 
876
 
877
+ #: includes/admin/table-printer.php:294
878
+ msgid "Bulk Edit URLs"
879
+ msgstr "URLを一括編集"
 
 
880
 
881
+ #: includes/admin/table-printer.php:296
882
+ msgid "Find"
883
+ msgstr "検索"
 
 
884
 
885
+ #: includes/admin/table-printer.php:300
886
+ msgid "Replace with"
887
+ msgstr "置き換え"
 
888
 
889
+ #: includes/admin/table-printer.php:308
890
+ msgid "Case sensitive"
891
+ msgstr "大文字と小文字を区別する"
892
+
893
+ #: includes/admin/table-printer.php:312
894
+ msgid "Regular expression"
895
+ msgstr "正規表現"
896
+
897
+ #: includes/admin/table-printer.php:320
898
+ msgid "Update"
899
+ msgstr "更新"
900
+
901
+ #: includes/admin/table-printer.php:445
902
+ msgid "Post published on"
903
+ msgstr "投稿を公開"
904
+
905
+ #: includes/admin/table-printer.php:450
906
+ msgid "Link last checked"
907
+ msgstr "最後のリンクチェック"
908
 
909
+ #: includes/admin/table-printer.php:454
910
+ msgid "Never"
911
+ msgstr "決して"
912
+
913
+ #: includes/admin/table-printer.php:465
914
+ msgid "Response time"
915
+ msgstr "応答時間"
916
+
917
+ #: includes/admin/table-printer.php:467
918
  #, php-format
919
+ msgid "%2.3f seconds"
920
+ msgstr "%2.3f "
921
+
922
+ #: includes/admin/table-printer.php:470
923
+ msgid "Final URL"
924
+ msgstr "リダイレクトされたURL"
925
 
926
+ #: includes/admin/table-printer.php:475
927
+ msgid "Redirect count"
928
+ msgstr "リダイレクトの回数"
929
+
930
+ #: includes/admin/table-printer.php:480
931
+ msgid "Instance count"
932
+ msgstr "インスタンス数"
933
+
934
+ #: includes/admin/table-printer.php:489
935
  #, php-format
936
+ msgid "This link has failed %d time."
937
+ msgid_plural "This link has failed %d times."
938
+ msgstr[0] "最終チェック%d時間前"
939
+ msgstr[1] "最終チェック%d時間前"
940
 
941
+ #: includes/admin/table-printer.php:497
942
  #, php-format
943
+ msgid "This link has been broken for %s."
944
+ msgstr "%sの間リンクエラー状態です。"
945
 
946
+ #: includes/admin/table-printer.php:508
947
+ msgid "Log"
948
+ msgstr "ログ"
 
949
 
950
+ #: includes/admin/table-printer.php:529
951
+ msgid "Show more info about this link"
952
+ msgstr "このリンクに関する表示詳細情報をもっと見る"
953
 
954
+ #: includes/admin/table-printer.php:547
955
+ msgctxt "checked how long ago"
956
+ msgid "Checked"
957
+ msgstr "チェック"
958
 
959
+ #: includes/admin/table-printer.php:563
960
+ msgid "Broken for"
961
+ msgstr "エラー"
962
+
963
+ #: includes/admin/table-printer.php:583
964
+ msgid "Edit link URL"
965
+ msgstr "リンクのURLを編集"
966
+
967
+ #: includes/admin/table-printer.php:585
968
+ msgid "Remove this link from all posts"
969
+ msgstr "すべての記事からこのリンクを削除"
970
+
971
+ #: includes/admin/table-printer.php:591
972
+ msgid "Remove this link from the list of broken links and mark it as valid"
973
+ msgstr "リンクエラーのリストから削除する"
974
+
975
+ #: includes/admin/table-printer.php:600
976
+ msgid "Cancel URL editing"
977
+ msgstr "URLの編集をキャンセル"
978
+
979
+ #: includes/admin/table-printer.php:607
980
+ msgid "Update URL"
981
+ msgstr "URLを編集"
982
+
983
+ #: includes/admin/table-printer.php:629
984
+ msgid "[An orphaned link! This is a bug.]"
985
+ msgstr "[独立したリンク! これはバグです]"
986
+
987
+ #: includes/any-post.php:398
988
+ #: modules/containers/blogroll.php:46
989
+ #: modules/containers/comment.php:153
990
+ #: modules/containers/custom_field.php:197
991
+ msgid "Edit"
992
+ msgstr "編集"
993
+
994
+ #: includes/any-post.php:406
995
+ #: modules/containers/custom_field.php:203
996
+ msgid "Move this item to the Trash"
997
+ msgstr "この項目をゴミ箱に移動"
998
+
999
+ #: includes/any-post.php:408
1000
+ #: modules/containers/custom_field.php:205
1001
  msgid "Trash"
1002
  msgstr "ゴミ箱"
1003
 
1004
+ #: includes/any-post.php:413
1005
+ #: modules/containers/custom_field.php:210
1006
+ msgid "Delete this item permanently"
1007
+ msgstr "この項目を完全に削除する"
1008
+
1009
+ #: includes/any-post.php:415
1010
+ #: modules/containers/blogroll.php:47
1011
+ #: modules/containers/custom_field.php:212
1012
+ msgid "Delete"
1013
+ msgstr "削除"
1014
+
1015
+ #: includes/any-post.php:428
1016
+ #, php-format
1017
+ msgid "Preview &#8220;%s&#8221;"
1018
+ msgstr "プレビュー &#8220;%s&#8221;"
1019
+
1020
+ #: includes/any-post.php:429
1021
+ msgid "Preview"
1022
+ msgstr "プレビュー"
1023
 
1024
+ #: includes/any-post.php:436
1025
+ #, php-format
1026
+ msgid "View &#8220;%s&#8221;"
1027
+ msgstr "見る &#8220;%s&#8221;"
1028
+
1029
+ #: includes/any-post.php:437
1030
+ #: modules/containers/comment.php:166
1031
+ #: modules/containers/custom_field.php:217
1032
  msgid "View"
1033
+ msgstr "見る"
1034
+
1035
+ #: includes/any-post.php:456
1036
+ #: modules/containers/custom_field.php:197
1037
+ msgid "Edit this item"
1038
+ msgstr "この項目を編集"
1039
 
1040
+ #: includes/any-post.php:520
1041
+ #: modules/containers/blogroll.php:83
1042
+ #: modules/containers/comment.php:43
1043
+ msgid "Nothing to update"
1044
+ msgstr "何も更新してません"
1045
+
1046
+ #: includes/any-post.php:530
1047
  #, php-format
1048
+ msgid "Updating post %d failed"
1049
+ msgstr "ポスト%dが更新できませんでした。"
 
 
1050
 
1051
+ #: includes/any-post.php:565
1052
+ #: modules/containers/custom_field.php:284
1053
  #, php-format
1054
+ msgid "Failed to delete post \"%s\" (%d)"
1055
+ msgstr "\"%s\"(%d)の投稿を削除できませんでした。"
 
 
1056
 
1057
+ #: includes/any-post.php:584
1058
+ #: modules/containers/custom_field.php:303
1059
+ #, php-format
1060
+ msgid "Can't move post \"%s\" (%d) to the trash because the trash feature is disabled"
1061
+ msgstr "ゴミ箱機能が無効になっているため、\"%s\" (%d)を移動することができませんでした。"
 
1062
 
1063
+ #: includes/any-post.php:604
1064
+ #: modules/containers/custom_field.php:322
1065
+ #, php-format
1066
+ msgid "Failed to move post \"%s\" (%d) to the trash"
1067
+ msgstr "\"%s\" (%d) の投稿の移動に失敗しました。"
1068
 
1069
+ #: includes/any-post.php:712
1070
+ #, php-format
1071
+ msgid "%d post deleted."
1072
+ msgid_plural "%d posts deleted."
1073
+ msgstr[0] "%d投稿を削除しました。"
1074
+ msgstr[1] "%d投稿を削除しました。"
1075
 
1076
+ #: includes/any-post.php:714
 
1077
  #, php-format
1078
+ msgid "%d page deleted."
1079
+ msgid_plural "%d pages deleted."
1080
+ msgstr[0] "%dページを削除しました。"
1081
+ msgstr[1] "%dページを削除しました。"
 
 
1082
 
1083
+ #: includes/any-post.php:716
 
1084
  #, php-format
1085
+ msgid "%d \"%s\" deleted."
1086
+ msgid_plural "%d \"%s\" deleted."
1087
+ msgstr[0] "%d \"%s\"を削除しました。"
1088
+ msgstr[1] "%d \"%s\"を削除しました。"
1089
 
1090
+ #: includes/any-post.php:735
 
1091
  #, php-format
1092
+ msgid "%d post moved to the Trash."
1093
+ msgid_plural "%d posts moved to the Trash."
1094
+ msgstr[0] "%dの記事をゴミ箱に移動しました。"
1095
+ msgstr[1] "%dの記事をゴミ箱に移動しました。"
1096
 
1097
+ #: includes/any-post.php:737
 
1098
  #, php-format
1099
+ msgid "%d page moved to the Trash."
1100
+ msgid_plural "%d pages moved to the Trash."
1101
+ msgstr[0] "%dページゴミ箱に移動しました。"
1102
+ msgstr[1] "%dページゴミ箱に移動しました。"
1103
 
1104
+ #: includes/any-post.php:739
 
1105
  #, php-format
1106
+ msgid "%d \"%s\" moved to the Trash."
1107
+ msgid_plural "%d \"%s\" moved to the Trash."
1108
+ msgstr[0] "%d \"%s\"をゴミ箱に移動しました。"
1109
+ msgstr[1] "%d \"%s\"をゴミ箱に移動しました。"
1110
 
1111
+ #: includes/containers.php:122
 
1112
  #, php-format
1113
+ msgid "%d '%s' has been deleted"
1114
+ msgid_plural "%d '%s' have been deleted"
1115
+ msgstr[0] "%d '%s' は削除されました"
1116
+ msgstr[1] "%d '%s' は削除されました"
1117
 
1118
+ #: includes/containers.php:882
1119
+ #: includes/containers.php:900
1120
  #, php-format
1121
+ msgid "Container type '%s' not recognized"
1122
+ msgstr "コンテナの型 '%s' が認識されません。"
1123
+
1124
+ #: includes/extra-strings.php:2
1125
+ msgctxt "module name"
1126
+ msgid "Basic HTTP"
1127
+ msgstr "基本的なHTTP"
1128
+
1129
+ #: includes/extra-strings.php:3
1130
+ msgctxt "module name"
1131
+ msgid "Blogroll items"
1132
+ msgstr "ブログロール"
1133
+
1134
+ #: includes/extra-strings.php:4
1135
+ msgctxt "module name"
1136
+ msgid "Comments"
1137
+ msgstr "コメント"
1138
+
1139
+ #: includes/extra-strings.php:5
1140
+ msgctxt "module name"
1141
+ msgid "Custom fields"
1142
+ msgstr "カスタムフィールド"
1143
+
1144
+ #: includes/extra-strings.php:6
1145
+ msgctxt "module name"
1146
+ msgid "Embedded DailyMotion videos"
1147
+ msgstr "埋め込まれたDailyMotionの動画"
1148
+
1149
+ #: includes/extra-strings.php:7
1150
+ msgctxt "module name"
1151
+ msgid "Embedded Vimeo videos"
1152
+ msgstr "埋め込まれたVimeoの動画"
1153
+
1154
+ #: includes/extra-strings.php:8
1155
+ msgctxt "module name"
1156
+ msgid "Embedded YouTube videos"
1157
+ msgstr "埋め込まれたYouTubeの動画"
1158
+
1159
+ #: includes/extra-strings.php:9
1160
+ msgctxt "module name"
1161
+ msgid "HTML images"
1162
+ msgstr "HTML画像"
1163
+
1164
+ #: includes/extra-strings.php:10
1165
+ msgctxt "module name"
1166
+ msgid "HTML links"
1167
+ msgstr "HTMLリンク"
1168
+
1169
+ #: includes/extra-strings.php:11
1170
+ msgctxt "module name"
1171
+ msgid "MediaFire API"
1172
+ msgstr "MediaFire API"
1173
+
1174
+ #: includes/extra-strings.php:12
1175
+ msgctxt "module name"
1176
+ msgid "MegaUpload API"
1177
+ msgstr "MegaUpload API"
1178
+
1179
+ #: includes/extra-strings.php:13
1180
+ msgctxt "module name"
1181
+ msgid "Plaintext URLs"
1182
+ msgstr "プレーンテキストのURL"
1183
+
1184
+ #: includes/extra-strings.php:14
1185
+ msgctxt "module name"
1186
+ msgid "RapidShare API"
1187
+ msgstr "RapidShare API"
1188
+
1189
+ #: includes/extra-strings.php:15
1190
+ msgctxt "module name"
1191
+ msgid "YouTube API"
1192
+ msgstr "YouTube API"
1193
+
1194
+ #: includes/extra-strings.php:16
1195
+ msgctxt "module name"
1196
+ msgid "Posts"
1197
+ msgstr "投稿"
1198
+
1199
+ #: includes/extra-strings.php:17
1200
+ msgctxt "module name"
1201
+ msgid "Pages"
1202
+ msgstr "ページ"
1203
 
1204
  #: includes/instances.php:102
1205
+ #: includes/instances.php:158
1206
  #, php-format
1207
  msgid "Container %s[%d] not found"
1208
  msgstr "%s[%d] コンテナーが見つかりません。"
1209
 
1210
  #: includes/instances.php:111
1211
+ #: includes/instances.php:167
1212
  #, php-format
1213
  msgid "Parser '%s' not found."
1214
  msgstr "パーサー '%s' が見つかりません。"
1215
 
1216
+ #: includes/link-query.php:25
1217
+ msgid "Broken"
1218
+ msgstr "リンクエラー"
1219
+
1220
+ #: includes/link-query.php:27
1221
+ msgid "No broken links found"
1222
+ msgstr "リンクエラーは見つかりませんでした"
1223
+
1224
+ #: includes/link-query.php:34
1225
+ msgid "Redirects"
1226
+ msgstr "リダイレクト"
1227
+
1228
+ #: includes/link-query.php:35
1229
+ msgid "Redirected Links"
1230
+ msgstr "リダイレクトリンク"
1231
+
1232
+ #: includes/link-query.php:36
1233
+ msgid "No redirects found"
1234
+ msgstr "リダイレクトが見つかりませんでした"
1235
+
1236
+ #: includes/link-query.php:44
1237
+ msgid "All"
1238
+ msgstr "すべて"
1239
+
1240
+ #: includes/link-query.php:45
1241
+ msgid "Detected Links"
1242
+ msgstr "すべてのリンク"
1243
+
1244
+ #: includes/link-query.php:46
1245
+ msgid "No links found (yet)"
1246
+ msgstr "リンクは(まだ)見つかっていません"
1247
+
1248
+ #: includes/link-query.php:54
1249
+ msgid "Search Results"
1250
+ msgstr "検索結果"
1251
+
1252
+ #: includes/link-query.php:55
1253
+ #: includes/link-query.php:106
1254
+ msgid "No links found for your query"
1255
+ msgstr "見つかりませんでした"
1256
+
1257
+ #: includes/links.php:215
1258
  msgid "The plugin script was terminated while trying to check the link."
1259
+ msgstr "リンクを確認しようとしたとき、プラグインかスクリプトが終了しました。"
1260
 
1261
+ #: includes/links.php:261
1262
  msgid "The plugin doesn't know how to check this type of link."
1263
  msgstr "未知のリンクの種類です。"
1264
 
1265
+ #: includes/links.php:349
1266
  msgid "Link is valid."
1267
  msgstr "リンクは有効です。"
1268
 
1269
+ #: includes/links.php:351
1270
  msgid "Link is broken."
1271
  msgstr "リンクエラーです。"
1272
 
1273
+ #: includes/links.php:564
1274
+ #: includes/links.php:666
1275
+ #: includes/links.php:693
1276
  msgid "Link is not valid"
1277
+ msgstr "リンクが有効ではありません。"
1278
 
1279
+ #: includes/links.php:581
1280
  msgid "This link can not be edited because it is not used anywhere on this site."
1281
  msgstr "それはこのサイトで使用されていないためこのリンクを編集することはできません。"
1282
 
1283
+ #: includes/links.php:607
1284
  msgid "Failed to create a DB entry for the new URL."
1285
+ msgstr "新しいURLDBエントリの作成に失敗しました。"
1286
 
1287
+ #: includes/links.php:673
1288
  msgid "This link is not a redirect"
1289
+ msgstr "このリンクはリダイレクトされていません。"
1290
 
1291
+ #: includes/links.php:720
1292
+ #: includes/links.php:757
1293
  msgid "Couldn't delete the link's database record"
1294
+ msgstr "リンクのデータベースのレコードを削除できませんでした。"
1295
 
1296
+ #: includes/links.php:831
1297
+ msgctxt "link status"
1298
+ msgid "Unknown"
1299
+ msgstr "不明"
1300
 
1301
+ #: includes/links.php:845
1302
+ #: modules/checkers/http.php:263
1303
+ msgid "Unknown Error"
1304
+ msgstr "不明なエラー"
1305
 
1306
+ #: includes/links.php:869
1307
+ msgid "Not checked"
1308
+ msgstr "チェックされていません。"
1309
 
1310
+ #: includes/links.php:872
1311
+ msgid "False positive"
1312
+ msgstr "見つかりませんでした"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1313
 
1314
+ #: includes/links.php:875
1315
+ msgctxt "link status"
1316
+ msgid "OK"
1317
+ msgstr "OK"
1318
 
1319
+ #: includes/module-manager.php:122
1320
+ #: includes/module-manager.php:139
1321
+ msgctxt "module name"
1322
+ msgid "Name"
1323
+ msgstr "名前"
1324
 
1325
+ #: includes/parsers.php:109
1326
  #, php-format
1327
  msgid "Editing is not implemented in the '%s' parser"
1328
  msgstr "編集は、'%s'パーサーでは実装されていません"
1329
 
1330
+ #: includes/parsers.php:124
1331
  #, php-format
1332
  msgid "Unlinking is not implemented in the '%s' parser"
1333
  msgstr "'%s'パーサーではリンク解除は実装されていません"
1334
 
1335
+ #: includes/utility-class.php:287
1336
+ #, php-format
1337
+ msgid "%d second"
1338
+ msgid_plural "%d seconds"
1339
+ msgstr[0] "%d秒"
1340
+ msgstr[1] "%d秒"
1341
+
1342
+ #: includes/utility-class.php:288
1343
+ #, php-format
1344
+ msgid "%d second ago"
1345
+ msgid_plural "%d seconds ago"
1346
+ msgstr[0] "%d秒前"
1347
+ msgstr[1] "%d秒前"
1348
+
1349
+ #: includes/utility-class.php:291
1350
+ #, php-format
1351
+ msgid "%d minute"
1352
+ msgid_plural "%d minutes"
1353
+ msgstr[0] "%d分"
1354
+ msgstr[1] "%d分"
1355
+
1356
+ #: includes/utility-class.php:292
1357
+ #, php-format
1358
+ msgid "%d minute ago"
1359
+ msgid_plural "%d minutes ago"
1360
+ msgstr[0] "%d分前"
1361
+ msgstr[1] "%d分前"
1362
+
1363
+ #: includes/utility-class.php:295
1364
+ #, php-format
1365
+ msgid "%d hour"
1366
+ msgid_plural "%d hours"
1367
+ msgstr[0] "%d時間"
1368
+ msgstr[1] "%d時間"
1369
+
1370
+ #: includes/utility-class.php:296
1371
+ #, php-format
1372
+ msgid "%d hour ago"
1373
+ msgid_plural "%d hours ago"
1374
+ msgstr[0] "%d時間前"
1375
+ msgstr[1] "%d時間前"
1376
+
1377
+ #: includes/utility-class.php:299
1378
+ #, php-format
1379
+ msgid "%d day"
1380
+ msgid_plural "%d days"
1381
+ msgstr[0] "%d日"
1382
+ msgstr[1] "%d日"
1383
+
1384
+ #: includes/utility-class.php:300
1385
+ #, php-format
1386
+ msgid "%d day ago"
1387
+ msgid_plural "%d days ago"
1388
+ msgstr[0] "%d日前"
1389
+ msgstr[1] "%d日前"
1390
+
1391
+ #: includes/utility-class.php:303
1392
+ #, php-format
1393
+ msgid "%d month"
1394
+ msgid_plural "%d months"
1395
+ msgstr[0] "%d分"
1396
+ msgstr[1] "%d分"
1397
+
1398
+ #: includes/utility-class.php:304
1399
+ #, php-format
1400
+ msgid "%d month ago"
1401
+ msgid_plural "%d months ago"
1402
+ msgstr[0] "%dヶ月前"
1403
+ msgstr[1] "%dヶ月前"
1404
+
1405
+ #: modules/checkers/http.php:242
1406
+ msgid "Server Not Found"
1407
+ msgstr "サーバーが見つかりません"
1408
+
1409
+ #: modules/checkers/http.php:257
1410
+ msgid "Connection Failed"
1411
+ msgstr "接続に失敗しました"
1412
+
1413
+ #: modules/checkers/http.php:292
1414
+ #: modules/checkers/http.php:362
1415
+ #, php-format
1416
+ msgid "HTTP code : %d"
1417
+ msgstr "HTTP コード : %d"
1418
+
1419
+ #: modules/checkers/http.php:294
1420
+ #: modules/checkers/http.php:364
1421
+ msgid "(No response)"
1422
+ msgstr "(応答なし)"
1423
+
1424
+ #: modules/checkers/http.php:300
1425
+ msgid "Most likely the connection timed out or the domain doesn't exist."
1426
+ msgstr "ドメインが存在しないかサーバーが反応していない可能性があります。"
1427
+
1428
+ #: modules/checkers/http.php:371
1429
+ msgid "Request timed out."
1430
+ msgstr "要求がタイムアウトしました。"
1431
+
1432
+ #: modules/checkers/http.php:389
1433
+ msgid "Using Snoopy"
1434
+ msgstr "Snoopyを使用"
1435
+
1436
+ #: modules/containers/blogroll.php:21
1437
+ msgid "Bookmark"
1438
+ msgstr "ブックマーク"
1439
+
1440
+ #: modules/containers/blogroll.php:27
1441
+ #: modules/containers/blogroll.php:46
1442
+ msgid "Edit this bookmark"
1443
+ msgstr "このブックマークを編集"
1444
+
1445
+ #: modules/containers/blogroll.php:47
1446
+ #, php-format
1447
+ msgid ""
1448
+ "You are about to delete this link '%s'\n"
1449
+ " 'Cancel' to stop, 'OK' to delete."
1450
+ msgstr ""
1451
+ "このリンク '%s' 削除しようとしています。\n"
1452
+ "「OK」で削除、「キャンセル」で中止します。"
1453
+
1454
+ #: modules/containers/blogroll.php:97
1455
+ #, php-format
1456
+ msgid "Updating bookmark %d failed"
1457
+ msgstr "ブックマーク%dの更新に失敗しました"
1458
+
1459
+ #: modules/containers/blogroll.php:128
1460
+ #, php-format
1461
+ msgid "Failed to delete blogroll link \"%s\" (%d)"
1462
+ msgstr "ブログロールのリンク '%s' を削除できませんでした (%d)"
1463
+
1464
+ #: modules/containers/blogroll.php:299
1465
+ #, php-format
1466
+ msgid "%d blogroll link deleted."
1467
+ msgid_plural "%d blogroll links deleted."
1468
+ msgstr[0] "%dのブログロールのリンクを削除しました。"
1469
+ msgstr[1] "%dのブログロールのリンクを削除しました。"
1470
+
1471
+ #: modules/containers/comment.php:53
1472
+ #, php-format
1473
+ msgid "Updating comment %d failed"
1474
+ msgstr "%dのコメント更新に失敗しました。"
1475
+
1476
+ #: modules/containers/comment.php:74
1477
+ #, php-format
1478
+ msgid "Failed to delete comment %d"
1479
+ msgstr "%dのコメントを削除できませんでした。"
1480
+
1481
+ #: modules/containers/comment.php:95
1482
+ #, php-format
1483
+ msgid "Can't move comment %d to the trash"
1484
+ msgstr "ゴミ箱に%dを移動できません。"
1485
+
1486
+ #: modules/containers/comment.php:153
1487
+ #: modules/containers/comment.php:195
1488
+ msgid "Edit comment"
1489
+ msgstr "コメントを編集"
1490
+
1491
+ #: modules/containers/comment.php:160
1492
+ msgid "Delete Permanently"
1493
+ msgstr "完全に削除しました。"
1494
+
1495
+ #: modules/containers/comment.php:162
1496
+ msgid "Move this comment to the trash"
1497
+ msgstr "このコメントをゴミ箱に移動しました。"
1498
+
1499
+ #: modules/containers/comment.php:162
1500
+ msgctxt "verb"
1501
+ msgid "Trash"
1502
+ msgstr "ゴミ箱"
1503
+
1504
+ #: modules/containers/comment.php:166
1505
+ msgid "View comment"
1506
+ msgstr "コメントを見る"
1507
+
1508
+ #: modules/containers/comment.php:183
1509
+ msgid "Comment"
1510
+ msgstr "コメント"
1511
+
1512
+ #: modules/containers/comment.php:372
1513
+ #, php-format
1514
+ msgid "%d comment has been deleted."
1515
+ msgid_plural "%d comments have been deleted."
1516
+ msgstr[0] "%dのコメントが削除されました。"
1517
+ msgstr[1] "%dのコメントが削除されました。"
1518
+
1519
+ #: modules/containers/comment.php:391
1520
+ #, php-format
1521
+ msgid "%d comment moved to the Trash."
1522
+ msgid_plural "%d comments moved to the Trash."
1523
+ msgstr[0] "%dコメントをゴミ箱に移動しました。"
1524
+ msgstr[1] "%dコメントをゴミ箱に移動しました。"
1525
+
1526
+ #: modules/containers/custom_field.php:187
1527
+ msgid "Edit this post"
1528
+ msgstr "この記事を編集"
1529
+
1530
+ #: modules/containers/custom_field.php:217
1531
+ #, php-format
1532
+ msgid "View \"%s\""
1533
+ msgstr "\"%s\" を見る"
1534
+
1535
+ #: modules/containers/dummy.php:34
1536
+ #: modules/containers/dummy.php:45
1537
+ #, php-format
1538
+ msgid "I don't know how to edit a '%s' [%d]."
1539
+ msgstr "不明なエラーのため、'%s' [%d]を編集することができません。"
1540
+
1541
+ #: modules/parsers/image.php:156
1542
+ msgid "Image"
1543
+ msgstr "イメージ"
1544
+
1545
+ #: modules/parsers/metadata.php:117
1546
+ msgid "Custom field"
1547
+ msgstr "カスタムフィールド"
1548
 
1549
  #. Plugin URI of the plugin/theme
1550
  msgid "http://w-shadow.com/blog/2007/08/05/broken-link-checker-for-wordpress/"
1552
 
1553
  #. Description of the plugin/theme
1554
  msgid "Checks your blog for broken links and missing images and notifies you on the dashboard if any are found."
1555
+ msgstr "リンクエラーやリンクエラーの画像がないかブログをチェックし、見つかった場合は、ダッシュボード等で通知します。"
1556
 
1557
  #. Author of the plugin/theme
1558
  msgid "Janis Elsts"
1562
  msgid "http://w-shadow.com/blog/"
1563
  msgstr "http://w-shadow.com/blog/"
1564
 
1565
+ #~ msgid ""
1566
+ #~ "Unexpected error: The plugin doesn't know how to upgrade its database to "
1567
+ #~ "version '%d'."
1568
+ #~ msgstr ""
1569
+ #~ "予期しないエラー: このプラグインがそのデータベースをバージョン '%d' にアッ"
1570
+ #~ "プグレードする方法がわかりません。"
1571
+
1572
+ #~ msgid "Failed to create table '%s'. Database error: %s"
1573
+ #~ msgstr "テーブル '%s' を作成できませんでした。 データベースエラー: %s"
1574
+
1575
+ #~ msgid "Broken link CSS"
1576
+ #~ msgstr "リンクエラーのCSS"
1577
+
1578
+ #~ msgid "Apply <em>class=\"broken_link\"</em> to broken links"
1579
+ #~ msgstr "リンクエラーのクラスは<em>class=\"broken_link\"</em>にする"
1580
+
1581
+ #~ msgid "Removed link CSS"
1582
+ #~ msgstr "削除されたリンク CSS"
1583
+
1584
+ #~ msgid "Apply <em>class=\"removed_link\"</em> to unlinked links"
1585
+ #~ msgstr "削除されたリンクのクラスは<em>class=\"broken_link\"</em>にする"
1586
+
1587
+ #~ msgid "Broken link SEO"
1588
+ #~ msgstr "リンクエラー SEO"
1589
+
1590
+ #~ msgid "less than a minute"
1591
+ #~ msgstr "1 分未満"
1592
+
1593
+ #~ msgid "Save URL"
1594
+ #~ msgstr "URL を保存"
1595
+
1596
+ #~ msgid "Saving changes..."
1597
+ #~ msgstr "変更を保存しています..."
1598
+
1599
+ #~ msgid "Normal link"
1600
+ #~ msgstr "通常のリンク"
1601
+
1602
+ #~ msgid ""
1603
+ #~ "You are about to delete this post '%s'\n"
1604
+ #~ " 'Cancel' to stop, 'OK' to delete."
1605
+ #~ msgstr ""
1606
+ #~ "あなたはこのポスト'%s' \n"
1607
+ #~ "を削除しようとしています。"
languages/broken-link-checker-pt_PT.mo CHANGED
Binary file
languages/broken-link-checker-pt_PT.po CHANGED
@@ -1,7 +1,7 @@
1
- # Translation of the WordPress plugin Broken Link Checker 0.9.5 by Janis Elsts.
2
  # Copyright (C) 2010 Janis Elsts
3
  # This file is distributed under the same license as the Broken Link Checker package.
4
- # Tradução em português pt_PT do plugin Broken Link Checker - v.0.9.5 - 17/08/2010
5
  # Autor: PedroDM - <pm[at]mowster[dot]net>
6
  # Website: http://jobs.mowster.net/ - <jobs@mowster.net>
7
  #
@@ -9,7 +9,7 @@ msgid ""
9
  msgstr ""
10
  "Project-Id-Version: Broken Link Checker PT\n"
11
  "Report-Msgid-Bugs-To: \n"
12
- "POT-Creation-Date: 2010-08-17 16:55-0000\n"
13
  "PO-Revision-Date: \n"
14
  "Last-Translator: \n"
15
  "Language-Team: MwJobs | http://jobs.mowster.net <jobs@mowster.net>\n"
@@ -36,718 +36,728 @@ msgstr "[ Problema na rede ]"
36
  msgid "Automatically expand the widget if broken links have been detected"
37
  msgstr "Expandir automaticamente a caixa se existirem links offline"
38
 
39
- #: core/core.php:460
40
  msgid "Link Checker Settings"
41
  msgstr "Definições do Links offline"
42
 
43
- #: core/core.php:461
44
  msgid "Link Checker"
45
  msgstr "Links offline"
46
 
47
- #: core/core.php:466
48
- #: includes/link-query.php:26
49
  msgid "Broken Links"
50
  msgstr "Links offline"
51
 
52
- #: core/core.php:482
53
  msgid "View Broken Links"
54
  msgstr "Ver Links offline"
55
 
56
- #: core/core.php:519
57
  msgid "Settings"
58
  msgstr "Definições"
59
 
60
- #: core/core.php:531
61
- #: core/core.php:1313
62
  #, php-format
63
  msgid "Error: The plugin's database tables are not up to date! (Current version : %d, expected : %d)"
64
  msgstr "Erro: As tabelas do plugin na Base de dados não estão actualizadas! (Versão actual : %d, obrigatória : %d)"
65
 
66
- #: core/core.php:675
67
  msgid "Settings saved."
68
  msgstr "Definições guardadas."
69
 
70
- #: core/core.php:682
71
  msgid "Complete site recheck started."
72
  msgstr "Re-verificação completa do sitío iniciada."
73
 
74
- #: core/core.php:694
75
- #: core/core.php:2807
76
  msgid "Details"
77
  msgstr "Detalhes"
78
 
79
- #: core/core.php:708
80
  msgid "General"
81
  msgstr "Geral"
82
 
83
- #: core/core.php:709
84
  msgid "Look For Links In"
85
  msgstr "Procurar links"
86
 
87
- #: core/core.php:710
88
  msgid "Which Links To Check"
89
  msgstr "Links para verificar"
90
 
91
- #: core/core.php:711
92
  msgid "Protocols & APIs"
93
  msgstr "Protocolos & APIs"
94
 
95
- #: core/core.php:712
96
  msgid "Advanced"
97
  msgstr "Avançado"
98
 
99
- #: core/core.php:716
100
  msgid "Broken Link Checker Options"
101
  msgstr "Opções : Links offline"
102
 
103
- #: core/core.php:742
104
  msgid "Status"
105
  msgstr "Estado"
106
 
107
- #: core/core.php:744
108
  msgid "Show debug info"
109
  msgstr "Mostrar sistema"
110
 
111
- #: core/core.php:772
112
  msgid "Check each link"
113
  msgstr "Verificar cada link"
114
 
115
- #: core/core.php:777
116
  #, php-format
117
  msgid "Every %s hours"
118
  msgstr "Cada %s horas"
119
 
120
- #: core/core.php:786
121
  msgid "Existing links will be checked this often. New links will usually be checked ASAP."
122
  msgstr "Os links existentes serão verificados com esta frequência. Os novos links comprovados logo que possível."
123
 
124
- #: core/core.php:793
125
  msgid "E-mail notifications"
126
  msgstr "Notificações por e-mail"
127
 
128
- #: core/core.php:799
129
  msgid "Send me e-mail notifications about newly detected broken links"
130
  msgstr "Enviar um e-mail notificando sobre os novos links offline detectados"
131
 
132
- #: core/core.php:806
133
  msgid "Link tweaks"
134
  msgstr "Links puxados"
135
 
136
- #: core/core.php:812
137
  msgid "Apply custom formatting to broken links"
138
  msgstr "Aplicar formatação personalizada para os links offline"
139
 
140
- #: core/core.php:816
141
- #: core/core.php:844
142
  msgid "Edit CSS"
143
  msgstr "Editar CSS"
144
 
145
- #: core/core.php:840
146
  msgid "Apply custom formatting to removed links"
147
  msgstr "Aplicar formatação personalizada para os links removidos"
148
 
149
- #: core/core.php:868
150
  msgid "Stop search engines from following broken links"
151
  msgstr "Não permitir aos motores de busca seguir os links offline"
152
 
153
- #: core/core.php:885
154
  msgid "Look for links in"
155
  msgstr "Procurar links em"
156
 
157
- #: core/core.php:896
158
  msgid "Post statuses"
159
  msgstr "Estado do Post"
160
 
161
- #: core/core.php:929
162
  msgid "Link types"
163
  msgstr "Tipos de link"
164
 
165
- #: core/core.php:935
166
  msgid "Error : All link parsers missing!"
167
  msgstr "Erro: Análises aos links não encontradas!"
168
 
169
- #: core/core.php:942
170
  msgid "Exclusion list"
171
  msgstr "Lista de exclusão"
172
 
173
- #: core/core.php:943
174
  msgid "Don't check links where the URL contains any of these words (one per line) :"
175
  msgstr "Não verificar links que a URL tenha alguma destas palavras (uma por linha):"
176
 
177
- #: core/core.php:961
178
  msgid "Check links using"
179
  msgstr "Verificar links utilizados"
180
 
181
- #: core/core.php:980
182
- #: includes/links.php:855
183
  msgid "Timeout"
184
  msgstr "Intervalo"
185
 
186
- #: core/core.php:986
187
- #: core/core.php:1032
188
- #: core/core.php:2934
189
  #, php-format
190
  msgid "%s seconds"
191
  msgstr "%s segundos"
192
 
193
- #: core/core.php:995
194
  msgid "Links that take longer than this to load will be marked as broken."
195
  msgstr "Os links que demoram mais que este tempo a abrir serão marcados como offline."
196
 
197
- #: core/core.php:1002
198
  msgid "Link monitor"
199
  msgstr "Monitor de links"
200
 
201
- #: core/core.php:1010
202
  msgid "Run continuously while the Dashboard is open"
203
  msgstr "Executar continuamente enquanto o Painel do WordPress está aberto"
204
 
205
- #: core/core.php:1018
206
  msgid "Run hourly in the background"
207
  msgstr "Executar a cada hora em segundo plano"
208
 
209
- #: core/core.php:1026
210
  msgid "Max. execution time"
211
  msgstr "Tempo máximo de execução"
212
 
213
- #: core/core.php:1043
214
  msgid "The plugin works by periodically launching a background job that parses your posts for links, checks the discovered URLs, and performs other time-consuming tasks. Here you can set for how long, at most, the link monitor may run each time before stopping."
215
  msgstr "O plugin funciona executando periodicamente uma tarefa em segundo plano que analiza os links, verifica os URL encontrados e realiza outras tarefas que consomem tempo. Aqui pode-se estabelecer a duração máxima cada vez que o monitor de links é executado antes de parar."
216
 
217
- #: core/core.php:1053
218
  msgid "Custom temporary directory"
219
  msgstr "Pasta temporária personalizada"
220
 
221
- #: core/core.php:1062
222
- #: includes/links.php:881
223
  msgid "OK"
224
  msgstr "Aceitar"
225
 
226
- #: core/core.php:1065
227
  msgid "Error : This directory isn't writable by PHP."
228
  msgstr "Erro: PHP não pode escrever nesse directório."
229
 
230
- #: core/core.php:1070
231
  msgid "Error : This directory doesn't exist."
232
  msgstr "Erro: Não existe esse directório."
233
 
234
- #: core/core.php:1078
235
  msgid "Set this field if you want the plugin to use a custom directory for its lockfiles. Otherwise, leave it blank."
236
  msgstr "Preencha este campo se deseja que o plugin utilize um directório personalizado para seus ficheiros temporários. Caso contrário, deixa-lo em branco."
237
 
238
- #: core/core.php:1085
239
  msgid "Server load limit"
240
  msgstr "Limite de carregamento do servidor"
241
 
242
- #: core/core.php:1103
 
 
 
 
 
243
  #, php-format
244
  msgid "Link checking will be suspended if the average <a href=\"%s\">server load</a> rises above this number. Leave this field blank to disable load limiting."
245
  msgstr "A verificação dos links será suspensa se a média do <a href=\"%s\">carregamento do servidor</a> passa este valor. Deixar o campo em branco para não existir limite."
246
 
247
- #: core/core.php:1111
248
  msgid "Not available"
249
  msgstr "Não disponível"
250
 
251
- #: core/core.php:1113
252
  msgid "Load limiting only works on Linux-like systems where <code>/proc/loadavg</code> is present and accessible."
253
  msgstr "O limite de carregamento somente funciona em sistemas Linux onde <code>/proc/loadavg</code> está presente e acessível."
254
 
255
- #: core/core.php:1121
256
  msgid "Forced recheck"
257
  msgstr "Re-verificação forçada"
258
 
259
- #: core/core.php:1124
260
  msgid "Re-check all pages"
261
  msgstr "Verificar de novo todas as páginas"
262
 
263
- #: core/core.php:1128
264
  msgid "The \"Nuclear Option\". Click this button to make the plugin empty its link database and recheck the entire site from scratch."
265
  msgstr "\"Opção Nuclear\". Clique para limpar todos os dados do plugin na base de dados do plugin e re-verificar todo o sítio desde o início."
266
 
267
- #: core/core.php:1139
268
  msgid "Save Changes"
269
  msgstr "Guardar alterações"
270
 
271
- #: core/core.php:1184
272
  msgid "Configure"
273
  msgstr "Configurar"
274
 
275
- #: core/core.php:1244
276
  msgid "Upgrade to Pro to enable this feature"
277
  msgstr "Actualizar para Pro para aceder a esta função"
278
 
279
- #: core/core.php:1279
280
  msgid "Check URLs entered in these custom fields (one per line) :"
281
  msgstr "Verificar as seguintes URL personalizadas (uma por linha):"
282
 
283
- #: core/core.php:1415
284
- #: core/core.php:1498
285
- #: core/core.php:1530
286
  #, php-format
287
  msgid "Database error : %s"
288
  msgstr "Erro na Base de dados: %s"
289
 
290
- #: core/core.php:1480
291
  msgid "You must enter a filter name!"
292
  msgstr "Deve introduzir um nome para o filtro!"
293
 
294
- #: core/core.php:1484
295
  msgid "Invalid search query."
296
  msgstr "Procura inválida."
297
 
298
- #: core/core.php:1493
299
  #, php-format
300
  msgid "Filter \"%s\" created"
301
  msgstr "Filtro \"%s\" criado"
302
 
303
- #: core/core.php:1520
304
  msgid "Filter ID not specified."
305
  msgstr "ID do Filtro não especificado."
306
 
307
- #: core/core.php:1527
308
  msgid "Filter deleted"
309
  msgstr "Filtro eliminado"
310
 
311
- #: core/core.php:1575
312
  #, php-format
313
  msgid "Replaced %d redirect with a direct link"
314
  msgid_plural "Replaced %d redirects with direct links"
315
  msgstr[0] "Substituído %d redirect com link directo"
316
  msgstr[1] "Substituídos %d redirects com links directos"
317
 
318
- #: core/core.php:1586
319
  #, php-format
320
  msgid "Failed to fix %d redirect"
321
  msgid_plural "Failed to fix %d redirects"
322
  msgstr[0] "Não foi possível reparar %d redirect"
323
  msgstr[1] "Não foi possível reparar %d redirects"
324
 
325
- #: core/core.php:1596
326
  msgid "None of the selected links are redirects!"
327
  msgstr "Nenhum dos links seleccionados são redirects!"
328
 
329
- #: core/core.php:1642
 
 
 
 
 
 
 
 
 
 
 
 
 
 
330
  #, php-format
331
  msgid "%d link removed"
332
  msgid_plural "%d links removed"
333
  msgstr[0] "%d link eliminado"
334
  msgstr[1] "%d links eliminados"
335
 
336
- #: core/core.php:1653
337
  #, php-format
338
  msgid "Failed to remove %d link"
339
  msgid_plural "Failed to remove %d links"
340
  msgstr[0] "Erro a remover %d link"
341
  msgstr[1] "Erro a remover %d links"
342
 
343
- #: core/core.php:1762
344
  #, php-format
345
  msgid "%d item was skipped because it can't be moved to the Trash. You need to delete it manually."
346
  msgid_plural "%d items were skipped because they can't be moved to the Trash. You need to delete them manually."
347
  msgstr[0] "%d item foi evitado porque não pode ser movido para o lixo. Necessita de efectua-lo manualmente."
348
  msgstr[1] "%d itens foram evitados porque não podem ser movidos para o lixo. Necessita de efectua-lo manualmente."
349
 
350
- #: core/core.php:1783
351
  msgid "Didn't find anything to delete!"
352
  msgstr "Não foi encontrado nada para apagar!"
353
 
354
- #: core/core.php:1811
355
  #, php-format
356
  msgid "%d link scheduled for rechecking"
357
  msgid_plural "%d links scheduled for rechecking"
358
  msgstr[0] "%d link agendado para verificação"
359
  msgstr[1] "%d links agendados para verificação"
360
 
361
- #: core/core.php:1856
362
- #: core/core.php:2461
363
  msgid "This link was manually marked as working by the user."
364
  msgstr "Este link foi marcado manualmente como válido por outro utilizador."
365
 
366
- #: core/core.php:1863
367
  #, php-format
368
  msgid "Couldn't modify link %d"
369
  msgstr "Oops, impossível modificar o link %d"
370
 
371
- #: core/core.php:1874
372
  #, php-format
373
  msgid "%d link marked as not broken"
374
  msgid_plural "%d links marked as not broken"
375
  msgstr[0] "%d link marcado como funcional"
376
  msgstr[1] "%d links marcados como funcionais"
377
 
378
- #: core/core.php:1914
379
  msgid "Table columns"
380
  msgstr "Colunas da Tabela"
381
 
382
- #: core/core.php:1933
383
  msgid "Show on screen"
384
  msgstr "Mostrar no ecrán"
385
 
386
- #: core/core.php:1940
387
  msgid "links"
388
  msgstr "links"
389
 
390
- #: core/core.php:1941
391
  msgid "Apply"
392
  msgstr "Aplicar"
393
 
394
- #: core/core.php:1945
395
  msgid "Misc"
396
  msgstr "Vários"
397
 
398
- #: core/core.php:1960
399
  #, php-format
400
  msgid "Highlight links broken for at least %s days"
401
  msgstr "Sublinhar links offline pelo menos por %s dias"
402
 
403
- #: core/core.php:1969
404
  msgid "Color-code status codes"
405
  msgstr "Cor-código status códigos"
406
 
407
- #: core/core.php:1986
408
- #: core/core.php:2446
409
- #: core/core.php:2482
410
- #: core/core.php:2545
411
  msgid "You're not allowed to do that!"
412
  msgstr "Não permitido!"
413
 
414
- #: core/core.php:2327
415
  msgid "View broken links"
416
  msgstr "Ver links offline"
417
 
418
- #: core/core.php:2328
419
  #, php-format
420
  msgid "Found %d broken link"
421
  msgid_plural "Found %d broken links"
422
  msgstr[0] "Encontrado %d Link offline"
423
  msgstr[1] "Encontrados %d Links offline"
424
 
425
- #: core/core.php:2334
426
  msgid "No broken links found."
427
  msgstr "Não existem links offline."
428
 
429
- #: core/core.php:2341
430
  #, php-format
431
  msgid "%d URL in the work queue"
432
  msgid_plural "%d URLs in the work queue"
433
  msgstr[0] "%d URL em espera"
434
  msgstr[1] "%d URLs em espera"
435
 
436
- #: core/core.php:2344
437
  msgid "No URLs in the work queue."
438
  msgstr "Não existem URL em espera para verificação."
439
 
440
- #: core/core.php:2350
441
  #, php-format
442
  msgid "Detected %d unique URL"
443
  msgid_plural "Detected %d unique URLs"
444
  msgstr[0] "Detectada %d URL única"
445
  msgstr[1] "Detectadas %d URL únicas"
446
 
447
- #: core/core.php:2351
448
  #, php-format
449
  msgid "in %d link"
450
  msgid_plural "in %d links"
451
  msgstr[0] "em %d link"
452
  msgstr[1] "em %d links"
453
 
454
- #: core/core.php:2356
455
  msgid "and still searching..."
456
- msgstr "procurando..."
457
 
458
- #: core/core.php:2362
459
  msgid "Searching your blog for links..."
460
  msgstr "Procurando links..."
461
 
462
- #: core/core.php:2364
463
- msgid "No links detected."
464
- msgstr "Não se encontraram links."
465
 
466
- #: core/core.php:2390
467
- #: includes/links.php:837
468
  msgid "Unknown"
469
  msgstr "Desconhecido"
470
 
471
- #: core/core.php:2454
472
- #: core/core.php:2492
473
- #: core/core.php:2555
474
  #, php-format
475
  msgid "Oops, I can't find the link %d"
476
  msgstr "Oops, não é possível encontrar o link %d"
477
 
478
- #: core/core.php:2467
479
  msgid "Oops, couldn't modify the link!"
480
  msgstr "Oops, não é possível modificar o link!"
481
 
482
- #: core/core.php:2470
483
- #: core/core.php:2581
484
  msgid "Error : link_id not specified"
485
  msgstr "Erro: link_id não especificado"
486
 
487
- #: core/core.php:2502
488
  msgid "Oops, the new URL is invalid!"
489
  msgstr "Oops, a nova URL não é válida"
490
 
491
- #: core/core.php:2513
492
- #: core/core.php:2564
493
  msgid "An unexpected error occured!"
494
  msgstr "Ocorreu um erro inesperado!"
495
 
496
- #: core/core.php:2531
497
  msgid "Error : link_id or new_url not specified"
498
  msgstr "Erro: link_id ou new_url não especificado"
499
 
500
- #: core/core.php:2590
501
  msgid "You don't have sufficient privileges to access this information!"
502
  msgstr "Não tem previlégios suficientes para aceder a esta informação!"
503
 
504
- #: core/core.php:2603
505
  msgid "Error : link ID not specified"
506
  msgstr "Erro: link ID não especificado"
507
 
508
- #: core/core.php:2617
509
  #, php-format
510
  msgid "Failed to load link details (%s)"
511
  msgstr "Erro a carregar os detalhes do link (%s)"
512
 
513
- #: core/core.php:2779
514
  msgid "Broken Link Checker"
515
  msgstr "Links offline"
516
 
517
- #: core/core.php:2793
518
  #, php-format
519
  msgid "The current temporary directory is not accessible; please <a href=\"%s\">set a different one</a>."
520
  msgstr "O directório temporário não está acessível; por favor, <a href=\"%s\">especifique um diferente</a>."
521
 
522
- #: core/core.php:2798
523
  #, php-format
524
  msgid "Please make the directory <code>%1$s</code> writable by plugins or <a href=\"%2$s\">set a custom temporary directory</a>."
525
  msgstr "Por favor, deve permitir que os plugins possam gravar dados no directório <code>%1$s</code> ou <a href=\"%2$s\">especificar um directório temporário personalizado</a>."
526
 
527
- #: core/core.php:2805
528
  msgid "Broken Link Checker can't create a lockfile."
529
  msgstr "Links offline não pode criar um ficheiro temporário."
530
 
531
- #: core/core.php:2810
532
  msgid "The plugin uses a file-based locking mechanism to ensure that only one instance of the resource-heavy link checking algorithm is running at any given time. Unfortunately, BLC can't find a writable directory where it could store the lockfile - it failed to detect the location of your server's temporary directory, and the plugin's own directory isn't writable by PHP. To fix this problem, please make the plugin's directory writable or enter a specify a custom temporary directory in the plugin's settings."
533
  msgstr "Este plugin utiliza um sistema de bloqueio de ficheiros para garantir que somente se executa uma instância do algoritmo de verificação de links num momento determinado, uma vez que consome bastantes recursos. Infelizmente, o plugin não pode encontrar um directório que possa armazenar um ficheiro temporário - erro ao detectar a localização do directório temporário no servidor, assim como o própio directório do plugin não permite a escrita pelo PHP. Para resolver, terá que dar permissões de escrita ao directório ou especificar um directório temporário na configuração do plugin."
534
 
535
- #: core/core.php:2829
536
  msgid "PHP version"
537
  msgstr "Versão PHP"
538
 
539
- #: core/core.php:2835
540
  msgid "MySQL version"
541
  msgstr "Versão MySQL"
542
 
543
- #: core/core.php:2848
544
  msgid "You have an old version of CURL. Redirect detection may not work properly."
545
  msgstr "Versão de CURL obsoleta. A detecção de redirects pode não funcionar correctamente."
546
 
547
- #: core/core.php:2860
548
- #: core/core.php:2876
549
- #: core/core.php:2881
550
  msgid "Not installed"
551
  msgstr "Não instalado"
552
 
553
- #: core/core.php:2863
554
  msgid "CURL version"
555
  msgstr "Versão CURL"
556
 
557
- #: core/core.php:2869
558
  msgid "Installed"
559
  msgstr "Instalado"
560
 
561
- #: core/core.php:2882
562
  msgid "You must have either CURL or Snoopy installed for the plugin to work!"
563
  msgstr "Instalação de CURL ou Snoopy necessário para que funcione o plugin!"
564
 
565
- #: core/core.php:2893
566
  msgid "On"
567
  msgstr "Activado"
568
 
569
- #: core/core.php:2894
570
  msgid "Redirects may be detected as broken links when safe_mode is on."
571
  msgstr "Os redirects podem ser detectados como links offline quando o safe_mode está habilitado."
572
 
573
- #: core/core.php:2899
574
- #: core/core.php:2913
575
  msgid "Off"
576
  msgstr "Desactivado"
577
 
578
- #: core/core.php:2907
579
  #, php-format
580
  msgid "On ( %s )"
581
  msgstr "Activado ( %s )"
582
 
583
- #: core/core.php:2908
584
  msgid "Redirects may be detected as broken links when open_basedir is on."
585
  msgstr "Os redirects podem ser considerados links offline quando o open_basedir está activo."
586
 
587
- #: core/core.php:2927
588
  msgid "Can't create a lockfile. Please specify a custom temporary directory."
589
  msgstr "Não foi possível criar um ficheiro. Por favor, especifique um directório temporário personalizado."
590
 
591
- #: core/core.php:2951
592
  msgid "If this value is zero even after several page reloads you have probably encountered a bug."
593
  msgstr "Se este valor é zero depois de recarregar várias provavelmente encontrou um bug."
594
 
595
- #: core/core.php:3007
596
- #, php-format
597
- msgid "[%s] Broken links detected"
598
- msgstr "[%s] Links offline detectados"
599
-
600
- #: core/core.php:3013
601
  #, php-format
602
  msgid "Broken Link Checker has detected %d new broken link on your site."
603
  msgid_plural "Broken Link Checker has detected %d new broken links on your site."
604
  msgstr[0] "Links offline detectou %d novo link sem ligação."
605
  msgstr[1] "Links offline detectou %d novos links sem ligação."
606
 
607
- #: core/core.php:3028
608
  #, php-format
609
  msgid "Here's a list of the first %d broken links:"
610
  msgid_plural "Here's a list of the first %d broken links:"
611
  msgstr[0] "Lista do primeiro %d link sem ligação:"
612
  msgstr[1] "Lista dos primeiros %d links sem ligação:"
613
 
614
- #: core/core.php:3036
615
  msgid "Here's a list of the new broken links: "
616
  msgstr "Novos links offline:"
617
 
618
- #: core/core.php:3048
619
  #, php-format
620
  msgid "Link text : %s"
621
  msgstr "Texto do Link : %s"
622
 
623
- #: core/core.php:3049
624
  #, php-format
625
  msgid "Link URL : <a href=\"%s\">%s</a>"
626
  msgstr "Link URL : <a href=\"%s\">%s</a>"
627
 
628
- #: core/core.php:3050
629
  #, php-format
630
  msgid "Source : %s"
631
  msgstr "Fonte : %s"
632
 
633
- #: core/core.php:3064
634
  msgid "You can see all broken links here:"
635
  msgstr "Links offline:"
636
 
637
- #: core/init.php:230
638
  msgid "Once Weekly"
639
  msgstr "Uma vez por semana"
640
 
641
- #: core/init.php:236
642
  msgid "Twice a Month"
643
  msgstr "Bi-Mensal"
644
 
645
- #: core/init.php:259
646
  msgid "Broken Link Checker installation failed"
647
  msgstr "Opções : Links offline"
648
 
649
- #: includes/any-post.php:384
650
  msgid "Edit"
651
  msgstr "Editar"
652
 
653
- #: includes/any-post.php:392
654
  msgid "Move this item to the Trash"
655
  msgstr "Mover este post para o lixo"
656
 
657
- #: includes/any-post.php:394
658
  msgid "Trash"
659
  msgstr "Lixo"
660
 
661
- #: includes/any-post.php:399
662
  msgid "Delete this item permanently"
663
  msgstr "Apagar este post definitivamente"
664
 
665
- #: includes/any-post.php:401
666
  msgid "Delete"
667
  msgstr "Apagar"
668
 
669
- #: includes/any-post.php:414
670
  #, php-format
671
  msgid "Preview &#8220;%s&#8221;"
672
  msgstr "Prever &#8220;%s&#8221;"
673
 
674
- #: includes/any-post.php:415
675
  msgid "Preview"
676
  msgstr "Pré-visualizar"
677
 
678
- #: includes/any-post.php:422
679
  #, php-format
680
  msgid "View &#8220;%s&#8221;"
681
  msgstr "Visualizar &#8220;%s&#8221;"
682
 
683
- #: includes/any-post.php:423
684
  msgid "View"
685
  msgstr "Ver"
686
 
687
- #: includes/any-post.php:442
688
  msgid "Edit this item"
689
  msgstr "Editar post"
690
 
691
- #: includes/any-post.php:506
692
  msgid "Nothing to update"
693
  msgstr "Sem actualização"
694
 
695
- #: includes/any-post.php:516
696
  #, php-format
697
  msgid "Updating post %d failed"
698
  msgstr "Actualização do post %d falhou"
699
 
700
- #: includes/any-post.php:551
701
  #, php-format
702
  msgid "Failed to delete post \"%s\" (%d)"
703
  msgstr "Erro ao apagar o post \"%s\" (%d)"
704
 
705
- #: includes/any-post.php:570
706
  #, php-format
707
  msgid "Can't move post \"%s\" (%d) to the trash because the trash feature is disabled"
708
  msgstr "Não é possível mover o post \"%s\" (%d) para o lixo porque a função está desabilitada"
709
 
710
- #: includes/any-post.php:590
711
  #, php-format
712
  msgid "Failed to move post \"%s\" (%d) to the trash"
713
  msgstr "Erro ao apagar o post \"%s\" (%d)"
714
 
715
- #: includes/any-post.php:698
716
  #, php-format
717
  msgid "%d post deleted."
718
  msgid_plural "%d posts deleted."
719
  msgstr[0] "%d post apagado."
720
  msgstr[1] "%d posts apagados."
721
 
722
- #: includes/any-post.php:700
723
  #, php-format
724
  msgid "%d page deleted."
725
  msgid_plural "%d pages deleted."
726
  msgstr[0] "%d página apagada."
727
  msgstr[1] "%d páginas apagadas."
728
 
729
- #: includes/any-post.php:702
730
  #, php-format
731
  msgid "%d \"%s\" deleted."
732
  msgid_plural "%d \"%s\" deleted."
733
  msgstr[0] "%d \"%s\" apagado."
734
  msgstr[1] "%d \"%s\" apagados."
735
 
736
- #: includes/any-post.php:721
737
  #, php-format
738
  msgid "%d post moved to the Trash."
739
  msgid_plural "%d posts moved to the Trash."
740
  msgstr[0] "%d post transferido para o lixo."
741
  msgstr[1] "%d posts transferidos para o lixo."
742
 
743
- #: includes/any-post.php:723
744
  #, php-format
745
  msgid "%d page moved to the Trash."
746
  msgid_plural "%d pages moved to the Trash."
747
  msgstr[0] "%d página transferida para o lixo."
748
  msgstr[1] "%d páginas transferidas para o lixo."
749
 
750
- #: includes/any-post.php:725
751
  #, php-format
752
  msgid "%d \"%s\" moved to the Trash."
753
  msgid_plural "%d \"%s\" moved to the Trash."
@@ -761,8 +771,8 @@ msgid_plural "%d '%s' have been deleted"
761
  msgstr[0] "%d '%s' foi apagado"
762
  msgstr[1] "%d '%s' foram apagados"
763
 
764
- #: includes/containers.php:876
765
- #: includes/containers.php:894
766
  #, php-format
767
  msgid "Container type '%s' not recognized"
768
  msgstr "Recipiente tipo '%s' não foi reconhecido"
@@ -876,6 +886,7 @@ msgid "No links found (yet)"
876
  msgstr "Links (0)"
877
 
878
  #: includes/link-query.php:53
 
879
  msgid "Search"
880
  msgstr "Procurar"
881
 
@@ -888,63 +899,63 @@ msgstr "Resultados da procura"
888
  msgid "No links found for your query"
889
  msgstr "Sem resultados"
890
 
891
- #: includes/links.php:213
892
  msgid "The plugin script was terminated while trying to check the link."
893
  msgstr "O script do plugin terminou enquanto tentava verificar o link."
894
 
895
- #: includes/links.php:259
896
  msgid "The plugin doesn't know how to check this type of link."
897
  msgstr "O plugin não consegue verificar este tipo de link."
898
 
899
- #: includes/links.php:347
900
  msgid "Link is valid."
901
  msgstr "Link operacional."
902
 
903
- #: includes/links.php:349
904
  msgid "Link is broken."
905
  msgstr "Link sem ligação."
906
 
907
- #: includes/links.php:562
908
- #: includes/links.php:664
909
- #: includes/links.php:699
910
  msgid "Link is not valid"
911
  msgstr "Link não válido"
912
 
913
- #: includes/links.php:579
914
  msgid "This link can not be edited because it is not used anywhere on this site."
915
  msgstr "Este link não pode ser editado porque não é utilizado em nenhuma parte da página."
916
 
917
- #: includes/links.php:605
918
  msgid "Failed to create a DB entry for the new URL."
919
  msgstr "Falhou a criação de um registro na Base de dados para um novo URL."
920
 
921
- #: includes/links.php:677
922
  msgid "This link is not a redirect"
923
  msgstr "O link não é um redirect"
924
 
925
- #: includes/links.php:726
926
- #: includes/links.php:763
927
  msgid "Couldn't delete the link's database record"
928
  msgstr "Não é possível apagar o registro do link na Base de dados"
929
 
930
- #: includes/links.php:851
931
  msgid "Unknown Error"
932
  msgstr "Erro Desconhecido"
933
 
934
- #: includes/links.php:875
935
  msgid "Not checked"
936
  msgstr "Não verificado"
937
 
938
- #: includes/links.php:878
939
  msgid "False positive"
940
  msgstr "Falso postivo"
941
 
942
- #: includes/parsers.php:106
943
  #, php-format
944
  msgid "Editing is not implemented in the '%s' parser"
945
  msgstr "Edição não implementada no '%s' analizador sintáctico"
946
 
947
- #: includes/parsers.php:121
948
  #, php-format
949
  msgid "Unlinking is not implemented in the '%s' parser"
950
  msgstr "Remover links não foi implementado no '%s' analizador sintáctico"
@@ -960,8 +971,7 @@ msgid "Wait..."
960
  msgstr "Espere ..."
961
 
962
  #: includes/admin/links-page-js.php:99
963
- #: includes/admin/table-printer.php:531
964
- #: includes/admin/table-printer.php:621
965
  msgid "Not broken"
966
  msgstr "Funcional"
967
 
@@ -999,9 +1009,8 @@ msgid "The plugin failed to remove the link."
999
  msgstr "O plugin não removeu o link."
1000
 
1001
  #: includes/admin/links-page-js.php:361
1002
- #: includes/admin/table-printer.php:250
1003
- #: includes/admin/table-printer.php:525
1004
- #: includes/admin/table-printer.php:615
1005
  msgid "Unlink"
1006
  msgstr "Remover link"
1007
 
@@ -1026,7 +1035,7 @@ msgstr ""
1026
  "Esta acção não pode ser anulada.\n"
1027
  "'Cancelar' para anular a operação, 'Aceitar' para apagar"
1028
 
1029
- #: includes/admin/links-page-js.php:448
1030
  msgid ""
1031
  "Are you sure you want to remove the selected links? This action can't be undone.\n"
1032
  "'Cancel' to stop, 'OK' to remove"
@@ -1035,6 +1044,14 @@ msgstr ""
1035
  "Esta acção não pode ser anulada.\n"
1036
  "'Cancelar' para anular a operação, 'Aceitar' para apagar"
1037
 
 
 
 
 
 
 
 
 
1038
  #: includes/admin/options-page-js.php:54
1039
  msgid "Hide debug info"
1040
  msgstr "Ocultar informação"
@@ -1052,13 +1069,12 @@ msgid "Link text"
1052
  msgstr "Texto do link"
1053
 
1054
  #: includes/admin/search-form.php:45
1055
- #: includes/admin/table-printer.php:177
1056
- #: includes/admin/table-printer.php:187
1057
  msgid "URL"
1058
  msgstr "URL"
1059
 
1060
  #: includes/admin/search-form.php:48
1061
- #: includes/admin/table-printer.php:423
1062
  msgid "HTTP code"
1063
  msgstr "Código HTTP"
1064
 
@@ -1083,163 +1099,180 @@ msgstr "Links utilizados em"
1083
  msgid "Search Links"
1084
  msgstr "Procurar"
1085
 
1086
- #: includes/admin/table-printer.php:148
 
 
 
 
 
 
 
1087
  msgid "Compact View"
1088
  msgstr "Visão compacta"
1089
 
1090
- #: includes/admin/table-printer.php:149
1091
  msgid "Detailed View"
1092
  msgstr "Detalhes"
1093
 
1094
- #: includes/admin/table-printer.php:166
1095
- #: includes/admin/table-printer.php:192
1096
  msgid "Source"
1097
  msgstr "Fonte"
1098
 
1099
- #: includes/admin/table-printer.php:172
1100
- #: includes/admin/table-printer.php:198
1101
  msgid "Link Text"
1102
  msgstr "Texto do Link"
1103
 
1104
- #: includes/admin/table-printer.php:246
1105
  msgid "Bulk Actions"
1106
  msgstr "Edição em Massa"
1107
 
1108
- #: includes/admin/table-printer.php:247
 
 
 
 
 
1109
  msgid "Recheck"
1110
  msgstr "Voltar a verificar"
1111
 
1112
- #: includes/admin/table-printer.php:248
1113
  msgid "Fix redirects"
1114
  msgstr "Reparar redirects"
1115
 
1116
- #: includes/admin/table-printer.php:249
1117
  msgid "Mark as not broken"
1118
  msgstr "Funcional"
1119
 
1120
- #: includes/admin/table-printer.php:253
1121
  msgid "Move sources to Trash"
1122
  msgstr "Mover este post para o lixo"
1123
 
1124
- #: includes/admin/table-printer.php:255
1125
  msgid "Delete sources"
1126
  msgstr "Apagar fontes"
1127
 
1128
- #: includes/admin/table-printer.php:270
1129
  msgid "&laquo;"
1130
  msgstr "&laquo;"
1131
 
1132
- #: includes/admin/table-printer.php:271
1133
  msgid "&raquo;"
1134
  msgstr "&raquo;"
1135
 
1136
- #: includes/admin/table-printer.php:279
1137
  #, php-format
1138
  msgid "Displaying %s&#8211;%s of <span class=\"current-link-count\">%s</span>"
1139
  msgstr "Mostrando %s&#8211;%s de <span class=\"current-link-count\">%s</span>"
1140
 
1141
- #: includes/admin/table-printer.php:408
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1142
  msgid "Post published on"
1143
  msgstr "Post publicado em"
1144
 
1145
- #: includes/admin/table-printer.php:413
1146
  msgid "Link last checked"
1147
  msgstr "Última verificação"
1148
 
1149
- #: includes/admin/table-printer.php:417
1150
  msgid "Never"
1151
  msgstr "Nunca"
1152
 
1153
- #: includes/admin/table-printer.php:428
1154
  msgid "Response time"
1155
  msgstr "Tempo de resposta"
1156
 
1157
- #: includes/admin/table-printer.php:430
1158
  #, php-format
1159
  msgid "%2.3f seconds"
1160
  msgstr "%2.3f segundos"
1161
 
1162
- #: includes/admin/table-printer.php:433
1163
  msgid "Final URL"
1164
  msgstr "URL final"
1165
 
1166
- #: includes/admin/table-printer.php:438
1167
  msgid "Redirect count"
1168
  msgstr "Contagem de redirects"
1169
 
1170
- #: includes/admin/table-printer.php:443
1171
  msgid "Instance count"
1172
  msgstr "Contagem de casos"
1173
 
1174
- #: includes/admin/table-printer.php:452
1175
  #, php-format
1176
  msgid "This link has failed %d time."
1177
  msgid_plural "This link has failed %d times."
1178
  msgstr[0] "Este link falhou %d vez."
1179
  msgstr[1] "Este link falhou %d vezes."
1180
 
1181
- #: includes/admin/table-printer.php:460
1182
  #, php-format
1183
  msgid "This link has been broken for %s."
1184
  msgstr "Link offline durante %s."
1185
 
1186
- #: includes/admin/table-printer.php:471
1187
  msgid "Log"
1188
  msgstr "Registro"
1189
 
1190
- #: includes/admin/table-printer.php:507
1191
- #: includes/admin/table-printer.php:658
1192
- msgid "[An orphaned link! This is a bug.]"
1193
- msgstr "[Um link orfão! Bug.]"
1194
-
1195
- #: includes/admin/table-printer.php:522
1196
- #: includes/admin/table-printer.php:558
1197
  msgid "Show more info about this link"
1198
  msgstr "Mostrar mais informação sobre este link"
1199
 
1200
- #: includes/admin/table-printer.php:524
1201
- #: includes/admin/table-printer.php:614
1202
- msgid "Remove this link from all posts"
1203
- msgstr "Eliminar este link"
1204
 
1205
- #: includes/admin/table-printer.php:530
1206
- #: includes/admin/table-printer.php:620
1207
- msgid "Remove this link from the list of broken links and mark it as valid"
1208
- msgstr "Eliminar este link da lista dos links offline e marca-lo como válido"
1209
 
1210
- #: includes/admin/table-printer.php:535
1211
- #: includes/admin/table-printer.php:612
1212
  msgid "Edit link URL"
1213
  msgstr "Editar URL do link"
1214
 
1215
- #: includes/admin/table-printer.php:535
1216
- #: includes/admin/table-printer.php:612
1217
- msgid "Edit URL"
1218
- msgstr "Editar URL"
1219
 
1220
- #: includes/admin/table-printer.php:541
1221
- #: includes/admin/table-printer.php:629
 
 
 
1222
  msgid "Cancel URL editing"
1223
  msgstr "Cancelar a edição do URL"
1224
 
1225
- #: includes/admin/table-printer.php:541
1226
- #: includes/admin/table-printer.php:629
1227
- #: includes/admin/table-printer.php:635
1228
- msgid "Cancel"
1229
- msgstr "Cancelar"
1230
-
1231
- #: includes/admin/table-printer.php:576
1232
- msgid "Checked"
1233
- msgstr "Verificado"
1234
-
1235
- #: includes/admin/table-printer.php:592
1236
- msgid "Broken for"
1237
- msgstr "Offline"
1238
-
1239
- #: includes/admin/table-printer.php:636
1240
  msgid "Update URL"
1241
  msgstr "Actualizar URL"
1242
 
 
 
 
 
1243
  #: modules/checkers/http.php:242
1244
  msgid "Server Not Found"
1245
  msgstr "Servidor Não Encontrado"
@@ -1303,8 +1336,8 @@ msgstr "Não foi possível eliminar o link blogroll \"%s\" (%d)"
1303
  #, php-format
1304
  msgid "%d blogroll link deleted."
1305
  msgid_plural "%d blogroll links deleted."
1306
- msgstr[0] "%d link blogroll apagado"
1307
- msgstr[1] "%d links blogroll apagados"
1308
 
1309
  #: modules/containers/comment.php:53
1310
  #, php-format
@@ -1333,19 +1366,19 @@ msgstr "Ver comentário"
1333
  msgid "Comment"
1334
  msgstr "Comentário"
1335
 
1336
- #: modules/containers/comment.php:360
1337
  #, php-format
1338
  msgid "%d comment has been deleted."
1339
  msgid_plural "%d comments have been deleted."
1340
  msgstr[0] "%d comentário foi apagado."
1341
  msgstr[1] "%d comentários foram apagados."
1342
 
1343
- #: modules/containers/comment.php:379
1344
  #, php-format
1345
- msgid "%d comment moved to the trash."
1346
- msgid_plural "%d comments moved to the trash."
1347
- msgstr[0] "%d comentário movido para o lixo."
1348
- msgstr[1] "%d comentários movidos para o lixo."
1349
 
1350
  #: modules/containers/custom_field.php:84
1351
  #, php-format
@@ -1382,33 +1415,33 @@ msgstr "Vídeo DailyMotion embutido"
1382
 
1383
  #: modules/extras/embed-parser-base.php:140
1384
  msgid "Embedded videos can't be edited using Broken Link Checker. Please edit or replace the video in question manually."
1385
- msgstr "Vídeos embutidos não podem ser editados utilizando o Verificador de Links offline. Por favor, edite ou substitua o vídeo manualmente."
1386
 
1387
  #: modules/extras/mediafire.php:92
1388
  #: modules/extras/megaupload.php:110
1389
  #: modules/extras/rapidshare.php:143
1390
  msgid "Not Found"
1391
- msgstr "Não encontrado"
1392
 
1393
  #: modules/extras/megaupload.php:117
1394
  msgid "File Temporarily Unavailable"
1395
- msgstr "Ficheiro temporariamente indisponível"
1396
 
1397
  #: modules/extras/megaupload.php:123
1398
  msgid "API Error"
1399
- msgstr "Erro API "
1400
 
1401
  #: modules/extras/rapidshare.php:162
1402
  msgid "RS Server Down"
1403
- msgstr "RS Servidor Desligado"
1404
 
1405
  #: modules/extras/rapidshare.php:169
1406
  msgid "File Blocked"
1407
- msgstr "Ficheiro bloqueado"
1408
 
1409
  #: modules/extras/rapidshare.php:176
1410
  msgid "File Locked"
1411
- msgstr "Ficheiro bloqueado"
1412
 
1413
  #: modules/extras/rapidshare.php:187
1414
  #, php-format
@@ -1418,7 +1451,7 @@ msgstr "Rapidshare : %s"
1418
  #: modules/extras/rapidshare.php:193
1419
  #, php-format
1420
  msgid "RapidShare API error: %s"
1421
- msgstr "RapidShare API erro: %s"
1422
 
1423
  #: modules/extras/vimeo-embed.php:25
1424
  msgid "Vimeo Video"
@@ -1426,7 +1459,7 @@ msgstr "Vídeo Vimeo"
1426
 
1427
  #: modules/extras/vimeo-embed.php:26
1428
  msgid "Embedded Vimeo video"
1429
- msgstr "Vídeo Viemo embutido"
1430
 
1431
  #: modules/extras/youtube-embed.php:23
1432
  msgid "YouTube Video"
@@ -1443,28 +1476,28 @@ msgstr "Vídeo Não Encontrado"
1443
 
1444
  #: modules/extras/youtube.php:75
1445
  msgid "Video Removed"
1446
- msgstr "Vídeo apagado"
1447
 
1448
  #: modules/extras/youtube.php:83
1449
  msgid "Invalid Video ID"
1450
- msgstr "Vídeo ID inválido"
1451
 
1452
  #: modules/extras/youtube.php:95
1453
  msgid "Video OK"
1454
- msgstr "Vídeo OK"
1455
 
1456
  #: modules/extras/youtube.php:109
1457
  #, php-format
1458
  msgid "Video status : %s%s"
1459
- msgstr "Estado do vídeo : %s%s"
1460
 
1461
  #: modules/extras/youtube.php:128
1462
  msgid "Video Restricted"
1463
- msgstr "Vídeo Restringido"
1464
 
1465
  #: modules/extras/youtube.php:145
1466
  msgid "Unknown YouTube API response received."
1467
- msgstr "Resposta YouTube API desconhecida."
1468
 
1469
  #: modules/parsers/image.php:156
1470
  msgid "Image"
@@ -1474,7 +1507,9 @@ msgstr "Imagem"
1474
  msgid "Custom field"
1475
  msgstr "Campo personalizado"
1476
 
1477
- #. Description of the plugin/theme
1478
- msgid "Checks your blog for broken links and missing images and notifies you on the dashboard if any are found."
1479
- msgstr "Verifica o blog procurando os links e imagens em falta, informa no Painel do WordPress os resultados da verificação."
1480
-
 
 
1
+ # Translation of the WordPress plugin Broken Link Checker Pro 1.2 by Janis Elsts.
2
  # Copyright (C) 2010 Janis Elsts
3
  # This file is distributed under the same license as the Broken Link Checker package.
4
+ # Tradução em português pt_PT do plugin Broken Link Checker Pro 1.2 - 8/11/2010
5
  # Autor: PedroDM - <pm[at]mowster[dot]net>
6
  # Website: http://jobs.mowster.net/ - <jobs@mowster.net>
7
  #
9
  msgstr ""
10
  "Project-Id-Version: Broken Link Checker PT\n"
11
  "Report-Msgid-Bugs-To: \n"
12
+ "POT-Creation-Date: 2010-11-07 19:35-0000\n"
13
  "PO-Revision-Date: \n"
14
  "Last-Translator: \n"
15
  "Language-Team: MwJobs | http://jobs.mowster.net <jobs@mowster.net>\n"
36
  msgid "Automatically expand the widget if broken links have been detected"
37
  msgstr "Expandir automaticamente a caixa se existirem links offline"
38
 
39
+ #: core/core.php:343
40
  msgid "Link Checker Settings"
41
  msgstr "Definições do Links offline"
42
 
43
+ #: core/core.php:344
44
  msgid "Link Checker"
45
  msgstr "Links offline"
46
 
47
+ #: core/core.php:349
 
48
  msgid "Broken Links"
49
  msgstr "Links offline"
50
 
51
+ #: core/core.php:365
52
  msgid "View Broken Links"
53
  msgstr "Ver Links offline"
54
 
55
+ #: core/core.php:393
56
  msgid "Settings"
57
  msgstr "Definições"
58
 
59
+ #: core/core.php:405
60
+ #: core/core.php:1187
61
  #, php-format
62
  msgid "Error: The plugin's database tables are not up to date! (Current version : %d, expected : %d)"
63
  msgstr "Erro: As tabelas do plugin na Base de dados não estão actualizadas! (Versão actual : %d, obrigatória : %d)"
64
 
65
+ #: core/core.php:544
66
  msgid "Settings saved."
67
  msgstr "Definições guardadas."
68
 
69
+ #: core/core.php:551
70
  msgid "Complete site recheck started."
71
  msgstr "Re-verificação completa do sitío iniciada."
72
 
73
+ #: core/core.php:565
74
+ #: core/core.php:2745
75
  msgid "Details"
76
  msgstr "Detalhes"
77
 
78
+ #: core/core.php:579
79
  msgid "General"
80
  msgstr "Geral"
81
 
82
+ #: core/core.php:580
83
  msgid "Look For Links In"
84
  msgstr "Procurar links"
85
 
86
+ #: core/core.php:581
87
  msgid "Which Links To Check"
88
  msgstr "Links para verificar"
89
 
90
+ #: core/core.php:582
91
  msgid "Protocols & APIs"
92
  msgstr "Protocolos & APIs"
93
 
94
+ #: core/core.php:583
95
  msgid "Advanced"
96
  msgstr "Avançado"
97
 
98
+ #: core/core.php:587
99
  msgid "Broken Link Checker Options"
100
  msgstr "Opções : Links offline"
101
 
102
+ #: core/core.php:613
103
  msgid "Status"
104
  msgstr "Estado"
105
 
106
+ #: core/core.php:615
107
  msgid "Show debug info"
108
  msgstr "Mostrar sistema"
109
 
110
+ #: core/core.php:643
111
  msgid "Check each link"
112
  msgstr "Verificar cada link"
113
 
114
+ #: core/core.php:648
115
  #, php-format
116
  msgid "Every %s hours"
117
  msgstr "Cada %s horas"
118
 
119
+ #: core/core.php:657
120
  msgid "Existing links will be checked this often. New links will usually be checked ASAP."
121
  msgstr "Os links existentes serão verificados com esta frequência. Os novos links comprovados logo que possível."
122
 
123
+ #: core/core.php:664
124
  msgid "E-mail notifications"
125
  msgstr "Notificações por e-mail"
126
 
127
+ #: core/core.php:670
128
  msgid "Send me e-mail notifications about newly detected broken links"
129
  msgstr "Enviar um e-mail notificando sobre os novos links offline detectados"
130
 
131
+ #: core/core.php:677
132
  msgid "Link tweaks"
133
  msgstr "Links puxados"
134
 
135
+ #: core/core.php:683
136
  msgid "Apply custom formatting to broken links"
137
  msgstr "Aplicar formatação personalizada para os links offline"
138
 
139
+ #: core/core.php:687
140
+ #: core/core.php:715
141
  msgid "Edit CSS"
142
  msgstr "Editar CSS"
143
 
144
+ #: core/core.php:711
145
  msgid "Apply custom formatting to removed links"
146
  msgstr "Aplicar formatação personalizada para os links removidos"
147
 
148
+ #: core/core.php:739
149
  msgid "Stop search engines from following broken links"
150
  msgstr "Não permitir aos motores de busca seguir os links offline"
151
 
152
+ #: core/core.php:756
153
  msgid "Look for links in"
154
  msgstr "Procurar links em"
155
 
156
+ #: core/core.php:767
157
  msgid "Post statuses"
158
  msgstr "Estado do Post"
159
 
160
+ #: core/core.php:800
161
  msgid "Link types"
162
  msgstr "Tipos de link"
163
 
164
+ #: core/core.php:806
165
  msgid "Error : All link parsers missing!"
166
  msgstr "Erro: Análises aos links não encontradas!"
167
 
168
+ #: core/core.php:813
169
  msgid "Exclusion list"
170
  msgstr "Lista de exclusão"
171
 
172
+ #: core/core.php:814
173
  msgid "Don't check links where the URL contains any of these words (one per line) :"
174
  msgstr "Não verificar links que a URL tenha alguma destas palavras (uma por linha):"
175
 
176
+ #: core/core.php:832
177
  msgid "Check links using"
178
  msgstr "Verificar links utilizados"
179
 
180
+ #: core/core.php:851
 
181
  msgid "Timeout"
182
  msgstr "Intervalo"
183
 
184
+ #: core/core.php:857
185
+ #: core/core.php:903
186
+ #: core/core.php:2872
187
  #, php-format
188
  msgid "%s seconds"
189
  msgstr "%s segundos"
190
 
191
+ #: core/core.php:866
192
  msgid "Links that take longer than this to load will be marked as broken."
193
  msgstr "Os links que demoram mais que este tempo a abrir serão marcados como offline."
194
 
195
+ #: core/core.php:873
196
  msgid "Link monitor"
197
  msgstr "Monitor de links"
198
 
199
+ #: core/core.php:881
200
  msgid "Run continuously while the Dashboard is open"
201
  msgstr "Executar continuamente enquanto o Painel do WordPress está aberto"
202
 
203
+ #: core/core.php:889
204
  msgid "Run hourly in the background"
205
  msgstr "Executar a cada hora em segundo plano"
206
 
207
+ #: core/core.php:897
208
  msgid "Max. execution time"
209
  msgstr "Tempo máximo de execução"
210
 
211
+ #: core/core.php:914
212
  msgid "The plugin works by periodically launching a background job that parses your posts for links, checks the discovered URLs, and performs other time-consuming tasks. Here you can set for how long, at most, the link monitor may run each time before stopping."
213
  msgstr "O plugin funciona executando periodicamente uma tarefa em segundo plano que analiza os links, verifica os URL encontrados e realiza outras tarefas que consomem tempo. Aqui pode-se estabelecer a duração máxima cada vez que o monitor de links é executado antes de parar."
214
 
215
+ #: core/core.php:924
216
  msgid "Custom temporary directory"
217
  msgstr "Pasta temporária personalizada"
218
 
219
+ #: core/core.php:933
 
220
  msgid "OK"
221
  msgstr "Aceitar"
222
 
223
+ #: core/core.php:936
224
  msgid "Error : This directory isn't writable by PHP."
225
  msgstr "Erro: PHP não pode escrever nesse directório."
226
 
227
+ #: core/core.php:941
228
  msgid "Error : This directory doesn't exist."
229
  msgstr "Erro: Não existe esse directório."
230
 
231
+ #: core/core.php:949
232
  msgid "Set this field if you want the plugin to use a custom directory for its lockfiles. Otherwise, leave it blank."
233
  msgstr "Preencha este campo se deseja que o plugin utilize um directório personalizado para seus ficheiros temporários. Caso contrário, deixa-lo em branco."
234
 
235
+ #: core/core.php:956
236
  msgid "Server load limit"
237
  msgstr "Limite de carregamento do servidor"
238
 
239
+ #: core/core.php:971
240
+ #, php-format
241
+ msgid "Current load : %s"
242
+ msgstr "Carga actual : %s"
243
+
244
+ #: core/core.php:977
245
  #, php-format
246
  msgid "Link checking will be suspended if the average <a href=\"%s\">server load</a> rises above this number. Leave this field blank to disable load limiting."
247
  msgstr "A verificação dos links será suspensa se a média do <a href=\"%s\">carregamento do servidor</a> passa este valor. Deixar o campo em branco para não existir limite."
248
 
249
+ #: core/core.php:985
250
  msgid "Not available"
251
  msgstr "Não disponível"
252
 
253
+ #: core/core.php:987
254
  msgid "Load limiting only works on Linux-like systems where <code>/proc/loadavg</code> is present and accessible."
255
  msgstr "O limite de carregamento somente funciona em sistemas Linux onde <code>/proc/loadavg</code> está presente e acessível."
256
 
257
+ #: core/core.php:995
258
  msgid "Forced recheck"
259
  msgstr "Re-verificação forçada"
260
 
261
+ #: core/core.php:998
262
  msgid "Re-check all pages"
263
  msgstr "Verificar de novo todas as páginas"
264
 
265
+ #: core/core.php:1002
266
  msgid "The \"Nuclear Option\". Click this button to make the plugin empty its link database and recheck the entire site from scratch."
267
  msgstr "\"Opção Nuclear\". Clique para limpar todos os dados do plugin na base de dados do plugin e re-verificar todo o sítio desde o início."
268
 
269
+ #: core/core.php:1013
270
  msgid "Save Changes"
271
  msgstr "Guardar alterações"
272
 
273
+ #: core/core.php:1058
274
  msgid "Configure"
275
  msgstr "Configurar"
276
 
277
+ #: core/core.php:1118
278
  msgid "Upgrade to Pro to enable this feature"
279
  msgstr "Actualizar para Pro para aceder a esta função"
280
 
281
+ #: core/core.php:1153
282
  msgid "Check URLs entered in these custom fields (one per line) :"
283
  msgstr "Verificar as seguintes URL personalizadas (uma por linha):"
284
 
285
+ #: core/core.php:1287
286
+ #: core/core.php:1371
287
+ #: core/core.php:1403
288
  #, php-format
289
  msgid "Database error : %s"
290
  msgstr "Erro na Base de dados: %s"
291
 
292
+ #: core/core.php:1353
293
  msgid "You must enter a filter name!"
294
  msgstr "Deve introduzir um nome para o filtro!"
295
 
296
+ #: core/core.php:1357
297
  msgid "Invalid search query."
298
  msgstr "Procura inválida."
299
 
300
+ #: core/core.php:1366
301
  #, php-format
302
  msgid "Filter \"%s\" created"
303
  msgstr "Filtro \"%s\" criado"
304
 
305
+ #: core/core.php:1393
306
  msgid "Filter ID not specified."
307
  msgstr "ID do Filtro não especificado."
308
 
309
+ #: core/core.php:1400
310
  msgid "Filter deleted"
311
  msgstr "Filtro eliminado"
312
 
313
+ #: core/core.php:1448
314
  #, php-format
315
  msgid "Replaced %d redirect with a direct link"
316
  msgid_plural "Replaced %d redirects with direct links"
317
  msgstr[0] "Substituído %d redirect com link directo"
318
  msgstr[1] "Substituídos %d redirects com links directos"
319
 
320
+ #: core/core.php:1459
321
  #, php-format
322
  msgid "Failed to fix %d redirect"
323
  msgid_plural "Failed to fix %d redirects"
324
  msgstr[0] "Não foi possível reparar %d redirect"
325
  msgstr[1] "Não foi possível reparar %d redirects"
326
 
327
+ #: core/core.php:1469
328
  msgid "None of the selected links are redirects!"
329
  msgstr "Nenhum dos links seleccionados são redirects!"
330
 
331
+ #: core/core.php:1548
332
+ #, php-format
333
+ msgid "%d link updated."
334
+ msgid_plural "%d links updated."
335
+ msgstr[0] "%d link actualizado."
336
+ msgstr[1] "%d links actualizados."
337
+
338
+ #: core/core.php:1559
339
+ #, php-format
340
+ msgid "Failed to update %d link."
341
+ msgid_plural "Failed to update %d links."
342
+ msgstr[0] "Erro a actualizar %d link."
343
+ msgstr[1] "Erro a actualizar %d links."
344
+
345
+ #: core/core.php:1613
346
  #, php-format
347
  msgid "%d link removed"
348
  msgid_plural "%d links removed"
349
  msgstr[0] "%d link eliminado"
350
  msgstr[1] "%d links eliminados"
351
 
352
+ #: core/core.php:1624
353
  #, php-format
354
  msgid "Failed to remove %d link"
355
  msgid_plural "Failed to remove %d links"
356
  msgstr[0] "Erro a remover %d link"
357
  msgstr[1] "Erro a remover %d links"
358
 
359
+ #: core/core.php:1733
360
  #, php-format
361
  msgid "%d item was skipped because it can't be moved to the Trash. You need to delete it manually."
362
  msgid_plural "%d items were skipped because they can't be moved to the Trash. You need to delete them manually."
363
  msgstr[0] "%d item foi evitado porque não pode ser movido para o lixo. Necessita de efectua-lo manualmente."
364
  msgstr[1] "%d itens foram evitados porque não podem ser movidos para o lixo. Necessita de efectua-lo manualmente."
365
 
366
+ #: core/core.php:1754
367
  msgid "Didn't find anything to delete!"
368
  msgstr "Não foi encontrado nada para apagar!"
369
 
370
+ #: core/core.php:1782
371
  #, php-format
372
  msgid "%d link scheduled for rechecking"
373
  msgid_plural "%d links scheduled for rechecking"
374
  msgstr[0] "%d link agendado para verificação"
375
  msgstr[1] "%d links agendados para verificação"
376
 
377
+ #: core/core.php:1827
378
+ #: core/core.php:2432
379
  msgid "This link was manually marked as working by the user."
380
  msgstr "Este link foi marcado manualmente como válido por outro utilizador."
381
 
382
+ #: core/core.php:1834
383
  #, php-format
384
  msgid "Couldn't modify link %d"
385
  msgstr "Oops, impossível modificar o link %d"
386
 
387
+ #: core/core.php:1845
388
  #, php-format
389
  msgid "%d link marked as not broken"
390
  msgid_plural "%d links marked as not broken"
391
  msgstr[0] "%d link marcado como funcional"
392
  msgstr[1] "%d links marcados como funcionais"
393
 
394
+ #: core/core.php:1885
395
  msgid "Table columns"
396
  msgstr "Colunas da Tabela"
397
 
398
+ #: core/core.php:1904
399
  msgid "Show on screen"
400
  msgstr "Mostrar no ecrán"
401
 
402
+ #: core/core.php:1911
403
  msgid "links"
404
  msgstr "links"
405
 
406
+ #: core/core.php:1912
407
  msgid "Apply"
408
  msgstr "Aplicar"
409
 
410
+ #: core/core.php:1916
411
  msgid "Misc"
412
  msgstr "Vários"
413
 
414
+ #: core/core.php:1931
415
  #, php-format
416
  msgid "Highlight links broken for at least %s days"
417
  msgstr "Sublinhar links offline pelo menos por %s dias"
418
 
419
+ #: core/core.php:1940
420
  msgid "Color-code status codes"
421
  msgstr "Cor-código status códigos"
422
 
423
+ #: core/core.php:1957
424
+ #: core/core.php:2417
425
+ #: core/core.php:2453
426
+ #: core/core.php:2516
427
  msgid "You're not allowed to do that!"
428
  msgstr "Não permitido!"
429
 
430
+ #: core/core.php:2298
431
  msgid "View broken links"
432
  msgstr "Ver links offline"
433
 
434
+ #: core/core.php:2299
435
  #, php-format
436
  msgid "Found %d broken link"
437
  msgid_plural "Found %d broken links"
438
  msgstr[0] "Encontrado %d Link offline"
439
  msgstr[1] "Encontrados %d Links offline"
440
 
441
+ #: core/core.php:2305
442
  msgid "No broken links found."
443
  msgstr "Não existem links offline."
444
 
445
+ #: core/core.php:2312
446
  #, php-format
447
  msgid "%d URL in the work queue"
448
  msgid_plural "%d URLs in the work queue"
449
  msgstr[0] "%d URL em espera"
450
  msgstr[1] "%d URLs em espera"
451
 
452
+ #: core/core.php:2315
453
  msgid "No URLs in the work queue."
454
  msgstr "Não existem URL em espera para verificação."
455
 
456
+ #: core/core.php:2321
457
  #, php-format
458
  msgid "Detected %d unique URL"
459
  msgid_plural "Detected %d unique URLs"
460
  msgstr[0] "Detectada %d URL única"
461
  msgstr[1] "Detectadas %d URL únicas"
462
 
463
+ #: core/core.php:2322
464
  #, php-format
465
  msgid "in %d link"
466
  msgid_plural "in %d links"
467
  msgstr[0] "em %d link"
468
  msgstr[1] "em %d links"
469
 
470
+ #: core/core.php:2327
471
  msgid "and still searching..."
472
+ msgstr "e procurando..."
473
 
474
+ #: core/core.php:2333
475
  msgid "Searching your blog for links..."
476
  msgstr "Procurando links..."
477
 
478
+ #: core/core.php:2335
479
+ msgid "[%s] Broken links detected"
480
+ msgstr "[%s] Links offline encontrados"
481
 
482
+ #: core/core.php:2361
 
483
  msgid "Unknown"
484
  msgstr "Desconhecido"
485
 
486
+ #: core/core.php:2425
487
+ #: core/core.php:2463
488
+ #: core/core.php:2526
489
  #, php-format
490
  msgid "Oops, I can't find the link %d"
491
  msgstr "Oops, não é possível encontrar o link %d"
492
 
493
+ #: core/core.php:2438
494
  msgid "Oops, couldn't modify the link!"
495
  msgstr "Oops, não é possível modificar o link!"
496
 
497
+ #: core/core.php:2441
498
+ #: core/core.php:2552
499
  msgid "Error : link_id not specified"
500
  msgstr "Erro: link_id não especificado"
501
 
502
+ #: core/core.php:2473
503
  msgid "Oops, the new URL is invalid!"
504
  msgstr "Oops, a nova URL não é válida"
505
 
506
+ #: core/core.php:2484
507
+ #: core/core.php:2535
508
  msgid "An unexpected error occured!"
509
  msgstr "Ocorreu um erro inesperado!"
510
 
511
+ #: core/core.php:2502
512
  msgid "Error : link_id or new_url not specified"
513
  msgstr "Erro: link_id ou new_url não especificado"
514
 
515
+ #: core/core.php:2561
516
  msgid "You don't have sufficient privileges to access this information!"
517
  msgstr "Não tem previlégios suficientes para aceder a esta informação!"
518
 
519
+ #: core/core.php:2574
520
  msgid "Error : link ID not specified"
521
  msgstr "Erro: link ID não especificado"
522
 
523
+ #: core/core.php:2588
524
  #, php-format
525
  msgid "Failed to load link details (%s)"
526
  msgstr "Erro a carregar os detalhes do link (%s)"
527
 
528
+ #: core/core.php:2717
529
  msgid "Broken Link Checker"
530
  msgstr "Links offline"
531
 
532
+ #: core/core.php:2731
533
  #, php-format
534
  msgid "The current temporary directory is not accessible; please <a href=\"%s\">set a different one</a>."
535
  msgstr "O directório temporário não está acessível; por favor, <a href=\"%s\">especifique um diferente</a>."
536
 
537
+ #: core/core.php:2736
538
  #, php-format
539
  msgid "Please make the directory <code>%1$s</code> writable by plugins or <a href=\"%2$s\">set a custom temporary directory</a>."
540
  msgstr "Por favor, deve permitir que os plugins possam gravar dados no directório <code>%1$s</code> ou <a href=\"%2$s\">especificar um directório temporário personalizado</a>."
541
 
542
+ #: core/core.php:2743
543
  msgid "Broken Link Checker can't create a lockfile."
544
  msgstr "Links offline não pode criar um ficheiro temporário."
545
 
546
+ #: core/core.php:2748
547
  msgid "The plugin uses a file-based locking mechanism to ensure that only one instance of the resource-heavy link checking algorithm is running at any given time. Unfortunately, BLC can't find a writable directory where it could store the lockfile - it failed to detect the location of your server's temporary directory, and the plugin's own directory isn't writable by PHP. To fix this problem, please make the plugin's directory writable or enter a specify a custom temporary directory in the plugin's settings."
548
  msgstr "Este plugin utiliza um sistema de bloqueio de ficheiros para garantir que somente se executa uma instância do algoritmo de verificação de links num momento determinado, uma vez que consome bastantes recursos. Infelizmente, o plugin não pode encontrar um directório que possa armazenar um ficheiro temporário - erro ao detectar a localização do directório temporário no servidor, assim como o própio directório do plugin não permite a escrita pelo PHP. Para resolver, terá que dar permissões de escrita ao directório ou especificar um directório temporário na configuração do plugin."
549
 
550
+ #: core/core.php:2767
551
  msgid "PHP version"
552
  msgstr "Versão PHP"
553
 
554
+ #: core/core.php:2773
555
  msgid "MySQL version"
556
  msgstr "Versão MySQL"
557
 
558
+ #: core/core.php:2786
559
  msgid "You have an old version of CURL. Redirect detection may not work properly."
560
  msgstr "Versão de CURL obsoleta. A detecção de redirects pode não funcionar correctamente."
561
 
562
+ #: core/core.php:2798
563
+ #: core/core.php:2814
564
+ #: core/core.php:2819
565
  msgid "Not installed"
566
  msgstr "Não instalado"
567
 
568
+ #: core/core.php:2801
569
  msgid "CURL version"
570
  msgstr "Versão CURL"
571
 
572
+ #: core/core.php:2807
573
  msgid "Installed"
574
  msgstr "Instalado"
575
 
576
+ #: core/core.php:2820
577
  msgid "You must have either CURL or Snoopy installed for the plugin to work!"
578
  msgstr "Instalação de CURL ou Snoopy necessário para que funcione o plugin!"
579
 
580
+ #: core/core.php:2831
581
  msgid "On"
582
  msgstr "Activado"
583
 
584
+ #: core/core.php:2832
585
  msgid "Redirects may be detected as broken links when safe_mode is on."
586
  msgstr "Os redirects podem ser detectados como links offline quando o safe_mode está habilitado."
587
 
588
+ #: core/core.php:2837
589
+ #: core/core.php:2851
590
  msgid "Off"
591
  msgstr "Desactivado"
592
 
593
+ #: core/core.php:2845
594
  #, php-format
595
  msgid "On ( %s )"
596
  msgstr "Activado ( %s )"
597
 
598
+ #: core/core.php:2846
599
  msgid "Redirects may be detected as broken links when open_basedir is on."
600
  msgstr "Os redirects podem ser considerados links offline quando o open_basedir está activo."
601
 
602
+ #: core/core.php:2865
603
  msgid "Can't create a lockfile. Please specify a custom temporary directory."
604
  msgstr "Não foi possível criar um ficheiro. Por favor, especifique um directório temporário personalizado."
605
 
606
+ #: core/core.php:2889
607
  msgid "If this value is zero even after several page reloads you have probably encountered a bug."
608
  msgstr "Se este valor é zero depois de recarregar várias provavelmente encontrou um bug."
609
 
610
+ #: core/core.php:2960
 
 
 
 
 
611
  #, php-format
612
  msgid "Broken Link Checker has detected %d new broken link on your site."
613
  msgid_plural "Broken Link Checker has detected %d new broken links on your site."
614
  msgstr[0] "Links offline detectou %d novo link sem ligação."
615
  msgstr[1] "Links offline detectou %d novos links sem ligação."
616
 
617
+ #: core/core.php:2981
618
  #, php-format
619
  msgid "Here's a list of the first %d broken links:"
620
  msgid_plural "Here's a list of the first %d broken links:"
621
  msgstr[0] "Lista do primeiro %d link sem ligação:"
622
  msgstr[1] "Lista dos primeiros %d links sem ligação:"
623
 
624
+ #: core/core.php:2989
625
  msgid "Here's a list of the new broken links: "
626
  msgstr "Novos links offline:"
627
 
628
+ #: core/core.php:3001
629
  #, php-format
630
  msgid "Link text : %s"
631
  msgstr "Texto do Link : %s"
632
 
633
+ #: core/core.php:3002
634
  #, php-format
635
  msgid "Link URL : <a href=\"%s\">%s</a>"
636
  msgstr "Link URL : <a href=\"%s\">%s</a>"
637
 
638
+ #: core/core.php:3003
639
  #, php-format
640
  msgid "Source : %s"
641
  msgstr "Fonte : %s"
642
 
643
+ #: core/core.php:3017
644
  msgid "You can see all broken links here:"
645
  msgstr "Links offline:"
646
 
647
+ #: core/init.php:237
648
  msgid "Once Weekly"
649
  msgstr "Uma vez por semana"
650
 
651
+ #: core/init.php:243
652
  msgid "Twice a Month"
653
  msgstr "Bi-Mensal"
654
 
655
+ #: core/init.php:309
656
  msgid "Broken Link Checker installation failed"
657
  msgstr "Opções : Links offline"
658
 
659
+ #: includes/any-post.php:398
660
  msgid "Edit"
661
  msgstr "Editar"
662
 
663
+ #: includes/any-post.php:406
664
  msgid "Move this item to the Trash"
665
  msgstr "Mover este post para o lixo"
666
 
667
+ #: includes/any-post.php:408
668
  msgid "Trash"
669
  msgstr "Lixo"
670
 
671
+ #: includes/any-post.php:413
672
  msgid "Delete this item permanently"
673
  msgstr "Apagar este post definitivamente"
674
 
675
+ #: includes/any-post.php:415
676
  msgid "Delete"
677
  msgstr "Apagar"
678
 
679
+ #: includes/any-post.php:428
680
  #, php-format
681
  msgid "Preview &#8220;%s&#8221;"
682
  msgstr "Prever &#8220;%s&#8221;"
683
 
684
+ #: includes/any-post.php:429
685
  msgid "Preview"
686
  msgstr "Pré-visualizar"
687
 
688
+ #: includes/any-post.php:436
689
  #, php-format
690
  msgid "View &#8220;%s&#8221;"
691
  msgstr "Visualizar &#8220;%s&#8221;"
692
 
693
+ #: includes/any-post.php:437
694
  msgid "View"
695
  msgstr "Ver"
696
 
697
+ #: includes/any-post.php:456
698
  msgid "Edit this item"
699
  msgstr "Editar post"
700
 
701
+ #: includes/any-post.php:520
702
  msgid "Nothing to update"
703
  msgstr "Sem actualização"
704
 
705
+ #: includes/any-post.php:530
706
  #, php-format
707
  msgid "Updating post %d failed"
708
  msgstr "Actualização do post %d falhou"
709
 
710
+ #: includes/any-post.php:565
711
  #, php-format
712
  msgid "Failed to delete post \"%s\" (%d)"
713
  msgstr "Erro ao apagar o post \"%s\" (%d)"
714
 
715
+ #: includes/any-post.php:584
716
  #, php-format
717
  msgid "Can't move post \"%s\" (%d) to the trash because the trash feature is disabled"
718
  msgstr "Não é possível mover o post \"%s\" (%d) para o lixo porque a função está desabilitada"
719
 
720
+ #: includes/any-post.php:604
721
  #, php-format
722
  msgid "Failed to move post \"%s\" (%d) to the trash"
723
  msgstr "Erro ao apagar o post \"%s\" (%d)"
724
 
725
+ #: includes/any-post.php:712
726
  #, php-format
727
  msgid "%d post deleted."
728
  msgid_plural "%d posts deleted."
729
  msgstr[0] "%d post apagado."
730
  msgstr[1] "%d posts apagados."
731
 
732
+ #: includes/any-post.php:714
733
  #, php-format
734
  msgid "%d page deleted."
735
  msgid_plural "%d pages deleted."
736
  msgstr[0] "%d página apagada."
737
  msgstr[1] "%d páginas apagadas."
738
 
739
+ #: includes/any-post.php:716
740
  #, php-format
741
  msgid "%d \"%s\" deleted."
742
  msgid_plural "%d \"%s\" deleted."
743
  msgstr[0] "%d \"%s\" apagado."
744
  msgstr[1] "%d \"%s\" apagados."
745
 
746
+ #: includes/any-post.php:735
747
  #, php-format
748
  msgid "%d post moved to the Trash."
749
  msgid_plural "%d posts moved to the Trash."
750
  msgstr[0] "%d post transferido para o lixo."
751
  msgstr[1] "%d posts transferidos para o lixo."
752
 
753
+ #: includes/any-post.php:737
754
  #, php-format
755
  msgid "%d page moved to the Trash."
756
  msgid_plural "%d pages moved to the Trash."
757
  msgstr[0] "%d página transferida para o lixo."
758
  msgstr[1] "%d páginas transferidas para o lixo."
759
 
760
+ #: includes/any-post.php:739
761
  #, php-format
762
  msgid "%d \"%s\" moved to the Trash."
763
  msgid_plural "%d \"%s\" moved to the Trash."
771
  msgstr[0] "%d '%s' foi apagado"
772
  msgstr[1] "%d '%s' foram apagados"
773
 
774
+ #: includes/containers.php:883
775
+ #: includes/containers.php:901
776
  #, php-format
777
  msgid "Container type '%s' not recognized"
778
  msgstr "Recipiente tipo '%s' não foi reconhecido"
886
  msgstr "Links (0)"
887
 
888
  #: includes/link-query.php:53
889
+ #: includes/admin/search-form.php:32
890
  msgid "Search"
891
  msgstr "Procurar"
892
 
899
  msgid "No links found for your query"
900
  msgstr "Sem resultados"
901
 
902
+ #: includes/links.php:215
903
  msgid "The plugin script was terminated while trying to check the link."
904
  msgstr "O script do plugin terminou enquanto tentava verificar o link."
905
 
906
+ #: includes/links.php:261
907
  msgid "The plugin doesn't know how to check this type of link."
908
  msgstr "O plugin não consegue verificar este tipo de link."
909
 
910
+ #: includes/links.php:349
911
  msgid "Link is valid."
912
  msgstr "Link operacional."
913
 
914
+ #: includes/links.php:351
915
  msgid "Link is broken."
916
  msgstr "Link sem ligação."
917
 
918
+ #: includes/links.php:564
919
+ #: includes/links.php:666
920
+ #: includes/links.php:693
921
  msgid "Link is not valid"
922
  msgstr "Link não válido"
923
 
924
+ #: includes/links.php:581
925
  msgid "This link can not be edited because it is not used anywhere on this site."
926
  msgstr "Este link não pode ser editado porque não é utilizado em nenhuma parte da página."
927
 
928
+ #: includes/links.php:607
929
  msgid "Failed to create a DB entry for the new URL."
930
  msgstr "Falhou a criação de um registro na Base de dados para um novo URL."
931
 
932
+ #: includes/links.php:673
933
  msgid "This link is not a redirect"
934
  msgstr "O link não é um redirect"
935
 
936
+ #: includes/links.php:720
937
+ #: includes/links.php:757
938
  msgid "Couldn't delete the link's database record"
939
  msgstr "Não é possível apagar o registro do link na Base de dados"
940
 
941
+ #: includes/links.php:845
942
  msgid "Unknown Error"
943
  msgstr "Erro Desconhecido"
944
 
945
+ #: includes/links.php:869
946
  msgid "Not checked"
947
  msgstr "Não verificado"
948
 
949
+ #: includes/links.php:872
950
  msgid "False positive"
951
  msgstr "Falso postivo"
952
 
953
+ #: includes/parsers.php:109
954
  #, php-format
955
  msgid "Editing is not implemented in the '%s' parser"
956
  msgstr "Edição não implementada no '%s' analizador sintáctico"
957
 
958
+ #: includes/parsers.php:124
959
  #, php-format
960
  msgid "Unlinking is not implemented in the '%s' parser"
961
  msgstr "Remover links não foi implementado no '%s' analizador sintáctico"
971
  msgstr "Espere ..."
972
 
973
  #: includes/admin/links-page-js.php:99
974
+ #: includes/admin/table-printer.php:592
 
975
  msgid "Not broken"
976
  msgstr "Funcional"
977
 
1009
  msgstr "O plugin não removeu o link."
1010
 
1011
  #: includes/admin/links-page-js.php:361
1012
+ #: includes/admin/table-printer.php:237
1013
+ #: includes/admin/table-printer.php:586
 
1014
  msgid "Unlink"
1015
  msgstr "Remover link"
1016
 
1035
  "Esta acção não pode ser anulada.\n"
1036
  "'Cancelar' para anular a operação, 'Aceitar' para apagar"
1037
 
1038
+ #: includes/admin/links-page-js.php:449
1039
  msgid ""
1040
  "Are you sure you want to remove the selected links? This action can't be undone.\n"
1041
  "'Cancel' to stop, 'OK' to remove"
1044
  "Esta acção não pode ser anulada.\n"
1045
  "'Cancelar' para anular a operação, 'Aceitar' para apagar"
1046
 
1047
+ #: includes/admin/links-page-js.php:558
1048
+ msgid "Enter a search string first."
1049
+ msgstr "Introduza primeiro uma string de procura."
1050
+
1051
+ #: includes/admin/links-page-js.php:565
1052
+ msgid "Select one or more links to edit."
1053
+ msgstr "Selecione um ou mais links para editar."
1054
+
1055
  #: includes/admin/options-page-js.php:54
1056
  msgid "Hide debug info"
1057
  msgstr "Ocultar informação"
1069
  msgstr "Texto do link"
1070
 
1071
  #: includes/admin/search-form.php:45
1072
+ #: includes/admin/table-printer.php:173
 
1073
  msgid "URL"
1074
  msgstr "URL"
1075
 
1076
  #: includes/admin/search-form.php:48
1077
+ #: includes/admin/table-printer.php:460
1078
  msgid "HTTP code"
1079
  msgstr "Código HTTP"
1080
 
1099
  msgid "Search Links"
1100
  msgstr "Procurar"
1101
 
1102
+ #: includes/admin/search-form.php:113
1103
+ #: includes/admin/table-printer.php:318
1104
+ #: includes/admin/table-printer.php:600
1105
+ #: includes/admin/table-printer.php:606
1106
+ msgid "Cancel"
1107
+ msgstr "Cancelar"
1108
+
1109
+ #: includes/admin/table-printer.php:150
1110
  msgid "Compact View"
1111
  msgstr "Visão compacta"
1112
 
1113
+ #: includes/admin/table-printer.php:151
1114
  msgid "Detailed View"
1115
  msgstr "Detalhes"
1116
 
1117
+ #: includes/admin/table-printer.php:178
 
1118
  msgid "Source"
1119
  msgstr "Fonte"
1120
 
1121
+ #: includes/admin/table-printer.php:184
 
1122
  msgid "Link Text"
1123
  msgstr "Texto do Link"
1124
 
1125
+ #: includes/admin/table-printer.php:232
1126
  msgid "Bulk Actions"
1127
  msgstr "Edição em Massa"
1128
 
1129
+ #: includes/admin/table-printer.php:233
1130
+ #: includes/admin/table-printer.php:583
1131
+ msgid "Edit URL"
1132
+ msgstr "Editar URL"
1133
+
1134
+ #: includes/admin/table-printer.php:234
1135
  msgid "Recheck"
1136
  msgstr "Voltar a verificar"
1137
 
1138
+ #: includes/admin/table-printer.php:235
1139
  msgid "Fix redirects"
1140
  msgstr "Reparar redirects"
1141
 
1142
+ #: includes/admin/table-printer.php:236
1143
  msgid "Mark as not broken"
1144
  msgstr "Funcional"
1145
 
1146
+ #: includes/admin/table-printer.php:240
1147
  msgid "Move sources to Trash"
1148
  msgstr "Mover este post para o lixo"
1149
 
1150
+ #: includes/admin/table-printer.php:242
1151
  msgid "Delete sources"
1152
  msgstr "Apagar fontes"
1153
 
1154
+ #: includes/admin/table-printer.php:262
1155
  msgid "&laquo;"
1156
  msgstr "&laquo;"
1157
 
1158
+ #: includes/admin/table-printer.php:263
1159
  msgid "&raquo;"
1160
  msgstr "&raquo;"
1161
 
1162
+ #: includes/admin/table-printer.php:271
1163
  #, php-format
1164
  msgid "Displaying %s&#8211;%s of <span class=\"current-link-count\">%s</span>"
1165
  msgstr "Mostrando %s&#8211;%s de <span class=\"current-link-count\">%s</span>"
1166
 
1167
+ #: includes/admin/table-printer.php:294
1168
+ msgid "Bulk Edit URLs"
1169
+ msgstr "Editar URLs em massa"
1170
+
1171
+ #: includes/admin/table-printer.php:296
1172
+ msgid "Find"
1173
+ msgstr "Procura"
1174
+
1175
+ #: includes/admin/table-printer.php:300
1176
+ msgid "Replace with"
1177
+ msgstr "Substituir com"
1178
+
1179
+ #: includes/admin/table-printer.php:308
1180
+ msgid "Case sensitive"
1181
+ msgstr "Coincidir maiúsculas/minúsculas"
1182
+
1183
+ #: includes/admin/table-printer.php:312
1184
+ msgid "Regular expression"
1185
+ msgstr "Expressão regular"
1186
+
1187
+ #: includes/admin/table-printer.php:320
1188
+ msgid "Update"
1189
+ msgstr "Actualizar"
1190
+
1191
+ #: includes/admin/table-printer.php:445
1192
  msgid "Post published on"
1193
  msgstr "Post publicado em"
1194
 
1195
+ #: includes/admin/table-printer.php:450
1196
  msgid "Link last checked"
1197
  msgstr "Última verificação"
1198
 
1199
+ #: includes/admin/table-printer.php:454
1200
  msgid "Never"
1201
  msgstr "Nunca"
1202
 
1203
+ #: includes/admin/table-printer.php:465
1204
  msgid "Response time"
1205
  msgstr "Tempo de resposta"
1206
 
1207
+ #: includes/admin/table-printer.php:467
1208
  #, php-format
1209
  msgid "%2.3f seconds"
1210
  msgstr "%2.3f segundos"
1211
 
1212
+ #: includes/admin/table-printer.php:470
1213
  msgid "Final URL"
1214
  msgstr "URL final"
1215
 
1216
+ #: includes/admin/table-printer.php:475
1217
  msgid "Redirect count"
1218
  msgstr "Contagem de redirects"
1219
 
1220
+ #: includes/admin/table-printer.php:480
1221
  msgid "Instance count"
1222
  msgstr "Contagem de casos"
1223
 
1224
+ #: includes/admin/table-printer.php:489
1225
  #, php-format
1226
  msgid "This link has failed %d time."
1227
  msgid_plural "This link has failed %d times."
1228
  msgstr[0] "Este link falhou %d vez."
1229
  msgstr[1] "Este link falhou %d vezes."
1230
 
1231
+ #: includes/admin/table-printer.php:497
1232
  #, php-format
1233
  msgid "This link has been broken for %s."
1234
  msgstr "Link offline durante %s."
1235
 
1236
+ #: includes/admin/table-printer.php:508
1237
  msgid "Log"
1238
  msgstr "Registro"
1239
 
1240
+ #: includes/admin/table-printer.php:529
 
 
 
 
 
 
1241
  msgid "Show more info about this link"
1242
  msgstr "Mostrar mais informação sobre este link"
1243
 
1244
+ #: includes/admin/table-printer.php:547
1245
+ msgid "Checked"
1246
+ msgstr "Verificado"
 
1247
 
1248
+ #: includes/admin/table-printer.php:563
1249
+ msgid "Broken for"
1250
+ msgstr "Offline"
 
1251
 
1252
+ #: includes/admin/table-printer.php:583
 
1253
  msgid "Edit link URL"
1254
  msgstr "Editar URL do link"
1255
 
1256
+ #: includes/admin/table-printer.php:585
1257
+ msgid "Remove this link from all posts"
1258
+ msgstr "Eliminar este link"
 
1259
 
1260
+ #: includes/admin/table-printer.php:591
1261
+ msgid "Remove this link from the list of broken links and mark it as valid"
1262
+ msgstr "Eliminar este link da lista dos links offline e marca-lo como válido"
1263
+
1264
+ #: includes/admin/table-printer.php:600
1265
  msgid "Cancel URL editing"
1266
  msgstr "Cancelar a edição do URL"
1267
 
1268
+ #: includes/admin/table-printer.php:607
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1269
  msgid "Update URL"
1270
  msgstr "Actualizar URL"
1271
 
1272
+ #: includes/admin/table-printer.php:629
1273
+ msgid "[An orphaned link! This is a bug.]"
1274
+ msgstr "[Um link orfão! Bug.]"
1275
+
1276
  #: modules/checkers/http.php:242
1277
  msgid "Server Not Found"
1278
  msgstr "Servidor Não Encontrado"
1336
  #, php-format
1337
  msgid "%d blogroll link deleted."
1338
  msgid_plural "%d blogroll links deleted."
1339
+ msgstr[0] "%d link blogroll apagado."
1340
+ msgstr[1] "%d links blogroll apagados."
1341
 
1342
  #: modules/containers/comment.php:53
1343
  #, php-format
1366
  msgid "Comment"
1367
  msgstr "Comentário"
1368
 
1369
+ #: modules/containers/comment.php:372
1370
  #, php-format
1371
  msgid "%d comment has been deleted."
1372
  msgid_plural "%d comments have been deleted."
1373
  msgstr[0] "%d comentário foi apagado."
1374
  msgstr[1] "%d comentários foram apagados."
1375
 
1376
+ #: modules/containers/comment.php:391
1377
  #, php-format
1378
+ msgid "%d comment moved to the Trash."
1379
+ msgid_plural "%d comments moved to the Trash."
1380
+ msgstr[0] "%d comentário apagado."
1381
+ msgstr[1] "%d comentários apagados."
1382
 
1383
  #: modules/containers/custom_field.php:84
1384
  #, php-format
1415
 
1416
  #: modules/extras/embed-parser-base.php:140
1417
  msgid "Embedded videos can't be edited using Broken Link Checker. Please edit or replace the video in question manually."
1418
+ msgstr "Vídeos embutidos não podem ser editados utilizando o Links offline. Por favor, editar ou substituir manualmente o vídeo em questão."
1419
 
1420
  #: modules/extras/mediafire.php:92
1421
  #: modules/extras/megaupload.php:110
1422
  #: modules/extras/rapidshare.php:143
1423
  msgid "Not Found"
1424
+ msgstr "Não Encontrado"
1425
 
1426
  #: modules/extras/megaupload.php:117
1427
  msgid "File Temporarily Unavailable"
1428
+ msgstr "Ficheiro Temporariamente Indisponível"
1429
 
1430
  #: modules/extras/megaupload.php:123
1431
  msgid "API Error"
1432
+ msgstr "Erro API"
1433
 
1434
  #: modules/extras/rapidshare.php:162
1435
  msgid "RS Server Down"
1436
+ msgstr "Servidor RS Desligado"
1437
 
1438
  #: modules/extras/rapidshare.php:169
1439
  msgid "File Blocked"
1440
+ msgstr "Ficheiro Bloqueado"
1441
 
1442
  #: modules/extras/rapidshare.php:176
1443
  msgid "File Locked"
1444
+ msgstr "Ficheiro Bloqueado"
1445
 
1446
  #: modules/extras/rapidshare.php:187
1447
  #, php-format
1451
  #: modules/extras/rapidshare.php:193
1452
  #, php-format
1453
  msgid "RapidShare API error: %s"
1454
+ msgstr "Rapidshare erro API: %s"
1455
 
1456
  #: modules/extras/vimeo-embed.php:25
1457
  msgid "Vimeo Video"
1459
 
1460
  #: modules/extras/vimeo-embed.php:26
1461
  msgid "Embedded Vimeo video"
1462
+ msgstr "Vídeo Vimeo embutido"
1463
 
1464
  #: modules/extras/youtube-embed.php:23
1465
  msgid "YouTube Video"
1476
 
1477
  #: modules/extras/youtube.php:75
1478
  msgid "Video Removed"
1479
+ msgstr "Vídeo Apagado"
1480
 
1481
  #: modules/extras/youtube.php:83
1482
  msgid "Invalid Video ID"
1483
+ msgstr "Vídeo ID Inválido"
1484
 
1485
  #: modules/extras/youtube.php:95
1486
  msgid "Video OK"
1487
+ msgstr "Vídeo Ok"
1488
 
1489
  #: modules/extras/youtube.php:109
1490
  #, php-format
1491
  msgid "Video status : %s%s"
1492
+ msgstr "Vídeo status : %s%s"
1493
 
1494
  #: modules/extras/youtube.php:128
1495
  msgid "Video Restricted"
1496
+ msgstr "Vídeo Restricto"
1497
 
1498
  #: modules/extras/youtube.php:145
1499
  msgid "Unknown YouTube API response received."
1500
+ msgstr "Resposta API YouTube desconhecida."
1501
 
1502
  #: modules/parsers/image.php:156
1503
  msgid "Image"
1507
  msgid "Custom field"
1508
  msgstr "Campo personalizado"
1509
 
1510
+ #~ msgid ""
1511
+ #~ "Checks your blog for broken links and missing images and notifies you on "
1512
+ #~ "the dashboard if any are found."
1513
+ #~ msgstr ""
1514
+ #~ "Verifica o blog procurando os links e imagens em falta, informa no Painel "
1515
+ #~ "do WordPress os resultados da verificação."
languages/broken-link-checker-ro_RO.mo ADDED
Binary file
languages/broken-link-checker-ro_RO.po ADDED
@@ -0,0 +1,1572 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Translation of the WordPress plugin Broken Link Checker 0.9.6 by Janis Elsts.
2
+ # Copyright (C) 2010 Janis Elsts
3
+ # This file is distributed under the same license as the Broken Link Checker package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: Broken Link Checker 0.9.6\n"
9
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/broken-link-checker\n"
10
+ "POT-Creation-Date: 2010-10-08 16:08+0000\n"
11
+ "PO-Revision-Date: 2010-12-02 12:29+0100\n"
12
+ "Last-Translator: \n"
13
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=utf-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
18
+ "X-Poedit-Language: Romanian\n"
19
+ "X-Poedit-Country: ROMANIA\n"
20
+
21
+ #: core/core.php:152
22
+ #: includes/admin/links-page-js.php:37
23
+ msgid "Loading..."
24
+ msgstr "Se �ncarc�..."
25
+
26
+ #: core/core.php:176
27
+ #: includes/admin/options-page-js.php:18
28
+ msgid "[ Network error ]"
29
+ msgstr "[Eroare de Re�ea]"
30
+
31
+ #: core/core.php:201
32
+ msgid "Automatically expand the widget if broken links have been detected"
33
+ msgstr "Extinde automat widget-ul dac� s-au detectat leg�turi �ntrerupte"
34
+
35
+ #: core/core.php:342
36
+ msgid "Link Checker Settings"
37
+ msgstr "Set�ri Verificator de Leg�turi"
38
+
39
+ #: core/core.php:343
40
+ msgid "Link Checker"
41
+ msgstr "Verificator de Leg�turi"
42
+
43
+ #: core/core.php:348
44
+ #: includes/link-query.php:26
45
+ msgid "Broken Links"
46
+ msgstr "Leg�turi �ntrerupte"
47
+
48
+ #: core/core.php:364
49
+ msgid "View Broken Links"
50
+ msgstr "Vizualizare Leg�turi �ntrerupte"
51
+
52
+ #: core/core.php:392
53
+ msgid "Settings"
54
+ msgstr "Set�ri"
55
+
56
+ #: core/core.php:404
57
+ #: core/core.php:1186
58
+ #, php-format
59
+ msgid "Error: The plugin's database tables are not up to date! (Current version : %d, expected : %d)"
60
+ msgstr "Eroare: Tabelele bazelor de date ale modulului extensie nu sunt actualizate! (Versiune curent�: %d, a�teptat�: %d)"
61
+
62
+ #: core/core.php:543
63
+ msgid "Settings saved."
64
+ msgstr "Set�ri salvate."
65
+
66
+ #: core/core.php:550
67
+ msgid "Complete site recheck started."
68
+ msgstr "Reverificare complet� a siturilor pornit�."
69
+
70
+ #: core/core.php:564
71
+ #: core/core.php:2744
72
+ msgid "Details"
73
+ msgstr "Detalii"
74
+
75
+ #: core/core.php:578
76
+ msgid "General"
77
+ msgstr "Generalit��i"
78
+
79
+ #: core/core.php:579
80
+ msgid "Look For Links In"
81
+ msgstr "Caut� Leg�turi �n"
82
+
83
+ #: core/core.php:580
84
+ msgid "Which Links To Check"
85
+ msgstr "Ce Leg�turi s� se Verifice"
86
+
87
+ #: core/core.php:581
88
+ msgid "Protocols & APIs"
89
+ msgstr "Protocoale & Interfe�e de Programare Aplica�ie (IPA - API)"
90
+
91
+ #: core/core.php:582
92
+ msgid "Advanced"
93
+ msgstr "Avansate"
94
+
95
+ #: core/core.php:586
96
+ msgid "Broken Link Checker Options"
97
+ msgstr "Op�iuni Broken Link Checker"
98
+
99
+ #: core/core.php:612
100
+ #: includes/admin/table-printer.php:168
101
+ msgid "Status"
102
+ msgstr "Stare"
103
+
104
+ #: core/core.php:614
105
+ #: includes/admin/options-page-js.php:56
106
+ msgid "Show debug info"
107
+ msgstr "Arat� informa�iile de depanare"
108
+
109
+ #: core/core.php:642
110
+ msgid "Check each link"
111
+ msgstr "Verific� fiecare leg�tur�"
112
+
113
+ #: core/core.php:647
114
+ #, php-format
115
+ msgid "Every %s hours"
116
+ msgstr "La fiecare %s Ore"
117
+
118
+ #: core/core.php:656
119
+ msgid "Existing links will be checked this often. New links will usually be checked ASAP."
120
+ msgstr "Leg�turile existente vor fi verificate cu aceast� frecven��. Leg�turile noi vor fi verificate, de obicei, de �ndat� ce este posibil."
121
+
122
+ #: core/core.php:663
123
+ msgid "E-mail notifications"
124
+ msgstr "Notific�ri po�t� electronic� (e-mail)"
125
+
126
+ #: core/core.php:669
127
+ msgid "Send me e-mail notifications about newly detected broken links"
128
+ msgstr "Trimite-mi notific�ri despre leg�turile �ntrerupte nou detectate"
129
+
130
+ #: core/core.php:676
131
+ msgid "Link tweaks"
132
+ msgstr "Optimizare leg�turi"
133
+
134
+ #: core/core.php:682
135
+ msgid "Apply custom formatting to broken links"
136
+ msgstr "Aplicare formatare personalizat� leg�turilor �ntrerupte"
137
+
138
+ #: core/core.php:686
139
+ #: core/core.php:714
140
+ msgid "Edit CSS"
141
+ msgstr "Editare Diagrame stilistice in cascad� (DSC - CSS)"
142
+
143
+ #: core/core.php:710
144
+ msgid "Apply custom formatting to removed links"
145
+ msgstr "Aplicare formatare personalizat� leg�turilor eliminate"
146
+
147
+ #: core/core.php:738
148
+ msgid "Stop search engines from following broken links"
149
+ msgstr "Opre�te motoarele de c�utare s� urmeze leg�turile �ntrerupte"
150
+
151
+ #: core/core.php:755
152
+ msgid "Look for links in"
153
+ msgstr "Caut� leg�turi �n"
154
+
155
+ #: core/core.php:766
156
+ msgid "Post statuses"
157
+ msgstr "Afi�are st�ri"
158
+
159
+ #: core/core.php:799
160
+ msgid "Link types"
161
+ msgstr "Tipuri de leg�turi"
162
+
163
+ #: core/core.php:805
164
+ msgid "Error : All link parsers missing!"
165
+ msgstr "Eroare: Toate analizoarele de cod ale leg�turilor lips�!"
166
+
167
+ #: core/core.php:812
168
+ msgid "Exclusion list"
169
+ msgstr "List� de excluziuni"
170
+
171
+ #: core/core.php:813
172
+ msgid "Don't check links where the URL contains any of these words (one per line) :"
173
+ msgstr "Nu verifica leg�turile acolo unde adresa universal� (URL) con�ine vreunul dintre aceste cuvinte (unul pe r�nd):"
174
+
175
+ #: core/core.php:831
176
+ msgid "Check links using"
177
+ msgstr "Verific� leg�turile cu ajutorul"
178
+
179
+ #: core/core.php:850
180
+ #: includes/links.php:849
181
+ msgid "Timeout"
182
+ msgstr "Expirare timp"
183
+
184
+ #: core/core.php:856
185
+ #: core/core.php:902
186
+ #: core/core.php:2871
187
+ #, php-format
188
+ msgid "%s seconds"
189
+ msgstr "%s secunde"
190
+
191
+ #: core/core.php:865
192
+ msgid "Links that take longer than this to load will be marked as broken."
193
+ msgstr "Leg�turile a c�ror �nc�rcare dureaz� mai mult dec�t at�t vor fi marcate ca �ntrerupte."
194
+
195
+ #: core/core.php:872
196
+ msgid "Link monitor"
197
+ msgstr "Monitor de leg�turi"
198
+
199
+ #: core/core.php:880
200
+ msgid "Run continuously while the Dashboard is open"
201
+ msgstr "Ruleaz� �n continuu, at�t timp c�t Tabloul de Bord este deschis"
202
+
203
+ #: core/core.php:888
204
+ msgid "Run hourly in the background"
205
+ msgstr "Ruleaz� la fiecare or�, �n fundal"
206
+
207
+ #: core/core.php:896
208
+ msgid "Max. execution time"
209
+ msgstr "Max. timp de execu�ie"
210
+
211
+ #: core/core.php:913
212
+ msgid "The plugin works by periodically launching a background job that parses your posts for links, checks the discovered URLs, and performs other time-consuming tasks. Here you can set for how long, at most, the link monitor may run each time before stopping."
213
+ msgstr "Modulul extensie func�ioneaz� prin lansarea periodic� a unei sarcini, �n fundal, care analizeaz� afi��rile dumneavoastr�, pentru a g�si leg�turi, verific� adresele universale (URL) descoperite, �i �ndepline�te alte sarcini consumatoare de timp. Aici pute�i seta durata pentru care poate rula monitorul de leg�turi, de fiecare dat�, �nainte de a se opri."
214
+
215
+ #: core/core.php:923
216
+ msgid "Custom temporary directory"
217
+ msgstr "Director temporar personalizat"
218
+
219
+ #: core/core.php:932
220
+ msgid "OK"
221
+ msgstr "OK"
222
+
223
+ #: core/core.php:935
224
+ msgid "Error : This directory isn't writable by PHP."
225
+ msgstr "Eroare: Acest director nu este inscriptibil �n PHP."
226
+
227
+ #: core/core.php:940
228
+ msgid "Error : This directory doesn't exist."
229
+ msgstr "Eroare: Acest director nu exist�."
230
+
231
+ #: core/core.php:948
232
+ msgid "Set this field if you want the plugin to use a custom directory for its lockfiles. Otherwise, leave it blank."
233
+ msgstr "Setaţi acest câmp dacă doriţi să utilizaţi plugin-un director particularizat pentru lockfiles sale. În caz contrar, lăsaţi-l gol."
234
+
235
+ #: core/core.php:955
236
+ msgid "Server load limit"
237
+ msgstr "Limita de �nc�rcare a serverului"
238
+
239
+ #: core/core.php:970
240
+ #, php-format
241
+ msgid "Current load : %s"
242
+ msgstr "�nc�rcare curent�: %s"
243
+
244
+ #: core/core.php:976
245
+ #, php-format
246
+ msgid "Link checking will be suspended if the average <a href=\"%s\">server load</a> rises above this number. Leave this field blank to disable load limiting."
247
+ msgstr "Verificarea leg�turilor va fi suspendat� dac� media <a href=\"%s\">de �nc�rcare a serverului</a> se ridic� peste aceast� cifr�. L�sa�i acest c�mp necompletat pentru a dezactiva limitarea �nc�rc�rii."
248
+
249
+ #: core/core.php:984
250
+ msgid "Not available"
251
+ msgstr "Indisponibil"
252
+
253
+ #: core/core.php:986
254
+ msgid "Load limiting only works on Linux-like systems where <code>/proc/loadavg</code> is present and accessible."
255
+ msgstr "Limitarea �n�rc�rii func�ioneaz� doar pe sisteme similare Linux, unde este prezent� �i accesibil� <code>media de proc/�nc�rcare</code>."
256
+
257
+ #: core/core.php:994
258
+ msgid "Forced recheck"
259
+ msgstr "Reverificare for�at�"
260
+
261
+ #: core/core.php:997
262
+ msgid "Re-check all pages"
263
+ msgstr "Reverificare a tuturor paginilor"
264
+
265
+ #: core/core.php:1001
266
+ msgid "The \"Nuclear Option\". Click this button to make the plugin empty its link database and recheck the entire site from scratch."
267
+ msgstr "\"Op�iunea Nuclear�\". Face�i clic pe acest buton pentru a determina modulul extensie s� �i goleasc� baza de date cu leg�turi �i s� reverifice �ntregul sit de la cap�t."
268
+
269
+ #: core/core.php:1012
270
+ msgid "Save Changes"
271
+ msgstr "Salveaz� Modific�rile"
272
+
273
+ #: core/core.php:1057
274
+ msgid "Configure"
275
+ msgstr "Configurare"
276
+
277
+ #: core/core.php:1117
278
+ msgid "Upgrade to Pro to enable this feature"
279
+ msgstr "Trece�i la versiunea Pro pentru a permite aceast� op�iune"
280
+
281
+ #: core/core.php:1152
282
+ msgid "Check URLs entered in these custom fields (one per line) :"
283
+ msgstr "Verifica�i URL-urile introduse �n aceste c�mpuri personalizabile (una pe r�nd) :"
284
+
285
+ #: core/core.php:1286
286
+ #: core/core.php:1370
287
+ #: core/core.php:1402
288
+ #, php-format
289
+ msgid "Database error : %s"
290
+ msgstr "Eroare de baz� de date: %s"
291
+
292
+ #: core/core.php:1352
293
+ msgid "You must enter a filter name!"
294
+ msgstr "Trebuie s� introduce�i un nume de filtru!"
295
+
296
+ #: core/core.php:1356
297
+ msgid "Invalid search query."
298
+ msgstr "Cerere de c�utare invalid�."
299
+
300
+ #: core/core.php:1365
301
+ #, php-format
302
+ msgid "Filter \"%s\" created"
303
+ msgstr "Filtru \"%s\" creat"
304
+
305
+ #: core/core.php:1392
306
+ msgid "Filter ID not specified."
307
+ msgstr "ID filtru nespecificat."
308
+
309
+ #: core/core.php:1399
310
+ msgid "Filter deleted"
311
+ msgstr "Filtru �ters"
312
+
313
+ #: core/core.php:1447
314
+ #, php-format
315
+ msgid "Replaced %d redirect with a direct link"
316
+ msgid_plural "Replaced %d redirects with direct links"
317
+ msgstr[0] "�nlocuire redirec�ionare %d cu o leg�tur� direct�"
318
+ msgstr[1] "�nlocuire redirec�ion�ri %d cu leg�turi directe"
319
+
320
+ #: core/core.php:1458
321
+ #, php-format
322
+ msgid "Failed to fix %d redirect"
323
+ msgid_plural "Failed to fix %d redirects"
324
+ msgstr[0] "E�ec la repararea redirec�ion�rii %d"
325
+ msgstr[1] "E�ec la repararea redirec�ion�rilor %d"
326
+
327
+ #: core/core.php:1468
328
+ msgid "None of the selected links are redirects!"
329
+ msgstr "Nici una dintre leg�turile selectate nu este o redirec�ionare!"
330
+
331
+ #: core/core.php:1547
332
+ #, php-format
333
+ msgid "%d link updated."
334
+ msgid_plural "%d links updated."
335
+ msgstr[0] "Leg�tura %d actualizat�."
336
+ msgstr[1] "Leg�turile %d actualizate."
337
+
338
+ #: core/core.php:1558
339
+ #, php-format
340
+ msgid "Failed to update %d link."
341
+ msgid_plural "Failed to update %d links."
342
+ msgstr[0] "E�ec la actualizarea leg�turii %d."
343
+ msgstr[1] "E�ec la actualizarea leg�turilor %d."
344
+
345
+ #: core/core.php:1612
346
+ #, php-format
347
+ msgid "%d link removed"
348
+ msgid_plural "%d links removed"
349
+ msgstr[0] "%d leg�tur� eliminat�"
350
+ msgstr[1] "%d leg�turi eliminate"
351
+
352
+ #: core/core.php:1623
353
+ #, php-format
354
+ msgid "Failed to remove %d link"
355
+ msgid_plural "Failed to remove %d links"
356
+ msgstr[0] "E�ec la eliminarea a %d leg�tur�"
357
+ msgstr[1] "E�ec la eliminarea a %d leg�turi"
358
+
359
+ #: core/core.php:1732
360
+ #, php-format
361
+ msgid "%d item was skipped because it can't be moved to the Trash. You need to delete it manually."
362
+ msgid_plural "%d items were skipped because they can't be moved to the Trash. You need to delete them manually."
363
+ msgstr[0] "Articolul %d a fost omis pentru c� nu poate fi mutat �n Pubel�. Este nevoie s� �l �terge�i manual."
364
+ msgstr[1] "Articolele %d au fost omise pentru c� nu pot fi mutate �n Pubel�. Este nevoie s� le �terge�i manual."
365
+
366
+ #: core/core.php:1753
367
+ msgid "Didn't find anything to delete!"
368
+ msgstr "Nu am g�sit nimic de �ters!"
369
+
370
+ #: core/core.php:1781
371
+ #, php-format
372
+ msgid "%d link scheduled for rechecking"
373
+ msgid_plural "%d links scheduled for rechecking"
374
+ msgstr[0] "Leg�tura %d programat� pentru reverificare"
375
+ msgstr[1] "Leg�turile %d programate pentru reverificare"
376
+
377
+ #: core/core.php:1826
378
+ #: core/core.php:2431
379
+ msgid "This link was manually marked as working by the user."
380
+ msgstr "Aceast� leg�tur� a fost marcat� manual, de c�tre utilizator, ca func�ional�."
381
+
382
+ #: core/core.php:1833
383
+ #, php-format
384
+ msgid "Couldn't modify link %d"
385
+ msgstr "Nu am putut modifica leg�tura %d"
386
+
387
+ #: core/core.php:1844
388
+ #, php-format
389
+ msgid "%d link marked as not broken"
390
+ msgid_plural "%d links marked as not broken"
391
+ msgstr[0] "%d leg�tur� marcat� ca ne�ntrerupt�"
392
+ msgstr[1] "%d leg�turi marcate ca ne�ntrerupte"
393
+
394
+ #: core/core.php:1884
395
+ msgid "Table columns"
396
+ msgstr "Coloane de tabel"
397
+
398
+ #: core/core.php:1903
399
+ msgid "Show on screen"
400
+ msgstr "Arat� pe ecran"
401
+
402
+ #: core/core.php:1910
403
+ msgid "links"
404
+ msgstr "leg�turi"
405
+
406
+ #: core/core.php:1911
407
+ #: includes/admin/table-printer.php:136
408
+ msgid "Apply"
409
+ msgstr "Aplic�"
410
+
411
+ #: core/core.php:1915
412
+ msgid "Misc"
413
+ msgstr "Diverse"
414
+
415
+ #: core/core.php:1930
416
+ #, php-format
417
+ msgid "Highlight links broken for at least %s days"
418
+ msgstr "Eviden�iaz� leg�turile �ntrerupte pentru cel pu�in %s zile"
419
+
420
+ #: core/core.php:1939
421
+ msgid "Color-code status codes"
422
+ msgstr "Codare a st�rii prin culoare"
423
+
424
+ #: core/core.php:1956
425
+ #: core/core.php:2416
426
+ #: core/core.php:2452
427
+ #: core/core.php:2515
428
+ msgid "You're not allowed to do that!"
429
+ msgstr "Nu vi se permite aceast� ac�iune!"
430
+
431
+ #: core/core.php:2297
432
+ msgid "View broken links"
433
+ msgstr "Vizualizare leg�turi �ntrerupte"
434
+
435
+ #: core/core.php:2298
436
+ #, php-format
437
+ msgid "Found %d broken link"
438
+ msgid_plural "Found %d broken links"
439
+ msgstr[0] "S-a g�sit %d leg�tur� �ntrerupt�"
440
+ msgstr[1] "S-au g�sit %d leg�turi �ntrerupte"
441
+
442
+ #: core/core.php:2304
443
+ msgid "No broken links found."
444
+ msgstr "Nu s-au g�sit leg�turi �ntrerupte."
445
+
446
+ #: core/core.php:2311
447
+ #, php-format
448
+ msgid "%d URL in the work queue"
449
+ msgid_plural "%d URLs in the work queue"
450
+ msgstr[0] "%d URL �n �irul de lucru"
451
+ msgstr[1] "%d URL-uri �n �irul de lucru"
452
+
453
+ #: core/core.php:2314
454
+ msgid "No URLs in the work queue."
455
+ msgstr "Nici un URL �n �irul de lucru."
456
+
457
+ #: core/core.php:2320
458
+ #, php-format
459
+ msgid "Detected %d unique URL"
460
+ msgid_plural "Detected %d unique URLs"
461
+ msgstr[0] "S-a detectat %d un URL unic"
462
+ msgstr[1] "S-au detectat %d un URL-uri unice"
463
+
464
+ #: core/core.php:2321
465
+ #, php-format
466
+ msgid "in %d link"
467
+ msgid_plural "in %d links"
468
+ msgstr[0] "�n %d leg�tur�"
469
+ msgstr[1] "�n %d leg�turi"
470
+
471
+ #: core/core.php:2326
472
+ msgid "and still searching..."
473
+ msgstr ", iar c�utarea continu�..."
474
+
475
+ #: core/core.php:2332
476
+ msgid "Searching your blog for links..."
477
+ msgstr "Se caut� leg�turi pe blogul dvs..."
478
+
479
+ #: core/core.php:2334
480
+ msgid "No links detected."
481
+ msgstr "Nu s-au detectat leg�turi."
482
+
483
+ #: core/core.php:2360
484
+ msgctxt "current load"
485
+ msgid "Unknown"
486
+ msgstr "Necunoscut"
487
+
488
+ #: core/core.php:2424
489
+ #: core/core.php:2462
490
+ #: core/core.php:2525
491
+ #, php-format
492
+ msgid "Oops, I can't find the link %d"
493
+ msgstr "Hopa, nu pot s� g�sesc leg�tura %d"
494
+
495
+ #: core/core.php:2437
496
+ msgid "Oops, couldn't modify the link!"
497
+ msgstr "Hopa, n-am putut modifica leg�tura!"
498
+
499
+ #: core/core.php:2440
500
+ #: core/core.php:2551
501
+ msgid "Error : link_id not specified"
502
+ msgstr "Eroare: ID_leg�tur� nespecificat�"
503
+
504
+ #: core/core.php:2472
505
+ msgid "Oops, the new URL is invalid!"
506
+ msgstr "Hopa, noul URL este invalid!"
507
+
508
+ #: core/core.php:2483
509
+ #: core/core.php:2534
510
+ msgid "An unexpected error occured!"
511
+ msgstr "A avut loc o eroare nea�teptat�!"
512
+
513
+ #: core/core.php:2501
514
+ msgid "Error : link_id or new_url not specified"
515
+ msgstr "Eroare: ID_leg�tur� ori URL_nou nespecificat(�)"
516
+
517
+ #: core/core.php:2560
518
+ msgid "You don't have sufficient privileges to access this information!"
519
+ msgstr "Nu ave�i privilegii suficiente pentru a accesa aceast� informa�ie!"
520
+
521
+ #: core/core.php:2573
522
+ msgid "Error : link ID not specified"
523
+ msgstr "Eroare: ID leg�tur� nespecificat�"
524
+
525
+ #: core/core.php:2587
526
+ #, php-format
527
+ msgid "Failed to load link details (%s)"
528
+ msgstr "E�ec la �nc�rcarea detaliilor leg�turii (%s)"
529
+
530
+ #. #-#-#-#-# plugin.pot (Broken Link Checker 0.9.6) #-#-#-#-#
531
+ #. Plugin Name of the plugin/theme
532
+ #: core/core.php:2716
533
+ msgid "Broken Link Checker"
534
+ msgstr "Broken Link Checker"
535
+
536
+ #: core/core.php:2730
537
+ #, php-format
538
+ msgid "The current temporary directory is not accessible; please <a href=\"%s\">set a different one</a>."
539
+ msgstr "Directorul temporar curent nu este accesibil; v� rug�m <a href=\"%s\">s� declara�i un altul</a>."
540
+
541
+ #: core/core.php:2735
542
+ #, php-format
543
+ msgid "Please make the directory <code>%1$s</code> writable by plugins or <a href=\"%2$s\">set a custom temporary directory</a>."
544
+ msgstr "V� rug�m s� face�i directorul <code>%1$s</code> inscriptibil de c�tre module extensie ori <a href=\"%2$s\">declara�i un director temporar personalizat</a>."
545
+
546
+ #: core/core.php:2742
547
+ msgid "Broken Link Checker can't create a lockfile."
548
+ msgstr "Broken Link Checker nu poate crea un fi�ier de blocare."
549
+
550
+ #: core/core.php:2747
551
+ msgid "The plugin uses a file-based locking mechanism to ensure that only one instance of the resource-heavy link checking algorithm is running at any given time. Unfortunately, BLC can't find a writable directory where it could store the lockfile - it failed to detect the location of your server's temporary directory, and the plugin's own directory isn't writable by PHP. To fix this problem, please make the plugin's directory writable or enter a specify a custom temporary directory in the plugin's settings."
552
+ msgstr "Modulul extensie folose�te un mecanism de blocare pe baz� de fi�iere pentru a se asigura c�, �n orice moment, ruleaz� doar o singur� instan�� a algoritmului de verificare a leg�turilor, mare consumator de resurse. Din p�cate, BLC nu poate g�si un director inscriptibil unde ar putea stoca fi�ierul de blocare - nu a reu�it s� detecteze localizarea directorului temporar al serverului dvs., iar directorul propriu al modulului extensie nu este inscriptibil de c�tre PHP. Pentru a repara aceast� problem�, declara�i directorul modulului extensie ca inscriptibil ori declara�i un director temporar personalizat in set�rile modulului extensie."
553
+
554
+ #: core/core.php:2766
555
+ msgid "PHP version"
556
+ msgstr "Versiune PHP"
557
+
558
+ #: core/core.php:2772
559
+ msgid "MySQL version"
560
+ msgstr "Versiune MySQL"
561
+
562
+ #: core/core.php:2785
563
+ msgid "You have an old version of CURL. Redirect detection may not work properly."
564
+ msgstr "Ave�i o versiune veche a CURL. Se poate ca detec�ia redirec�ion�rilor s� nu func�ioneze cum trebuie."
565
+
566
+ #: core/core.php:2797
567
+ #: core/core.php:2813
568
+ #: core/core.php:2818
569
+ msgid "Not installed"
570
+ msgstr "Ne-instalat(�)"
571
+
572
+ #: core/core.php:2800
573
+ msgid "CURL version"
574
+ msgstr "Versiune CURL"
575
+
576
+ #: core/core.php:2806
577
+ msgid "Installed"
578
+ msgstr "Instalat(�)"
579
+
580
+ #: core/core.php:2819
581
+ msgid "You must have either CURL or Snoopy installed for the plugin to work!"
582
+ msgstr "Pentru ca acest modul extensie s� func�ioneze, trebuie s� ave�i instalat fie CURL, fie Snoopy!"
583
+
584
+ #: core/core.php:2830
585
+ msgid "On"
586
+ msgstr "Pornit"
587
+
588
+ #: core/core.php:2831
589
+ msgid "Redirects may be detected as broken links when safe_mode is on."
590
+ msgstr "Redirec�ion�rile pot fi detectate ca leg�turi �ntrerupte, atunci c�nd este pornit modul_sigur."
591
+
592
+ #: core/core.php:2836
593
+ #: core/core.php:2850
594
+ msgid "Off"
595
+ msgstr "Oprit"
596
+
597
+ #: core/core.php:2844
598
+ #, php-format
599
+ msgid "On ( %s )"
600
+ msgstr "Pornit ( %s )"
601
+
602
+ #: core/core.php:2845
603
+ msgid "Redirects may be detected as broken links when open_basedir is on."
604
+ msgstr "Redirec�ion�rile pot fi detectate ca leg�turi �ntrerupte, atunci c�nd este pornit dirbaz�_deschis."
605
+
606
+ #: core/core.php:2864
607
+ msgid "Can't create a lockfile. Please specify a custom temporary directory."
608
+ msgstr "nu poate crea un fi�ier de blocare. V� rug�m s� specifica�i un director temporar personalizat."
609
+
610
+ #: core/core.php:2888
611
+ msgid "If this value is zero even after several page reloads you have probably encountered a bug."
612
+ msgstr "Dac� aceast� valoare este zero, chiar �i dup� mai multe re�nc�rc�ri de pagin�, porbabil c� a�i �nt�lnit o eroare de cod."
613
+
614
+ #: core/core.php:2959
615
+ #, php-format
616
+ msgid "[%s] Broken links detected"
617
+ msgstr "S-au detectat [%s] leg�turi �ntrerupte"
618
+
619
+ #: core/core.php:2965
620
+ #, php-format
621
+ msgid "Broken Link Checker has detected %d new broken link on your site."
622
+ msgid_plural "Broken Link Checker has detected %d new broken links on your site."
623
+ msgstr[0] "Broken Link Checker a detectat %d leg�tur� �ntrerupt� pe situl dvs."
624
+ msgstr[1] "Broken Link Checker a detectat %d leg�turi �ntrerupte pe situl dvs."
625
+
626
+ #: core/core.php:2980
627
+ #, php-format
628
+ msgid "Here's a list of the first %d broken links:"
629
+ msgid_plural "Here's a list of the first %d broken links:"
630
+ msgstr[0] "Iat� o list� a primelor %d leg�turi �ntrerupte:"
631
+ msgstr[1] "Iat� o list� a primelor %d leg�turi �ntrerupte:"
632
+
633
+ #: core/core.php:2988
634
+ msgid "Here's a list of the new broken links: "
635
+ msgstr "Iat� o list� a noilor leg�turi �ntrerupte: "
636
+
637
+ #: core/core.php:3000
638
+ #, php-format
639
+ msgid "Link text : %s"
640
+ msgstr "Text Leg�tur� %s"
641
+
642
+ #: core/core.php:3001
643
+ #, php-format
644
+ msgid "Link URL : <a href=\"%s\">%s</a>"
645
+ msgstr "leg�tur� URL: <a href=\"%s\">%s</a>"
646
+
647
+ #: core/core.php:3002
648
+ #, php-format
649
+ msgid "Source : %s"
650
+ msgstr "Surs�: %s"
651
+
652
+ #: core/core.php:3016
653
+ msgid "You can see all broken links here:"
654
+ msgstr "Pute�i vizualiza toate leg�turile �ntrerupte aici:"
655
+
656
+ #: core/init.php:236
657
+ msgid "Once Weekly"
658
+ msgstr "S�pt�m�nal"
659
+
660
+ #: core/init.php:242
661
+ msgid "Twice a Month"
662
+ msgstr "De dou� ori pe lun�"
663
+
664
+ #: core/init.php:309
665
+ msgid "Broken Link Checker installation failed"
666
+ msgstr "Instalarea Broken Link Checker a e�uat"
667
+
668
+ #: includes/admin/db-upgrade.php:95
669
+ #, php-format
670
+ msgid "Failed to delete old DB tables. Database error : %s"
671
+ msgstr "�tergerea tabelelor BD vechi a e�uat. Eroare de baz� de date: %s"
672
+
673
+ #: includes/admin/links-page-js.php:58
674
+ #: includes/admin/links-page-js.php:301
675
+ msgid "Wait..."
676
+ msgstr "A�tepta�i..."
677
+
678
+ #: includes/admin/links-page-js.php:99
679
+ #: includes/admin/table-printer.php:592
680
+ msgid "Not broken"
681
+ msgstr "Ne�ntrerupt�"
682
+
683
+ #: includes/admin/links-page-js.php:213
684
+ #, php-format
685
+ msgid "%d instances of the link were successfully modified."
686
+ msgstr "%d instan�e ale leg�turii au fost modificate."
687
+
688
+ #: includes/admin/links-page-js.php:219
689
+ #, php-format
690
+ msgid "However, %d instances couldn't be edited and still point to the old URL."
691
+ msgstr "Cu toate acestea, %d instan�e nu au putut fi fi editate �i indic� �n continuare vechiul URL."
692
+
693
+ #: includes/admin/links-page-js.php:225
694
+ msgid "The link could not be modified."
695
+ msgstr "Aceast� leg�tur� nu a putut fi modificat�."
696
+
697
+ #: includes/admin/links-page-js.php:228
698
+ #: includes/admin/links-page-js.php:353
699
+ msgid "The following error(s) occured :"
700
+ msgstr "A(u) avut loc urm�toarea(ele) eroare(i):"
701
+
702
+ #: includes/admin/links-page-js.php:339
703
+ #, php-format
704
+ msgid "%d instances of the link were successfully unlinked."
705
+ msgstr "%d instan�e ale leg�turii au fost dezasociate."
706
+
707
+ #: includes/admin/links-page-js.php:345
708
+ #, php-format
709
+ msgid "However, %d instances couldn't be removed."
710
+ msgstr "Cu toate acestea, %d instan�e nu au putut fi eliminate."
711
+
712
+ #: includes/admin/links-page-js.php:350
713
+ msgid "The plugin failed to remove the link."
714
+ msgstr "Modulul extensie nu a reu�it s� elimine leg�tura."
715
+
716
+ #: includes/admin/links-page-js.php:361
717
+ #: includes/admin/table-printer.php:237
718
+ #: includes/admin/table-printer.php:586
719
+ msgid "Unlink"
720
+ msgstr "Dezasocia�i"
721
+
722
+ #: includes/admin/links-page-js.php:405
723
+ msgid "Enter a name for the new custom filter"
724
+ msgstr "Introduce�i un nume pentru noul filtru personalizat"
725
+
726
+ #: includes/admin/links-page-js.php:416
727
+ msgid ""
728
+ "You are about to delete the current filter.\n"
729
+ "'Cancel' to stop, 'OK' to delete"
730
+ msgstr ""
731
+ "Sunte�i pe cale s� �terge�i filtrul curent.\n"
732
+ "'Anulare' pentru a v� opri, 'OK' pentru a �terge"
733
+
734
+ #: includes/admin/links-page-js.php:439
735
+ msgid ""
736
+ "Are you sure you want to delete all posts, bookmarks or other items that contain any of the selected links? This action can't be undone.\n"
737
+ "'Cancel' to stop, 'OK' to delete"
738
+ msgstr ""
739
+ "Sunte�i sigur(�) c� vre�i s� �terge�i toate afi��rile, semnele de carte ori alte articole care con�in vreuna dintre leg�turile selectate? Aceast� ac�iune nu poate fi desf�cut�.\n"
740
+ "'Anulare' pentru a v� opri, 'OK' pentru a �terge"
741
+
742
+ #: includes/admin/links-page-js.php:449
743
+ msgid ""
744
+ "Are you sure you want to remove the selected links? This action can't be undone.\n"
745
+ "'Cancel' to stop, 'OK' to remove"
746
+ msgstr ""
747
+ "Sunte�i sigur(�) c� vre�i s� elimina�i leg�turile selectate? Aceast� ac�iune nu poate fi desf�cut�.\n"
748
+ "'Anulare' pentru a v� opri, 'OK' pentru a elimina"
749
+
750
+ #: includes/admin/links-page-js.php:558
751
+ msgid "Enter a search string first."
752
+ msgstr "Introduce�i, mai �nt�i, un �ir de c�utare."
753
+
754
+ #: includes/admin/links-page-js.php:565
755
+ msgid "Select one or more links to edit."
756
+ msgstr "Selecta�i una sau mai multe leg�turi de editat."
757
+
758
+ #: includes/admin/options-page-js.php:54
759
+ msgid "Hide debug info"
760
+ msgstr "Ascunde informa�iile de depanare"
761
+
762
+ #: includes/admin/search-form.php:16
763
+ msgid "Save This Search As a Filter"
764
+ msgstr "Salveaz� C�utarea de fa�� drept Filtru"
765
+
766
+ #: includes/admin/search-form.php:26
767
+ msgid "Delete This Filter"
768
+ msgstr "�terge Acest Filtru"
769
+
770
+ #: includes/admin/search-form.php:32
771
+ #: includes/link-query.php:53
772
+ msgid "Search"
773
+ msgstr "C�utare"
774
+
775
+ #: includes/admin/search-form.php:42
776
+ msgid "Link text"
777
+ msgstr "Text leg�tur�"
778
+
779
+ #: includes/admin/search-form.php:45
780
+ #: includes/admin/table-printer.php:173
781
+ msgid "URL"
782
+ msgstr "URL"
783
+
784
+ #: includes/admin/search-form.php:48
785
+ #: includes/admin/table-printer.php:460
786
+ msgid "HTTP code"
787
+ msgstr "cod HTTP"
788
+
789
+ #: includes/admin/search-form.php:51
790
+ msgid "Link status"
791
+ msgstr "Stare leg�tur�"
792
+
793
+ #: includes/admin/search-form.php:68
794
+ #: includes/admin/search-form.php:85
795
+ msgid "Link type"
796
+ msgstr "Tip leg�tur�"
797
+
798
+ #: includes/admin/search-form.php:70
799
+ msgid "Any"
800
+ msgstr "Oricare"
801
+
802
+ #: includes/admin/search-form.php:74
803
+ msgid "Links used in"
804
+ msgstr "Leg�turi folosite la"
805
+
806
+ #: includes/admin/search-form.php:112
807
+ msgid "Search Links"
808
+ msgstr "Leg�turi de C�utare"
809
+
810
+ #: includes/admin/search-form.php:113
811
+ #: includes/admin/table-printer.php:318
812
+ #: includes/admin/table-printer.php:600
813
+ #: includes/admin/table-printer.php:606
814
+ msgid "Cancel"
815
+ msgstr "Anulare"
816
+
817
+ #: includes/admin/table-printer.php:150
818
+ msgid "Compact View"
819
+ msgstr "Vizualizare Compact�"
820
+
821
+ #: includes/admin/table-printer.php:151
822
+ msgid "Detailed View"
823
+ msgstr "Vizualizare Detaliat�"
824
+
825
+ #: includes/admin/table-printer.php:178
826
+ msgid "Source"
827
+ msgstr "Surs�"
828
+
829
+ #: includes/admin/table-printer.php:184
830
+ msgid "Link Text"
831
+ msgstr "Text Leg�tur�"
832
+
833
+ #: includes/admin/table-printer.php:232
834
+ msgid "Bulk Actions"
835
+ msgstr "Ac�iuni Diverse"
836
+
837
+ #: includes/admin/table-printer.php:233
838
+ #: includes/admin/table-printer.php:583
839
+ msgid "Edit URL"
840
+ msgstr "Editare URL"
841
+
842
+ #: includes/admin/table-printer.php:234
843
+ msgid "Recheck"
844
+ msgstr "Reverificare"
845
+
846
+ #: includes/admin/table-printer.php:235
847
+ msgid "Fix redirects"
848
+ msgstr "Reparare redirec�ion�ri"
849
+
850
+ #: includes/admin/table-printer.php:236
851
+ msgid "Mark as not broken"
852
+ msgstr "Marcare ca ne-�ntrerupt�"
853
+
854
+ #: includes/admin/table-printer.php:240
855
+ msgid "Move sources to Trash"
856
+ msgstr "Mutare surse in Pubel�"
857
+
858
+ #: includes/admin/table-printer.php:242
859
+ msgid "Delete sources"
860
+ msgstr "�tergere surse"
861
+
862
+ #: includes/admin/table-printer.php:262
863
+ msgid "&laquo;"
864
+ msgstr "&laquo;"
865
+
866
+ #: includes/admin/table-printer.php:263
867
+ msgid "&raquo;"
868
+ msgstr "&raquo;"
869
+
870
+ #: includes/admin/table-printer.php:271
871
+ #, php-format
872
+ msgid "Displaying %s&#8211;%s of <span class=\"current-link-count\">%s</span>"
873
+ msgstr "Afi�are %s&#8211;%s a <span class=\"current-link-count\">%s</span>"
874
+
875
+ #: includes/admin/table-printer.php:294
876
+ msgid "Bulk Edit URLs"
877
+ msgstr "Editare concomitent� URL-uri"
878
+
879
+ #: includes/admin/table-printer.php:296
880
+ msgid "Find"
881
+ msgstr "G�sire"
882
+
883
+ #: includes/admin/table-printer.php:300
884
+ msgid "Replace with"
885
+ msgstr "�nlocuire cu"
886
+
887
+ #: includes/admin/table-printer.php:308
888
+ msgid "Case sensitive"
889
+ msgstr "Sensibil la majuscule"
890
+
891
+ #: includes/admin/table-printer.php:312
892
+ msgid "Regular expression"
893
+ msgstr "Expresie uzual�"
894
+
895
+ #: includes/admin/table-printer.php:320
896
+ msgid "Update"
897
+ msgstr "Actualizare"
898
+
899
+ #: includes/admin/table-printer.php:445
900
+ msgid "Post published on"
901
+ msgstr "Afi�are publicat� pe"
902
+
903
+ #: includes/admin/table-printer.php:450
904
+ msgid "Link last checked"
905
+ msgstr "Ultima verificare a leg�turii"
906
+
907
+ #: includes/admin/table-printer.php:454
908
+ msgid "Never"
909
+ msgstr "Niciodat�"
910
+
911
+ #: includes/admin/table-printer.php:465
912
+ msgid "Response time"
913
+ msgstr "Timp de r�spuns"
914
+
915
+ #: includes/admin/table-printer.php:467
916
+ #, php-format
917
+ msgid "%2.3f seconds"
918
+ msgstr "%2.3f secunde"
919
+
920
+ #: includes/admin/table-printer.php:470
921
+ msgid "Final URL"
922
+ msgstr "URL final"
923
+
924
+ #: includes/admin/table-printer.php:475
925
+ msgid "Redirect count"
926
+ msgstr "Num�r�toare redirec�ion�ri"
927
+
928
+ #: includes/admin/table-printer.php:480
929
+ msgid "Instance count"
930
+ msgstr "Num�r�toare instan�e"
931
+
932
+ #: includes/admin/table-printer.php:489
933
+ #, php-format
934
+ msgid "This link has failed %d time."
935
+ msgid_plural "This link has failed %d times."
936
+ msgstr[0] "Aceast� leg�tur� a e�uat %d dat�."
937
+ msgstr[1] "Aceast� leg�tur� a e�uat de %d d��i."
938
+
939
+ #: includes/admin/table-printer.php:497
940
+ #, php-format
941
+ msgid "This link has been broken for %s."
942
+ msgstr "Aceast� leg�tur� este �ntrerupt� de %s."
943
+
944
+ #: includes/admin/table-printer.php:508
945
+ msgid "Log"
946
+ msgstr "Jurnal"
947
+
948
+ #: includes/admin/table-printer.php:529
949
+ msgid "Show more info about this link"
950
+ msgstr "Arat� mai multe informa�ii despre aceast� leg�tur�"
951
+
952
+ #: includes/admin/table-printer.php:547
953
+ msgctxt "checked how long ago"
954
+ msgid "Checked"
955
+ msgstr "Verificare"
956
+
957
+ #: includes/admin/table-printer.php:563
958
+ msgid "Broken for"
959
+ msgstr "�ntrerupt� de"
960
+
961
+ #: includes/admin/table-printer.php:583
962
+ msgid "Edit link URL"
963
+ msgstr "Editare leg�tur� URL"
964
+
965
+ #: includes/admin/table-printer.php:585
966
+ msgid "Remove this link from all posts"
967
+ msgstr "Elimin� aceast� leg�tur� din toate afi��rile"
968
+
969
+ #: includes/admin/table-printer.php:591
970
+ msgid "Remove this link from the list of broken links and mark it as valid"
971
+ msgstr "Elimin� aceast� leg�tur� din lista de leg�turi �nterupte �i marca�i ca valid�"
972
+
973
+ #: includes/admin/table-printer.php:600
974
+ msgid "Cancel URL editing"
975
+ msgstr "Anulare editare URL"
976
+
977
+ #: includes/admin/table-printer.php:607
978
+ msgid "Update URL"
979
+ msgstr "Actualizare URL"
980
+
981
+ #: includes/admin/table-printer.php:629
982
+ msgid "[An orphaned link! This is a bug.]"
983
+ msgstr "[Leg�tur� orfan� (f�r� obiect)! Aceasta este o eroare de cod.]"
984
+
985
+ #: includes/any-post.php:398
986
+ #: modules/containers/blogroll.php:46
987
+ #: modules/containers/comment.php:153
988
+ #: modules/containers/custom_field.php:197
989
+ msgid "Edit"
990
+ msgstr "Editare"
991
+
992
+ #: includes/any-post.php:406
993
+ #: modules/containers/custom_field.php:203
994
+ msgid "Move this item to the Trash"
995
+ msgstr "Mut� acest articol �n Pubel�"
996
+
997
+ #: includes/any-post.php:408
998
+ #: modules/containers/custom_field.php:205
999
+ msgid "Trash"
1000
+ msgstr "Pubel�"
1001
+
1002
+ #: includes/any-post.php:413
1003
+ #: modules/containers/custom_field.php:210
1004
+ msgid "Delete this item permanently"
1005
+ msgstr "�terge definitiv acest articol"
1006
+
1007
+ #: includes/any-post.php:415
1008
+ #: modules/containers/blogroll.php:47
1009
+ #: modules/containers/custom_field.php:212
1010
+ msgid "Delete"
1011
+ msgstr "�tergere"
1012
+
1013
+ #: includes/any-post.php:428
1014
+ #, php-format
1015
+ msgid "Preview &#8220;%s&#8221;"
1016
+ msgstr "Previzualizare &#8220;%s&#8221;"
1017
+
1018
+ #: includes/any-post.php:429
1019
+ msgid "Preview"
1020
+ msgstr "Previzualizare"
1021
+
1022
+ #: includes/any-post.php:436
1023
+ #, php-format
1024
+ msgid "View &#8220;%s&#8221;"
1025
+ msgstr "Vizualizare &#8220;%s&#8221;"
1026
+
1027
+ #: includes/any-post.php:437
1028
+ #: modules/containers/comment.php:166
1029
+ #: modules/containers/custom_field.php:217
1030
+ msgid "View"
1031
+ msgstr "Vizualizare"
1032
+
1033
+ #: includes/any-post.php:456
1034
+ #: modules/containers/custom_field.php:197
1035
+ msgid "Edit this item"
1036
+ msgstr "Editare articol"
1037
+
1038
+ #: includes/any-post.php:520
1039
+ #: modules/containers/blogroll.php:83
1040
+ #: modules/containers/comment.php:43
1041
+ msgid "Nothing to update"
1042
+ msgstr "Nimic de actualizat"
1043
+
1044
+ #: includes/any-post.php:530
1045
+ #, php-format
1046
+ msgid "Updating post %d failed"
1047
+ msgstr "Actualizare a afi��rii %d e�uat�"
1048
+
1049
+ #: includes/any-post.php:565
1050
+ #: modules/containers/custom_field.php:284
1051
+ #, php-format
1052
+ msgid "Failed to delete post \"%s\" (%d)"
1053
+ msgstr "E�uare �tergere afi�are \"%s\" (%d)"
1054
+
1055
+ #: includes/any-post.php:584
1056
+ #: modules/containers/custom_field.php:303
1057
+ #, php-format
1058
+ msgid "Can't move post \"%s\" (%d) to the trash because the trash feature is disabled"
1059
+ msgstr "Nu pot muta afi�area \"%s\" (%d) �n Pubel�, deoarece op�iunea Pubel� este dezactivat�"
1060
+
1061
+ #: includes/any-post.php:604
1062
+ #: modules/containers/custom_field.php:322
1063
+ #, php-format
1064
+ msgid "Failed to move post \"%s\" (%d) to the trash"
1065
+ msgstr "E�uare mutare afi�are \"%s\" (%d) �n Pubel�"
1066
+
1067
+ #: includes/any-post.php:712
1068
+ #, php-format
1069
+ msgid "%d post deleted."
1070
+ msgid_plural "%d posts deleted."
1071
+ msgstr[0] "%d afi�are �tears�."
1072
+ msgstr[1] "%d afi��ri �terse."
1073
+
1074
+ #: includes/any-post.php:714
1075
+ #, php-format
1076
+ msgid "%d page deleted."
1077
+ msgid_plural "%d pages deleted."
1078
+ msgstr[0] "%d pagin� �tears�."
1079
+ msgstr[1] "%d pagini �terse."
1080
+
1081
+ #: includes/any-post.php:716
1082
+ #, php-format
1083
+ msgid "%d \"%s\" deleted."
1084
+ msgid_plural "%d \"%s\" deleted."
1085
+ msgstr[0] "%d \"%s\" �tears�(e)."
1086
+ msgstr[1] "%d \"%s\" �tears�(e)."
1087
+
1088
+ #: includes/any-post.php:735
1089
+ #, php-format
1090
+ msgid "%d post moved to the Trash."
1091
+ msgid_plural "%d posts moved to the Trash."
1092
+ msgstr[0] "%d afi�are mutat� �n Pubel�."
1093
+ msgstr[1] "%d %afi��ri mutate �n Pubel�."
1094
+
1095
+ #: includes/any-post.php:737
1096
+ #, php-format
1097
+ msgid "%d page moved to the Trash."
1098
+ msgid_plural "%d pages moved to the Trash."
1099
+ msgstr[0] "%d pagin� mutat� �n Pubel�."
1100
+ msgstr[1] "%d pagini mutate �n Pubel�."
1101
+
1102
+ #: includes/any-post.php:739
1103
+ #, php-format
1104
+ msgid "%d \"%s\" moved to the Trash."
1105
+ msgid_plural "%d \"%s\" moved to the Trash."
1106
+ msgstr[0] "%d \"%s\" mutat�(e) �n Pubel�."
1107
+ msgstr[1] "%d \"%s\" mutat�(e) �n Pubel�."
1108
+
1109
+ #: includes/containers.php:122
1110
+ #, php-format
1111
+ msgid "%d '%s' has been deleted"
1112
+ msgid_plural "%d '%s' have been deleted"
1113
+ msgstr[0] "%d '%s' a fost �tears�"
1114
+ msgstr[1] "%d '%s' au fost �terse"
1115
+
1116
+ #: includes/containers.php:882
1117
+ #: includes/containers.php:900
1118
+ #, php-format
1119
+ msgid "Container type '%s' not recognized"
1120
+ msgstr "Tip recipient '%s' nerecunoscut"
1121
+
1122
+ #: includes/extra-strings.php:2
1123
+ msgctxt "module name"
1124
+ msgid "Basic HTTP"
1125
+ msgstr "HTTP elementar"
1126
+
1127
+ #: includes/extra-strings.php:3
1128
+ msgctxt "module name"
1129
+ msgid "Blogroll items"
1130
+ msgstr "Articole stat blog"
1131
+
1132
+ #: includes/extra-strings.php:4
1133
+ msgctxt "module name"
1134
+ msgid "Comments"
1135
+ msgstr "Comentarii"
1136
+
1137
+ #: includes/extra-strings.php:5
1138
+ msgctxt "module name"
1139
+ msgid "Custom fields"
1140
+ msgstr "C�mpuri personalizabile"
1141
+
1142
+ #: includes/extra-strings.php:6
1143
+ msgctxt "module name"
1144
+ msgid "Embedded DailyMotion videos"
1145
+ msgstr "Clipuri video DailyMotion �ncorporate"
1146
+
1147
+ #: includes/extra-strings.php:7
1148
+ msgctxt "module name"
1149
+ msgid "Embedded Vimeo videos"
1150
+ msgstr "Clipuri video Vimeo �ncorporate"
1151
+
1152
+ #: includes/extra-strings.php:8
1153
+ msgctxt "module name"
1154
+ msgid "Embedded YouTube videos"
1155
+ msgstr "Clipuri video YouTube �ncorporate"
1156
+
1157
+ #: includes/extra-strings.php:9
1158
+ msgctxt "module name"
1159
+ msgid "HTML images"
1160
+ msgstr "Imagini HTML"
1161
+
1162
+ #: includes/extra-strings.php:10
1163
+ msgctxt "module name"
1164
+ msgid "HTML links"
1165
+ msgstr "Leg�turi HTML"
1166
+
1167
+ #: includes/extra-strings.php:11
1168
+ msgctxt "module name"
1169
+ msgid "MediaFire API"
1170
+ msgstr "IPA (interfa�� de programare a aplica�iei - API) MediaFire"
1171
+
1172
+ #: includes/extra-strings.php:12
1173
+ msgctxt "module name"
1174
+ msgid "MegaUpload API"
1175
+ msgstr "Mega�nc�rcare IPA (API)"
1176
+
1177
+ #: includes/extra-strings.php:13
1178
+ msgctxt "module name"
1179
+ msgid "Plaintext URLs"
1180
+ msgstr "URL-uri de text simplu"
1181
+
1182
+ #: includes/extra-strings.php:14
1183
+ msgctxt "module name"
1184
+ msgid "RapidShare API"
1185
+ msgstr "IPA (interfa�� de programare a aplica�iei - API) RapidShare"
1186
+
1187
+ #: includes/extra-strings.php:15
1188
+ msgctxt "module name"
1189
+ msgid "YouTube API"
1190
+ msgstr "IPA (interfa�� de programare a aplica�iei - API) YouTube"
1191
+
1192
+ #: includes/extra-strings.php:16
1193
+ msgctxt "module name"
1194
+ msgid "Posts"
1195
+ msgstr "Afi��ri"
1196
+
1197
+ #: includes/extra-strings.php:17
1198
+ msgctxt "module name"
1199
+ msgid "Pages"
1200
+ msgstr "Pagini"
1201
+
1202
+ #: includes/instances.php:102
1203
+ #: includes/instances.php:158
1204
+ #, php-format
1205
+ msgid "Container %s[%d] not found"
1206
+ msgstr "Recipient %s[%d] neg�sit"
1207
+
1208
+ #: includes/instances.php:111
1209
+ #: includes/instances.php:167
1210
+ #, php-format
1211
+ msgid "Parser '%s' not found."
1212
+ msgstr "Analizor de cod '%s' neg�sit."
1213
+
1214
+ #: includes/link-query.php:25
1215
+ msgid "Broken"
1216
+ msgstr "�ntrerupt�"
1217
+
1218
+ #: includes/link-query.php:27
1219
+ msgid "No broken links found"
1220
+ msgstr "Nu s-au g�sit leg�turi �ntrerupte"
1221
+
1222
+ #: includes/link-query.php:34
1223
+ msgid "Redirects"
1224
+ msgstr "Redirec�ion�ri"
1225
+
1226
+ #: includes/link-query.php:35
1227
+ msgid "Redirected Links"
1228
+ msgstr "Leg�turi redirec�ionate"
1229
+
1230
+ #: includes/link-query.php:36
1231
+ msgid "No redirects found"
1232
+ msgstr "Nu s-au g�sit redirec�ion�ri"
1233
+
1234
+ #: includes/link-query.php:44
1235
+ msgid "All"
1236
+ msgstr "Toate"
1237
+
1238
+ #: includes/link-query.php:45
1239
+ msgid "Detected Links"
1240
+ msgstr "Leg�turi detectate"
1241
+
1242
+ #: includes/link-query.php:46
1243
+ msgid "No links found (yet)"
1244
+ msgstr "Nu s-au g�sit leg�turi (�nc�)"
1245
+
1246
+ #: includes/link-query.php:54
1247
+ msgid "Search Results"
1248
+ msgstr "Rezultate C�utare"
1249
+
1250
+ #: includes/link-query.php:55
1251
+ #: includes/link-query.php:106
1252
+ msgid "No links found for your query"
1253
+ msgstr "Nu s-au g�sit leg�turi pentru solicitarea dvs."
1254
+
1255
+ #: includes/links.php:215
1256
+ msgid "The plugin script was terminated while trying to check the link."
1257
+ msgstr "Scriptul modulului extensie a fost �nchis �n timp ce se �ncerca verificarea leg�turii."
1258
+
1259
+ #: includes/links.php:261
1260
+ msgid "The plugin doesn't know how to check this type of link."
1261
+ msgstr "Modulul extensie nu �tie s� verifice acest tip de leg�tur�."
1262
+
1263
+ #: includes/links.php:349
1264
+ msgid "Link is valid."
1265
+ msgstr "Leg�tura este valid�."
1266
+
1267
+ #: includes/links.php:351
1268
+ msgid "Link is broken."
1269
+ msgstr "Leg�tura este �ntrerupt�."
1270
+
1271
+ #: includes/links.php:564
1272
+ #: includes/links.php:666
1273
+ #: includes/links.php:693
1274
+ msgid "Link is not valid"
1275
+ msgstr "Leg�tura nu este valid�."
1276
+
1277
+ #: includes/links.php:581
1278
+ msgid "This link can not be edited because it is not used anywhere on this site."
1279
+ msgstr "Aceast� leg�tur� nu poate fi editat�, pentru c� nu este folosit� nic�ieri pe acest sit."
1280
+
1281
+ #: includes/links.php:607
1282
+ msgid "Failed to create a DB entry for the new URL."
1283
+ msgstr "Nu s-a reu�it crearea unei intr�ri �n BD pentru noul URL."
1284
+
1285
+ #: includes/links.php:673
1286
+ msgid "This link is not a redirect"
1287
+ msgstr "Leg�tura nu este o redirec�ionare."
1288
+
1289
+ #: includes/links.php:720
1290
+ #: includes/links.php:757
1291
+ msgid "Couldn't delete the link's database record"
1292
+ msgstr "Nu s-a putut �terge �nregistrarea acestei leg�turi din baza de date"
1293
+
1294
+ #: includes/links.php:831
1295
+ msgctxt "link status"
1296
+ msgid "Unknown"
1297
+ msgstr "Necunoscut"
1298
+
1299
+ #: includes/links.php:845
1300
+ #: modules/checkers/http.php:263
1301
+ msgid "Unknown Error"
1302
+ msgstr "Eroare necunoscut�"
1303
+
1304
+ #: includes/links.php:869
1305
+ msgid "Not checked"
1306
+ msgstr "Neverificat�"
1307
+
1308
+ #: includes/links.php:872
1309
+ msgid "False positive"
1310
+ msgstr "Pozitiv fals"
1311
+
1312
+ #: includes/links.php:875
1313
+ msgctxt "link status"
1314
+ msgid "OK"
1315
+ msgstr "OK"
1316
+
1317
+ #: includes/module-manager.php:122
1318
+ #: includes/module-manager.php:139
1319
+ msgctxt "module name"
1320
+ msgid "Name"
1321
+ msgstr "Nume"
1322
+
1323
+ #: includes/parsers.php:109
1324
+ #, php-format
1325
+ msgid "Editing is not implemented in the '%s' parser"
1326
+ msgstr "Editarea nu este implementat� �n analizorul de cod '%s'"
1327
+
1328
+ #: includes/parsers.php:124
1329
+ #, php-format
1330
+ msgid "Unlinking is not implemented in the '%s' parser"
1331
+ msgstr "Dezasocierea nu este implementat� �n analizorul de cod '%s'"
1332
+
1333
+ #: includes/utility-class.php:287
1334
+ #, php-format
1335
+ msgid "%d second"
1336
+ msgid_plural "%d seconds"
1337
+ msgstr[0] "%d secund�"
1338
+ msgstr[1] "%d secunde"
1339
+
1340
+ #: includes/utility-class.php:288
1341
+ #, php-format
1342
+ msgid "%d second ago"
1343
+ msgid_plural "%d seconds ago"
1344
+ msgstr[0] "acum %d secund�"
1345
+ msgstr[1] "acum %d secunde"
1346
+
1347
+ #: includes/utility-class.php:291
1348
+ #, php-format
1349
+ msgid "%d minute"
1350
+ msgid_plural "%d minutes"
1351
+ msgstr[0] "%d minut"
1352
+ msgstr[1] "%d minute"
1353
+
1354
+ #: includes/utility-class.php:292
1355
+ #, php-format
1356
+ msgid "%d minute ago"
1357
+ msgid_plural "%d minutes ago"
1358
+ msgstr[0] "acum %d minut"
1359
+ msgstr[1] "acum %d minute"
1360
+
1361
+ #: includes/utility-class.php:295
1362
+ #, php-format
1363
+ msgid "%d hour"
1364
+ msgid_plural "%d hours"
1365
+ msgstr[0] "%d or�"
1366
+ msgstr[1] "%d ore"
1367
+
1368
+ #: includes/utility-class.php:296
1369
+ #, php-format
1370
+ msgid "%d hour ago"
1371
+ msgid_plural "%d hours ago"
1372
+ msgstr[0] "acum %d or�"
1373
+ msgstr[1] "acum %d ore"
1374
+
1375
+ #: includes/utility-class.php:299
1376
+ #, php-format
1377
+ msgid "%d day"
1378
+ msgid_plural "%d days"
1379
+ msgstr[0] "%d zi"
1380
+ msgstr[1] "%d zile"
1381
+
1382
+ #: includes/utility-class.php:300
1383
+ #, php-format
1384
+ msgid "%d day ago"
1385
+ msgid_plural "%d days ago"
1386
+ msgstr[0] "acum %d zi"
1387
+ msgstr[1] "acum %d zile"
1388
+
1389
+ #: includes/utility-class.php:303
1390
+ #, php-format
1391
+ msgid "%d month"
1392
+ msgid_plural "%d months"
1393
+ msgstr[0] "%d lun�"
1394
+ msgstr[1] "%d luni"
1395
+
1396
+ #: includes/utility-class.php:304
1397
+ #, php-format
1398
+ msgid "%d month ago"
1399
+ msgid_plural "%d months ago"
1400
+ msgstr[0] "acum %d lun�"
1401
+ msgstr[1] "acum %d luni"
1402
+
1403
+ #: modules/checkers/http.php:242
1404
+ msgid "Server Not Found"
1405
+ msgstr "Server de neg�sit"
1406
+
1407
+ #: modules/checkers/http.php:257
1408
+ msgid "Connection Failed"
1409
+ msgstr "Conectare e�uat�"
1410
+
1411
+ #: modules/checkers/http.php:292
1412
+ #: modules/checkers/http.php:362
1413
+ #, php-format
1414
+ msgid "HTTP code : %d"
1415
+ msgstr "cod HTTP: %d"
1416
+
1417
+ #: modules/checkers/http.php:294
1418
+ #: modules/checkers/http.php:364
1419
+ msgid "(No response)"
1420
+ msgstr "(Nici un r�spuns)"
1421
+
1422
+ #: modules/checkers/http.php:300
1423
+ msgid "Most likely the connection timed out or the domain doesn't exist."
1424
+ msgstr "Cel mai probabil, timpul conexiunii a expirat ori domeniul nu exist�."
1425
+
1426
+ #: modules/checkers/http.php:371
1427
+ msgid "Request timed out."
1428
+ msgstr "Timpul solicit�rii a expirat."
1429
+
1430
+ #: modules/checkers/http.php:389
1431
+ msgid "Using Snoopy"
1432
+ msgstr "Folosirea Snoopy"
1433
+
1434
+ #: modules/containers/blogroll.php:21
1435
+ msgid "Bookmark"
1436
+ msgstr "Semne de carte"
1437
+
1438
+ #: modules/containers/blogroll.php:27
1439
+ #: modules/containers/blogroll.php:46
1440
+ msgid "Edit this bookmark"
1441
+ msgstr "Editare semn de carte"
1442
+
1443
+ #: modules/containers/blogroll.php:47
1444
+ #, php-format
1445
+ msgid ""
1446
+ "You are about to delete this link '%s'\n"
1447
+ " 'Cancel' to stop, 'OK' to delete."
1448
+ msgstr ""
1449
+ "Sunte�i pe cale s� �terge�i aceast� leg�tur� '%s'\n"
1450
+ " 'Anulare' pentru a v� opri, 'OK' pentru a �terge."
1451
+
1452
+ #: modules/containers/blogroll.php:97
1453
+ #, php-format
1454
+ msgid "Updating bookmark %d failed"
1455
+ msgstr "Actulaizarea semnului de carte %d a e�uat"
1456
+
1457
+ #: modules/containers/blogroll.php:128
1458
+ #, php-format
1459
+ msgid "Failed to delete blogroll link \"%s\" (%d)"
1460
+ msgstr "Nu s-a reu�it �tergerea leg�turii statului de blog \"%s\" (%d)"
1461
+
1462
+ #: modules/containers/blogroll.php:299
1463
+ #, php-format
1464
+ msgid "%d blogroll link deleted."
1465
+ msgid_plural "%d blogroll links deleted."
1466
+ msgstr[0] "%d leg�tur� de stat de blog �tears�."
1467
+ msgstr[1] "%d leg�turi de stat de blog �terse."
1468
+
1469
+ #: modules/containers/comment.php:53
1470
+ #, php-format
1471
+ msgid "Updating comment %d failed"
1472
+ msgstr "Actualizarea comentariului %d a e�uat"
1473
+
1474
+ #: modules/containers/comment.php:74
1475
+ #, php-format
1476
+ msgid "Failed to delete comment %d"
1477
+ msgstr "�tergerea comentariului %d a e�uat"
1478
+
1479
+ #: modules/containers/comment.php:95
1480
+ #, php-format
1481
+ msgid "Can't move comment %d to the trash"
1482
+ msgstr "Nu s-a putut muta comentariul %d �n Pubel�"
1483
+
1484
+ #: modules/containers/comment.php:153
1485
+ #: modules/containers/comment.php:195
1486
+ msgid "Edit comment"
1487
+ msgstr "Editare comentariu"
1488
+
1489
+ #: modules/containers/comment.php:160
1490
+ msgid "Delete Permanently"
1491
+ msgstr "�tergere Permanent�"
1492
+
1493
+ #: modules/containers/comment.php:162
1494
+ msgid "Move this comment to the trash"
1495
+ msgstr "Muta�i acest comentariu �n Pubel�"
1496
+
1497
+ #: modules/containers/comment.php:162
1498
+ msgctxt "verb"
1499
+ msgid "Trash"
1500
+ msgstr "Pubel�"
1501
+
1502
+ #: modules/containers/comment.php:166
1503
+ msgid "View comment"
1504
+ msgstr "Vizualizare comentariu"
1505
+
1506
+ #: modules/containers/comment.php:183
1507
+ msgid "Comment"
1508
+ msgstr "Comentariu"
1509
+
1510
+ #: modules/containers/comment.php:372
1511
+ #, php-format
1512
+ msgid "%d comment has been deleted."
1513
+ msgid_plural "%d comments have been deleted."
1514
+ msgstr[0] "%d comentariu a fost �ters."
1515
+ msgstr[1] "%d comentarii au fost �terse."
1516
+
1517
+ #: modules/containers/comment.php:391
1518
+ #, php-format
1519
+ msgid "%d comment moved to the Trash."
1520
+ msgid_plural "%d comments moved to the Trash."
1521
+ msgstr[0] "%d comentariu mutat �n Pubel�."
1522
+ msgstr[1] "%d comentarii mutate �n Pubel�."
1523
+
1524
+ #: modules/containers/custom_field.php:84
1525
+ #, php-format
1526
+ msgid "Failed to update the meta field '%s' on %s [%d]"
1527
+ msgstr "S-a e�uat actualizarea meta c�mpului '%s' la %s [%d]"
1528
+
1529
+ #: modules/containers/custom_field.php:110
1530
+ #, php-format
1531
+ msgid "Failed to delete the meta field '%s' on %s [%d]"
1532
+ msgstr "S-a e�uat �tergerea meta c�mpului '%s' la %s [%d]"
1533
+
1534
+ #: modules/containers/custom_field.php:187
1535
+ msgid "Edit this post"
1536
+ msgstr "Editare afi�are"
1537
+
1538
+ #: modules/containers/custom_field.php:217
1539
+ #, php-format
1540
+ msgid "View \"%s\""
1541
+ msgstr "Vizualizare \"%s\""
1542
+
1543
+ #: modules/containers/dummy.php:34
1544
+ #: modules/containers/dummy.php:45
1545
+ #, php-format
1546
+ msgid "I don't know how to edit a '%s' [%d]."
1547
+ msgstr "Nu �tiu cum s� editez un '%s' [%d]."
1548
+
1549
+ #: modules/parsers/image.php:156
1550
+ msgid "Image"
1551
+ msgstr "Imagine"
1552
+
1553
+ #: modules/parsers/metadata.php:117
1554
+ msgid "Custom field"
1555
+ msgstr "C�mp personalizabil"
1556
+
1557
+ #. Plugin URI of the plugin/theme
1558
+ msgid "http://w-shadow.com/blog/2007/08/05/broken-link-checker-for-wordpress/"
1559
+ msgstr "http://w-shadow.com/blog/2007/08/05/broken-link-checker-for-wordpress/"
1560
+
1561
+ #. Description of the plugin/theme
1562
+ msgid "Checks your blog for broken links and missing images and notifies you on the dashboard if any are found."
1563
+ msgstr "V� verific� blogul pentru leg�turi �ntrerupte �i imagini lips� �i ��i notific� dac� se g�se�te vreuna, pe tabloul de bord."
1564
+
1565
+ #. Author of the plugin/theme
1566
+ msgid "Janis Elsts"
1567
+ msgstr "Janis Elsts"
1568
+
1569
+ #. Author URI of the plugin/theme
1570
+ msgid "http://w-shadow.com/blog/"
1571
+ msgstr "http://w-shadow.com/blog/"
1572
+
languages/broken-link-checker.pot CHANGED
@@ -1,207 +1,520 @@
1
- # Translation of the WordPress plugin Broken Link Checker 0.9.6 by Janis Elsts.
2
- # Copyright (C) 2010 Janis Elsts
3
  # This file is distributed under the same license as the Broken Link Checker package.
4
- # FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
5
- #
6
- #, fuzzy
7
  msgid ""
8
  msgstr ""
9
- "Project-Id-Version: Broken Link Checker 0.9.6\n"
10
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/broken-link-checker\n"
11
- "POT-Creation-Date: 2010-10-08 16:08+0000\n"
 
 
 
12
  "PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
- "MIME-Version: 1.0\n"
16
- "Content-Type: text/plain; charset=utf-8\n"
17
- "Content-Transfer-Encoding: 8bit\n"
18
- "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
19
 
20
- #: core/core.php:152 includes/admin/links-page-js.php:37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  msgid "Loading..."
22
  msgstr ""
23
 
24
- #: core/core.php:176 includes/admin/options-page-js.php:18
25
  msgid "[ Network error ]"
26
  msgstr ""
27
 
28
- #: core/core.php:201
29
  msgid "Automatically expand the widget if broken links have been detected"
30
  msgstr ""
31
 
32
- #: core/core.php:342
33
  msgid "Link Checker Settings"
34
  msgstr ""
35
 
36
- #: core/core.php:343
37
  msgid "Link Checker"
38
  msgstr ""
39
 
40
- #: core/core.php:348 includes/link-query.php:26
41
  msgid "Broken Links"
42
  msgstr ""
43
 
44
- #: core/core.php:364
45
  msgid "View Broken Links"
46
  msgstr ""
47
 
48
- #: core/core.php:392
 
 
 
 
 
 
 
 
 
 
 
 
49
  msgid "Settings"
50
  msgstr ""
51
 
52
- #: core/core.php:404 core/core.php:1186
53
- #, php-format
54
  msgid ""
55
  "Error: The plugin's database tables are not up to date! (Current version : %"
56
  "d, expected : %d)"
57
  msgstr ""
58
 
59
- #: core/core.php:543
60
  msgid "Settings saved."
61
  msgstr ""
62
 
63
- #: core/core.php:550
 
 
 
 
64
  msgid "Complete site recheck started."
65
  msgstr ""
66
 
67
- #: core/core.php:564 core/core.php:2744
68
  msgid "Details"
69
  msgstr ""
70
 
71
- #: core/core.php:578
72
  msgid "General"
73
  msgstr ""
74
 
75
- #: core/core.php:579
76
  msgid "Look For Links In"
77
  msgstr ""
78
 
79
- #: core/core.php:580
80
  msgid "Which Links To Check"
81
  msgstr ""
82
 
83
- #: core/core.php:581
84
  msgid "Protocols & APIs"
85
  msgstr ""
86
 
87
- #: core/core.php:582
88
  msgid "Advanced"
89
  msgstr ""
90
 
91
- #: core/core.php:586
92
  msgid "Broken Link Checker Options"
93
  msgstr ""
94
 
95
- #: core/core.php:612 includes/admin/table-printer.php:168
96
  msgid "Status"
97
  msgstr ""
98
 
99
- #: core/core.php:614 includes/admin/options-page-js.php:56
100
  msgid "Show debug info"
101
  msgstr ""
102
 
103
- #: core/core.php:642
104
  msgid "Check each link"
105
  msgstr ""
106
 
107
- #: core/core.php:647
108
- #, php-format
109
  msgid "Every %s hours"
110
  msgstr ""
111
 
112
- #: core/core.php:656
113
  msgid ""
114
  "Existing links will be checked this often. New links will usually be checked "
115
  "ASAP."
116
  msgstr ""
117
 
118
- #: core/core.php:663
119
  msgid "E-mail notifications"
120
  msgstr ""
121
 
122
- #: core/core.php:669
123
  msgid "Send me e-mail notifications about newly detected broken links"
124
  msgstr ""
125
 
126
- #: core/core.php:676
127
  msgid "Link tweaks"
128
  msgstr ""
129
 
130
- #: core/core.php:682
131
  msgid "Apply custom formatting to broken links"
132
  msgstr ""
133
 
134
- #: core/core.php:686 core/core.php:714
135
  msgid "Edit CSS"
136
  msgstr ""
137
 
138
- #: core/core.php:710
139
  msgid "Apply custom formatting to removed links"
140
  msgstr ""
141
 
142
- #: core/core.php:738
143
  msgid "Stop search engines from following broken links"
144
  msgstr ""
145
 
146
- #: core/core.php:755
147
  msgid "Look for links in"
148
  msgstr ""
149
 
150
- #: core/core.php:766
151
  msgid "Post statuses"
152
  msgstr ""
153
 
154
- #: core/core.php:799
155
  msgid "Link types"
156
  msgstr ""
157
 
158
- #: core/core.php:805
159
  msgid "Error : All link parsers missing!"
160
  msgstr ""
161
 
162
- #: core/core.php:812
163
  msgid "Exclusion list"
164
  msgstr ""
165
 
166
- #: core/core.php:813
167
  msgid ""
168
  "Don't check links where the URL contains any of these words (one per line) :"
169
  msgstr ""
170
 
171
- #: core/core.php:831
172
  msgid "Check links using"
173
  msgstr ""
174
 
175
- #: core/core.php:850 includes/links.php:849
176
  msgid "Timeout"
177
  msgstr ""
178
 
179
- #: core/core.php:856 core/core.php:902 core/core.php:2871
180
- #, php-format
181
  msgid "%s seconds"
182
  msgstr ""
183
 
184
- #: core/core.php:865
185
  msgid "Links that take longer than this to load will be marked as broken."
186
  msgstr ""
187
 
188
- #: core/core.php:872
189
  msgid "Link monitor"
190
  msgstr ""
191
 
192
- #: core/core.php:880
193
  msgid "Run continuously while the Dashboard is open"
194
  msgstr ""
195
 
196
- #: core/core.php:888
197
  msgid "Run hourly in the background"
198
  msgstr ""
199
 
200
- #: core/core.php:896
201
  msgid "Max. execution time"
202
  msgstr ""
203
 
204
- #: core/core.php:913
205
  msgid ""
206
  "The plugin works by periodically launching a background job that parses your "
207
  "posts for links, checks the discovered URLs, and performs other time-"
@@ -209,158 +522,139 @@ msgid ""
209
  "may run each time before stopping."
210
  msgstr ""
211
 
212
- #: core/core.php:923
213
  msgid "Custom temporary directory"
214
  msgstr ""
215
 
216
- #: core/core.php:932
217
- msgid "OK"
218
- msgstr ""
219
-
220
- #: core/core.php:935
221
  msgid "Error : This directory isn't writable by PHP."
222
  msgstr ""
223
 
224
- #: core/core.php:940
225
  msgid "Error : This directory doesn't exist."
226
  msgstr ""
227
 
228
- #: core/core.php:948
229
  msgid ""
230
  "Set this field if you want the plugin to use a custom directory for its "
231
  "lockfiles. Otherwise, leave it blank."
232
  msgstr ""
233
 
234
- #: core/core.php:955
235
  msgid "Server load limit"
236
  msgstr ""
237
 
238
- #: core/core.php:970
239
- #, php-format
240
  msgid "Current load : %s"
241
  msgstr ""
242
 
243
- #: core/core.php:976
244
- #, php-format
245
  msgid ""
246
  "Link checking will be suspended if the average <a href=\"%s\">server load</"
247
  "a> rises above this number. Leave this field blank to disable load limiting."
248
  msgstr ""
249
 
250
- #: core/core.php:984
251
  msgid "Not available"
252
  msgstr ""
253
 
254
- #: core/core.php:986
255
  msgid ""
256
  "Load limiting only works on Linux-like systems where <code>/proc/loadavg</"
257
  "code> is present and accessible."
258
  msgstr ""
259
 
260
- #: core/core.php:994
261
  msgid "Forced recheck"
262
  msgstr ""
263
 
264
- #: core/core.php:997
265
  msgid "Re-check all pages"
266
  msgstr ""
267
 
268
- #: core/core.php:1001
269
  msgid ""
270
  "The \"Nuclear Option\". Click this button to make the plugin empty its link "
271
  "database and recheck the entire site from scratch."
272
  msgstr ""
273
 
274
- #: core/core.php:1012
275
  msgid "Save Changes"
276
  msgstr ""
277
 
278
- #: core/core.php:1057
279
  msgid "Configure"
280
  msgstr ""
281
 
282
- #: core/core.php:1117
283
- msgid "Upgrade to Pro to enable this feature"
284
  msgstr ""
285
 
286
- #: core/core.php:1152
287
- msgid "Check URLs entered in these custom fields (one per line) :"
288
- msgstr ""
289
-
290
- #: core/core.php:1286 core/core.php:1370 core/core.php:1402
291
- #, php-format
292
  msgid "Database error : %s"
293
  msgstr ""
294
 
295
- #: core/core.php:1352
296
  msgid "You must enter a filter name!"
297
  msgstr ""
298
 
299
- #: core/core.php:1356
300
  msgid "Invalid search query."
301
  msgstr ""
302
 
303
- #: core/core.php:1365
304
- #, php-format
305
  msgid "Filter \"%s\" created"
306
  msgstr ""
307
 
308
- #: core/core.php:1392
309
  msgid "Filter ID not specified."
310
  msgstr ""
311
 
312
- #: core/core.php:1399
313
  msgid "Filter deleted"
314
  msgstr ""
315
 
316
- #: core/core.php:1447
317
- #, php-format
318
  msgid "Replaced %d redirect with a direct link"
319
  msgid_plural "Replaced %d redirects with direct links"
320
  msgstr[0] ""
321
  msgstr[1] ""
322
 
323
- #: core/core.php:1458
324
- #, php-format
325
  msgid "Failed to fix %d redirect"
326
  msgid_plural "Failed to fix %d redirects"
327
  msgstr[0] ""
328
  msgstr[1] ""
329
 
330
- #: core/core.php:1468
331
  msgid "None of the selected links are redirects!"
332
  msgstr ""
333
 
334
- #: core/core.php:1547
335
- #, php-format
336
  msgid "%d link updated."
337
  msgid_plural "%d links updated."
338
  msgstr[0] ""
339
  msgstr[1] ""
340
 
341
- #: core/core.php:1558
342
- #, php-format
343
  msgid "Failed to update %d link."
344
  msgid_plural "Failed to update %d links."
345
  msgstr[0] ""
346
  msgstr[1] ""
347
 
348
- #: core/core.php:1612
349
- #, php-format
350
  msgid "%d link removed"
351
  msgid_plural "%d links removed"
352
  msgstr[0] ""
353
  msgstr[1] ""
354
 
355
- #: core/core.php:1623
356
- #, php-format
357
  msgid "Failed to remove %d link"
358
  msgid_plural "Failed to remove %d links"
359
  msgstr[0] ""
360
  msgstr[1] ""
361
 
362
- #: core/core.php:1732
363
- #, php-format
364
  msgid ""
365
  "%d item was skipped because it can't be moved to the Trash. You need to "
366
  "delete it manually."
@@ -370,186 +664,174 @@ msgid_plural ""
370
  msgstr[0] ""
371
  msgstr[1] ""
372
 
373
- #: core/core.php:1753
374
  msgid "Didn't find anything to delete!"
375
  msgstr ""
376
 
377
- #: core/core.php:1781
378
- #, php-format
379
  msgid "%d link scheduled for rechecking"
380
  msgid_plural "%d links scheduled for rechecking"
381
  msgstr[0] ""
382
  msgstr[1] ""
383
 
384
- #: core/core.php:1826 core/core.php:2431
385
  msgid "This link was manually marked as working by the user."
386
  msgstr ""
387
 
388
- #: core/core.php:1833
389
- #, php-format
390
  msgid "Couldn't modify link %d"
391
  msgstr ""
392
 
393
- #: core/core.php:1844
394
- #, php-format
395
  msgid "%d link marked as not broken"
396
  msgid_plural "%d links marked as not broken"
397
  msgstr[0] ""
398
  msgstr[1] ""
399
 
400
- #: core/core.php:1884
401
  msgid "Table columns"
402
  msgstr ""
403
 
404
- #: core/core.php:1903
405
  msgid "Show on screen"
406
  msgstr ""
407
 
408
- #: core/core.php:1910
409
  msgid "links"
410
  msgstr ""
411
 
412
- #: core/core.php:1911 includes/admin/table-printer.php:136
413
  msgid "Apply"
414
  msgstr ""
415
 
416
- #: core/core.php:1915
417
  msgid "Misc"
418
  msgstr ""
419
 
420
- #: core/core.php:1930
421
- #, php-format
422
  msgid "Highlight links broken for at least %s days"
423
  msgstr ""
424
 
425
- #: core/core.php:1939
426
  msgid "Color-code status codes"
427
  msgstr ""
428
 
429
- #: core/core.php:1956 core/core.php:2416 core/core.php:2452 core/core.php:2515
430
  msgid "You're not allowed to do that!"
431
  msgstr ""
432
 
433
- #: core/core.php:2297
434
  msgid "View broken links"
435
  msgstr ""
436
 
437
- #: core/core.php:2298
438
- #, php-format
439
  msgid "Found %d broken link"
440
  msgid_plural "Found %d broken links"
441
  msgstr[0] ""
442
  msgstr[1] ""
443
 
444
- #: core/core.php:2304
445
  msgid "No broken links found."
446
  msgstr ""
447
 
448
- #: core/core.php:2311
449
- #, php-format
450
  msgid "%d URL in the work queue"
451
  msgid_plural "%d URLs in the work queue"
452
  msgstr[0] ""
453
  msgstr[1] ""
454
 
455
- #: core/core.php:2314
456
  msgid "No URLs in the work queue."
457
  msgstr ""
458
 
459
- #: core/core.php:2320
460
- #, php-format
461
  msgid "Detected %d unique URL"
462
  msgid_plural "Detected %d unique URLs"
463
  msgstr[0] ""
464
  msgstr[1] ""
465
 
466
- #: core/core.php:2321
467
- #, php-format
468
  msgid "in %d link"
469
  msgid_plural "in %d links"
470
  msgstr[0] ""
471
  msgstr[1] ""
472
 
473
- #: core/core.php:2326
474
  msgid "and still searching..."
475
  msgstr ""
476
 
477
- #: core/core.php:2332
478
  msgid "Searching your blog for links..."
479
  msgstr ""
480
 
481
- #: core/core.php:2334
482
  msgid "No links detected."
483
  msgstr ""
484
 
485
- #: core/core.php:2360
486
  msgctxt "current load"
487
  msgid "Unknown"
488
  msgstr ""
489
 
490
- #: core/core.php:2424 core/core.php:2462 core/core.php:2525
491
- #, php-format
492
  msgid "Oops, I can't find the link %d"
493
  msgstr ""
494
 
495
- #: core/core.php:2437
496
  msgid "Oops, couldn't modify the link!"
497
  msgstr ""
498
 
499
- #: core/core.php:2440 core/core.php:2551
500
  msgid "Error : link_id not specified"
501
  msgstr ""
502
 
503
- #: core/core.php:2472
504
  msgid "Oops, the new URL is invalid!"
505
  msgstr ""
506
 
507
- #: core/core.php:2483 core/core.php:2534
508
  msgid "An unexpected error occured!"
509
  msgstr ""
510
 
511
- #: core/core.php:2501
512
  msgid "Error : link_id or new_url not specified"
513
  msgstr ""
514
 
515
- #: core/core.php:2560
516
  msgid "You don't have sufficient privileges to access this information!"
517
  msgstr ""
518
 
519
- #: core/core.php:2573
520
  msgid "Error : link ID not specified"
521
  msgstr ""
522
 
523
- #: core/core.php:2587
524
- #, php-format
525
  msgid "Failed to load link details (%s)"
526
  msgstr ""
527
 
528
- #. #-#-#-#-# plugin.pot (Broken Link Checker 0.9.6) #-#-#-#-#
529
  #. Plugin Name of the plugin/theme
530
- #: core/core.php:2716
531
  msgid "Broken Link Checker"
532
  msgstr ""
533
 
534
- #: core/core.php:2730
535
- #, php-format
536
  msgid ""
537
  "The current temporary directory is not accessible; please <a href=\"%s\">set "
538
  "a different one</a>."
539
  msgstr ""
540
 
541
- #: core/core.php:2735
542
- #, php-format
543
  msgid ""
544
  "Please make the directory <code>%1$s</code> writable by plugins or <a href="
545
  "\"%2$s\">set a custom temporary directory</a>."
546
  msgstr ""
547
 
548
- #: core/core.php:2742
549
  msgid "Broken Link Checker can't create a lockfile."
550
  msgstr ""
551
 
552
- #: core/core.php:2747
553
  msgid ""
554
  "The plugin uses a file-based locking mechanism to ensure that only one "
555
  "instance of the resource-heavy link checking algorithm is running at any "
@@ -560,141 +842,115 @@ msgid ""
560
  "specify a custom temporary directory in the plugin's settings."
561
  msgstr ""
562
 
563
- #: core/core.php:2766
564
  msgid "PHP version"
565
  msgstr ""
566
 
567
- #: core/core.php:2772
568
  msgid "MySQL version"
569
  msgstr ""
570
 
571
- #: core/core.php:2785
572
  msgid ""
573
  "You have an old version of CURL. Redirect detection may not work properly."
574
  msgstr ""
575
 
576
- #: core/core.php:2797 core/core.php:2813 core/core.php:2818
577
  msgid "Not installed"
578
  msgstr ""
579
 
580
- #: core/core.php:2800
581
  msgid "CURL version"
582
  msgstr ""
583
 
584
- #: core/core.php:2806
585
  msgid "Installed"
586
  msgstr ""
587
 
588
- #: core/core.php:2819
589
  msgid "You must have either CURL or Snoopy installed for the plugin to work!"
590
  msgstr ""
591
 
592
- #: core/core.php:2830
593
  msgid "On"
594
  msgstr ""
595
 
596
- #: core/core.php:2831
597
  msgid "Redirects may be detected as broken links when safe_mode is on."
598
  msgstr ""
599
 
600
- #: core/core.php:2836 core/core.php:2850
601
  msgid "Off"
602
  msgstr ""
603
 
604
- #: core/core.php:2844
605
- #, php-format
606
  msgid "On ( %s )"
607
  msgstr ""
608
 
609
- #: core/core.php:2845
610
  msgid "Redirects may be detected as broken links when open_basedir is on."
611
  msgstr ""
612
 
613
- #: core/core.php:2864
614
  msgid "Can't create a lockfile. Please specify a custom temporary directory."
615
  msgstr ""
616
 
617
- #: core/core.php:2888
618
  msgid ""
619
  "If this value is zero even after several page reloads you have probably "
620
  "encountered a bug."
621
  msgstr ""
622
 
623
- #: core/core.php:2959
624
- #, php-format
625
  msgid "[%s] Broken links detected"
626
  msgstr ""
627
 
628
- #: core/core.php:2965
629
- #, php-format
630
  msgid "Broken Link Checker has detected %d new broken link on your site."
631
  msgid_plural ""
632
  "Broken Link Checker has detected %d new broken links on your site."
633
  msgstr[0] ""
634
  msgstr[1] ""
635
 
636
- #: core/core.php:2980
637
- #, php-format
638
  msgid "Here's a list of the first %d broken links:"
639
  msgid_plural "Here's a list of the first %d broken links:"
640
  msgstr[0] ""
641
  msgstr[1] ""
642
 
643
- #: core/core.php:2988
644
  msgid "Here's a list of the new broken links: "
645
  msgstr ""
646
 
647
- #: core/core.php:3000
648
- #, php-format
649
  msgid "Link text : %s"
650
  msgstr ""
651
 
652
- #: core/core.php:3001
653
- #, php-format
654
  msgid "Link URL : <a href=\"%s\">%s</a>"
655
  msgstr ""
656
 
657
- #: core/core.php:3002
658
- #, php-format
659
  msgid "Source : %s"
660
  msgstr ""
661
 
662
- #: core/core.php:3016
663
  msgid "You can see all broken links here:"
664
  msgstr ""
665
 
666
- #: core/init.php:236
667
- msgid "Once Weekly"
668
- msgstr ""
669
-
670
- #: core/init.php:242
671
- msgid "Twice a Month"
672
- msgstr ""
673
-
674
- #: core/init.php:309
675
- msgid "Broken Link Checker installation failed"
676
- msgstr ""
677
-
678
- #: includes/admin/db-upgrade.php:95
679
- #, php-format
680
- msgid "Failed to delete old DB tables. Database error : %s"
681
- msgstr ""
682
-
683
  #: includes/admin/links-page-js.php:58 includes/admin/links-page-js.php:301
684
  msgid "Wait..."
685
  msgstr ""
686
 
687
- #: includes/admin/links-page-js.php:99 includes/admin/table-printer.php:592
688
  msgid "Not broken"
689
  msgstr ""
690
 
691
  #: includes/admin/links-page-js.php:213
692
- #, php-format
693
  msgid "%d instances of the link were successfully modified."
694
  msgstr ""
695
 
696
  #: includes/admin/links-page-js.php:219
697
- #, php-format
698
  msgid ""
699
  "However, %d instances couldn't be edited and still point to the old URL."
700
  msgstr ""
@@ -708,12 +964,10 @@ msgid "The following error(s) occured :"
708
  msgstr ""
709
 
710
  #: includes/admin/links-page-js.php:339
711
- #, php-format
712
  msgid "%d instances of the link were successfully unlinked."
713
  msgstr ""
714
 
715
  #: includes/admin/links-page-js.php:345
716
- #, php-format
717
  msgid "However, %d instances couldn't be removed."
718
  msgstr ""
719
 
@@ -722,7 +976,7 @@ msgid "The plugin failed to remove the link."
722
  msgstr ""
723
 
724
  #: includes/admin/links-page-js.php:361 includes/admin/table-printer.php:237
725
- #: includes/admin/table-printer.php:586
726
  msgid "Unlink"
727
  msgstr ""
728
 
@@ -758,10 +1012,6 @@ msgstr ""
758
  msgid "Select one or more links to edit."
759
  msgstr ""
760
 
761
- #: includes/admin/options-page-js.php:54
762
- msgid "Hide debug info"
763
- msgstr ""
764
-
765
  #: includes/admin/search-form.php:16
766
  msgid "Save This Search As a Filter"
767
  msgstr ""
@@ -782,7 +1032,7 @@ msgstr ""
782
  msgid "URL"
783
  msgstr ""
784
 
785
- #: includes/admin/search-form.php:48 includes/admin/table-printer.php:460
786
  msgid "HTTP code"
787
  msgstr ""
788
 
@@ -806,11 +1056,33 @@ msgstr ""
806
  msgid "Search Links"
807
  msgstr ""
808
 
809
- #: includes/admin/search-form.php:113 includes/admin/table-printer.php:318
810
- #: includes/admin/table-printer.php:600 includes/admin/table-printer.php:606
811
  msgid "Cancel"
812
  msgstr ""
813
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
814
  #: includes/admin/table-printer.php:150
815
  msgid "Compact View"
816
  msgstr ""
@@ -831,7 +1103,7 @@ msgstr ""
831
  msgid "Bulk Actions"
832
  msgstr ""
833
 
834
- #: includes/admin/table-printer.php:233 includes/admin/table-printer.php:583
835
  msgid "Edit URL"
836
  msgstr ""
837
 
@@ -855,255 +1127,289 @@ msgstr ""
855
  msgid "Delete sources"
856
  msgstr ""
857
 
858
- #: includes/admin/table-printer.php:262
859
  msgid "&laquo;"
860
  msgstr ""
861
 
862
- #: includes/admin/table-printer.php:263
863
  msgid "&raquo;"
864
  msgstr ""
865
 
866
- #: includes/admin/table-printer.php:271
867
- #, php-format
868
  msgid "Displaying %s&#8211;%s of <span class=\"current-link-count\">%s</span>"
869
  msgstr ""
870
 
871
- #: includes/admin/table-printer.php:294
872
  msgid "Bulk Edit URLs"
873
  msgstr ""
874
 
875
- #: includes/admin/table-printer.php:296
876
  msgid "Find"
877
  msgstr ""
878
 
879
- #: includes/admin/table-printer.php:300
880
  msgid "Replace with"
881
  msgstr ""
882
 
883
- #: includes/admin/table-printer.php:308
884
  msgid "Case sensitive"
885
  msgstr ""
886
 
887
- #: includes/admin/table-printer.php:312
888
  msgid "Regular expression"
889
  msgstr ""
890
 
891
- #: includes/admin/table-printer.php:320
892
  msgid "Update"
893
  msgstr ""
894
 
895
- #: includes/admin/table-printer.php:445
896
  msgid "Post published on"
897
  msgstr ""
898
 
899
- #: includes/admin/table-printer.php:450
900
  msgid "Link last checked"
901
  msgstr ""
902
 
903
- #: includes/admin/table-printer.php:454
904
  msgid "Never"
905
  msgstr ""
906
 
907
- #: includes/admin/table-printer.php:465
908
  msgid "Response time"
909
  msgstr ""
910
 
911
- #: includes/admin/table-printer.php:467
912
- #, php-format
913
  msgid "%2.3f seconds"
914
  msgstr ""
915
 
916
- #: includes/admin/table-printer.php:470
917
  msgid "Final URL"
918
  msgstr ""
919
 
920
- #: includes/admin/table-printer.php:475
921
  msgid "Redirect count"
922
  msgstr ""
923
 
924
- #: includes/admin/table-printer.php:480
925
  msgid "Instance count"
926
  msgstr ""
927
 
928
- #: includes/admin/table-printer.php:489
929
- #, php-format
930
  msgid "This link has failed %d time."
931
  msgid_plural "This link has failed %d times."
932
  msgstr[0] ""
933
  msgstr[1] ""
934
 
935
- #: includes/admin/table-printer.php:497
936
- #, php-format
937
  msgid "This link has been broken for %s."
938
  msgstr ""
939
 
940
- #: includes/admin/table-printer.php:508
941
  msgid "Log"
942
  msgstr ""
943
 
944
- #: includes/admin/table-printer.php:529
945
  msgid "Show more info about this link"
946
  msgstr ""
947
 
948
- #: includes/admin/table-printer.php:547
949
  msgctxt "checked how long ago"
950
  msgid "Checked"
951
  msgstr ""
952
 
953
- #: includes/admin/table-printer.php:563
954
  msgid "Broken for"
955
  msgstr ""
956
 
957
- #: includes/admin/table-printer.php:583
958
  msgid "Edit link URL"
959
  msgstr ""
960
 
961
- #: includes/admin/table-printer.php:585
962
  msgid "Remove this link from all posts"
963
  msgstr ""
964
 
965
- #: includes/admin/table-printer.php:591
966
  msgid "Remove this link from the list of broken links and mark it as valid"
967
  msgstr ""
968
 
969
- #: includes/admin/table-printer.php:600
970
  msgid "Cancel URL editing"
971
  msgstr ""
972
 
973
- #: includes/admin/table-printer.php:607
974
  msgid "Update URL"
975
  msgstr ""
976
 
977
- #: includes/admin/table-printer.php:629
978
  msgid "[An orphaned link! This is a bug.]"
979
  msgstr ""
980
 
981
- #: includes/any-post.php:398 modules/containers/blogroll.php:46
982
- #: modules/containers/comment.php:153 modules/containers/custom_field.php:197
983
- msgid "Edit"
984
  msgstr ""
985
 
986
- #: includes/any-post.php:406 modules/containers/custom_field.php:203
987
- msgid "Move this item to the Trash"
988
  msgstr ""
989
 
990
- #: includes/any-post.php:408 modules/containers/custom_field.php:205
991
- msgid "Trash"
992
  msgstr ""
993
 
994
- #: includes/any-post.php:413 modules/containers/custom_field.php:210
995
- msgid "Delete this item permanently"
996
  msgstr ""
997
 
998
- #: includes/any-post.php:415 modules/containers/blogroll.php:47
999
- #: modules/containers/custom_field.php:212
1000
- msgid "Delete"
1001
  msgstr ""
1002
 
1003
- #: includes/any-post.php:428
1004
- #, php-format
1005
- msgid "Preview &#8220;%s&#8221;"
1006
  msgstr ""
1007
 
1008
- #: includes/any-post.php:429
1009
- msgid "Preview"
1010
  msgstr ""
1011
 
1012
- #: includes/any-post.php:436
1013
- #, php-format
1014
- msgid "View &#8220;%s&#8221;"
1015
  msgstr ""
1016
 
1017
- #: includes/any-post.php:437 modules/containers/comment.php:166
1018
- #: modules/containers/custom_field.php:217
1019
- msgid "View"
1020
  msgstr ""
1021
 
1022
- #: includes/any-post.php:456 modules/containers/custom_field.php:197
1023
- msgid "Edit this item"
1024
  msgstr ""
1025
 
1026
- #: includes/any-post.php:520 modules/containers/blogroll.php:83
1027
- #: modules/containers/comment.php:43
1028
- msgid "Nothing to update"
1029
  msgstr ""
1030
 
1031
- #: includes/any-post.php:530
1032
- #, php-format
1033
- msgid "Updating post %d failed"
1034
  msgstr ""
1035
 
1036
- #: includes/any-post.php:565 modules/containers/custom_field.php:284
1037
- #, php-format
1038
- msgid "Failed to delete post \"%s\" (%d)"
1039
  msgstr ""
1040
 
1041
- #: includes/any-post.php:584 modules/containers/custom_field.php:303
1042
- #, php-format
1043
- msgid ""
1044
- "Can't move post \"%s\" (%d) to the trash because the trash feature is "
1045
- "disabled"
1046
  msgstr ""
1047
 
1048
- #: includes/any-post.php:604 modules/containers/custom_field.php:322
1049
- #, php-format
1050
- msgid "Failed to move post \"%s\" (%d) to the trash"
1051
  msgstr ""
1052
 
1053
- #: includes/any-post.php:712
1054
- #, php-format
 
 
 
 
 
 
 
1055
  msgid "%d post deleted."
1056
  msgid_plural "%d posts deleted."
1057
  msgstr[0] ""
1058
  msgstr[1] ""
1059
 
1060
- #: includes/any-post.php:714
1061
- #, php-format
1062
  msgid "%d page deleted."
1063
  msgid_plural "%d pages deleted."
1064
  msgstr[0] ""
1065
  msgstr[1] ""
1066
 
1067
- #: includes/any-post.php:716
1068
- #, php-format
1069
  msgid "%d \"%s\" deleted."
1070
  msgid_plural "%d \"%s\" deleted."
1071
  msgstr[0] ""
1072
  msgstr[1] ""
1073
 
1074
- #: includes/any-post.php:735
1075
- #, php-format
1076
  msgid "%d post moved to the Trash."
1077
  msgid_plural "%d posts moved to the Trash."
1078
  msgstr[0] ""
1079
  msgstr[1] ""
1080
 
1081
- #: includes/any-post.php:737
1082
- #, php-format
1083
  msgid "%d page moved to the Trash."
1084
  msgid_plural "%d pages moved to the Trash."
1085
  msgstr[0] ""
1086
  msgstr[1] ""
1087
 
1088
- #: includes/any-post.php:739
1089
- #, php-format
1090
  msgid "%d \"%s\" moved to the Trash."
1091
  msgid_plural "%d \"%s\" moved to the Trash."
1092
  msgstr[0] ""
1093
  msgstr[1] ""
1094
 
1095
  #: includes/containers.php:122
1096
- #, php-format
1097
  msgid "%d '%s' has been deleted"
1098
  msgid_plural "%d '%s' have been deleted"
1099
  msgstr[0] ""
1100
  msgstr[1] ""
1101
 
1102
- #: includes/containers.php:882 includes/containers.php:900
1103
- #, php-format
1104
  msgid "Container type '%s' not recognized"
1105
  msgstr ""
1106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1107
  #: includes/extra-strings.php:2
1108
  msgctxt "module name"
1109
  msgid "Basic HTTP"
@@ -1184,345 +1490,72 @@ msgctxt "module name"
1184
  msgid "Pages"
1185
  msgstr ""
1186
 
1187
- #: includes/instances.php:102 includes/instances.php:158
1188
- #, php-format
1189
- msgid "Container %s[%d] not found"
1190
- msgstr ""
1191
-
1192
- #: includes/instances.php:111 includes/instances.php:167
1193
- #, php-format
1194
- msgid "Parser '%s' not found."
1195
- msgstr ""
1196
-
1197
- #: includes/link-query.php:25
1198
- msgid "Broken"
1199
- msgstr ""
1200
-
1201
- #: includes/link-query.php:27
1202
- msgid "No broken links found"
1203
- msgstr ""
1204
-
1205
- #: includes/link-query.php:34
1206
- msgid "Redirects"
1207
- msgstr ""
1208
-
1209
- #: includes/link-query.php:35
1210
- msgid "Redirected Links"
1211
- msgstr ""
1212
-
1213
- #: includes/link-query.php:36
1214
- msgid "No redirects found"
1215
- msgstr ""
1216
-
1217
- #: includes/link-query.php:44
1218
- msgid "All"
1219
- msgstr ""
1220
-
1221
- #: includes/link-query.php:45
1222
- msgid "Detected Links"
1223
- msgstr ""
1224
-
1225
- #: includes/link-query.php:46
1226
- msgid "No links found (yet)"
1227
- msgstr ""
1228
-
1229
- #: includes/link-query.php:54
1230
- msgid "Search Results"
1231
- msgstr ""
1232
-
1233
- #: includes/link-query.php:55 includes/link-query.php:106
1234
- msgid "No links found for your query"
1235
- msgstr ""
1236
-
1237
- #: includes/links.php:215
1238
- msgid "The plugin script was terminated while trying to check the link."
1239
- msgstr ""
1240
-
1241
- #: includes/links.php:261
1242
- msgid "The plugin doesn't know how to check this type of link."
1243
- msgstr ""
1244
-
1245
- #: includes/links.php:349
1246
- msgid "Link is valid."
1247
- msgstr ""
1248
-
1249
- #: includes/links.php:351
1250
- msgid "Link is broken."
1251
- msgstr ""
1252
-
1253
- #: includes/links.php:564 includes/links.php:666 includes/links.php:693
1254
- msgid "Link is not valid"
1255
- msgstr ""
1256
-
1257
- #: includes/links.php:581
1258
- msgid ""
1259
- "This link can not be edited because it is not used anywhere on this site."
1260
- msgstr ""
1261
-
1262
- #: includes/links.php:607
1263
- msgid "Failed to create a DB entry for the new URL."
1264
- msgstr ""
1265
-
1266
- #: includes/links.php:673
1267
- msgid "This link is not a redirect"
1268
- msgstr ""
1269
-
1270
- #: includes/links.php:720 includes/links.php:757
1271
- msgid "Couldn't delete the link's database record"
1272
- msgstr ""
1273
-
1274
- #: includes/links.php:831
1275
- msgctxt "link status"
1276
- msgid "Unknown"
1277
- msgstr ""
1278
-
1279
- #: includes/links.php:845 modules/checkers/http.php:263
1280
- msgid "Unknown Error"
1281
- msgstr ""
1282
-
1283
- #: includes/links.php:869
1284
- msgid "Not checked"
1285
- msgstr ""
1286
-
1287
- #: includes/links.php:872
1288
- msgid "False positive"
1289
- msgstr ""
1290
-
1291
- #: includes/links.php:875
1292
- msgctxt "link status"
1293
- msgid "OK"
1294
- msgstr ""
1295
-
1296
- #: includes/module-manager.php:122 includes/module-manager.php:139
1297
- msgctxt "module name"
1298
- msgid "Name"
1299
- msgstr ""
1300
-
1301
- #: includes/parsers.php:109
1302
- #, php-format
1303
- msgid "Editing is not implemented in the '%s' parser"
1304
- msgstr ""
1305
-
1306
- #: includes/parsers.php:124
1307
- #, php-format
1308
- msgid "Unlinking is not implemented in the '%s' parser"
1309
- msgstr ""
1310
-
1311
- #: includes/utility-class.php:287
1312
- #, php-format
1313
  msgid "%d second"
1314
  msgid_plural "%d seconds"
1315
  msgstr[0] ""
1316
  msgstr[1] ""
1317
 
1318
- #: includes/utility-class.php:288
1319
- #, php-format
1320
  msgid "%d second ago"
1321
  msgid_plural "%d seconds ago"
1322
  msgstr[0] ""
1323
  msgstr[1] ""
1324
 
1325
- #: includes/utility-class.php:291
1326
- #, php-format
1327
  msgid "%d minute"
1328
  msgid_plural "%d minutes"
1329
  msgstr[0] ""
1330
  msgstr[1] ""
1331
 
1332
- #: includes/utility-class.php:292
1333
- #, php-format
1334
  msgid "%d minute ago"
1335
  msgid_plural "%d minutes ago"
1336
  msgstr[0] ""
1337
  msgstr[1] ""
1338
 
1339
- #: includes/utility-class.php:295
1340
- #, php-format
1341
  msgid "%d hour"
1342
  msgid_plural "%d hours"
1343
  msgstr[0] ""
1344
  msgstr[1] ""
1345
 
1346
- #: includes/utility-class.php:296
1347
- #, php-format
1348
  msgid "%d hour ago"
1349
  msgid_plural "%d hours ago"
1350
  msgstr[0] ""
1351
  msgstr[1] ""
1352
 
1353
- #: includes/utility-class.php:299
1354
- #, php-format
1355
  msgid "%d day"
1356
  msgid_plural "%d days"
1357
  msgstr[0] ""
1358
  msgstr[1] ""
1359
 
1360
- #: includes/utility-class.php:300
1361
- #, php-format
1362
  msgid "%d day ago"
1363
  msgid_plural "%d days ago"
1364
  msgstr[0] ""
1365
  msgstr[1] ""
1366
 
1367
- #: includes/utility-class.php:303
1368
- #, php-format
1369
  msgid "%d month"
1370
  msgid_plural "%d months"
1371
  msgstr[0] ""
1372
  msgstr[1] ""
1373
 
1374
- #: includes/utility-class.php:304
1375
- #, php-format
1376
  msgid "%d month ago"
1377
  msgid_plural "%d months ago"
1378
  msgstr[0] ""
1379
  msgstr[1] ""
1380
 
1381
- #: modules/checkers/http.php:242
1382
- msgid "Server Not Found"
1383
- msgstr ""
1384
-
1385
- #: modules/checkers/http.php:257
1386
- msgid "Connection Failed"
1387
- msgstr ""
1388
-
1389
- #: modules/checkers/http.php:292 modules/checkers/http.php:362
1390
- #, php-format
1391
- msgid "HTTP code : %d"
1392
- msgstr ""
1393
-
1394
- #: modules/checkers/http.php:294 modules/checkers/http.php:364
1395
- msgid "(No response)"
1396
- msgstr ""
1397
-
1398
- #: modules/checkers/http.php:300
1399
- msgid "Most likely the connection timed out or the domain doesn't exist."
1400
- msgstr ""
1401
-
1402
- #: modules/checkers/http.php:371
1403
- msgid "Request timed out."
1404
- msgstr ""
1405
-
1406
- #: modules/checkers/http.php:389
1407
- msgid "Using Snoopy"
1408
- msgstr ""
1409
-
1410
- #: modules/containers/blogroll.php:21
1411
- msgid "Bookmark"
1412
- msgstr ""
1413
-
1414
- #: modules/containers/blogroll.php:27 modules/containers/blogroll.php:46
1415
- msgid "Edit this bookmark"
1416
- msgstr ""
1417
-
1418
- #: modules/containers/blogroll.php:47
1419
- #, php-format
1420
- msgid ""
1421
- "You are about to delete this link '%s'\n"
1422
- " 'Cancel' to stop, 'OK' to delete."
1423
- msgstr ""
1424
-
1425
- #: modules/containers/blogroll.php:97
1426
- #, php-format
1427
- msgid "Updating bookmark %d failed"
1428
- msgstr ""
1429
-
1430
- #: modules/containers/blogroll.php:128
1431
- #, php-format
1432
- msgid "Failed to delete blogroll link \"%s\" (%d)"
1433
- msgstr ""
1434
-
1435
- #: modules/containers/blogroll.php:299
1436
- #, php-format
1437
- msgid "%d blogroll link deleted."
1438
- msgid_plural "%d blogroll links deleted."
1439
- msgstr[0] ""
1440
- msgstr[1] ""
1441
-
1442
- #: modules/containers/comment.php:53
1443
- #, php-format
1444
- msgid "Updating comment %d failed"
1445
- msgstr ""
1446
-
1447
- #: modules/containers/comment.php:74
1448
- #, php-format
1449
- msgid "Failed to delete comment %d"
1450
- msgstr ""
1451
-
1452
- #: modules/containers/comment.php:95
1453
- #, php-format
1454
- msgid "Can't move comment %d to the trash"
1455
- msgstr ""
1456
-
1457
- #: modules/containers/comment.php:153 modules/containers/comment.php:195
1458
- msgid "Edit comment"
1459
- msgstr ""
1460
-
1461
- #: modules/containers/comment.php:160
1462
- msgid "Delete Permanently"
1463
- msgstr ""
1464
-
1465
- #: modules/containers/comment.php:162
1466
- msgid "Move this comment to the trash"
1467
- msgstr ""
1468
-
1469
- #: modules/containers/comment.php:162
1470
- msgctxt "verb"
1471
- msgid "Trash"
1472
- msgstr ""
1473
-
1474
- #: modules/containers/comment.php:166
1475
- msgid "View comment"
1476
- msgstr ""
1477
-
1478
- #: modules/containers/comment.php:183
1479
- msgid "Comment"
1480
- msgstr ""
1481
-
1482
- #: modules/containers/comment.php:372
1483
- #, php-format
1484
- msgid "%d comment has been deleted."
1485
- msgid_plural "%d comments have been deleted."
1486
- msgstr[0] ""
1487
- msgstr[1] ""
1488
-
1489
- #: modules/containers/comment.php:391
1490
- #, php-format
1491
- msgid "%d comment moved to the Trash."
1492
- msgid_plural "%d comments moved to the Trash."
1493
- msgstr[0] ""
1494
- msgstr[1] ""
1495
-
1496
- #: modules/containers/custom_field.php:84
1497
- #, php-format
1498
- msgid "Failed to update the meta field '%s' on %s [%d]"
1499
- msgstr ""
1500
-
1501
- #: modules/containers/custom_field.php:110
1502
- #, php-format
1503
- msgid "Failed to delete the meta field '%s' on %s [%d]"
1504
- msgstr ""
1505
-
1506
- #: modules/containers/custom_field.php:187
1507
- msgid "Edit this post"
1508
- msgstr ""
1509
-
1510
- #: modules/containers/custom_field.php:217
1511
- #, php-format
1512
- msgid "View \"%s\""
1513
- msgstr ""
1514
-
1515
- #: modules/containers/dummy.php:34 modules/containers/dummy.php:45
1516
- #, php-format
1517
- msgid "I don't know how to edit a '%s' [%d]."
1518
- msgstr ""
1519
-
1520
- #: modules/parsers/image.php:156
1521
- msgid "Image"
1522
  msgstr ""
1523
 
1524
- #: modules/parsers/metadata.php:117
1525
- msgid "Custom field"
1526
  msgstr ""
1527
 
1528
  #. Plugin URI of the plugin/theme
1
+ # Copyright (C) 2010 Broken Link Checker
 
2
  # This file is distributed under the same license as the Broken Link Checker package.
 
 
 
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Broken Link Checker 1.2.2\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/broken-link-checker\n"
7
+ "POT-Creation-Date: 2010-12-25 11:10:52+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
+ #: modules/containers/dummy.php:34 modules/containers/dummy.php:45
16
+ msgid "I don't know how to edit a '%s' [%d]."
17
+ msgstr ""
18
+
19
+ #: modules/containers/custom_field.php:84
20
+ msgid "Failed to update the meta field '%s' on %s [%d]"
21
+ msgstr ""
22
+
23
+ #: modules/containers/custom_field.php:110
24
+ msgid "Failed to delete the meta field '%s' on %s [%d]"
25
+ msgstr ""
26
+
27
+ #: modules/containers/custom_field.php:187
28
+ msgid "Edit this post"
29
+ msgstr ""
30
+
31
+ #: modules/containers/custom_field.php:197 includes/any-post.php:455
32
+ msgid "Edit this item"
33
+ msgstr ""
34
+
35
+ #: modules/containers/custom_field.php:197 modules/containers/blogroll.php:46
36
+ #: modules/containers/comment.php:153 includes/any-post.php:397
37
+ msgid "Edit"
38
+ msgstr ""
39
+
40
+ #: modules/containers/custom_field.php:203 includes/any-post.php:405
41
+ msgid "Move this item to the Trash"
42
+ msgstr ""
43
+
44
+ #: modules/containers/custom_field.php:205 includes/any-post.php:407
45
+ msgid "Trash"
46
+ msgstr ""
47
+
48
+ #: modules/containers/custom_field.php:210 includes/any-post.php:412
49
+ msgid "Delete this item permanently"
50
+ msgstr ""
51
+
52
+ #: modules/containers/custom_field.php:212 modules/containers/blogroll.php:47
53
+ #: includes/any-post.php:414
54
+ msgid "Delete"
55
+ msgstr ""
56
+
57
+ #: modules/containers/custom_field.php:217
58
+ msgid "View \"%s\""
59
+ msgstr ""
60
+
61
+ #: modules/containers/custom_field.php:217 modules/containers/comment.php:166
62
+ #: includes/any-post.php:436
63
+ msgid "View"
64
+ msgstr ""
65
+
66
+ #: modules/containers/custom_field.php:284 includes/any-post.php:564
67
+ msgid "Failed to delete post \"%s\" (%d)"
68
+ msgstr ""
69
+
70
+ #: modules/containers/custom_field.php:303 includes/any-post.php:583
71
+ msgid ""
72
+ "Can't move post \"%s\" (%d) to the trash because the trash feature is "
73
+ "disabled"
74
+ msgstr ""
75
+
76
+ #: modules/containers/custom_field.php:322 includes/any-post.php:603
77
+ msgid "Failed to move post \"%s\" (%d) to the trash"
78
+ msgstr ""
79
+
80
+ #: modules/containers/blogroll.php:21
81
+ msgid "Bookmark"
82
+ msgstr ""
83
+
84
+ #: modules/containers/blogroll.php:27 modules/containers/blogroll.php:46
85
+ msgid "Edit this bookmark"
86
+ msgstr ""
87
+
88
+ #: modules/containers/blogroll.php:47
89
+ msgid ""
90
+ "You are about to delete this link '%s'\n"
91
+ " 'Cancel' to stop, 'OK' to delete."
92
+ msgstr ""
93
+
94
+ #: modules/containers/blogroll.php:83 modules/containers/comment.php:43
95
+ #: includes/any-post.php:519
96
+ msgid "Nothing to update"
97
+ msgstr ""
98
+
99
+ #: modules/containers/blogroll.php:97
100
+ msgid "Updating bookmark %d failed"
101
+ msgstr ""
102
+
103
+ #: modules/containers/blogroll.php:128
104
+ msgid "Failed to delete blogroll link \"%s\" (%d)"
105
+ msgstr ""
106
+
107
+ #: modules/containers/blogroll.php:298
108
+ msgid "%d blogroll link deleted."
109
+ msgid_plural "%d blogroll links deleted."
110
+ msgstr[0] ""
111
+ msgstr[1] ""
112
+
113
+ #: modules/containers/comment.php:53
114
+ msgid "Updating comment %d failed"
115
+ msgstr ""
116
+
117
+ #: modules/containers/comment.php:74
118
+ msgid "Failed to delete comment %d"
119
+ msgstr ""
120
+
121
+ #: modules/containers/comment.php:95
122
+ msgid "Can't move comment %d to the trash"
123
+ msgstr ""
124
+
125
+ #: modules/containers/comment.php:153 modules/containers/comment.php:195
126
+ msgid "Edit comment"
127
+ msgstr ""
128
+
129
+ #: modules/containers/comment.php:160
130
+ msgid "Delete Permanently"
131
+ msgstr ""
132
+
133
+ #: modules/containers/comment.php:162
134
+ msgid "Move this comment to the trash"
135
+ msgstr ""
136
+
137
+ #: modules/containers/comment.php:162
138
+ msgctxt "verb"
139
+ msgid "Trash"
140
+ msgstr ""
141
+
142
+ #: modules/containers/comment.php:166
143
+ msgid "View comment"
144
+ msgstr ""
145
+
146
+ #: modules/containers/comment.php:183
147
+ msgid "Comment"
148
+ msgstr ""
149
+
150
+ #: modules/containers/comment.php:371
151
+ msgid "%d comment has been deleted."
152
+ msgid_plural "%d comments have been deleted."
153
+ msgstr[0] ""
154
+ msgstr[1] ""
155
+
156
+ #: modules/containers/comment.php:390
157
+ msgid "%d comment moved to the Trash."
158
+ msgid_plural "%d comments moved to the Trash."
159
+ msgstr[0] ""
160
+ msgstr[1] ""
161
+
162
+ #: modules/checkers/http.php:242
163
+ msgid "Server Not Found"
164
+ msgstr ""
165
+
166
+ #: modules/checkers/http.php:257
167
+ msgid "Connection Failed"
168
+ msgstr ""
169
+
170
+ #: modules/checkers/http.php:263 modules/extras/mediafire.php:96
171
+ #: includes/links.php:845
172
+ msgid "Unknown Error"
173
+ msgstr ""
174
+
175
+ #: modules/checkers/http.php:292 modules/checkers/http.php:362
176
+ msgid "HTTP code : %d"
177
+ msgstr ""
178
+
179
+ #: modules/checkers/http.php:294 modules/checkers/http.php:364
180
+ msgid "(No response)"
181
+ msgstr ""
182
+
183
+ #: modules/checkers/http.php:300
184
+ msgid "Most likely the connection timed out or the domain doesn't exist."
185
+ msgstr ""
186
+
187
+ #: modules/checkers/http.php:371
188
+ msgid "Request timed out."
189
+ msgstr ""
190
+
191
+ #: modules/checkers/http.php:389
192
+ msgid "Using Snoopy"
193
+ msgstr ""
194
+
195
+ #: modules/parsers/image.php:156
196
+ msgid "Image"
197
+ msgstr ""
198
+
199
+ #: modules/parsers/metadata.php:117
200
+ msgid "Custom field"
201
+ msgstr ""
202
+
203
+ #: modules/extras/dailymotion-embed.php:23
204
+ msgid "DailyMotion Video"
205
+ msgstr ""
206
+
207
+ #: modules/extras/dailymotion-embed.php:24
208
+ msgid "Embedded DailyMotion video"
209
+ msgstr ""
210
+
211
+ #: modules/extras/rapidshare.php:142 modules/extras/mediafire.php:91
212
+ #: modules/extras/megaupload.php:109
213
+ msgid "Not Found"
214
+ msgstr ""
215
+
216
+ #: modules/extras/rapidshare.php:148 modules/extras/rapidshare.php:154
217
+ #: modules/extras/rapidshare.php:181 modules/extras/megaupload.php:101
218
+ #: includes/links.php:875
219
+ msgctxt "link status"
220
+ msgid "OK"
221
+ msgstr ""
222
+
223
+ #: modules/extras/rapidshare.php:161
224
+ msgid "RS Server Down"
225
+ msgstr ""
226
+
227
+ #: modules/extras/rapidshare.php:168
228
+ msgid "File Blocked"
229
+ msgstr ""
230
+
231
+ #: modules/extras/rapidshare.php:175
232
+ msgid "File Locked"
233
+ msgstr ""
234
+
235
+ #: modules/extras/rapidshare.php:186
236
+ msgid "RapidShare : %s"
237
+ msgstr ""
238
+
239
+ #: modules/extras/rapidshare.php:192
240
+ msgid "RapidShare API error: %s"
241
+ msgstr ""
242
+
243
+ #: modules/extras/embed-parser-base.php:140
244
+ msgid ""
245
+ "Embedded videos can't be edited using Broken Link Checker. Please edit or "
246
+ "replace the video in question manually."
247
+ msgstr ""
248
+
249
+ #: modules/extras/vimeo-embed.php:24
250
+ msgid "Vimeo Video"
251
+ msgstr ""
252
+
253
+ #: modules/extras/vimeo-embed.php:25
254
+ msgid "Embedded Vimeo video"
255
+ msgstr ""
256
+
257
+ #: modules/extras/youtube.php:63 modules/extras/youtube.php:66
258
+ msgid "Video Not Found"
259
+ msgstr ""
260
+
261
+ #: modules/extras/youtube.php:74
262
+ msgid "Video Removed"
263
+ msgstr ""
264
+
265
+ #: modules/extras/youtube.php:82
266
+ msgid "Invalid Video ID"
267
+ msgstr ""
268
+
269
+ #: modules/extras/youtube.php:94
270
+ msgid "Video OK"
271
+ msgstr ""
272
+
273
+ #: modules/extras/youtube.php:95 modules/extras/youtube.php:122
274
+ #: core/core.php:966
275
+ msgid "OK"
276
+ msgstr ""
277
+
278
+ #: modules/extras/youtube.php:108
279
+ msgid "Video status : %s%s"
280
+ msgstr ""
281
+
282
+ #: modules/extras/youtube.php:127
283
+ msgid "Video Restricted"
284
+ msgstr ""
285
+
286
+ #: modules/extras/youtube.php:144
287
+ msgid "Unknown YouTube API response received."
288
+ msgstr ""
289
+
290
+ #: modules/extras/youtube-embed.php:22
291
+ msgid "YouTube Video"
292
+ msgstr ""
293
+
294
+ #: modules/extras/youtube-embed.php:23
295
+ msgid "Embedded YouTube video"
296
+ msgstr ""
297
+
298
+ #: modules/extras/megaupload.php:116
299
+ msgid "File Temporarily Unavailable"
300
+ msgstr ""
301
+
302
+ #: modules/extras/megaupload.php:122
303
+ msgid "API Error"
304
+ msgstr ""
305
+
306
+ #: core/init.php:234
307
+ msgid "Once Weekly"
308
+ msgstr ""
309
+
310
+ #: core/init.php:240
311
+ msgid "Twice a Month"
312
+ msgstr ""
313
+
314
+ #: core/init.php:309
315
+ msgid ""
316
+ "Broken Link Checker installation failed. Try deactivating and then "
317
+ "reactivating the plugin."
318
+ msgstr ""
319
+
320
+ #: core/core.php:153 includes/admin/links-page-js.php:37
321
  msgid "Loading..."
322
  msgstr ""
323
 
324
+ #: core/core.php:177 includes/admin/options-page-js.php:18
325
  msgid "[ Network error ]"
326
  msgstr ""
327
 
328
+ #: core/core.php:202
329
  msgid "Automatically expand the widget if broken links have been detected"
330
  msgstr ""
331
 
332
+ #: core/core.php:324
333
  msgid "Link Checker Settings"
334
  msgstr ""
335
 
336
+ #: core/core.php:325
337
  msgid "Link Checker"
338
  msgstr ""
339
 
340
+ #: core/core.php:330 includes/link-query.php:26
341
  msgid "Broken Links"
342
  msgstr ""
343
 
344
+ #: core/core.php:346
345
  msgid "View Broken Links"
346
  msgstr ""
347
 
348
+ #: core/core.php:361
349
+ msgid "Feedback"
350
+ msgstr ""
351
+
352
+ #: core/core.php:373
353
+ msgid "Go to Settings"
354
+ msgstr ""
355
+
356
+ #: core/core.php:380
357
+ msgid "Go to Broken Links"
358
+ msgstr ""
359
+
360
+ #: core/core.php:398
361
  msgid "Settings"
362
  msgstr ""
363
 
364
+ #: core/core.php:410 core/core.php:1213
 
365
  msgid ""
366
  "Error: The plugin's database tables are not up to date! (Current version : %"
367
  "d, expected : %d)"
368
  msgstr ""
369
 
370
+ #: core/core.php:549
371
  msgid "Settings saved."
372
  msgstr ""
373
 
374
+ #: core/core.php:555
375
+ msgid "Thank you for your donation!"
376
+ msgstr ""
377
+
378
+ #: core/core.php:562
379
  msgid "Complete site recheck started."
380
  msgstr ""
381
 
382
+ #: core/core.php:571 core/core.php:2768
383
  msgid "Details"
384
  msgstr ""
385
 
386
+ #: core/core.php:585
387
  msgid "General"
388
  msgstr ""
389
 
390
+ #: core/core.php:586
391
  msgid "Look For Links In"
392
  msgstr ""
393
 
394
+ #: core/core.php:587
395
  msgid "Which Links To Check"
396
  msgstr ""
397
 
398
+ #: core/core.php:588
399
  msgid "Protocols & APIs"
400
  msgstr ""
401
 
402
+ #: core/core.php:589
403
  msgid "Advanced"
404
  msgstr ""
405
 
406
+ #: core/core.php:604
407
  msgid "Broken Link Checker Options"
408
  msgstr ""
409
 
410
+ #: core/core.php:646 includes/admin/table-printer.php:168
411
  msgid "Status"
412
  msgstr ""
413
 
414
+ #: core/core.php:648 includes/admin/options-page-js.php:56
415
  msgid "Show debug info"
416
  msgstr ""
417
 
418
+ #: core/core.php:676
419
  msgid "Check each link"
420
  msgstr ""
421
 
422
+ #: core/core.php:681
 
423
  msgid "Every %s hours"
424
  msgstr ""
425
 
426
+ #: core/core.php:690
427
  msgid ""
428
  "Existing links will be checked this often. New links will usually be checked "
429
  "ASAP."
430
  msgstr ""
431
 
432
+ #: core/core.php:697
433
  msgid "E-mail notifications"
434
  msgstr ""
435
 
436
+ #: core/core.php:703
437
  msgid "Send me e-mail notifications about newly detected broken links"
438
  msgstr ""
439
 
440
+ #: core/core.php:710
441
  msgid "Link tweaks"
442
  msgstr ""
443
 
444
+ #: core/core.php:716
445
  msgid "Apply custom formatting to broken links"
446
  msgstr ""
447
 
448
+ #: core/core.php:720 core/core.php:748
449
  msgid "Edit CSS"
450
  msgstr ""
451
 
452
+ #: core/core.php:744
453
  msgid "Apply custom formatting to removed links"
454
  msgstr ""
455
 
456
+ #: core/core.php:772
457
  msgid "Stop search engines from following broken links"
458
  msgstr ""
459
 
460
+ #: core/core.php:789
461
  msgid "Look for links in"
462
  msgstr ""
463
 
464
+ #: core/core.php:800
465
  msgid "Post statuses"
466
  msgstr ""
467
 
468
+ #: core/core.php:833
469
  msgid "Link types"
470
  msgstr ""
471
 
472
+ #: core/core.php:839
473
  msgid "Error : All link parsers missing!"
474
  msgstr ""
475
 
476
+ #: core/core.php:846
477
  msgid "Exclusion list"
478
  msgstr ""
479
 
480
+ #: core/core.php:847
481
  msgid ""
482
  "Don't check links where the URL contains any of these words (one per line) :"
483
  msgstr ""
484
 
485
+ #: core/core.php:865
486
  msgid "Check links using"
487
  msgstr ""
488
 
489
+ #: core/core.php:884 includes/links.php:849
490
  msgid "Timeout"
491
  msgstr ""
492
 
493
+ #: core/core.php:890 core/core.php:936 core/core.php:2895
 
494
  msgid "%s seconds"
495
  msgstr ""
496
 
497
+ #: core/core.php:899
498
  msgid "Links that take longer than this to load will be marked as broken."
499
  msgstr ""
500
 
501
+ #: core/core.php:906
502
  msgid "Link monitor"
503
  msgstr ""
504
 
505
+ #: core/core.php:914
506
  msgid "Run continuously while the Dashboard is open"
507
  msgstr ""
508
 
509
+ #: core/core.php:922
510
  msgid "Run hourly in the background"
511
  msgstr ""
512
 
513
+ #: core/core.php:930
514
  msgid "Max. execution time"
515
  msgstr ""
516
 
517
+ #: core/core.php:947
518
  msgid ""
519
  "The plugin works by periodically launching a background job that parses your "
520
  "posts for links, checks the discovered URLs, and performs other time-"
522
  "may run each time before stopping."
523
  msgstr ""
524
 
525
+ #: core/core.php:957
526
  msgid "Custom temporary directory"
527
  msgstr ""
528
 
529
+ #: core/core.php:969
 
 
 
 
530
  msgid "Error : This directory isn't writable by PHP."
531
  msgstr ""
532
 
533
+ #: core/core.php:974
534
  msgid "Error : This directory doesn't exist."
535
  msgstr ""
536
 
537
+ #: core/core.php:982
538
  msgid ""
539
  "Set this field if you want the plugin to use a custom directory for its "
540
  "lockfiles. Otherwise, leave it blank."
541
  msgstr ""
542
 
543
+ #: core/core.php:989
544
  msgid "Server load limit"
545
  msgstr ""
546
 
547
+ #: core/core.php:1004
 
548
  msgid "Current load : %s"
549
  msgstr ""
550
 
551
+ #: core/core.php:1009
 
552
  msgid ""
553
  "Link checking will be suspended if the average <a href=\"%s\">server load</"
554
  "a> rises above this number. Leave this field blank to disable load limiting."
555
  msgstr ""
556
 
557
+ #: core/core.php:1018
558
  msgid "Not available"
559
  msgstr ""
560
 
561
+ #: core/core.php:1020
562
  msgid ""
563
  "Load limiting only works on Linux-like systems where <code>/proc/loadavg</"
564
  "code> is present and accessible."
565
  msgstr ""
566
 
567
+ #: core/core.php:1028
568
  msgid "Forced recheck"
569
  msgstr ""
570
 
571
+ #: core/core.php:1031
572
  msgid "Re-check all pages"
573
  msgstr ""
574
 
575
+ #: core/core.php:1035
576
  msgid ""
577
  "The \"Nuclear Option\". Click this button to make the plugin empty its link "
578
  "database and recheck the entire site from scratch."
579
  msgstr ""
580
 
581
+ #: core/core.php:1046
582
  msgid "Save Changes"
583
  msgstr ""
584
 
585
+ #: core/core.php:1097
586
  msgid "Configure"
587
  msgstr ""
588
 
589
+ #: core/core.php:1179
590
+ msgid "Check URLs entered in these custom fields (one per line) :"
591
  msgstr ""
592
 
593
+ #: core/core.php:1313 core/core.php:1395 core/core.php:1427
 
 
 
 
 
594
  msgid "Database error : %s"
595
  msgstr ""
596
 
597
+ #: core/core.php:1377
598
  msgid "You must enter a filter name!"
599
  msgstr ""
600
 
601
+ #: core/core.php:1381
602
  msgid "Invalid search query."
603
  msgstr ""
604
 
605
+ #: core/core.php:1390
 
606
  msgid "Filter \"%s\" created"
607
  msgstr ""
608
 
609
+ #: core/core.php:1417
610
  msgid "Filter ID not specified."
611
  msgstr ""
612
 
613
+ #: core/core.php:1424
614
  msgid "Filter deleted"
615
  msgstr ""
616
 
617
+ #: core/core.php:1471
 
618
  msgid "Replaced %d redirect with a direct link"
619
  msgid_plural "Replaced %d redirects with direct links"
620
  msgstr[0] ""
621
  msgstr[1] ""
622
 
623
+ #: core/core.php:1482
 
624
  msgid "Failed to fix %d redirect"
625
  msgid_plural "Failed to fix %d redirects"
626
  msgstr[0] ""
627
  msgstr[1] ""
628
 
629
+ #: core/core.php:1493
630
  msgid "None of the selected links are redirects!"
631
  msgstr ""
632
 
633
+ #: core/core.php:1571
 
634
  msgid "%d link updated."
635
  msgid_plural "%d links updated."
636
  msgstr[0] ""
637
  msgstr[1] ""
638
 
639
+ #: core/core.php:1582
 
640
  msgid "Failed to update %d link."
641
  msgid_plural "Failed to update %d links."
642
  msgstr[0] ""
643
  msgstr[1] ""
644
 
645
+ #: core/core.php:1636
 
646
  msgid "%d link removed"
647
  msgid_plural "%d links removed"
648
  msgstr[0] ""
649
  msgstr[1] ""
650
 
651
+ #: core/core.php:1647
 
652
  msgid "Failed to remove %d link"
653
  msgid_plural "Failed to remove %d links"
654
  msgstr[0] ""
655
  msgstr[1] ""
656
 
657
+ #: core/core.php:1756
 
658
  msgid ""
659
  "%d item was skipped because it can't be moved to the Trash. You need to "
660
  "delete it manually."
664
  msgstr[0] ""
665
  msgstr[1] ""
666
 
667
+ #: core/core.php:1778
668
  msgid "Didn't find anything to delete!"
669
  msgstr ""
670
 
671
+ #: core/core.php:1805
 
672
  msgid "%d link scheduled for rechecking"
673
  msgid_plural "%d links scheduled for rechecking"
674
  msgstr[0] ""
675
  msgstr[1] ""
676
 
677
+ #: core/core.php:1851 core/core.php:2455
678
  msgid "This link was manually marked as working by the user."
679
  msgstr ""
680
 
681
+ #: core/core.php:1858
 
682
  msgid "Couldn't modify link %d"
683
  msgstr ""
684
 
685
+ #: core/core.php:1868
 
686
  msgid "%d link marked as not broken"
687
  msgid_plural "%d links marked as not broken"
688
  msgstr[0] ""
689
  msgstr[1] ""
690
 
691
+ #: core/core.php:1908
692
  msgid "Table columns"
693
  msgstr ""
694
 
695
+ #: core/core.php:1927
696
  msgid "Show on screen"
697
  msgstr ""
698
 
699
+ #: core/core.php:1934
700
  msgid "links"
701
  msgstr ""
702
 
703
+ #: core/core.php:1935 includes/admin/table-printer.php:136
704
  msgid "Apply"
705
  msgstr ""
706
 
707
+ #: core/core.php:1939
708
  msgid "Misc"
709
  msgstr ""
710
 
711
+ #: core/core.php:1954
 
712
  msgid "Highlight links broken for at least %s days"
713
  msgstr ""
714
 
715
+ #: core/core.php:1963
716
  msgid "Color-code status codes"
717
  msgstr ""
718
 
719
+ #: core/core.php:1980 core/core.php:2440 core/core.php:2476 core/core.php:2539
720
  msgid "You're not allowed to do that!"
721
  msgstr ""
722
 
723
+ #: core/core.php:2321
724
  msgid "View broken links"
725
  msgstr ""
726
 
727
+ #: core/core.php:2322
 
728
  msgid "Found %d broken link"
729
  msgid_plural "Found %d broken links"
730
  msgstr[0] ""
731
  msgstr[1] ""
732
 
733
+ #: core/core.php:2328
734
  msgid "No broken links found."
735
  msgstr ""
736
 
737
+ #: core/core.php:2335
 
738
  msgid "%d URL in the work queue"
739
  msgid_plural "%d URLs in the work queue"
740
  msgstr[0] ""
741
  msgstr[1] ""
742
 
743
+ #: core/core.php:2338
744
  msgid "No URLs in the work queue."
745
  msgstr ""
746
 
747
+ #: core/core.php:2344
 
748
  msgid "Detected %d unique URL"
749
  msgid_plural "Detected %d unique URLs"
750
  msgstr[0] ""
751
  msgstr[1] ""
752
 
753
+ #: core/core.php:2345
 
754
  msgid "in %d link"
755
  msgid_plural "in %d links"
756
  msgstr[0] ""
757
  msgstr[1] ""
758
 
759
+ #: core/core.php:2350
760
  msgid "and still searching..."
761
  msgstr ""
762
 
763
+ #: core/core.php:2356
764
  msgid "Searching your blog for links..."
765
  msgstr ""
766
 
767
+ #: core/core.php:2358
768
  msgid "No links detected."
769
  msgstr ""
770
 
771
+ #: core/core.php:2384
772
  msgctxt "current load"
773
  msgid "Unknown"
774
  msgstr ""
775
 
776
+ #: core/core.php:2448 core/core.php:2486 core/core.php:2549
 
777
  msgid "Oops, I can't find the link %d"
778
  msgstr ""
779
 
780
+ #: core/core.php:2461
781
  msgid "Oops, couldn't modify the link!"
782
  msgstr ""
783
 
784
+ #: core/core.php:2464 core/core.php:2575
785
  msgid "Error : link_id not specified"
786
  msgstr ""
787
 
788
+ #: core/core.php:2496
789
  msgid "Oops, the new URL is invalid!"
790
  msgstr ""
791
 
792
+ #: core/core.php:2507 core/core.php:2558
793
  msgid "An unexpected error occured!"
794
  msgstr ""
795
 
796
+ #: core/core.php:2525
797
  msgid "Error : link_id or new_url not specified"
798
  msgstr ""
799
 
800
+ #: core/core.php:2584
801
  msgid "You don't have sufficient privileges to access this information!"
802
  msgstr ""
803
 
804
+ #: core/core.php:2597
805
  msgid "Error : link ID not specified"
806
  msgstr ""
807
 
808
+ #: core/core.php:2611
 
809
  msgid "Failed to load link details (%s)"
810
  msgstr ""
811
 
812
+ #. #-#-#-#-# plugin.pot (Broken Link Checker 1.2.2) #-#-#-#-#
813
  #. Plugin Name of the plugin/theme
814
+ #: core/core.php:2740
815
  msgid "Broken Link Checker"
816
  msgstr ""
817
 
818
+ #: core/core.php:2754
 
819
  msgid ""
820
  "The current temporary directory is not accessible; please <a href=\"%s\">set "
821
  "a different one</a>."
822
  msgstr ""
823
 
824
+ #: core/core.php:2759
 
825
  msgid ""
826
  "Please make the directory <code>%1$s</code> writable by plugins or <a href="
827
  "\"%2$s\">set a custom temporary directory</a>."
828
  msgstr ""
829
 
830
+ #: core/core.php:2766
831
  msgid "Broken Link Checker can't create a lockfile."
832
  msgstr ""
833
 
834
+ #: core/core.php:2771
835
  msgid ""
836
  "The plugin uses a file-based locking mechanism to ensure that only one "
837
  "instance of the resource-heavy link checking algorithm is running at any "
842
  "specify a custom temporary directory in the plugin's settings."
843
  msgstr ""
844
 
845
+ #: core/core.php:2790
846
  msgid "PHP version"
847
  msgstr ""
848
 
849
+ #: core/core.php:2796
850
  msgid "MySQL version"
851
  msgstr ""
852
 
853
+ #: core/core.php:2809
854
  msgid ""
855
  "You have an old version of CURL. Redirect detection may not work properly."
856
  msgstr ""
857
 
858
+ #: core/core.php:2821 core/core.php:2837 core/core.php:2842
859
  msgid "Not installed"
860
  msgstr ""
861
 
862
+ #: core/core.php:2824
863
  msgid "CURL version"
864
  msgstr ""
865
 
866
+ #: core/core.php:2830
867
  msgid "Installed"
868
  msgstr ""
869
 
870
+ #: core/core.php:2843
871
  msgid "You must have either CURL or Snoopy installed for the plugin to work!"
872
  msgstr ""
873
 
874
+ #: core/core.php:2854
875
  msgid "On"
876
  msgstr ""
877
 
878
+ #: core/core.php:2855
879
  msgid "Redirects may be detected as broken links when safe_mode is on."
880
  msgstr ""
881
 
882
+ #: core/core.php:2860 core/core.php:2874
883
  msgid "Off"
884
  msgstr ""
885
 
886
+ #: core/core.php:2868
 
887
  msgid "On ( %s )"
888
  msgstr ""
889
 
890
+ #: core/core.php:2869
891
  msgid "Redirects may be detected as broken links when open_basedir is on."
892
  msgstr ""
893
 
894
+ #: core/core.php:2888
895
  msgid "Can't create a lockfile. Please specify a custom temporary directory."
896
  msgstr ""
897
 
898
+ #: core/core.php:2912
899
  msgid ""
900
  "If this value is zero even after several page reloads you have probably "
901
  "encountered a bug."
902
  msgstr ""
903
 
904
+ #: core/core.php:2983
 
905
  msgid "[%s] Broken links detected"
906
  msgstr ""
907
 
908
+ #: core/core.php:2988
 
909
  msgid "Broken Link Checker has detected %d new broken link on your site."
910
  msgid_plural ""
911
  "Broken Link Checker has detected %d new broken links on your site."
912
  msgstr[0] ""
913
  msgstr[1] ""
914
 
915
+ #: core/core.php:3003
 
916
  msgid "Here's a list of the first %d broken links:"
917
  msgid_plural "Here's a list of the first %d broken links:"
918
  msgstr[0] ""
919
  msgstr[1] ""
920
 
921
+ #: core/core.php:3012
922
  msgid "Here's a list of the new broken links: "
923
  msgstr ""
924
 
925
+ #: core/core.php:3024
 
926
  msgid "Link text : %s"
927
  msgstr ""
928
 
929
+ #: core/core.php:3025
 
930
  msgid "Link URL : <a href=\"%s\">%s</a>"
931
  msgstr ""
932
 
933
+ #: core/core.php:3026
 
934
  msgid "Source : %s"
935
  msgstr ""
936
 
937
+ #: core/core.php:3040
938
  msgid "You can see all broken links here:"
939
  msgstr ""
940
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
941
  #: includes/admin/links-page-js.php:58 includes/admin/links-page-js.php:301
942
  msgid "Wait..."
943
  msgstr ""
944
 
945
+ #: includes/admin/links-page-js.php:99 includes/admin/table-printer.php:587
946
  msgid "Not broken"
947
  msgstr ""
948
 
949
  #: includes/admin/links-page-js.php:213
 
950
  msgid "%d instances of the link were successfully modified."
951
  msgstr ""
952
 
953
  #: includes/admin/links-page-js.php:219
 
954
  msgid ""
955
  "However, %d instances couldn't be edited and still point to the old URL."
956
  msgstr ""
964
  msgstr ""
965
 
966
  #: includes/admin/links-page-js.php:339
 
967
  msgid "%d instances of the link were successfully unlinked."
968
  msgstr ""
969
 
970
  #: includes/admin/links-page-js.php:345
 
971
  msgid "However, %d instances couldn't be removed."
972
  msgstr ""
973
 
976
  msgstr ""
977
 
978
  #: includes/admin/links-page-js.php:361 includes/admin/table-printer.php:237
979
+ #: includes/admin/table-printer.php:581
980
  msgid "Unlink"
981
  msgstr ""
982
 
1012
  msgid "Select one or more links to edit."
1013
  msgstr ""
1014
 
 
 
 
 
1015
  #: includes/admin/search-form.php:16
1016
  msgid "Save This Search As a Filter"
1017
  msgstr ""
1032
  msgid "URL"
1033
  msgstr ""
1034
 
1035
+ #: includes/admin/search-form.php:48 includes/admin/table-printer.php:455
1036
  msgid "HTTP code"
1037
  msgstr ""
1038
 
1056
  msgid "Search Links"
1057
  msgstr ""
1058
 
1059
+ #: includes/admin/search-form.php:113 includes/admin/table-printer.php:313
1060
+ #: includes/admin/table-printer.php:595 includes/admin/table-printer.php:601
1061
  msgid "Cancel"
1062
  msgstr ""
1063
 
1064
+ #: includes/admin/sidebar.php:2
1065
+ msgid "Donate $10, $20 or $50!"
1066
+ msgstr ""
1067
+
1068
+ #: includes/admin/sidebar.php:5
1069
+ msgid ""
1070
+ "If you like this plugin, please donate to support development and "
1071
+ "maintenance!"
1072
+ msgstr ""
1073
+
1074
+ #: includes/admin/sidebar.php:22
1075
+ msgid "Return to WordPress Dashboard"
1076
+ msgstr ""
1077
+
1078
+ #: includes/admin/sidebar.php:34
1079
+ msgid "Recommended"
1080
+ msgstr ""
1081
+
1082
+ #: includes/admin/options-page-js.php:54
1083
+ msgid "Hide debug info"
1084
+ msgstr ""
1085
+
1086
  #: includes/admin/table-printer.php:150
1087
  msgid "Compact View"
1088
  msgstr ""
1103
  msgid "Bulk Actions"
1104
  msgstr ""
1105
 
1106
+ #: includes/admin/table-printer.php:233 includes/admin/table-printer.php:578
1107
  msgid "Edit URL"
1108
  msgstr ""
1109
 
1127
  msgid "Delete sources"
1128
  msgstr ""
1129
 
1130
+ #: includes/admin/table-printer.php:257
1131
  msgid "&laquo;"
1132
  msgstr ""
1133
 
1134
+ #: includes/admin/table-printer.php:258
1135
  msgid "&raquo;"
1136
  msgstr ""
1137
 
1138
+ #: includes/admin/table-printer.php:266
 
1139
  msgid "Displaying %s&#8211;%s of <span class=\"current-link-count\">%s</span>"
1140
  msgstr ""
1141
 
1142
+ #: includes/admin/table-printer.php:289
1143
  msgid "Bulk Edit URLs"
1144
  msgstr ""
1145
 
1146
+ #: includes/admin/table-printer.php:291
1147
  msgid "Find"
1148
  msgstr ""
1149
 
1150
+ #: includes/admin/table-printer.php:295
1151
  msgid "Replace with"
1152
  msgstr ""
1153
 
1154
+ #: includes/admin/table-printer.php:303
1155
  msgid "Case sensitive"
1156
  msgstr ""
1157
 
1158
+ #: includes/admin/table-printer.php:307
1159
  msgid "Regular expression"
1160
  msgstr ""
1161
 
1162
+ #: includes/admin/table-printer.php:315
1163
  msgid "Update"
1164
  msgstr ""
1165
 
1166
+ #: includes/admin/table-printer.php:440
1167
  msgid "Post published on"
1168
  msgstr ""
1169
 
1170
+ #: includes/admin/table-printer.php:445
1171
  msgid "Link last checked"
1172
  msgstr ""
1173
 
1174
+ #: includes/admin/table-printer.php:449
1175
  msgid "Never"
1176
  msgstr ""
1177
 
1178
+ #: includes/admin/table-printer.php:460
1179
  msgid "Response time"
1180
  msgstr ""
1181
 
1182
+ #: includes/admin/table-printer.php:462
 
1183
  msgid "%2.3f seconds"
1184
  msgstr ""
1185
 
1186
+ #: includes/admin/table-printer.php:465
1187
  msgid "Final URL"
1188
  msgstr ""
1189
 
1190
+ #: includes/admin/table-printer.php:470
1191
  msgid "Redirect count"
1192
  msgstr ""
1193
 
1194
+ #: includes/admin/table-printer.php:475
1195
  msgid "Instance count"
1196
  msgstr ""
1197
 
1198
+ #: includes/admin/table-printer.php:484
 
1199
  msgid "This link has failed %d time."
1200
  msgid_plural "This link has failed %d times."
1201
  msgstr[0] ""
1202
  msgstr[1] ""
1203
 
1204
+ #: includes/admin/table-printer.php:492
 
1205
  msgid "This link has been broken for %s."
1206
  msgstr ""
1207
 
1208
+ #: includes/admin/table-printer.php:503
1209
  msgid "Log"
1210
  msgstr ""
1211
 
1212
+ #: includes/admin/table-printer.php:524
1213
  msgid "Show more info about this link"
1214
  msgstr ""
1215
 
1216
+ #: includes/admin/table-printer.php:542
1217
  msgctxt "checked how long ago"
1218
  msgid "Checked"
1219
  msgstr ""
1220
 
1221
+ #: includes/admin/table-printer.php:558
1222
  msgid "Broken for"
1223
  msgstr ""
1224
 
1225
+ #: includes/admin/table-printer.php:578
1226
  msgid "Edit link URL"
1227
  msgstr ""
1228
 
1229
+ #: includes/admin/table-printer.php:580
1230
  msgid "Remove this link from all posts"
1231
  msgstr ""
1232
 
1233
+ #: includes/admin/table-printer.php:586
1234
  msgid "Remove this link from the list of broken links and mark it as valid"
1235
  msgstr ""
1236
 
1237
+ #: includes/admin/table-printer.php:595
1238
  msgid "Cancel URL editing"
1239
  msgstr ""
1240
 
1241
+ #: includes/admin/table-printer.php:602
1242
  msgid "Update URL"
1243
  msgstr ""
1244
 
1245
+ #: includes/admin/table-printer.php:624
1246
  msgid "[An orphaned link! This is a bug.]"
1247
  msgstr ""
1248
 
1249
+ #: includes/admin/db-upgrade.php:95
1250
+ msgid "Failed to delete old DB tables. Database error : %s"
 
1251
  msgstr ""
1252
 
1253
+ #: includes/parsers.php:109
1254
+ msgid "Editing is not implemented in the '%s' parser"
1255
  msgstr ""
1256
 
1257
+ #: includes/parsers.php:124
1258
+ msgid "Unlinking is not implemented in the '%s' parser"
1259
  msgstr ""
1260
 
1261
+ #: includes/link-query.php:25
1262
+ msgid "Broken"
1263
  msgstr ""
1264
 
1265
+ #: includes/link-query.php:27
1266
+ msgid "No broken links found"
 
1267
  msgstr ""
1268
 
1269
+ #: includes/link-query.php:34
1270
+ msgid "Redirects"
 
1271
  msgstr ""
1272
 
1273
+ #: includes/link-query.php:35
1274
+ msgid "Redirected Links"
1275
  msgstr ""
1276
 
1277
+ #: includes/link-query.php:36
1278
+ msgid "No redirects found"
 
1279
  msgstr ""
1280
 
1281
+ #: includes/link-query.php:44
1282
+ msgid "All"
 
1283
  msgstr ""
1284
 
1285
+ #: includes/link-query.php:45
1286
+ msgid "Detected Links"
1287
  msgstr ""
1288
 
1289
+ #: includes/link-query.php:46
1290
+ msgid "No links found (yet)"
 
1291
  msgstr ""
1292
 
1293
+ #: includes/link-query.php:54
1294
+ msgid "Search Results"
 
1295
  msgstr ""
1296
 
1297
+ #: includes/link-query.php:55 includes/link-query.php:106
1298
+ msgid "No links found for your query"
 
1299
  msgstr ""
1300
 
1301
+ #: includes/any-post.php:427
1302
+ msgid "Preview &#8220;%s&#8221;"
 
 
 
1303
  msgstr ""
1304
 
1305
+ #: includes/any-post.php:428
1306
+ msgid "Preview"
 
1307
  msgstr ""
1308
 
1309
+ #: includes/any-post.php:435
1310
+ msgid "View &#8220;%s&#8221;"
1311
+ msgstr ""
1312
+
1313
+ #: includes/any-post.php:529
1314
+ msgid "Updating post %d failed"
1315
+ msgstr ""
1316
+
1317
+ #: includes/any-post.php:711
1318
  msgid "%d post deleted."
1319
  msgid_plural "%d posts deleted."
1320
  msgstr[0] ""
1321
  msgstr[1] ""
1322
 
1323
+ #: includes/any-post.php:713
 
1324
  msgid "%d page deleted."
1325
  msgid_plural "%d pages deleted."
1326
  msgstr[0] ""
1327
  msgstr[1] ""
1328
 
1329
+ #: includes/any-post.php:715
 
1330
  msgid "%d \"%s\" deleted."
1331
  msgid_plural "%d \"%s\" deleted."
1332
  msgstr[0] ""
1333
  msgstr[1] ""
1334
 
1335
+ #: includes/any-post.php:734
 
1336
  msgid "%d post moved to the Trash."
1337
  msgid_plural "%d posts moved to the Trash."
1338
  msgstr[0] ""
1339
  msgstr[1] ""
1340
 
1341
+ #: includes/any-post.php:736
 
1342
  msgid "%d page moved to the Trash."
1343
  msgid_plural "%d pages moved to the Trash."
1344
  msgstr[0] ""
1345
  msgstr[1] ""
1346
 
1347
+ #: includes/any-post.php:738
 
1348
  msgid "%d \"%s\" moved to the Trash."
1349
  msgid_plural "%d \"%s\" moved to the Trash."
1350
  msgstr[0] ""
1351
  msgstr[1] ""
1352
 
1353
  #: includes/containers.php:122
 
1354
  msgid "%d '%s' has been deleted"
1355
  msgid_plural "%d '%s' have been deleted"
1356
  msgstr[0] ""
1357
  msgstr[1] ""
1358
 
1359
+ #: includes/containers.php:883 includes/containers.php:901
 
1360
  msgid "Container type '%s' not recognized"
1361
  msgstr ""
1362
 
1363
+ #: includes/links.php:215
1364
+ msgid "The plugin script was terminated while trying to check the link."
1365
+ msgstr ""
1366
+
1367
+ #: includes/links.php:261
1368
+ msgid "The plugin doesn't know how to check this type of link."
1369
+ msgstr ""
1370
+
1371
+ #: includes/links.php:349
1372
+ msgid "Link is valid."
1373
+ msgstr ""
1374
+
1375
+ #: includes/links.php:351
1376
+ msgid "Link is broken."
1377
+ msgstr ""
1378
+
1379
+ #: includes/links.php:564 includes/links.php:666 includes/links.php:693
1380
+ msgid "Link is not valid"
1381
+ msgstr ""
1382
+
1383
+ #: includes/links.php:581
1384
+ msgid ""
1385
+ "This link can not be edited because it is not used anywhere on this site."
1386
+ msgstr ""
1387
+
1388
+ #: includes/links.php:607
1389
+ msgid "Failed to create a DB entry for the new URL."
1390
+ msgstr ""
1391
+
1392
+ #: includes/links.php:673
1393
+ msgid "This link is not a redirect"
1394
+ msgstr ""
1395
+
1396
+ #: includes/links.php:720 includes/links.php:757
1397
+ msgid "Couldn't delete the link's database record"
1398
+ msgstr ""
1399
+
1400
+ #: includes/links.php:831
1401
+ msgctxt "link status"
1402
+ msgid "Unknown"
1403
+ msgstr ""
1404
+
1405
+ #: includes/links.php:869
1406
+ msgid "Not checked"
1407
+ msgstr ""
1408
+
1409
+ #: includes/links.php:872
1410
+ msgid "False positive"
1411
+ msgstr ""
1412
+
1413
  #: includes/extra-strings.php:2
1414
  msgctxt "module name"
1415
  msgid "Basic HTTP"
1490
  msgid "Pages"
1491
  msgstr ""
1492
 
1493
+ #: includes/utility-class.php:286
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1494
  msgid "%d second"
1495
  msgid_plural "%d seconds"
1496
  msgstr[0] ""
1497
  msgstr[1] ""
1498
 
1499
+ #: includes/utility-class.php:287
 
1500
  msgid "%d second ago"
1501
  msgid_plural "%d seconds ago"
1502
  msgstr[0] ""
1503
  msgstr[1] ""
1504
 
1505
+ #: includes/utility-class.php:290
 
1506
  msgid "%d minute"
1507
  msgid_plural "%d minutes"
1508
  msgstr[0] ""
1509
  msgstr[1] ""
1510
 
1511
+ #: includes/utility-class.php:291
 
1512
  msgid "%d minute ago"
1513
  msgid_plural "%d minutes ago"
1514
  msgstr[0] ""
1515
  msgstr[1] ""
1516
 
1517
+ #: includes/utility-class.php:294
 
1518
  msgid "%d hour"
1519
  msgid_plural "%d hours"
1520
  msgstr[0] ""
1521
  msgstr[1] ""
1522
 
1523
+ #: includes/utility-class.php:295
 
1524
  msgid "%d hour ago"
1525
  msgid_plural "%d hours ago"
1526
  msgstr[0] ""
1527
  msgstr[1] ""
1528
 
1529
+ #: includes/utility-class.php:298
 
1530
  msgid "%d day"
1531
  msgid_plural "%d days"
1532
  msgstr[0] ""
1533
  msgstr[1] ""
1534
 
1535
+ #: includes/utility-class.php:299
 
1536
  msgid "%d day ago"
1537
  msgid_plural "%d days ago"
1538
  msgstr[0] ""
1539
  msgstr[1] ""
1540
 
1541
+ #: includes/utility-class.php:302
 
1542
  msgid "%d month"
1543
  msgid_plural "%d months"
1544
  msgstr[0] ""
1545
  msgstr[1] ""
1546
 
1547
+ #: includes/utility-class.php:303
 
1548
  msgid "%d month ago"
1549
  msgid_plural "%d months ago"
1550
  msgstr[0] ""
1551
  msgstr[1] ""
1552
 
1553
+ #: includes/instances.php:102 includes/instances.php:158
1554
+ msgid "Container %s[%d] not found"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1555
  msgstr ""
1556
 
1557
+ #: includes/instances.php:111 includes/instances.php:167
1558
+ msgid "Parser '%s' not found."
1559
  msgstr ""
1560
 
1561
  #. Plugin URI of the plugin/theme
modules/extras/dailymotion-embed.php CHANGED
@@ -1,17 +1,39 @@
1
- <?php
2
- /*
3
- ModuleID: dailymotion-embed
4
- ModuleCategory: parser
5
- ModuleContext: on-demand
6
- ModuleLazyInit: true
7
- ModuleClassName: blcDailyMotionEmbed
8
- ModulePriority: 0
9
- ModuleCheckerUrlPattern:
10
- ModuleHidden: false
11
- ModuleAlwaysActive: false
12
- ModuleRequiresPro: true
13
- Version: 1.0
14
- Description: Parse embedded videos from DailyMotion
15
- Plugin Name: Embedded DailyMotion videos
16
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  ?>
1
+ <?php
2
+ /*
3
+ Plugin Name: Embedded DailyMotion videos
4
+ Description: Parse embedded videos from DailyMotion
5
+ Version: 1.0
6
+ Author: Janis Elsts
7
+
8
+ ModuleCategory: parser
9
+ ModuleClassName: blcDailyMotionEmbed
10
+ ModuleContext: on-demand
11
+ ModuleLazyInit: true
12
+ */
13
+
14
+ if ( !class_exists('blcEmbedParserBase') ){
15
+ require 'embed-parser-base.php';
16
+ }
17
+
18
+ class blcDailyMotionEmbed extends blcEmbedParserBase {
19
+
20
+ function init(){
21
+ parent::init();
22
+ $this->url_search_string = 'dailymotion.com/swf/video/';
23
+ $this->short_title = __('DailyMotion Video','broken-link-checker');
24
+ $this->long_title = __('Embedded DailyMotion video', 'broken-link-checker');
25
+ }
26
+
27
+ function link_url_from_src($src){
28
+ //Extract video ID from the SRC. Only the part before the underscore matters,
29
+ //but we're going to use the entire slug to make the display URL look better.
30
+ $video_id = end(explode('/', $src));
31
+
32
+ //Reconstruct the video permalink based on the ID
33
+ $url = 'http://www.dailymotion.com/video/' . $video_id;
34
+
35
+ return $url;
36
+ }
37
+ }
38
+
39
  ?>
modules/extras/embed-parser-base.php ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @author Janis Elsts
5
+ * @copyright 2010
6
+ */
7
+
8
+ if ( !class_exists('blcEmbedParserBase') ):
9
+
10
+ /**
11
+ * Base class for embed code parsers.
12
+ *
13
+ * Sub-classes should override the link_url_from_src() method and set the $url_search_string,
14
+ * $short_title and $long_title properties to meaningful values.
15
+ *
16
+ * @package Broken Link Checker
17
+ * @author Janis Elsts
18
+ * @access public
19
+ */
20
+ class blcEmbedParserBase extends blcParser {
21
+ var $supported_formats = array('html');
22
+
23
+ var $short_title = ''; //Short desc. of embeds handled by this parser, singular. Example: "YouTube Video".
24
+ var $long_title = ''; //Longer version of the above, e.g. "Embedded YouTube video".
25
+ var $url_search_string = '';//Only consider embeds where the SRC contains this string. Example: "youtube.com/v/"
26
+
27
+ /**
28
+ * Parse a string for embed codes.
29
+ *
30
+ * @param string $content The text to parse.
31
+ * @param string $base_url The base URL. Ignored.
32
+ * @param string $default_link_text Default link text. Ignored.
33
+ * @return array An array of new blcLinkInstance objects. The objects will include info about the embeds found, but not about the corresponding container entity.
34
+ */
35
+ function parse($content, $base_url = '', $default_link_text = ''){
36
+ $instances = array();
37
+
38
+ //Find likely-looking <embed> elements
39
+ $embeds = blcUtility::extract_embeds($content);
40
+ foreach($embeds as $embed){
41
+ //Do we know how to handle this embed? (first-pass verification)
42
+ if ( strpos($embed['attributes']['src'], $this->url_search_string) === false ){
43
+ continue;
44
+ }
45
+
46
+ //Get the original URL of the embedded object (may perform more complex verification)
47
+ $url = $this->link_url_from_src($embed['attributes']['src']);
48
+ if ( empty($url) ){
49
+ continue;
50
+ }
51
+
52
+ //Create a new link instance.
53
+ $instance = new blcLinkInstance();
54
+
55
+ $instance->set_parser($this);
56
+ $instance->raw_url = $embed['wrapper']['full_tag']; //The entire contents of the <object> tag that contains this <embed>
57
+ $instance->link_text = '[' . $this->short_title .']';
58
+
59
+ $link_obj = new blcLink($url); //Creates or loads the link
60
+ $instance->set_link($link_obj);
61
+
62
+ $instances[] = $instance;
63
+ }
64
+
65
+ return $instances;
66
+ }
67
+
68
+ /**
69
+ * Remove all occurences of the specified embed from a string.
70
+ *
71
+ * @param string $content Look for embeds in this string.
72
+ * @param string $url Ignored.
73
+ * @param string $embed_code The full embed code to look for.
74
+ * @return string Input string with all matching embeds removed.
75
+ */
76
+ function unlink($content, $url, $embed_code){
77
+ if ( empty($embed_code) ){
78
+ return $content;
79
+ }
80
+
81
+ return str_replace($embed_code, '', $content); //Super-simple.
82
+ }
83
+
84
+ /**
85
+ * Get the link text for printing in the "Broken Links" table.
86
+ *
87
+ * @param blcLinkInstance $instance
88
+ * @return string HTML
89
+ */
90
+ function ui_get_link_text(&$instance, $context = 'display'){
91
+ $image_url = sprintf(
92
+ '/images/%s.png',
93
+ $this->parser_type
94
+ );
95
+
96
+ $image_html = sprintf(
97
+ '<img src="%s" class="blc-small-image" title="%2$s" alt="%2$s"> ',
98
+ esc_attr( plugins_url($image_url, BLC_PLUGIN_FILE) ),
99
+ $this->long_title
100
+ );
101
+
102
+ $field_html = sprintf(
103
+ '%s',
104
+ $this->short_title
105
+ );
106
+
107
+ if ( $context != 'email' ){
108
+ $field_html = $image_html . $field_html;
109
+ }
110
+
111
+ return $field_html;
112
+ }
113
+
114
+ /**
115
+ * Determine the original URL of an embedded object by analysing its SRC attribute.
116
+ *
117
+ * For example, if the object in question is an embedded YouTube video, this
118
+ * method should return the URL of the original video; e.g. 'http://www.youtube.com/watch?v=example1234'
119
+ *
120
+ * Should be overridden in a sub-class.
121
+ *
122
+ * @return string The URL of the embedded object, or an empty string if the URL can't be determined.
123
+ */
124
+ function link_url_from_src(){
125
+ return '';
126
+ }
127
+
128
+ /**
129
+ * Editing is disabled in embed parsers. Calling this function will yield an instance of WP_Error.
130
+ *
131
+ * @param string $content
132
+ * @param string $new_url
133
+ * @param string $old_url
134
+ * @param string $old_raw_url
135
+ * @return WP_Error
136
+ */
137
+ function edit($content, $new_url, $old_url, $old_raw_url){
138
+ return new WP_Error(
139
+ 'not_implemented',
140
+ sprintf(__("Embedded videos can't be edited using Broken Link Checker. Please edit or replace the video in question manually.", 'broken-link-checker'), $this->parser_type)
141
+ );
142
+ }
143
+ }
144
+
145
+ endif;
146
+
147
+ ?>
modules/extras/mediafire.php CHANGED
@@ -1,17 +1,161 @@
1
- <?php
2
- /*
3
- ModuleID: mediafire-checker
4
- ModuleCategory: checker
5
- ModuleContext: on-demand
6
- ModuleLazyInit: true
7
- ModuleClassName: blcMediaFireChecker
8
- ModulePriority: 100
9
- ModuleCheckerUrlPattern: @^http://(?:www\.)?mediafire\.com/(?:download\.php)?\?([0-9a-zA-Z]{11})(?:$|[^0-9a-zA-Z])@
10
- ModuleHidden: false
11
- ModuleAlwaysActive: false
12
- ModuleRequiresPro: true
13
- Version: 1.0
14
- Description: Check links to files hosted on MediaFire.
15
- Plugin Name: MediaFire API
16
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  ?>
1
+ <?php
2
+ /*
3
+ Plugin Name: MediaFire API
4
+ Description: Check links to files hosted on MediaFire.
5
+ Version: 1.0
6
+ Author: Janis Elsts
7
+
8
+ ModuleID: mediafire-checker
9
+ ModuleCategory: checker
10
+ ModuleContext: on-demand
11
+ ModuleLazyInit: true
12
+ ModuleClassName: blcMediaFireChecker
13
+ ModulePriority: 100
14
+
15
+ ModuleCheckerUrlPattern: @^http://(?:www\.)?mediafire\.com/(?:download\.php)?\?([0-9a-zA-Z]{11})(?:$|[^0-9a-zA-Z])@
16
+ */
17
+
18
+ /**
19
+ * MediaFire link checker.
20
+ *
21
+ * @package Broken Link Checker
22
+ * @author Janis Elsts
23
+ * @access public
24
+ */
25
+ class blcMediaFireChecker extends blcChecker {
26
+
27
+ /**
28
+ * Determine if the checker can parse a specific URL.
29
+ * Always returns true because the ModuleCheckerUrlPattern header constitutes sufficient verification.
30
+ *
31
+ * @param string $url
32
+ * @param array $parsed
33
+ * @return bool True.
34
+ */
35
+ function can_check($url, $parsed){
36
+ return true;
37
+ }
38
+
39
+ /**
40
+ * Check a MediaFire link.
41
+ *
42
+ * @param string $url
43
+ * @return array
44
+ */
45
+ function check($url){
46
+ $result = array(
47
+ 'final_url' => $url,
48
+ 'redirect_count' => 0,
49
+ 'timeout' => false,
50
+ 'broken' => false,
51
+ 'log' => "<em>(Using MediaFire checker module)</em>\n\n",
52
+ 'http_code' => 0,
53
+ 'result_hash' => '',
54
+ );
55
+
56
+ //URLs like http://www.mediafire.com/download.php?03mj0mwmnnm are technically valid,
57
+ //but they introduce unnecessary redirects.
58
+ $url = str_replace('download.php','', $url);
59
+
60
+ //Since MediaFire doesn't have an API, we just send a HEAD request
61
+ //and try do divine the file state from the response headers.
62
+ $start = microtime_float();
63
+ $rez = $this->head($url);
64
+ $result['request_duration'] = microtime_float() - $start;
65
+
66
+ if ( is_wp_error($rez) ){
67
+
68
+ //An unexpected error.
69
+ $result['broken'] = true;
70
+ $result['log'] .= "Error : " . $info->get_error_message();
71
+ if ( $data = $info->get_error_data() ){
72
+ $result['log'] .= "\n\nError data : " . print_r($data, true);
73
+ }
74
+
75
+ } else {
76
+
77
+ $result['http_code'] = intval($rez['response']['code']);
78
+
79
+ if ( $result['http_code'] == 200 ){
80
+ //200 - OK
81
+ $result['broken'] = false;
82
+ $result['log'] .= "File OK";
83
+ } elseif ( isset($rez['headers']['location']) ) {
84
+ //Redirect = some kind of error. Redirects to an error page with an explanatory message.
85
+ //The redirect URL is structured like this : '/error.php?errno=320'. The 'errno' argument
86
+ //contains an (undocumented) error code. The only known value is 'errno=320', which
87
+ //indicates that the file is invalid or has been deleted.
88
+ $result['broken'] = true;
89
+ if ( strpos($rez['headers']['location'], 'errno=320') !== false ){
90
+ $result['status_code'] = BLC_LINK_STATUS_ERROR;
91
+ $result['status_text'] = __('Not Found', 'broken-link-checker');
92
+ $result['http_code'] = 0;
93
+ $result['log'] .= "The file is invalid or has been removed.";
94
+ } else {
95
+ $result['status_code'] = BLC_LINK_STATUS_INFO;
96
+ $result['status_text'] = __('Unknown Error', 'broken-link-checker');
97
+ $result['log'] .= "Unknown error.\n\n";
98
+ foreach($rez['headers'] as $name => $value){
99
+ $result['log'] .= printf("%s: %s\n", $name, $value);
100
+ }
101
+ }
102
+ } else {
103
+ $result['log'] .= "Unknown error.\n\n" . implode("\n",$rez['headers']);
104
+ }
105
+ }
106
+
107
+ //Generate the result hash (used for detecting false positives)
108
+ $result['result_hash'] = implode('|', array(
109
+ 'mediafire',
110
+ $result['http_code'],
111
+ $result['broken']?'broken':'0',
112
+ $result['timeout']?'timeout':'0'
113
+ ));
114
+
115
+ return $result;
116
+ }
117
+
118
+ /**
119
+ * Perform a HEAD request to the specified URL.
120
+ *
121
+ * Note :
122
+ *
123
+ * Since the MediaFire checker works by parsing the "Location" header, redirect following
124
+ * _must_ be disabled. This can become a problem on servers where WP is forced to fall back
125
+ * on using WP_Http_Fopen which ignores the 'redirection' flag. WP_Http_Fsockopen would work,
126
+ * but it has the lowest priority of all transports.
127
+ *
128
+ * Alas, there is no way to reliably influence which transport is chosen - the WP_Http::_getTransport
129
+ * function caches the available choices, so plugins can disable individual transports only during
130
+ * its first run. Therefore, we must pick the best transport manually.
131
+ *
132
+ * @param string $url
133
+ * @return array|WP_Error
134
+ */
135
+ function head($url){
136
+ //Only consider transports that allow redirection to be disabled.
137
+ if ( true === WP_Http_ExtHttp::test($args) ) {
138
+ $transport = new WP_Http_ExtHttp();
139
+ } else if ( true === WP_Http_Curl::test($args) ) {
140
+ $transport = new WP_Http_Curl();
141
+ } else if ( true === WP_Http_Fsockopen::test($args) ) {
142
+ $transport = new WP_Http_Fsockopen();
143
+ } else {
144
+ return new WP_Error(
145
+ 'no_suitable_transport',
146
+ "No suitable HTTP transport found. Please upgrade to a more recent version of PHP or install the CURL extension."
147
+ );
148
+ }
149
+
150
+ $conf = & blc_get_configuration();
151
+ $args = array(
152
+ 'timeout' => $conf->options['timeout'],
153
+ 'redirection' => 0,
154
+ 'method' => 'HEAD',
155
+ );
156
+ return $transport->request($url, $args);
157
+ }
158
+
159
+ }
160
+
161
  ?>
modules/extras/megaupload.php CHANGED
@@ -1,17 +1,255 @@
1
- <?php
2
- /*
3
- ModuleID: megaupload-checker
4
- ModuleCategory: checker
5
- ModuleContext: on-demand
6
- ModuleLazyInit: true
7
- ModuleClassName: blcMegaUploadChecker
8
- ModulePriority: 100
9
- ModuleCheckerUrlPattern: @^http://[\w\.]*?megaupload\.com/.*?(?:\?|&)d=([0-9A-Za-z]+)@
10
- ModuleHidden: false
11
- ModuleAlwaysActive: false
12
- ModuleRequiresPro: true
13
- Version: 1.0
14
- Description: Check links to MegaUpload files.
15
- Plugin Name: MegaUpload API
16
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  ?>
1
+ <?php
2
+ /*
3
+ Plugin Name: MegaUpload API
4
+ Description: Check links to MegaUpload files.
5
+ Version: 1.0
6
+ Author: Janis Elsts
7
+
8
+ ModuleID: megaupload-checker
9
+ ModuleCategory: checker
10
+ ModuleContext: on-demand
11
+ ModuleLazyInit: true
12
+ ModuleClassName: blcMegaUploadChecker
13
+ ModulePriority: 100
14
+
15
+ ModuleCheckerUrlPattern: @^http://[\w\.]*?megaupload\.com/.*?(?:\?|&)d=([0-9A-Za-z]+)@
16
+ */
17
+
18
+ /**
19
+ * MegaUpload API link checker.
20
+ *
21
+ * @package Broken Link Checker
22
+ * @author Janis Elsts
23
+ * @access public
24
+ */
25
+ class blcMegaUploadChecker extends blcChecker {
26
+
27
+ /**
28
+ * Determine if the checker can parse a specific URL.
29
+ * Always returns true because the ModuleCheckerUrlPattern header constitutes sufficient verification.
30
+ *
31
+ * @param string $url
32
+ * @param array $parsed
33
+ * @return bool True.
34
+ */
35
+ function can_check($url, $parsed){
36
+ return true;
37
+ }
38
+
39
+ /**
40
+ * Check a MegaUpload link.
41
+ *
42
+ * @param string $url
43
+ * @return array
44
+ */
45
+ function check($url){
46
+ $result = array(
47
+ 'final_url' => $url,
48
+ 'redirect_count' => 0,
49
+ 'timeout' => false,
50
+ 'broken' => false,
51
+ 'log' => "<em>(Using MegaUpload API)</em>\n\n",
52
+ 'http_code' => 0,
53
+ 'result_hash' => '',
54
+ );
55
+
56
+ //Extract the file ID from the URL (we know it's there because the module's URL pattern verifies that)
57
+ $components = parse_url($url);
58
+ parse_str($components['query'], $query);
59
+ $file_id = $query['d'];
60
+
61
+ $start = microtime_float();
62
+ $info = $this->check_files($file_id);
63
+ $result['request_duration'] = microtime_float() - $start;
64
+
65
+ $file_status = 'unknown';
66
+ if ( is_wp_error($info) ){
67
+
68
+ //An unexpected error. Connection problems, IP blocks - it all goes here.
69
+ $result['broken'] = true;
70
+ $result['log'] .= "Error : " . $info->get_error_message();
71
+ if ( $data = $info->get_error_data() ){
72
+ $result['log'] .= "\n\nError data : " . print_r($data, true);
73
+ }
74
+
75
+ } else {
76
+ if ( array_key_exists($file_id, $info) ){
77
+
78
+ $info = $info[$file_id];
79
+ $file_status = $info['status'];
80
+
81
+ switch($file_status){
82
+ case '0': //OK
83
+ $result['log'] .= 'File OK';
84
+ $result['broken'] = false;
85
+
86
+ if ( isset($info['name']) ){
87
+ $result['log'] .= "\n" . sprintf(
88
+ "Name : %s",
89
+ $info['name']
90
+ );
91
+ }
92
+
93
+ if ( isset($info['size']) ){
94
+ $result['log'] .= "\n" . sprintf(
95
+ "Size : %.0f KiB",
96
+ round( floatval($info['size']) / 1024 )
97
+ );
98
+ }
99
+
100
+ $result['status_code'] = BLC_LINK_STATUS_OK;
101
+ $result['status_text'] = _x('OK', 'link status', 'broken-link-checker');
102
+
103
+ break;
104
+
105
+ case '1': //Invalid/removed
106
+ $result['log'] .= 'File Not Found';
107
+ $result['broken'] = true;
108
+ $result['status_code'] = BLC_LINK_STATUS_ERROR;
109
+ $result['status_text'] = __('Not Found', 'broken-link-checker');
110
+ break;
111
+
112
+ case '3': //Temporarily unavailable
113
+ $result['log'] .= 'File Temporarily Unavailable';
114
+ $result['broken'] = true;
115
+ $result['status_code'] = BLC_LINK_STATUS_WARNING;
116
+ $result['status_text'] = __('File Temporarily Unavailable', 'broken-link-checker');
117
+ break;
118
+
119
+ default: //Other codes are not documented anywhere.
120
+ $result['log'] .= 'Received an unknown response code : ' . $file_status;
121
+ $result['status_code'] = BLC_LINK_STATUS_INFO;
122
+ $result['status_text'] = __('API Error', 'broken-link-checker');
123
+ }
124
+
125
+ } else {
126
+ $result['log'] = "No info about file $file_id returned.";
127
+ }
128
+ }
129
+
130
+ //Generate the result hash (used for detecting false positives)
131
+ $result['result_hash'] = implode('|', array(
132
+ 'megaupload',
133
+ $result['http_code'],
134
+ $result['broken']?'broken':'0',
135
+ $result['timeout']?'timeout':'0',
136
+ $file_status
137
+ ));
138
+
139
+ return $result;
140
+ }
141
+
142
+ /**
143
+ * Check the status of one or more MegaUpload files.
144
+ *
145
+ * The MegaUpload API that is used in this function isn't documented anywhere.
146
+ * The input and output data formats were reverse-engineered by sniffing the
147
+ * HTTP requests made by the "Mega Manager" tool.
148
+ *
149
+ * @param array|string $file_ids
150
+ * @return array|WP_Error
151
+ */
152
+ function check_files($file_ids){
153
+ if ( is_string($file_ids) ){
154
+ $file_ids = array($file_ids);
155
+ }
156
+
157
+ //The API expects input in this format : id0=file1id&id1=file2id&...
158
+ $request_ids = array();
159
+ $counter = 0;
160
+
161
+ foreach($file_ids as $file_id){
162
+ $id = 'id' . $counter;
163
+ $request_ids[$id] = $file_id;
164
+ $counter++;
165
+ }
166
+
167
+ $conf = & blc_get_configuration();
168
+ $args = array(
169
+ 'timeout' => $conf->options['timeout'],
170
+ 'body' => $request_ids,
171
+ );
172
+
173
+ //Submit the request
174
+ $rez = wp_remote_post('http://www.megaupload.com/mgr_linkcheck.php', $args);
175
+
176
+ if ( is_wp_error($rez) ){
177
+ return $rez;
178
+ }
179
+
180
+ if ( ($rez['response']['code'] == 200) && (!empty($rez['body'])) ){
181
+ $api_results = $this->parse_api_response($rez['body']);
182
+ $results = array();
183
+
184
+ //Resort the results by real file IDs
185
+ foreach($api_results as $id => $file_info){
186
+ if ( !array_key_exists($id, $request_ids) ){
187
+ continue;
188
+ }
189
+
190
+ $results[$request_ids[$id]] = $file_info;
191
+ }
192
+
193
+ return $results;
194
+
195
+ } else {
196
+ return new WP_Error(
197
+ 'megaupload_api_error',
198
+ "MegaUpload API Error",
199
+ $rez
200
+ );
201
+ }
202
+ }
203
+
204
+ /**
205
+ * Parse a response received from the MegaUpload file check API
206
+ *
207
+ * @param string $response
208
+ * @return array
209
+ */
210
+ function parse_api_response($response){
211
+ /*
212
+ The API response looks like this :
213
+ 0=www.megaupload.com&1=www.megaporn.com&id0=0&s=filesize&d=0&n=filename&id1=0&s=filesize&d=0&n=filename...
214
+
215
+ Despite appearances, it is not actually a valid query string. Each "idX=..." piece
216
+ needs to be parsed separately.
217
+ */
218
+
219
+ $pieces = preg_split('@&(?=id\d+=)@', $response);
220
+ $results = array();
221
+
222
+ foreach($pieces as $piece){
223
+ //Skip the superfluous response fragments that don't begin with an ID
224
+ if ( substr($piece, 0, 2) != 'id' ){
225
+ continue;
226
+ }
227
+
228
+ //Extract the "idX" key that identifies files in the request
229
+ $id = substr($piece, 0, strpos($piece, '='));
230
+
231
+ //The per-file data can be parsed as a query string
232
+ parse_str($piece, $raw_data);
233
+
234
+ //Reformat
235
+ $file_data = array();
236
+ $file_data['status'] = $raw_data[$id];
237
+ if ( isset($raw_data['s']) ){
238
+ $file_data['size'] = $raw_data['s'];
239
+ }
240
+ if ( isset($raw_data['n']) ){
241
+ $file_data['name'] = $raw_data['n'];
242
+ }
243
+ if ( isset($raw_data['d']) ){ //No idea what this key is for.
244
+ $file_data['d'] = $raw_data['d'];
245
+ }
246
+
247
+ $results[$id] = $file_data;
248
+ }
249
+
250
+ return $results;
251
+ }
252
+
253
+ }
254
+
255
  ?>
modules/extras/plaintext-url.php CHANGED
@@ -1,17 +1,154 @@
1
- <?php
2
- /*
3
- ModuleID: plaintext-url
4
- ModuleCategory: parser
5
- ModuleContext: on-demand
6
- ModuleLazyInit: true
7
- ModuleClassName: blcPlaintextURL
8
- ModulePriority: 800
9
- ModuleCheckerUrlPattern:
10
- ModuleHidden: false
11
- ModuleAlwaysActive: false
12
- ModuleRequiresPro: true
13
- Version: 1.0
14
- Description: Parse plaintext URLs as links
15
- Plugin Name: Plaintext URLs
16
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  ?>
1
+ <?php
2
+ /*
3
+ Plugin Name: Plaintext URLs
4
+ Description: Parse plaintext URLs as links
5
+ Version: 1.0
6
+ Author: Janis Elsts
7
+
8
+ ModuleCategory: parser
9
+ ModuleClassName: blcPlaintextURL
10
+ ModuleContext: on-demand
11
+ ModuleLazyInit: true
12
+
13
+ ModulePriority: 800
14
+ */
15
+
16
+ class blcPlaintextURL extends blcParser {
17
+ var $supported_formats = array('html', 'plaintext');
18
+
19
+ //Regexp for detecting plaintext URLs lifted from make_clickable()
20
+ var $url_regexp = '#(?<=[\s>\]])(\()?([\w]+?://(?:[\w\\x80-\\xff\#$%&~/=?@\[\](+-]|[.,;:](?![\s<]|(\))?([\s]|$))|(?(1)\)(?![\s<.,;:]|$)|\)))+)#is';
21
+
22
+ //Used by the edit and unlink callbacks
23
+ var $old_url = '';
24
+ var $new_url = '';
25
+
26
+ /**
27
+ * Parse a string for plaintext URLs
28
+ *
29
+ * @param string $content The text to parse.
30
+ * @param string $base_url The base URL. Ignored.
31
+ * @param string $default_link_text Default link text.
32
+ * @return array An array of new blcLinkInstance objects.
33
+ */
34
+ function parse($content, $base_url = '', $default_link_text = ''){
35
+ //Don't want to detect URLs inside links or tag attributes -
36
+ //there are already other parsers for that.
37
+
38
+ //Avoid <a href="http://...">http://...</a>
39
+ $content = preg_replace('#<a[^>]*>.*?</a>#si', '', $content);
40
+ //HTML tags are treated as natural boundaries for plaintext URLs
41
+ //(since we strip tags, we must place another boundary char where they were).
42
+ //The closing tag of [shortcodes] is also treated as a boundary.
43
+ $content = str_replace(array('<', '>', '[/'), array("\n<", ">\n", "\n[/"), $content);
44
+ //Finally, kill all tags.
45
+ $content = strip_tags($content);
46
+
47
+ //Find all URLs
48
+ $found = preg_match_all(
49
+ $this->url_regexp,
50
+ $content,
51
+ $matches
52
+ );
53
+
54
+ $instances = array();
55
+
56
+ if ( $found ){
57
+ //Create a new instance for each match
58
+ foreach($matches[2] as $match){
59
+ //Do a little bit of validation
60
+ $url = esc_url_raw(trim($match));
61
+ if ( empty($url) ){
62
+ continue;
63
+ }
64
+ if ( function_exists('filter_var') ){
65
+ //Note: filter_var() is no panacea as it accepts many invalid URLs
66
+ if ( !filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED) ){
67
+ continue;
68
+ }
69
+ }
70
+ $parts = @parse_url($url);
71
+ if ( empty($parts['host']) || !strpos($parts['host'], '.') ){
72
+ continue;
73
+ }
74
+
75
+ //Create a new link instance.
76
+ $instance = new blcLinkInstance();
77
+
78
+ $instance->set_parser($this);
79
+ $instance->raw_url = $match;
80
+ $instance->link_text = $match;
81
+
82
+ $link_obj = new blcLink($url); //Creates or loads the link
83
+ $instance->set_link($link_obj);
84
+
85
+ $instances[] = $instance;
86
+ }
87
+ }
88
+
89
+ return $instances;
90
+ }
91
+
92
+ /**
93
+ * Change all occurences of a given plaintext URLs to a new URL.
94
+ *
95
+ * @param string $content Look for URLs in this string.
96
+ * @param string $new_url Change them to this URL.
97
+ * @param string $old_url The URL to look for.
98
+ * @param string $old_raw_url The raw, not-normalized URL. Optional.
99
+ *
100
+ * @return array|WP_Error If successful, the return value will be an associative array with two
101
+ * keys : 'content' - the modified content, and 'raw_url' - the new raw, non-normalized URL used
102
+ * for the modified links. In most cases, the returned raw_url will be equal to the new_url.
103
+ */
104
+ function edit($content, $new_url, $old_url, $old_raw_url = ''){
105
+ $this->new_url = $new_url;
106
+ if ( empty($old_raw_url) ){
107
+ $this->old_url = $old_url;
108
+ } else {
109
+ $this->old_url = $old_raw_url;
110
+ }
111
+
112
+ return array(
113
+ 'content' => preg_replace_callback($this->url_regexp, array(&$this, 'edit_callback'), $content),
114
+ 'raw_url' => $new_url,
115
+ 'link_text' => $new_url,
116
+ );
117
+ }
118
+
119
+ function edit_callback($match){
120
+ if ( $match[2] == $this->old_url ){
121
+ return $this->new_url;
122
+ } else {
123
+ return $match[0];
124
+ }
125
+ }
126
+
127
+
128
+ /**
129
+ * Remove all occurences of a specific plaintext URL.
130
+ *
131
+ * @param string $content Look for URLs in this string.
132
+ * @param string $url The URL to look for.
133
+ * @param string $raw_url The raw, non-normalized version of the URL to look for. Optional.
134
+ * @return string Input string with all matching plaintext URLs removed.
135
+ */
136
+ function unlink($content, $url, $raw_url = ''){
137
+ if ( empty($raw_url) ){
138
+ $this->old_url = $url;
139
+ } else {
140
+ $this->old_url = $raw_url;
141
+ }
142
+
143
+ return preg_replace_callback($this->url_regexp, array(&$this, 'unlink_callback'), $content);
144
+ }
145
+
146
+ function unlink_callback($match){
147
+ if ( $match[2] == $this->old_url ){
148
+ return '';
149
+ } else {
150
+ return $match[0];
151
+ }
152
+ }
153
+ }
154
  ?>
modules/extras/rapidshare.php CHANGED
@@ -1,17 +1,218 @@
1
- <?php
2
- /*
3
- ModuleID: rapidshare-checker
4
- ModuleCategory: checker
5
- ModuleContext: on-demand
6
- ModuleLazyInit: true
7
- ModuleClassName: blcRapidShareChecker
8
- ModulePriority: 100
9
- ModuleCheckerUrlPattern: @^https?://(?:[\w\d]+\.)*rapidshare\.\w+/files/(\d+)/([^&?#/]+?)(?:$|[&?#/])@i
10
- ModuleHidden: false
11
- ModuleAlwaysActive: false
12
- ModuleRequiresPro: true
13
- Version: 1.0
14
- Description: Check links to RapidShare files using the RapidShare API.
15
- Plugin Name: RapidShare API
16
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  ?>
1
+ <?php
2
+ /*
3
+ Plugin Name: RapidShare API
4
+ Description: Check links to RapidShare files using the RapidShare API.
5
+ Version: 1.0
6
+ Author: Janis Elsts
7
+
8
+ ModuleID: rapidshare-checker
9
+ ModuleCategory: checker
10
+ ModuleContext: on-demand
11
+ ModuleLazyInit: true
12
+ ModuleClassName: blcRapidShareChecker
13
+ ModulePriority: 100
14
+
15
+ ModuleCheckerUrlPattern: @^https?://(?:[\w\d]+\.)*rapidshare\.\w+/files/(\d+)/([^&?#/]+?)(?:$|[&?#/])@i
16
+ */
17
+
18
+ /**
19
+ * RapidShare API link checker.
20
+ *
21
+ * @package Broken Link Checker
22
+ * @author Janis Elsts
23
+ * @access public
24
+ */
25
+ class blcRapidShareChecker extends blcChecker {
26
+
27
+ /**
28
+ * Determine if the checker can parse a specific URL.
29
+ * Always returns true because the ModuleCheckerUrlPattern header constitutes sufficient verification.
30
+ *
31
+ * @param string $url
32
+ * @param array $parsed
33
+ * @return bool True.
34
+ */
35
+ function can_check($url, $parsed){
36
+ return true;
37
+ }
38
+
39
+ /**
40
+ * Check a RapidShare file.
41
+ *
42
+ * @param string $url File URL.
43
+ * @return array
44
+ */
45
+ function check($url){
46
+ $result = array(
47
+ 'final_url' => $url,
48
+ 'redirect_count' => 0,
49
+ 'timeout' => false,
50
+ 'broken' => false,
51
+ 'log' => "<em>(Using RapidShare API)</em>\n\n",
52
+ 'result_hash' => '',
53
+ 'status_code' => '',
54
+ 'status_text' => '',
55
+ );
56
+
57
+ //We know the URL will match because ModuleCheckerUrlPattern matched.
58
+ preg_match('@^https?://(?:[\w\d]+\.)*rapidshare\.\w+/files/(\d+)/([^&?#/]+?)(?:$|[&?#/])@i', $url, $matches);
59
+
60
+ $file_id = $matches[1];
61
+ $file_name = $matches[2];
62
+
63
+ /*
64
+ We use the checkfiles_v1 function to check file status. The RapidShare API docs can be found here :
65
+ http://images.rapidshare.com/apidoc.txt
66
+
67
+ The relevant function is documented thusly :
68
+
69
+ subroutine=checkfiles_v1
70
+
71
+ Description:
72
+ Gets status details about a list of given files. (files parameter limited to 3000 bytes. filenames parameter limited to 30000 bytes.)
73
+
74
+ Parameters:
75
+ files=comma separated list of file ids
76
+ filenames=comma separated list of the respective filename. Example: files=50444381,50444382 filenames=test1.rar,test2.rar
77
+ incmd5=if set to 1, field 7 is the hex-md5 of the file. This will double your points! If not given, all md5 values will be 0
78
+
79
+ Reply fields:
80
+ 1:File ID
81
+ 2:Filename
82
+ 3:Size (in bytes. If size is 0, this file does not exist.)
83
+ 4:Server ID
84
+ 5:Status integer, which can have the following numeric values:
85
+ 0=File not found
86
+ 1=File OK (Anonymous downloading)
87
+ 2=File OK (TrafficShare direct download without any logging)
88
+ 3=Server down
89
+ 4=File marked as illegal
90
+ 5=Anonymous file locked, because it has more than 10 downloads already
91
+ 6=File OK (TrafficShare direct download with enabled logging. Read our privacy policy to see what is logged.)
92
+ 6:Short host (Use the short host to get the best download mirror: http://rs$serverid$shorthost.rapidshare.com/files/$fileid/$filename)
93
+ 7:md5 (See parameter incmd5 in parameter description above.)
94
+
95
+ Reply format: integer,string,integer,integer,integer,string,string
96
+ */
97
+
98
+ $api_url = sprintf(
99
+ 'http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=checkfiles_v1&files=%d&filenames=%s',
100
+ $file_id,
101
+ $file_name
102
+ );
103
+
104
+ $conf = & blc_get_configuration();
105
+ $args = array( 'timeout' => $conf->options['timeout'], );
106
+
107
+ $start = microtime_float();
108
+ $response = wp_remote_get($api_url, $args);
109
+ $result['request_duration'] = microtime_float() - $start;
110
+
111
+ $file_status = 0;
112
+ $file_status_text = '';
113
+
114
+ //Is the response valid?
115
+ if ( is_wp_error($response) ){
116
+ $result['log'] .= "Error : " . $response->get_error_message();
117
+ $result['broken'] = true;
118
+ $result['http_code'] = 0;
119
+ } else {
120
+ $result['http_code'] = intval($response['response']['code']);
121
+
122
+ if ( $result['http_code'] == 200 ){
123
+ //Parse the API response
124
+ $data = explode(',', $response['body']);
125
+
126
+ //Check file status
127
+ if ( isset($data[4]) ){
128
+
129
+ $file_status = intval($data[4]);
130
+ $file_status_text = '';
131
+ if ( $file_status >= 0 && $file_status <= 6 ){
132
+ //Lets not confuse the user by showing the HTTP code we got from the API.
133
+ //It's always "200" - whether the file exists or not.
134
+ $result['http_code'] = 0;
135
+ }
136
+
137
+ switch( $file_status ){
138
+ case 0:
139
+ $file_status_text = 'File not found';
140
+ $result['broken'] = true;
141
+ $result['status_code'] = BLC_LINK_STATUS_ERROR;
142
+ $result['status_text'] = __('Not Found', 'broken-link-checker');
143
+ break;
144
+
145
+ case 1:
146
+ $file_status_text = 'File OK (Anonymous downloading)';
147
+ $result['status_code'] = BLC_LINK_STATUS_OK;
148
+ $result['status_text'] = _x('OK', 'link status', 'broken-link-checker');
149
+ break;
150
+
151
+ case 2:
152
+ $file_status_text = 'File OK (TrafficShare direct download without any logging)';
153
+ $result['status_code'] = BLC_LINK_STATUS_OK;
154
+ $result['status_text'] = _x('OK', 'link status', 'broken-link-checker');
155
+ break;
156
+
157
+ case 3:
158
+ $file_status_text = 'Server down';
159
+ $result['broken'] = true;
160
+ $result['status_code'] = BLC_LINK_STATUS_WARNING;
161
+ $result['status_text'] = __('RS Server Down', 'broken-link-checker');
162
+ break;
163
+
164
+ case 4:
165
+ $file_status_text = 'File marked as illegal';
166
+ $result['broken'] = true;
167
+ $result['status_code'] = BLC_LINK_STATUS_ERROR;
168
+ $result['status_text'] = __('File Blocked', 'broken-link-checker');
169
+ break;
170
+
171
+ case 5:
172
+ $file_status_text = 'Anonymous file locked because it has more than 10 downloads';
173
+ $result['broken'] = true;
174
+ $result['status_code'] = BLC_LINK_STATUS_WARNING;
175
+ $result['status_text'] = __('File Locked', 'broken-link-checker');
176
+ break;
177
+
178
+ case 6:
179
+ $file_status_text = 'File OK (TrafficShare direct download with enabled logging)';
180
+ $result['status_code'] = BLC_LINK_STATUS_OK;
181
+ $result['status_text'] = _x('OK', 'link status', 'broken-link-checker');
182
+ break;
183
+ }
184
+
185
+ $result['log'] .= sprintf(
186
+ __('RapidShare : %s', 'broken-link-checker'),
187
+ $file_status_text
188
+ );
189
+
190
+ } else {
191
+ $result['log'] .= sprintf(
192
+ __('RapidShare API error: %s', 'broken-link-checker'),
193
+ $response['body']
194
+ );
195
+ }
196
+
197
+ } else {
198
+ //Unexpected error.
199
+ $result['log'] .= $response['body'];
200
+ $result['broken'] = true;
201
+ }
202
+ }
203
+
204
+ //Generate the result hash (used for detecting false positives)
205
+ $result['result_hash'] = implode('|', array(
206
+ 'rapidshare',
207
+ $result['http_code'],
208
+ $result['broken']?'broken':'0',
209
+ $result['timeout']?'timeout':'0',
210
+ $file_status
211
+ ));
212
+
213
+ return $result;
214
+ }
215
+
216
+ }
217
+
218
  ?>
modules/extras/vimeo-embed.php CHANGED
@@ -1,17 +1,49 @@
1
- <?php
2
- /*
3
- ModuleID: vimeo-embed
4
- ModuleCategory: parser
5
- ModuleContext: on-demand
6
- ModuleLazyInit: true
7
- ModuleClassName: blcVimeoEmbed
8
- ModulePriority: 0
9
- ModuleCheckerUrlPattern:
10
- ModuleHidden: false
11
- ModuleAlwaysActive: false
12
- ModuleRequiresPro: true
13
- Version: 1.0
14
- Description: Parse embedded videos from Vimeo
15
- Plugin Name: Embedded Vimeo videos
16
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  ?>
1
+ <?php
2
+ /*
3
+ Plugin Name: Embedded Vimeo videos
4
+ Description: Parse embedded videos from Vimeo
5
+ Version: 1.0
6
+ Author: Janis Elsts
7
+
8
+ ModuleCategory: parser
9
+ ModuleClassName: blcVimeoEmbed
10
+ ModuleContext: on-demand
11
+ ModuleLazyInit: true
12
+ */
13
+
14
+ if ( !class_exists('blcEmbedParserBase') ){
15
+ require 'embed-parser-base.php';
16
+ }
17
+
18
+ class blcVimeoEmbed extends blcEmbedParserBase {
19
+ var $supported_formats = array('html');
20
+
21
+ function init(){
22
+ parent::init();
23
+ $this->url_search_string = 'vimeo.com/moogaloop.swf?';
24
+ $this->short_title = __('Vimeo Video', 'broken-link-checker');
25
+ $this->long_title = __('Embedded Vimeo video', 'broken-link-checker');
26
+ }
27
+
28
+ function link_url_from_src($src){
29
+ //Extract video ID from the SRC
30
+ $components = @parse_url($src);
31
+ if ( empty($components['query']) ) {
32
+ return '';
33
+ }
34
+
35
+ parse_str($components['query'], $query);
36
+ if ( empty($query['clip_id']) ){
37
+ return '';
38
+ } else {
39
+ $video_id = $query['clip_id'];
40
+ }
41
+
42
+ //Reconstruct the video permalink based on the ID
43
+ $url = 'http://vimeo.com/'.$video_id;
44
+
45
+ return $url;
46
+ }
47
+ }
48
+
49
  ?>
modules/extras/youtube-embed.php CHANGED
@@ -1,17 +1,38 @@
1
- <?php
2
- /*
3
- ModuleID: youtube-embed
4
- ModuleCategory: parser
5
- ModuleContext: on-demand
6
- ModuleLazyInit: true
7
- ModuleClassName: blcYouTubeEmbed
8
- ModulePriority: 0
9
- ModuleCheckerUrlPattern:
10
- ModuleHidden: false
11
- ModuleAlwaysActive: false
12
- ModuleRequiresPro: true
13
- Version: 1.0
14
- Description: Parse embedded videos from YouTube
15
- Plugin Name: Embedded YouTube videos
16
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  ?>
1
+ <?php
2
+ /*
3
+ Plugin Name: Embedded YouTube videos
4
+ Description: Parse embedded videos from YouTube
5
+ Version: 1.0
6
+ Author: Janis Elsts
7
+
8
+ ModuleCategory: parser
9
+ ModuleClassName: blcYouTubeEmbed
10
+ ModuleContext: on-demand
11
+ ModuleLazyInit: true
12
+ */
13
+
14
+ if ( !class_exists('blcEmbedParserBase') ){
15
+ require 'embed-parser-base.php';
16
+ }
17
+
18
+ class blcYouTubeEmbed extends blcEmbedParserBase {
19
+
20
+ function init(){
21
+ parent::init();
22
+ $this->short_title = __('YouTube Video', 'broken-link-checker');
23
+ $this->long_title = __('Embedded YouTube video', 'broken-link-checker');
24
+ $this->url_search_string = 'youtube.com/v/';
25
+ }
26
+
27
+ function link_url_from_src($src){
28
+ //Extract video ID from the SRC. The ID is always 11 characters.
29
+ $video_id = substr( end(explode('/', $src)), 0, 11 );
30
+
31
+ //Reconstruct the video permalink based on the ID
32
+ $url = 'http://www.youtube.com/watch?v='.$video_id;
33
+
34
+ return $url;
35
+ }
36
+ }
37
+
38
  ?>
modules/extras/youtube.php CHANGED
@@ -1,17 +1,165 @@
1
- <?php
2
- /*
3
- ModuleID: youtube-checker
4
- ModuleCategory: checker
5
- ModuleContext: on-demand
6
- ModuleLazyInit: true
7
- ModuleClassName: blcYouTubeChecker
8
- ModulePriority: 100
9
- ModuleCheckerUrlPattern: @^http://([\w\d]+\.)*youtube\.[^/]+/watch\?.*v=[^/#]@i
10
- ModuleHidden: false
11
- ModuleAlwaysActive: false
12
- ModuleRequiresPro: true
13
- Version: 1.0
14
- Description: Check links to YouTube videos using the YouTube API.
15
- Plugin Name: YouTube API
16
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  ?>
1
+ <?php
2
+
3
+ /*
4
+ Plugin Name: YouTube API
5
+ Description: Check links to YouTube videos using the YouTube API.
6
+ Version: 1.0
7
+ Author: Janis Elsts
8
+
9
+ ModuleID: youtube-checker
10
+ ModuleCategory: checker
11
+ ModuleContext: on-demand
12
+ ModuleLazyInit: true
13
+ ModuleClassName: blcYouTubeChecker
14
+ ModulePriority: 100
15
+
16
+ ModuleCheckerUrlPattern: @^http://([\w\d]+\.)*youtube\.[^/]+/watch\?.*v=[^/#]@i
17
+ */
18
+
19
+ class blcYouTubeChecker extends blcChecker {
20
+
21
+ function can_check($url, $parsed){
22
+ return true;
23
+ }
24
+
25
+ function check($url){
26
+ $result = array(
27
+ 'final_url' => $url,
28
+ 'redirect_count' => 0,
29
+ 'timeout' => false,
30
+ 'broken' => false,
31
+ 'log' => "<em>(Using YouTube API)</em>\n\n",
32
+ 'result_hash' => '',
33
+ );
34
+
35
+ //Extract the video ID from the URL
36
+ $components = @parse_url($url);
37
+ parse_str($components['query'], $query);
38
+ $video_id = $query['v'];
39
+
40
+ //Fetch video data from the YouTube API
41
+ $api_url = 'http://gdata.youtube.com/feeds/api/videos/' . $video_id;
42
+ $conf = & blc_get_configuration();
43
+ $args = array( 'timeout' => $conf->options['timeout'], );
44
+
45
+ $start = microtime_float();
46
+ $response = wp_remote_get($api_url, $args);
47
+ $result['request_duration'] = microtime_float() - $start;
48
+
49
+ //Placeholders for video restriction data
50
+ $state_name = $state_reason = '';
51
+
52
+ //Got anything?
53
+ if ( is_wp_error($response) ){
54
+ $result['log'] .= "Error.\n" . $response->get_error_message();
55
+ //WP doesn't make it easy to distinguish between different internal errors.
56
+ $result['broken'] = true;
57
+ $result['http_code'] = 0;
58
+ } else {
59
+ $result['http_code'] = intval($response['response']['code']);
60
+
61
+ switch($result['http_code']){
62
+ case 404 : //Not found
63
+ $result['log'] .= __('Video Not Found', 'broken-link-checker');
64
+ $result['broken'] = true;
65
+ $result['http_code'] = 0;
66
+ $result['status_text'] = __('Video Not Found', 'broken-link-checker');
67
+ $result['status_code'] = BLC_LINK_STATUS_ERROR;
68
+ break;
69
+
70
+ case 403 : //Forbidden. Usually means that the video has been removed. Body contains details.
71
+ $result['log'] .= $response['body'];
72
+ $result['broken'] = true;
73
+ $result['http_code'] = 0;
74
+ $result['status_text'] = __('Video Removed', 'broken-link-checker');
75
+ $result['status_code'] = BLC_LINK_STATUS_ERROR;
76
+ break;
77
+
78
+ case 400 : //Bad request. Usually means that the video ID is incorrect. Body contains details.
79
+ $result['log'] .= $response['body'];
80
+ $result['broken'] = true;
81
+ $result['http_code'] = 0;
82
+ $result['status_text'] = __('Invalid Video ID', 'broken-link-checker');
83
+ $result['status_code'] = BLC_LINK_STATUS_WARNING;
84
+ break;
85
+
86
+ case 200 : //Video exists, but may be restricted. Check for <yt:state> tags.
87
+ //See http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_yt:state
88
+
89
+ //Can we count on an XML parser being installed? No, probably not.
90
+ //Back to our makeshift tag "parser" we go.
91
+ $state = blcUtility::extract_tags($response['body'], 'yt:state', false);
92
+ if ( empty($state) ){
93
+ //Phew, no restrictions.
94
+ $result['log'] .= __("Video OK", 'broken-link-checker');
95
+ $result['status_text'] = __('OK', 'link status', 'broken-link-checker');
96
+ $result['status_code'] = BLC_LINK_STATUS_OK;
97
+ $result['http_code'] = 0;
98
+ } else {
99
+
100
+ //Get the state name and code and append them to the log
101
+ $state = reset($state);
102
+ $state_name = $state['attributes']['name'];
103
+ $state_reason = isset($state['attributes']['reasonCode'])?$state['attributes']['reasonCode']:'';
104
+
105
+ $result['result_hash'] = 'youtube_api|' . $state_name . '|' . $state_reason;
106
+
107
+ $result['log'] .= sprintf(
108
+ __('Video status : %s%s', 'broken-link-checker'),
109
+ $state_name,
110
+ $state_reason ? ' ['.$state_reason.']':''
111
+ );
112
+
113
+ //A couple of restricted states are not that bad
114
+ $state_ok = ($state_name == 'processing') || //Video still processing; temporary.
115
+ (
116
+ $state_name == 'restricted' &&
117
+ $state_reason == 'limitedSyndication' //Only available in browser
118
+ );
119
+
120
+ if ( $state_ok ) {
121
+ $result['broken'] = false;
122
+ $result['status_text'] = __('OK', 'link status', 'broken-link-checker');
123
+ $result['status_code'] = BLC_LINK_STATUS_OK;
124
+ $result['http_code'] = 0;
125
+ } else {
126
+ $result['broken'] = true;
127
+ $result['status_text'] = __('Video Restricted', 'broken-link-checker');
128
+ $result['status_code'] = BLC_LINK_STATUS_WARNING;
129
+ $result['http_code'] = 0;
130
+ }
131
+ }
132
+
133
+ //Add the video title to the log, purely for information.
134
+ //http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_media:title
135
+ $title = blcUtility::extract_tags($response['body'], 'media:title', false);
136
+ if ( !empty($title) ){
137
+ $result['log'] .= "\n\nTitle : \"" . $title[0]['contents'] . '"';
138
+ }
139
+
140
+ break;
141
+
142
+ default:
143
+ $result['log'] .= $result['http_code'] . $response['response']['message'];
144
+ $result['log'] .= "\n" . __('Unknown YouTube API response received.');
145
+ break;
146
+ }
147
+ }
148
+
149
+ //The hash should contain info about all pieces of data that pertain to determining if the
150
+ //link is working.
151
+ $result['result_hash'] = implode('|', array(
152
+ 'youtube',
153
+ $result['http_code'],
154
+ $result['broken']?'broken':'0',
155
+ $result['timeout']?'timeout':'0',
156
+ $state_name,
157
+ $state_reason
158
+ ));
159
+
160
+ return $result;
161
+ }
162
+
163
+ }
164
+
165
  ?>
modules/parsers/image.php CHANGED
@@ -157,7 +157,7 @@ class blcHTMLImage extends blcParser {
157
 
158
  $image = sprintf(
159
  '<img src="%s" class="blc-small-image" alt="%2$s" title="%2$s"> ',
160
- esc_attr(plugins_url('/images/image.png', blc_get_plugin_file())),
161
  esc_attr($text)
162
  );
163
 
157
 
158
  $image = sprintf(
159
  '<img src="%s" class="blc-small-image" alt="%2$s" title="%2$s"> ',
160
+ esc_attr(plugins_url('/images/image.png', BLC_PLUGIN_FILE)),
161
  esc_attr($text)
162
  );
163
 
modules/parsers/metadata.php CHANGED
@@ -113,7 +113,7 @@ class blcMetadataParser extends blcParser {
113
  function ui_get_link_text(&$instance, $context = 'display'){
114
  $image_html = sprintf(
115
  '<img src="%s" class="blc-small-image" title="%2$s" alt="%2$s"> ',
116
- esc_attr( plugins_url('/images/script_code.png', blc_get_plugin_file()) ),
117
  __('Custom field', 'broken-link-checker')
118
  );
119
 
113
  function ui_get_link_text(&$instance, $context = 'display'){
114
  $image_html = sprintf(
115
  '<img src="%s" class="blc-small-image" title="%2$s" alt="%2$s"> ',
116
+ esc_attr( plugins_url('/images/script_code.png', BLC_PLUGIN_FILE) ),
117
  __('Custom field', 'broken-link-checker')
118
  );
119
 
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: whiteshadow
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A6P9S6CE3SRSW
4
  Tags: links, broken, maintenance, blogroll, custom fields, admin, comments, posts
5
  Requires at least: 3.0
6
- Tested up to: 3.1-alpha
7
- Stable tag: 0.9.7.2
8
 
9
  This plugin will check your posts, comments and other content for broken links and missing images, and notify you if any are found.
10
 
@@ -54,6 +54,7 @@ You can also click on the contents of the "Status" or "Link Text" columns to get
54
  * Japanese - [ningendesu](http://ningendesu.com/)
55
  * Polish - [http://positionmaker.pl](http://positionmaker.pl/)
56
  * Portuguese - [PedroDM](http://development.mowster.net/)
 
57
  * Russian - [Anna Ozeritskaya](http://hweia.ru/)
58
  * Spanish - [Neoshinji](http://blog.tuayudainformatica.com/traducciones-de-plugins-wordpress/)
59
  * Ukrainian - [Stas Mykhajlyuk](http://www.kosivart.com/)
@@ -83,6 +84,23 @@ To upgrade your installation
83
 
84
  == Changelog ==
85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  = 0.9.7.2 =
87
  * Added Polish translation.
88
  * Updated Danish translation.
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A6P9S6CE3SRSW
4
  Tags: links, broken, maintenance, blogroll, custom fields, admin, comments, posts
5
  Requires at least: 3.0
6
+ Tested up to: 3.1
7
+ Stable tag: 1.2.2
8
 
9
  This plugin will check your posts, comments and other content for broken links and missing images, and notify you if any are found.
10
 
54
  * Japanese - [ningendesu](http://ningendesu.com/)
55
  * Polish - [http://positionmaker.pl](http://positionmaker.pl/)
56
  * Portuguese - [PedroDM](http://development.mowster.net/)
57
+ * Romanian - [Emmanuelle Traduction](http://www.translatonline.com/)
58
  * Russian - [Anna Ozeritskaya](http://hweia.ru/)
59
  * Spanish - [Neoshinji](http://blog.tuayudainformatica.com/traducciones-de-plugins-wordpress/)
60
  * Ukrainian - [Stas Mykhajlyuk](http://www.kosivart.com/)
84
 
85
  == Changelog ==
86
 
87
+ = 1.2.2 =
88
+ * All Pro features now included in the free version!
89
+ * Updated Japanese translation.
90
+ * Updated Polish translation.
91
+ * Updated Portuguese translation.
92
+ * Added Romanian translation.
93
+ * Fixed a tab layout bug in IE 7.
94
+ * Fixed UTF-8 characters outside the domain name being encoded incorrectly (may only work with Curl).
95
+ * Fixed a missing translation in email notifications.
96
+ * Fixed a rare "only variables can be returned by reference" notice.
97
+ * Added a donation button and a MaxCDN ad to the Settings page.
98
+ * Added a "Go to Settings" button to the Broken Links page, and a "Go to Broken Links" button to the Settings page.
99
+ * Settings page now looks better on small screens.
100
+ * Email notifications are now enabled by default.
101
+ * "Link status" in the search form no longer defaults to the currently displayed filter/view.
102
+ * Made the "installation failed" message a bit more helpful.
103
+
104
  = 0.9.7.2 =
105
  * Added Polish translation.
106
  * Updated Danish translation.