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 | 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 +9 -11
- core/core.php +84 -88
- core/init.php +7 -7
- css/options-page.css +54 -2
- css/screen-meta-links.css +0 -49
- idn/LICENCE +502 -0
- idn/ReadMe.txt +150 -0
- idn/idna_convert.class.php +2707 -0
- idn/transcode_wrapper.php +137 -0
- idn/uctc.php +298 -0
- images/maxcdn.gif +0 -0
- includes/activation.php +5 -1
- includes/admin/search-form.php +2 -2
- includes/admin/sidebar.php +41 -0
- includes/admin/table-printer.php +1 -6
- includes/any-post.php +0 -1
- includes/config-manager.php +3 -4
- includes/containers.php +2 -1
- includes/module-manager.php +5 -9
- includes/screen-meta-links.php +241 -0
- includes/utility-class.php +11 -5
- languages/broken-link-checker-ja.mo +0 -0
- languages/broken-link-checker-ja.po +1091 -651
- languages/broken-link-checker-pt_PT.mo +0 -0
- languages/broken-link-checker-pt_PT.po +340 -305
- languages/broken-link-checker-ro_RO.mo +0 -0
- languages/broken-link-checker-ro_RO.po +1572 -0
- languages/broken-link-checker.pot +629 -596
- modules/extras/dailymotion-embed.php +38 -16
- modules/extras/embed-parser-base.php +147 -0
- modules/extras/mediafire.php +160 -16
- modules/extras/megaupload.php +254 -16
- modules/extras/plaintext-url.php +153 -16
- modules/extras/rapidshare.php +217 -16
- modules/extras/vimeo-embed.php +48 -16
- modules/extras/youtube-embed.php +37 -16
- modules/extras/youtube.php +164 -16
- modules/parsers/image.php +1 -1
- modules/parsers/metadata.php +1 -1
- readme.txt +20 -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:
|
7 |
Author: Janis Elsts
|
8 |
Author URI: http://w-shadow.com/blog/
|
9 |
Text Domain: broken-link-checker
|
10 |
*/
|
11 |
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
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/
|
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',
|
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',
|
224 |
}
|
225 |
|
226 |
/**
|
227 |
-
*
|
228 |
*
|
229 |
* @return void
|
230 |
*/
|
231 |
-
function
|
232 |
?>
|
233 |
<script type="text/javascript">
|
234 |
-
|
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 |
-
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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(
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
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',
|
1170 |
-
wp_enqueue_style('
|
1171 |
}
|
1172 |
|
1173 |
|
@@ -1287,10 +1313,8 @@ class wsBrokenLinkChecker {
|
|
1287 |
printf( __('Database error : %s', 'broken-link-checker'), $wpdb->last_error);
|
1288 |
}
|
1289 |
|
1290 |
-
//Add
|
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(
|
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(
|
2669 |
-
return
|
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(
|
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:", '
|
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' =>
|
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(
|
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(
|
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
|
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 =
|
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 |
-
"
|
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
|
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 |
-
|
|
|
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
|
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
|
262 |
}
|
263 |
} else {
|
264 |
-
return
|
265 |
}
|
266 |
}
|
267 |
|
268 |
if ( !empty($category) ){
|
269 |
$data = $this->get_module_data($module_id);
|
270 |
if ( $data['ModuleCategory'] != $category ){
|
271 |
-
return
|
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 (
|
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 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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-
|
11 |
-
"PO-Revision-Date: 2010-
|
12 |
-
"Last-Translator:
|
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 |
-
#:
|
22 |
-
|
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:
|
31 |
-
#:
|
32 |
msgid "[ Network error ]"
|
33 |
msgstr "[ネットワークエラー]"
|
34 |
|
35 |
-
#: core.php:
|
36 |
msgid "Automatically expand the widget if broken links have been detected"
|
37 |
msgstr "リンクエラーが検出された場合に、ウィジェットを自動的に展開する"
|
38 |
|
39 |
-
#: core.php:
|
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 "
|
60 |
|
61 |
-
#: core.php:
|
62 |
msgid "Link Checker"
|
63 |
-
msgstr "Link Checker"
|
64 |
-
|
65 |
-
#: core.php:480
|
66 |
-
msgid "View Broken Links"
|
67 |
-
msgstr "リンクエラーを見る"
|
68 |
|
69 |
-
#: core.php:
|
70 |
-
#: includes/
|
71 |
msgid "Broken Links"
|
72 |
msgstr "リンクエラーをチェック"
|
73 |
|
74 |
-
#: core.php:
|
75 |
-
|
76 |
-
|
77 |
-
msgstr "最小 %s 日のリンクエラーをハイライト表示する"
|
78 |
|
79 |
-
#: core.php:
|
80 |
msgid "Settings"
|
81 |
msgstr "設定"
|
82 |
|
83 |
-
#: core.php:
|
84 |
-
#: core.php:
|
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:
|
90 |
msgid "Settings saved."
|
91 |
msgstr "設定を保存"
|
92 |
|
93 |
-
#: core.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
msgid "Broken Link Checker Options"
|
95 |
msgstr "Broken Link Checkerのオプション"
|
96 |
|
97 |
-
#: core.php:
|
|
|
98 |
msgid "Status"
|
99 |
msgstr "ステータス"
|
100 |
|
101 |
-
#: core.php:
|
102 |
-
#:
|
103 |
msgid "Show debug info"
|
104 |
msgstr "デバッグ情報を表示"
|
105 |
|
106 |
-
#: core.php:
|
107 |
-
msgid "Re-check all pages"
|
108 |
-
msgstr "すべてのページを再確認"
|
109 |
-
|
110 |
-
#: core.php:733
|
111 |
msgid "Check each link"
|
112 |
msgstr "各リンクをチェック"
|
113 |
|
114 |
-
#: core.php:
|
115 |
#, php-format
|
116 |
msgid "Every %s hours"
|
117 |
msgstr "%s 時間ごと"
|
118 |
|
119 |
-
#: core.php:
|
120 |
msgid "Existing links will be checked this often. New links will usually be checked ASAP."
|
121 |
-
msgstr "
|
122 |
|
123 |
-
#: core.php:
|
124 |
-
msgid "
|
125 |
-
msgstr "
|
126 |
|
127 |
-
#: core.php:
|
128 |
-
msgid "
|
129 |
-
msgstr "
|
130 |
|
131 |
-
#: core.php:
|
132 |
-
msgid "
|
133 |
-
msgstr "
|
134 |
|
135 |
-
#: core.php:
|
136 |
-
msgid "Apply
|
137 |
-
msgstr "
|
138 |
|
139 |
-
#: core.php:
|
140 |
-
|
141 |
-
|
|
|
142 |
|
143 |
-
#: core.php:
|
144 |
-
msgid "Apply
|
145 |
-
msgstr "
|
146 |
|
147 |
-
#: core.php:
|
148 |
-
msgid "
|
149 |
-
msgstr "
|
150 |
|
151 |
-
#: core.php:
|
152 |
-
msgid "
|
153 |
-
msgstr "
|
154 |
|
155 |
-
#: core.php:
|
156 |
-
msgid "
|
157 |
-
msgstr "
|
158 |
|
159 |
-
#: core.php:
|
160 |
-
msgid "
|
161 |
-
msgstr "
|
162 |
|
163 |
-
#: core.php:
|
164 |
-
msgid "
|
165 |
-
msgstr "
|
166 |
|
167 |
-
#: core.php:
|
168 |
-
msgid "
|
169 |
-
msgstr "
|
170 |
|
171 |
-
#: core.php:
|
172 |
-
msgid "
|
173 |
-
msgstr "
|
|
|
|
|
|
|
|
|
174 |
|
175 |
-
#: core.php:
|
|
|
176 |
msgid "Timeout"
|
177 |
msgstr "タイムアウト"
|
178 |
|
179 |
-
#: core.php:
|
180 |
-
#: core.php:
|
|
|
181 |
#, php-format
|
182 |
msgid "%s seconds"
|
183 |
msgstr "%s 秒"
|
184 |
|
185 |
-
#: core.php:
|
186 |
msgid "Links that take longer than this to load will be marked as broken."
|
187 |
msgstr "これよりも読み込みに時間がかかったリンクはリンクエラーとマークする"
|
188 |
|
189 |
-
#: core.php:
|
190 |
msgid "Link monitor"
|
191 |
msgstr "リンクモニター"
|
192 |
|
193 |
-
#: core.php:
|
194 |
msgid "Run continuously while the Dashboard is open"
|
195 |
msgstr "継続的にダッシュボードが開いている間実行する"
|
196 |
|
197 |
-
#: core.php:
|
198 |
msgid "Run hourly in the background"
|
199 |
msgstr "バックグラウンドで1時間ごとに実行する"
|
200 |
|
201 |
-
#: core.php:
|
202 |
msgid "Max. execution time"
|
203 |
msgstr "最大実行時間"
|
204 |
|
205 |
-
#: core.php:
|
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 "
|
208 |
|
209 |
-
#: core.php:
|
210 |
msgid "Custom temporary directory"
|
211 |
msgstr "一時ディレクトリ"
|
212 |
|
213 |
-
#: core.php:
|
214 |
msgid "OK"
|
215 |
msgstr "OK"
|
216 |
|
217 |
-
#: core.php:
|
218 |
msgid "Error : This directory isn't writable by PHP."
|
219 |
msgstr "エラー : PHP が書き込み可能ではありません。"
|
220 |
|
221 |
-
#: core.php:
|
222 |
msgid "Error : This directory doesn't exist."
|
223 |
msgstr "エラー : このディレクトリーが存在しません。"
|
224 |
|
225 |
-
#: core.php:
|
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:
|
230 |
msgid "Server load limit"
|
231 |
msgstr "サーバーの負担の制限"
|
232 |
|
233 |
-
#: core.php:
|
|
|
|
|
|
|
|
|
|
|
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 "
|
237 |
|
238 |
-
#: core.php:
|
|
|
|
|
|
|
|
|
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:
|
243 |
-
msgid "
|
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:
|
266 |
-
msgid "
|
267 |
-
msgstr "
|
268 |
|
269 |
-
#: core.php:
|
270 |
-
|
271 |
-
|
272 |
-
msgid "Unlink"
|
273 |
-
msgstr "リンク解除"
|
274 |
|
275 |
-
#: core.php:
|
276 |
-
msgid "
|
277 |
-
msgstr "
|
278 |
|
279 |
-
#: core.php:
|
280 |
-
|
281 |
-
|
282 |
-
msgstr "適用"
|
283 |
|
284 |
-
#: core.php:
|
285 |
-
msgid "
|
286 |
-
msgstr "
|
287 |
|
288 |
-
#: core.php:
|
289 |
-
msgid "
|
290 |
-
msgstr "
|
291 |
|
292 |
-
#: core.php:
|
293 |
-
#: core.php:
|
|
|
294 |
#, php-format
|
295 |
-
msgid "
|
296 |
-
msgstr "
|
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:
|
357 |
msgid "You must enter a filter name!"
|
358 |
msgstr "フィルター名を入力する必要があります!"
|
359 |
|
360 |
-
#: core.php:
|
361 |
msgid "Invalid search query."
|
362 |
msgstr "無効な検索クエリ"
|
363 |
|
364 |
-
#: core.php:
|
365 |
#, php-format
|
366 |
msgid "Filter \"%s\" created"
|
367 |
msgstr "フィルター %s を作成しました。"
|
368 |
|
369 |
-
#: core.php:
|
370 |
msgid "Filter ID not specified."
|
371 |
msgstr "フィルタが指定されないIDです。"
|
372 |
|
373 |
-
#: core.php:
|
374 |
msgid "Filter deleted"
|
375 |
msgstr "フィルタを削除"
|
376 |
|
377 |
-
#: core.php:
|
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:
|
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:
|
392 |
msgid "None of the selected links are redirects!"
|
393 |
msgstr "選択したリンクはリダイレクトではありません。"
|
394 |
|
395 |
-
#: core.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
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:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
410 |
msgid "Didn't find anything to delete!"
|
411 |
msgstr "削除するには何も見つかりませんでした!"
|
412 |
|
413 |
-
#: core.php:
|
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:
|
429 |
-
|
430 |
-
|
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:
|
442 |
#, php-format
|
443 |
-
msgid "%
|
444 |
-
msgstr "%
|
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:
|
459 |
#, php-format
|
460 |
-
msgid "
|
461 |
-
msgid_plural "
|
462 |
-
msgstr[0] "
|
463 |
-
msgstr[1] "
|
464 |
|
465 |
-
#: core.php:
|
466 |
-
|
467 |
-
|
468 |
-
msgstr " %s の間リンクエラー状態です。"
|
469 |
|
470 |
-
#: core.php:
|
471 |
-
msgid "
|
472 |
-
msgstr "
|
473 |
|
474 |
-
#: core.php:
|
475 |
-
msgid "
|
476 |
-
msgstr "
|
477 |
|
478 |
-
#: core.php:
|
479 |
-
|
480 |
-
msgid "
|
481 |
-
|
482 |
-
msgstr[0] "%d 分"
|
483 |
-
msgstr[1] "%d 分"
|
484 |
|
485 |
-
#: core.php:
|
486 |
-
|
487 |
-
|
488 |
-
msgid "%d hour"
|
489 |
-
msgid_plural "%d hours"
|
490 |
-
msgstr[0] "%d 時間"
|
491 |
-
msgstr[1] "%d 時間"
|
492 |
|
493 |
-
#: core.php:
|
494 |
-
#: core.php:1919
|
495 |
#, php-format
|
496 |
-
msgid "%
|
497 |
-
|
498 |
-
msgstr[0] "%d 日"
|
499 |
-
msgstr[1] "%d 日"
|
500 |
|
501 |
-
#: core.php:
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
|
|
|
|
|
|
|
|
507 |
|
508 |
-
#: core.php:
|
509 |
msgid "View broken links"
|
510 |
msgstr "リンクエラーを表示"
|
511 |
|
512 |
-
#: core.php:
|
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:
|
520 |
msgid "No broken links found."
|
521 |
msgstr "リンクを発見しました。"
|
522 |
|
523 |
-
#: core.php:
|
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:
|
531 |
msgid "No URLs in the work queue."
|
532 |
-
msgstr "
|
533 |
|
534 |
-
#: core.php:
|
535 |
#, php-format
|
536 |
msgid "Detected %d unique URL"
|
537 |
msgid_plural "Detected %d unique URLs"
|
538 |
-
msgstr[0] "%d
|
539 |
-
msgstr[1] "%d
|
540 |
|
541 |
-
#: core.php:
|
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:
|
549 |
msgid "and still searching..."
|
550 |
-
msgstr "
|
551 |
|
552 |
-
#: core.php:
|
553 |
msgid "Searching your blog for links..."
|
554 |
msgstr "あなたのブログへのリンクを検索しています..."
|
555 |
|
556 |
-
#: core.php:
|
557 |
msgid "No links detected."
|
558 |
msgstr "リンクの検出。"
|
559 |
|
560 |
-
#: core.php:
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
msgid "You're not allowed to do that!"
|
565 |
-
msgstr "それを行うことが許可されていません!"
|
566 |
|
567 |
-
#: core.php:
|
568 |
-
#: core.php:
|
569 |
-
#: core.php:
|
570 |
#, php-format
|
571 |
msgid "Oops, I can't find the link %d"
|
572 |
-
msgstr "
|
573 |
-
|
574 |
-
#: core.php:2368
|
575 |
-
msgid "This link was manually marked as working by the user."
|
576 |
-
msgstr "このリンクは手動での作業としてマークされました。"
|
577 |
|
578 |
-
#: core.php:
|
579 |
msgid "Oops, couldn't modify the link!"
|
580 |
msgstr "リンクを変更できませんでした!"
|
581 |
|
582 |
-
#: core.php:
|
583 |
-
#: core.php:
|
584 |
msgid "Error : link_id not specified"
|
585 |
msgstr "エラー: link_id が指定されていません"
|
586 |
|
587 |
-
#: core.php:
|
588 |
msgid "Oops, the new URL is invalid!"
|
589 |
-
msgstr "
|
590 |
|
591 |
-
#: core.php:
|
592 |
-
#: core.php:
|
593 |
msgid "An unexpected error occured!"
|
594 |
msgstr "予期しないエラーが発生しました !"
|
595 |
|
596 |
-
#: core.php:
|
597 |
msgid "Error : link_id or new_url not specified"
|
598 |
msgstr "エラー: link_id または new_url が指定されていません"
|
599 |
|
600 |
-
#: core.php:
|
601 |
msgid "You don't have sufficient privileges to access this information!"
|
602 |
-
msgstr "
|
603 |
|
604 |
-
#: core.php:
|
605 |
msgid "Error : link ID not specified"
|
606 |
msgstr "エラー: リンクIDは指定しませんでした。"
|
607 |
|
608 |
-
#: core.php:
|
609 |
#, php-format
|
610 |
msgid "Failed to load link details (%s)"
|
611 |
msgstr "リンクの詳細 (%s) の読み込みに失敗しました"
|
612 |
|
613 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
619 |
msgid "Broken Link Checker can't create a lockfile."
|
620 |
msgstr "Broken Link Checker ロックファイルを作成できません。"
|
621 |
|
622 |
-
#: core.php:
|
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:
|
627 |
msgid "PHP version"
|
628 |
msgstr "PHPバージョン"
|
629 |
|
630 |
-
#: core.php:
|
631 |
msgid "MySQL version"
|
632 |
msgstr "MySQLバージョン"
|
633 |
|
634 |
-
#: core.php:
|
635 |
msgid "You have an old version of CURL. Redirect detection may not work properly."
|
636 |
msgstr "CURLのバージョンが古いため、リダイレクト検出が正しく動作しないことがあります。"
|
637 |
|
638 |
-
#: core.php:
|
639 |
-
#: core.php:
|
640 |
-
#: core.php:
|
641 |
msgid "Not installed"
|
642 |
msgstr "インストールされていません"
|
643 |
|
644 |
-
#: core.php:
|
645 |
msgid "CURL version"
|
646 |
msgstr "CURLバージョン"
|
647 |
|
648 |
-
#: core.php:
|
649 |
msgid "Installed"
|
650 |
msgstr "インストールされています"
|
651 |
|
652 |
-
#: core.php:
|
653 |
msgid "You must have either CURL or Snoopy installed for the plugin to work!"
|
654 |
msgstr "CURL か Snoopy はプラグイン動作するためにインストールされている必要があります!"
|
655 |
|
656 |
-
#: core.php:
|
657 |
msgid "On"
|
658 |
msgstr "ON"
|
659 |
|
660 |
-
#: core.php:
|
661 |
msgid "Redirects may be detected as broken links when safe_mode is on."
|
662 |
msgstr "セーフモードが有効な場合リダイレクトリンクエラーとして検出されることがあります。"
|
663 |
|
664 |
-
#: core.php:
|
665 |
-
#: core.php:
|
666 |
msgid "Off"
|
667 |
msgstr "OFF"
|
668 |
|
669 |
-
#: core.php:
|
670 |
#, php-format
|
671 |
msgid "On ( %s )"
|
672 |
msgstr "ON ( %s )"
|
673 |
|
674 |
-
#: core.php:
|
675 |
msgid "Redirects may be detected as broken links when open_basedir is on."
|
676 |
msgstr "ここにある場合リダイレクトリンクエラーとして検出されることがあります。"
|
677 |
|
678 |
-
#: core.php:
|
679 |
msgid "Can't create a lockfile. Please specify a custom temporary directory."
|
680 |
msgstr "ロックファイルを作成することはできません。 カスタムの一時ディレクトリを指定してください。"
|
681 |
|
682 |
-
#: core.php:
|
|
|
|
|
|
|
|
|
683 |
#, php-format
|
684 |
msgid "[%s] Broken links detected"
|
685 |
msgstr "[%s] リンクエラーの検出"
|
686 |
|
687 |
-
#: core.php:
|
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
|
692 |
-
msgstr[1] "Broken Link Checker
|
693 |
|
694 |
-
#: core.php:
|
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] "
|
699 |
-
msgstr[1] "
|
700 |
|
701 |
-
#: core.php:
|
702 |
msgid "Here's a list of the new broken links: "
|
703 |
msgstr "リンクエラーの一覧 : "
|
704 |
|
705 |
-
#: core.php:
|
706 |
#, php-format
|
707 |
msgid "Link text : %s"
|
708 |
msgstr "リンク テキスト: %s"
|
709 |
|
710 |
-
#: core.php:
|
711 |
#, php-format
|
712 |
msgid "Link URL : <a href=\"%s\">%s</a>"
|
713 |
msgstr "リンクのURL : <a href=\"%s\">%s</a>"
|
714 |
|
715 |
-
#: core.php:
|
716 |
#, php-format
|
717 |
msgid "Source : %s"
|
718 |
msgstr "ソース : %s"
|
719 |
|
720 |
-
#: core.php:
|
721 |
msgid "You can see all broken links here:"
|
722 |
msgstr "すべてのリンクエラーを見ることができます:"
|
723 |
|
724 |
-
#:
|
725 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
726 |
msgid "Wait..."
|
727 |
msgstr "処理中..."
|
728 |
|
729 |
-
#: includes/admin/links-page-js.php:
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
#: includes/admin/links-page-js.php:120
|
734 |
-
msgid "Saving changes..."
|
735 |
-
msgstr "変更を保存しています..."
|
736 |
|
737 |
-
#: includes/admin/links-page-js.php:
|
738 |
#, php-format
|
739 |
msgid "%d instances of the link were successfully modified."
|
740 |
-
msgstr "%d
|
|
|
|
|
|
|
|
|
|
|
741 |
|
742 |
-
#: includes/admin/links-page-js.php:
|
743 |
msgid "The link could not be modified."
|
744 |
msgstr "リンクを変更できませんでした。"
|
745 |
|
746 |
-
#: includes/admin/links-page-js.php:
|
747 |
-
#: includes/admin/links-page-js.php:
|
748 |
msgid "The following error(s) occured :"
|
749 |
-
msgstr "
|
750 |
|
751 |
-
#: includes/admin/links-page-js.php:
|
752 |
#, php-format
|
753 |
msgid "%d instances of the link were successfully unlinked."
|
754 |
msgstr "リンク%dのインスタンスが正常に解除されました。"
|
755 |
|
756 |
-
#: includes/admin/links-page-js.php:
|
757 |
#, php-format
|
758 |
msgid "However, %d instances couldn't be removed."
|
759 |
-
msgstr "
|
760 |
|
761 |
-
#: includes/admin/links-page-js.php:
|
762 |
msgid "The plugin failed to remove the link."
|
763 |
msgstr "プラグインは、リンクを削除できませんでした。"
|
764 |
|
765 |
-
#: includes/admin/links-page-js.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
766 |
msgid "Enter a name for the new custom filter"
|
767 |
msgstr "新しいカスタムフィルターの名前を入力します。"
|
768 |
|
769 |
-
#: includes/admin/links-page-js.php:
|
770 |
msgid ""
|
771 |
"You are about to delete the current filter.\n"
|
772 |
"'Cancel' to stop, 'OK' to delete"
|
773 |
msgstr ""
|
774 |
-
"
|
775 |
"「OK」で削除、「キャンセル」で中止します。"
|
776 |
|
777 |
-
#: includes/admin/links-page-js.php:
|
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/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
787 |
msgid "Save This Search As a Filter"
|
788 |
msgstr "この検索フィルターとして保存"
|
789 |
|
790 |
-
#: includes/admin/search-form.php:
|
791 |
msgid "Delete This Filter"
|
792 |
msgstr "このフィルターを削除"
|
793 |
|
794 |
-
#: includes/admin/search-form.php:
|
795 |
-
#: includes/
|
796 |
msgid "Search"
|
797 |
msgstr "検索"
|
798 |
|
799 |
-
#: includes/admin/search-form.php:
|
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:
|
|
|
808 |
msgid "Link type"
|
809 |
msgstr "リンクの種類"
|
810 |
|
811 |
-
#: includes/admin/search-form.php:
|
812 |
msgid "Any"
|
813 |
msgstr "任意"
|
814 |
|
815 |
-
#: includes/admin/search-form.php:
|
816 |
-
msgid "
|
817 |
-
msgstr "
|
818 |
|
819 |
-
#: includes/admin/search-form.php:
|
820 |
-
|
821 |
-
|
822 |
-
msgstr "イメージ"
|
823 |
|
824 |
-
#: includes/admin/search-form.php:
|
825 |
-
#: includes/
|
826 |
-
|
827 |
-
|
|
|
|
|
828 |
|
829 |
-
#: includes/admin/
|
830 |
-
|
831 |
-
|
832 |
-
msgstr "ブックマーク"
|
833 |
|
834 |
-
#: includes/admin/
|
835 |
-
|
836 |
-
|
837 |
-
msgstr "コメント"
|
838 |
|
839 |
-
#: includes/admin/
|
840 |
-
msgid "
|
841 |
-
msgstr "
|
842 |
|
843 |
-
#: includes/
|
844 |
-
|
845 |
-
|
846 |
-
msgid "HTTP code : %d"
|
847 |
-
msgstr "HTTP コード : %d"
|
848 |
|
849 |
-
#: includes/
|
850 |
-
|
851 |
-
|
852 |
-
msgstr "(応答なし)"
|
853 |
|
854 |
-
#: includes/
|
855 |
-
|
856 |
-
|
|
|
857 |
|
858 |
-
#: includes/
|
859 |
-
msgid "
|
860 |
-
msgstr "
|
861 |
|
862 |
-
#: includes/
|
863 |
-
msgid "
|
864 |
-
msgstr "
|
865 |
|
866 |
-
#: includes/
|
867 |
-
|
868 |
-
|
869 |
-
msgstr "コンテナの型 '%s' が認識されません。"
|
870 |
|
871 |
-
#: includes/
|
872 |
-
|
873 |
-
|
874 |
-
msgid_plural "%d '%s' have been deleted"
|
875 |
-
msgstr[0] "%d '%s' は削除されています"
|
876 |
-
msgstr[1] "%d '%s' は削除されています"
|
877 |
|
878 |
-
#: includes/
|
879 |
-
|
880 |
-
|
881 |
-
msgstr "このブックマークを編集"
|
882 |
|
883 |
-
#: includes/
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
|
|
889 |
|
890 |
-
#: includes/
|
891 |
#, php-format
|
892 |
-
msgid ""
|
893 |
-
"
|
894 |
-
" 'Cancel' to stop, 'OK' to delete."
|
895 |
-
msgstr ""
|
896 |
-
"このリンク '%s' 削除しようとしています。\n"
|
897 |
-
"「OK」で削除、「キャンセル」で中止します。"
|
898 |
|
899 |
-
#: includes/
|
900 |
-
|
901 |
-
|
902 |
-
msgid "Delete"
|
903 |
-
msgstr "削除"
|
904 |
|
905 |
-
#: includes/
|
906 |
-
|
907 |
-
|
908 |
-
msgid "Nothing to update"
|
909 |
-
msgstr "何も更新してません"
|
910 |
|
911 |
-
#: includes/
|
912 |
-
|
913 |
-
|
914 |
-
msgstr "ブックマーク %d の更新に失敗しました"
|
915 |
|
916 |
-
#: includes/
|
917 |
-
|
918 |
-
|
919 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
920 |
|
921 |
-
#: includes/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
922 |
#, php-format
|
923 |
-
msgid "%
|
924 |
-
|
925 |
-
|
926 |
-
|
|
|
|
|
927 |
|
928 |
-
#: includes/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
929 |
#, php-format
|
930 |
-
msgid "
|
931 |
-
|
|
|
|
|
932 |
|
933 |
-
#: includes/
|
934 |
#, php-format
|
935 |
-
msgid "
|
936 |
-
msgstr "%
|
937 |
|
938 |
-
#: includes/
|
939 |
-
|
940 |
-
|
941 |
-
msgstr "コメントを編集"
|
942 |
|
943 |
-
#: includes/
|
944 |
-
msgid "
|
945 |
-
msgstr "
|
946 |
|
947 |
-
#: includes/
|
948 |
-
|
949 |
-
|
|
|
950 |
|
951 |
-
#: includes/
|
952 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
953 |
msgid "Trash"
|
954 |
msgstr "ゴミ箱"
|
955 |
|
956 |
-
#: includes/
|
957 |
-
|
958 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
959 |
|
960 |
-
#: includes/
|
961 |
-
|
962 |
-
|
|
|
|
|
|
|
|
|
|
|
963 |
msgid "View"
|
964 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
965 |
|
966 |
-
#: includes/
|
|
|
|
|
|
|
|
|
|
|
|
|
967 |
#, php-format
|
968 |
-
msgid "%d
|
969 |
-
|
970 |
-
msgstr[0] "%dコメントをゴミ箱に移動"
|
971 |
-
msgstr[1] "%dコメントをゴミ箱に移動"
|
972 |
|
973 |
-
#: includes/
|
|
|
974 |
#, php-format
|
975 |
-
msgid "
|
976 |
-
|
977 |
-
msgstr[0] "%d個のコメントが削除されました"
|
978 |
-
msgstr[1] "%d個のコメントが削除されました"
|
979 |
|
980 |
-
#: includes/
|
981 |
-
#:
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
msgstr "この記事を編集"
|
986 |
|
987 |
-
#: includes/
|
988 |
-
#:
|
989 |
-
|
990 |
-
|
|
|
991 |
|
992 |
-
#: includes/
|
993 |
-
|
994 |
-
msgid "
|
995 |
-
|
|
|
|
|
996 |
|
997 |
-
#: includes/
|
998 |
-
#: includes/containers/post.php:21
|
999 |
#, php-format
|
1000 |
-
msgid ""
|
1001 |
-
"
|
1002 |
-
|
1003 |
-
msgstr ""
|
1004 |
-
"あなたはこのポスト'%s' \n"
|
1005 |
-
"を削除しようとしています。"
|
1006 |
|
1007 |
-
#: includes/
|
1008 |
-
#: includes/containers/post.php:24
|
1009 |
#, php-format
|
1010 |
-
msgid "
|
1011 |
-
|
|
|
|
|
1012 |
|
1013 |
-
#: includes/
|
1014 |
-
#: includes/containers/post.php:127
|
1015 |
#, php-format
|
1016 |
-
msgid "
|
1017 |
-
|
|
|
|
|
1018 |
|
1019 |
-
#: includes/
|
1020 |
-
#: includes/containers/post.php:300
|
1021 |
#, php-format
|
1022 |
-
msgid "%d
|
1023 |
-
msgid_plural "%d
|
1024 |
-
msgstr[0] "%d
|
1025 |
-
msgstr[1] "%d
|
1026 |
|
1027 |
-
#: includes/
|
1028 |
-
#: includes/containers/post.php:302
|
1029 |
#, php-format
|
1030 |
-
msgid "%d
|
1031 |
-
msgid_plural "%d
|
1032 |
-
msgstr[0] "%d
|
1033 |
-
msgstr[1] "%d
|
1034 |
|
1035 |
-
#: includes/containers
|
1036 |
-
#: includes/containers/dummy.php:32
|
1037 |
#, php-format
|
1038 |
-
msgid "
|
1039 |
-
|
|
|
|
|
1040 |
|
1041 |
-
#: includes/containers
|
|
|
1042 |
#, php-format
|
1043 |
-
msgid "
|
1044 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1045 |
|
1046 |
#: includes/instances.php:102
|
1047 |
-
#: includes/instances.php:
|
1048 |
#, php-format
|
1049 |
msgid "Container %s[%d] not found"
|
1050 |
msgstr "%s[%d] コンテナーが見つかりません。"
|
1051 |
|
1052 |
#: includes/instances.php:111
|
1053 |
-
#: includes/instances.php:
|
1054 |
#, php-format
|
1055 |
msgid "Parser '%s' not found."
|
1056 |
msgstr "パーサー '%s' が見つかりません。"
|
1057 |
|
1058 |
-
#: includes/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1059 |
msgid "The plugin script was terminated while trying to check the link."
|
1060 |
-
msgstr "
|
1061 |
|
1062 |
-
#: includes/links.php:
|
1063 |
msgid "The plugin doesn't know how to check this type of link."
|
1064 |
msgstr "未知のリンクの種類です。"
|
1065 |
|
1066 |
-
#: includes/links.php:
|
1067 |
msgid "Link is valid."
|
1068 |
msgstr "リンクは有効です。"
|
1069 |
|
1070 |
-
#: includes/links.php:
|
1071 |
msgid "Link is broken."
|
1072 |
msgstr "リンクエラーです。"
|
1073 |
|
1074 |
-
#: includes/links.php:
|
1075 |
-
#: includes/links.php:
|
1076 |
-
#: includes/links.php:
|
1077 |
msgid "Link is not valid"
|
1078 |
-
msgstr "
|
1079 |
|
1080 |
-
#: includes/links.php:
|
1081 |
msgid "This link can not be edited because it is not used anywhere on this site."
|
1082 |
msgstr "それはこのサイトで使用されていないためこのリンクを編集することはできません。"
|
1083 |
|
1084 |
-
#: includes/links.php:
|
1085 |
msgid "Failed to create a DB entry for the new URL."
|
1086 |
-
msgstr "新しい
|
1087 |
|
1088 |
-
#: includes/links.php:
|
1089 |
msgid "This link is not a redirect"
|
1090 |
-
msgstr "
|
1091 |
|
1092 |
-
#: includes/links.php:
|
1093 |
-
#: includes/links.php:
|
1094 |
msgid "Couldn't delete the link's database record"
|
1095 |
-
msgstr "
|
1096 |
|
1097 |
-
#: includes/links.php:
|
1098 |
-
|
1099 |
-
|
|
|
1100 |
|
1101 |
-
#: includes/links.php:
|
1102 |
-
|
1103 |
-
|
|
|
1104 |
|
1105 |
-
#: includes/links.php:
|
1106 |
-
msgid "
|
1107 |
-
msgstr "
|
1108 |
|
1109 |
-
#: includes/links.php:
|
1110 |
-
msgid "
|
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:
|
1130 |
-
|
1131 |
-
|
|
|
1132 |
|
1133 |
-
#: includes/
|
1134 |
-
#: includes/
|
1135 |
-
|
1136 |
-
|
|
|
1137 |
|
1138 |
-
#: includes/parsers.php:
|
1139 |
#, php-format
|
1140 |
msgid "Editing is not implemented in the '%s' parser"
|
1141 |
msgstr "編集は、'%s'パーサーでは実装されていません"
|
1142 |
|
1143 |
-
#: includes/parsers.php:
|
1144 |
#, php-format
|
1145 |
msgid "Unlinking is not implemented in the '%s' parser"
|
1146 |
msgstr "'%s'パーサーではリンク解除は実装されていません"
|
1147 |
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 "«"
|
866 |
+
msgstr "«"
|
867 |
+
|
868 |
+
#: includes/admin/table-printer.php:263
|
869 |
+
msgid "»"
|
870 |
+
msgstr "»"
|
871 |
|
872 |
+
#: includes/admin/table-printer.php:271
|
873 |
#, php-format
|
874 |
+
msgid "Displaying %s–%s of <span class=\"current-link-count\">%s</span>"
|
875 |
+
msgstr "表示 %s–%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 “%s”"
|
1018 |
+
msgstr "プレビュー “%s”"
|
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 “%s”"
|
1027 |
+
msgstr "見る “%s”"
|
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 "新しいURLのDBエントリの作成に失敗しました。"
|
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
|
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
|
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-
|
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:
|
40 |
msgid "Link Checker Settings"
|
41 |
msgstr "Definições do Links offline"
|
42 |
|
43 |
-
#: core/core.php:
|
44 |
msgid "Link Checker"
|
45 |
msgstr "Links offline"
|
46 |
|
47 |
-
#: core/core.php:
|
48 |
-
#: includes/link-query.php:26
|
49 |
msgid "Broken Links"
|
50 |
msgstr "Links offline"
|
51 |
|
52 |
-
#: core/core.php:
|
53 |
msgid "View Broken Links"
|
54 |
msgstr "Ver Links offline"
|
55 |
|
56 |
-
#: core/core.php:
|
57 |
msgid "Settings"
|
58 |
msgstr "Definições"
|
59 |
|
60 |
-
#: core/core.php:
|
61 |
-
#: core/core.php:
|
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:
|
67 |
msgid "Settings saved."
|
68 |
msgstr "Definições guardadas."
|
69 |
|
70 |
-
#: core/core.php:
|
71 |
msgid "Complete site recheck started."
|
72 |
msgstr "Re-verificação completa do sitío iniciada."
|
73 |
|
74 |
-
#: core/core.php:
|
75 |
-
#: core/core.php:
|
76 |
msgid "Details"
|
77 |
msgstr "Detalhes"
|
78 |
|
79 |
-
#: core/core.php:
|
80 |
msgid "General"
|
81 |
msgstr "Geral"
|
82 |
|
83 |
-
#: core/core.php:
|
84 |
msgid "Look For Links In"
|
85 |
msgstr "Procurar links"
|
86 |
|
87 |
-
#: core/core.php:
|
88 |
msgid "Which Links To Check"
|
89 |
msgstr "Links para verificar"
|
90 |
|
91 |
-
#: core/core.php:
|
92 |
msgid "Protocols & APIs"
|
93 |
msgstr "Protocolos & APIs"
|
94 |
|
95 |
-
#: core/core.php:
|
96 |
msgid "Advanced"
|
97 |
msgstr "Avançado"
|
98 |
|
99 |
-
#: core/core.php:
|
100 |
msgid "Broken Link Checker Options"
|
101 |
msgstr "Opções : Links offline"
|
102 |
|
103 |
-
#: core/core.php:
|
104 |
msgid "Status"
|
105 |
msgstr "Estado"
|
106 |
|
107 |
-
#: core/core.php:
|
108 |
msgid "Show debug info"
|
109 |
msgstr "Mostrar sistema"
|
110 |
|
111 |
-
#: core/core.php:
|
112 |
msgid "Check each link"
|
113 |
msgstr "Verificar cada link"
|
114 |
|
115 |
-
#: core/core.php:
|
116 |
#, php-format
|
117 |
msgid "Every %s hours"
|
118 |
msgstr "Cada %s horas"
|
119 |
|
120 |
-
#: core/core.php:
|
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:
|
125 |
msgid "E-mail notifications"
|
126 |
msgstr "Notificações por e-mail"
|
127 |
|
128 |
-
#: core/core.php:
|
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:
|
133 |
msgid "Link tweaks"
|
134 |
msgstr "Links puxados"
|
135 |
|
136 |
-
#: core/core.php:
|
137 |
msgid "Apply custom formatting to broken links"
|
138 |
msgstr "Aplicar formatação personalizada para os links offline"
|
139 |
|
140 |
-
#: core/core.php:
|
141 |
-
#: core/core.php:
|
142 |
msgid "Edit CSS"
|
143 |
msgstr "Editar CSS"
|
144 |
|
145 |
-
#: core/core.php:
|
146 |
msgid "Apply custom formatting to removed links"
|
147 |
msgstr "Aplicar formatação personalizada para os links removidos"
|
148 |
|
149 |
-
#: core/core.php:
|
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:
|
154 |
msgid "Look for links in"
|
155 |
msgstr "Procurar links em"
|
156 |
|
157 |
-
#: core/core.php:
|
158 |
msgid "Post statuses"
|
159 |
msgstr "Estado do Post"
|
160 |
|
161 |
-
#: core/core.php:
|
162 |
msgid "Link types"
|
163 |
msgstr "Tipos de link"
|
164 |
|
165 |
-
#: core/core.php:
|
166 |
msgid "Error : All link parsers missing!"
|
167 |
msgstr "Erro: Análises aos links não encontradas!"
|
168 |
|
169 |
-
#: core/core.php:
|
170 |
msgid "Exclusion list"
|
171 |
msgstr "Lista de exclusão"
|
172 |
|
173 |
-
#: core/core.php:
|
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:
|
178 |
msgid "Check links using"
|
179 |
msgstr "Verificar links utilizados"
|
180 |
|
181 |
-
#: core/core.php:
|
182 |
-
#: includes/links.php:855
|
183 |
msgid "Timeout"
|
184 |
msgstr "Intervalo"
|
185 |
|
186 |
-
#: core/core.php:
|
187 |
-
#: core/core.php:
|
188 |
-
#: core/core.php:
|
189 |
#, php-format
|
190 |
msgid "%s seconds"
|
191 |
msgstr "%s segundos"
|
192 |
|
193 |
-
#: core/core.php:
|
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:
|
198 |
msgid "Link monitor"
|
199 |
msgstr "Monitor de links"
|
200 |
|
201 |
-
#: core/core.php:
|
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:
|
206 |
msgid "Run hourly in the background"
|
207 |
msgstr "Executar a cada hora em segundo plano"
|
208 |
|
209 |
-
#: core/core.php:
|
210 |
msgid "Max. execution time"
|
211 |
msgstr "Tempo máximo de execução"
|
212 |
|
213 |
-
#: core/core.php:
|
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:
|
218 |
msgid "Custom temporary directory"
|
219 |
msgstr "Pasta temporária personalizada"
|
220 |
|
221 |
-
#: core/core.php:
|
222 |
-
#: includes/links.php:881
|
223 |
msgid "OK"
|
224 |
msgstr "Aceitar"
|
225 |
|
226 |
-
#: core/core.php:
|
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:
|
231 |
msgid "Error : This directory doesn't exist."
|
232 |
msgstr "Erro: Não existe esse directório."
|
233 |
|
234 |
-
#: core/core.php:
|
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:
|
239 |
msgid "Server load limit"
|
240 |
msgstr "Limite de carregamento do servidor"
|
241 |
|
242 |
-
#: core/core.php:
|
|
|
|
|
|
|
|
|
|
|
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:
|
248 |
msgid "Not available"
|
249 |
msgstr "Não disponível"
|
250 |
|
251 |
-
#: core/core.php:
|
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:
|
256 |
msgid "Forced recheck"
|
257 |
msgstr "Re-verificação forçada"
|
258 |
|
259 |
-
#: core/core.php:
|
260 |
msgid "Re-check all pages"
|
261 |
msgstr "Verificar de novo todas as páginas"
|
262 |
|
263 |
-
#: core/core.php:
|
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:
|
268 |
msgid "Save Changes"
|
269 |
msgstr "Guardar alterações"
|
270 |
|
271 |
-
#: core/core.php:
|
272 |
msgid "Configure"
|
273 |
msgstr "Configurar"
|
274 |
|
275 |
-
#: core/core.php:
|
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:
|
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:
|
284 |
-
#: core/core.php:
|
285 |
-
#: core/core.php:
|
286 |
#, php-format
|
287 |
msgid "Database error : %s"
|
288 |
msgstr "Erro na Base de dados: %s"
|
289 |
|
290 |
-
#: core/core.php:
|
291 |
msgid "You must enter a filter name!"
|
292 |
msgstr "Deve introduzir um nome para o filtro!"
|
293 |
|
294 |
-
#: core/core.php:
|
295 |
msgid "Invalid search query."
|
296 |
msgstr "Procura inválida."
|
297 |
|
298 |
-
#: core/core.php:
|
299 |
#, php-format
|
300 |
msgid "Filter \"%s\" created"
|
301 |
msgstr "Filtro \"%s\" criado"
|
302 |
|
303 |
-
#: core/core.php:
|
304 |
msgid "Filter ID not specified."
|
305 |
msgstr "ID do Filtro não especificado."
|
306 |
|
307 |
-
#: core/core.php:
|
308 |
msgid "Filter deleted"
|
309 |
msgstr "Filtro eliminado"
|
310 |
|
311 |
-
#: core/core.php:
|
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:
|
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:
|
326 |
msgid "None of the selected links are redirects!"
|
327 |
msgstr "Nenhum dos links seleccionados são redirects!"
|
328 |
|
329 |
-
#: core/core.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
|
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:
|
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:
|
351 |
msgid "Didn't find anything to delete!"
|
352 |
msgstr "Não foi encontrado nada para apagar!"
|
353 |
|
354 |
-
#: core/core.php:
|
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:
|
362 |
-
#: core/core.php:
|
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:
|
367 |
#, php-format
|
368 |
msgid "Couldn't modify link %d"
|
369 |
msgstr "Oops, impossível modificar o link %d"
|
370 |
|
371 |
-
#: core/core.php:
|
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:
|
379 |
msgid "Table columns"
|
380 |
msgstr "Colunas da Tabela"
|
381 |
|
382 |
-
#: core/core.php:
|
383 |
msgid "Show on screen"
|
384 |
msgstr "Mostrar no ecrán"
|
385 |
|
386 |
-
#: core/core.php:
|
387 |
msgid "links"
|
388 |
msgstr "links"
|
389 |
|
390 |
-
#: core/core.php:
|
391 |
msgid "Apply"
|
392 |
msgstr "Aplicar"
|
393 |
|
394 |
-
#: core/core.php:
|
395 |
msgid "Misc"
|
396 |
msgstr "Vários"
|
397 |
|
398 |
-
#: core/core.php:
|
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:
|
404 |
msgid "Color-code status codes"
|
405 |
msgstr "Cor-código status códigos"
|
406 |
|
407 |
-
#: core/core.php:
|
408 |
-
#: core/core.php:
|
409 |
-
#: core/core.php:
|
410 |
-
#: core/core.php:
|
411 |
msgid "You're not allowed to do that!"
|
412 |
msgstr "Não permitido!"
|
413 |
|
414 |
-
#: core/core.php:
|
415 |
msgid "View broken links"
|
416 |
msgstr "Ver links offline"
|
417 |
|
418 |
-
#: core/core.php:
|
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:
|
426 |
msgid "No broken links found."
|
427 |
msgstr "Não existem links offline."
|
428 |
|
429 |
-
#: core/core.php:
|
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:
|
437 |
msgid "No URLs in the work queue."
|
438 |
msgstr "Não existem URL em espera para verificação."
|
439 |
|
440 |
-
#: core/core.php:
|
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:
|
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:
|
455 |
msgid "and still searching..."
|
456 |
-
msgstr "procurando..."
|
457 |
|
458 |
-
#: core/core.php:
|
459 |
msgid "Searching your blog for links..."
|
460 |
msgstr "Procurando links..."
|
461 |
|
462 |
-
#: core/core.php:
|
463 |
-
msgid "
|
464 |
-
msgstr "
|
465 |
|
466 |
-
#: core/core.php:
|
467 |
-
#: includes/links.php:837
|
468 |
msgid "Unknown"
|
469 |
msgstr "Desconhecido"
|
470 |
|
471 |
-
#: core/core.php:
|
472 |
-
#: core/core.php:
|
473 |
-
#: core/core.php:
|
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:
|
479 |
msgid "Oops, couldn't modify the link!"
|
480 |
msgstr "Oops, não é possível modificar o link!"
|
481 |
|
482 |
-
#: core/core.php:
|
483 |
-
#: core/core.php:
|
484 |
msgid "Error : link_id not specified"
|
485 |
msgstr "Erro: link_id não especificado"
|
486 |
|
487 |
-
#: core/core.php:
|
488 |
msgid "Oops, the new URL is invalid!"
|
489 |
msgstr "Oops, a nova URL não é válida"
|
490 |
|
491 |
-
#: core/core.php:
|
492 |
-
#: core/core.php:
|
493 |
msgid "An unexpected error occured!"
|
494 |
msgstr "Ocorreu um erro inesperado!"
|
495 |
|
496 |
-
#: core/core.php:
|
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:
|
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:
|
505 |
msgid "Error : link ID not specified"
|
506 |
msgstr "Erro: link ID não especificado"
|
507 |
|
508 |
-
#: core/core.php:
|
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:
|
514 |
msgid "Broken Link Checker"
|
515 |
msgstr "Links offline"
|
516 |
|
517 |
-
#: core/core.php:
|
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:
|
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:
|
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:
|
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:
|
536 |
msgid "PHP version"
|
537 |
msgstr "Versão PHP"
|
538 |
|
539 |
-
#: core/core.php:
|
540 |
msgid "MySQL version"
|
541 |
msgstr "Versão MySQL"
|
542 |
|
543 |
-
#: core/core.php:
|
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:
|
548 |
-
#: core/core.php:
|
549 |
-
#: core/core.php:
|
550 |
msgid "Not installed"
|
551 |
msgstr "Não instalado"
|
552 |
|
553 |
-
#: core/core.php:
|
554 |
msgid "CURL version"
|
555 |
msgstr "Versão CURL"
|
556 |
|
557 |
-
#: core/core.php:
|
558 |
msgid "Installed"
|
559 |
msgstr "Instalado"
|
560 |
|
561 |
-
#: core/core.php:
|
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:
|
566 |
msgid "On"
|
567 |
msgstr "Activado"
|
568 |
|
569 |
-
#: core/core.php:
|
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:
|
574 |
-
#: core/core.php:
|
575 |
msgid "Off"
|
576 |
msgstr "Desactivado"
|
577 |
|
578 |
-
#: core/core.php:
|
579 |
#, php-format
|
580 |
msgid "On ( %s )"
|
581 |
msgstr "Activado ( %s )"
|
582 |
|
583 |
-
#: core/core.php:
|
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:
|
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:
|
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:
|
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:
|
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:
|
615 |
msgid "Here's a list of the new broken links: "
|
616 |
msgstr "Novos links offline:"
|
617 |
|
618 |
-
#: core/core.php:
|
619 |
#, php-format
|
620 |
msgid "Link text : %s"
|
621 |
msgstr "Texto do Link : %s"
|
622 |
|
623 |
-
#: core/core.php:
|
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:
|
629 |
#, php-format
|
630 |
msgid "Source : %s"
|
631 |
msgstr "Fonte : %s"
|
632 |
|
633 |
-
#: core/core.php:
|
634 |
msgid "You can see all broken links here:"
|
635 |
msgstr "Links offline:"
|
636 |
|
637 |
-
#: core/init.php:
|
638 |
msgid "Once Weekly"
|
639 |
msgstr "Uma vez por semana"
|
640 |
|
641 |
-
#: core/init.php:
|
642 |
msgid "Twice a Month"
|
643 |
msgstr "Bi-Mensal"
|
644 |
|
645 |
-
#: core/init.php:
|
646 |
msgid "Broken Link Checker installation failed"
|
647 |
msgstr "Opções : Links offline"
|
648 |
|
649 |
-
#: includes/any-post.php:
|
650 |
msgid "Edit"
|
651 |
msgstr "Editar"
|
652 |
|
653 |
-
#: includes/any-post.php:
|
654 |
msgid "Move this item to the Trash"
|
655 |
msgstr "Mover este post para o lixo"
|
656 |
|
657 |
-
#: includes/any-post.php:
|
658 |
msgid "Trash"
|
659 |
msgstr "Lixo"
|
660 |
|
661 |
-
#: includes/any-post.php:
|
662 |
msgid "Delete this item permanently"
|
663 |
msgstr "Apagar este post definitivamente"
|
664 |
|
665 |
-
#: includes/any-post.php:
|
666 |
msgid "Delete"
|
667 |
msgstr "Apagar"
|
668 |
|
669 |
-
#: includes/any-post.php:
|
670 |
#, php-format
|
671 |
msgid "Preview “%s”"
|
672 |
msgstr "Prever “%s”"
|
673 |
|
674 |
-
#: includes/any-post.php:
|
675 |
msgid "Preview"
|
676 |
msgstr "Pré-visualizar"
|
677 |
|
678 |
-
#: includes/any-post.php:
|
679 |
#, php-format
|
680 |
msgid "View “%s”"
|
681 |
msgstr "Visualizar “%s”"
|
682 |
|
683 |
-
#: includes/any-post.php:
|
684 |
msgid "View"
|
685 |
msgstr "Ver"
|
686 |
|
687 |
-
#: includes/any-post.php:
|
688 |
msgid "Edit this item"
|
689 |
msgstr "Editar post"
|
690 |
|
691 |
-
#: includes/any-post.php:
|
692 |
msgid "Nothing to update"
|
693 |
msgstr "Sem actualização"
|
694 |
|
695 |
-
#: includes/any-post.php:
|
696 |
#, php-format
|
697 |
msgid "Updating post %d failed"
|
698 |
msgstr "Actualização do post %d falhou"
|
699 |
|
700 |
-
#: includes/any-post.php:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
765 |
-
#: includes/containers.php:
|
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:
|
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:
|
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:
|
900 |
msgid "Link is valid."
|
901 |
msgstr "Link operacional."
|
902 |
|
903 |
-
#: includes/links.php:
|
904 |
msgid "Link is broken."
|
905 |
msgstr "Link sem ligação."
|
906 |
|
907 |
-
#: includes/links.php:
|
908 |
-
#: includes/links.php:
|
909 |
-
#: includes/links.php:
|
910 |
msgid "Link is not valid"
|
911 |
msgstr "Link não válido"
|
912 |
|
913 |
-
#: includes/links.php:
|
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:
|
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:
|
922 |
msgid "This link is not a redirect"
|
923 |
msgstr "O link não é um redirect"
|
924 |
|
925 |
-
#: includes/links.php:
|
926 |
-
#: includes/links.php:
|
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:
|
931 |
msgid "Unknown Error"
|
932 |
msgstr "Erro Desconhecido"
|
933 |
|
934 |
-
#: includes/links.php:
|
935 |
msgid "Not checked"
|
936 |
msgstr "Não verificado"
|
937 |
|
938 |
-
#: includes/links.php:
|
939 |
msgid "False positive"
|
940 |
msgstr "Falso postivo"
|
941 |
|
942 |
-
#: includes/parsers.php:
|
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:
|
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:
|
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:
|
1003 |
-
#: includes/admin/table-printer.php:
|
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:
|
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:
|
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:
|
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/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1087 |
msgid "Compact View"
|
1088 |
msgstr "Visão compacta"
|
1089 |
|
1090 |
-
#: includes/admin/table-printer.php:
|
1091 |
msgid "Detailed View"
|
1092 |
msgstr "Detalhes"
|
1093 |
|
1094 |
-
#: includes/admin/table-printer.php:
|
1095 |
-
#: includes/admin/table-printer.php:192
|
1096 |
msgid "Source"
|
1097 |
msgstr "Fonte"
|
1098 |
|
1099 |
-
#: includes/admin/table-printer.php:
|
1100 |
-
#: includes/admin/table-printer.php:198
|
1101 |
msgid "Link Text"
|
1102 |
msgstr "Texto do Link"
|
1103 |
|
1104 |
-
#: includes/admin/table-printer.php:
|
1105 |
msgid "Bulk Actions"
|
1106 |
msgstr "Edição em Massa"
|
1107 |
|
1108 |
-
#: includes/admin/table-printer.php:
|
|
|
|
|
|
|
|
|
|
|
1109 |
msgid "Recheck"
|
1110 |
msgstr "Voltar a verificar"
|
1111 |
|
1112 |
-
#: includes/admin/table-printer.php:
|
1113 |
msgid "Fix redirects"
|
1114 |
msgstr "Reparar redirects"
|
1115 |
|
1116 |
-
#: includes/admin/table-printer.php:
|
1117 |
msgid "Mark as not broken"
|
1118 |
msgstr "Funcional"
|
1119 |
|
1120 |
-
#: includes/admin/table-printer.php:
|
1121 |
msgid "Move sources to Trash"
|
1122 |
msgstr "Mover este post para o lixo"
|
1123 |
|
1124 |
-
#: includes/admin/table-printer.php:
|
1125 |
msgid "Delete sources"
|
1126 |
msgstr "Apagar fontes"
|
1127 |
|
1128 |
-
#: includes/admin/table-printer.php:
|
1129 |
msgid "«"
|
1130 |
msgstr "«"
|
1131 |
|
1132 |
-
#: includes/admin/table-printer.php:
|
1133 |
msgid "»"
|
1134 |
msgstr "»"
|
1135 |
|
1136 |
-
#: includes/admin/table-printer.php:
|
1137 |
#, php-format
|
1138 |
msgid "Displaying %s–%s of <span class=\"current-link-count\">%s</span>"
|
1139 |
msgstr "Mostrando %s–%s de <span class=\"current-link-count\">%s</span>"
|
1140 |
|
1141 |
-
#: includes/admin/table-printer.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1142 |
msgid "Post published on"
|
1143 |
msgstr "Post publicado em"
|
1144 |
|
1145 |
-
#: includes/admin/table-printer.php:
|
1146 |
msgid "Link last checked"
|
1147 |
msgstr "Última verificação"
|
1148 |
|
1149 |
-
#: includes/admin/table-printer.php:
|
1150 |
msgid "Never"
|
1151 |
msgstr "Nunca"
|
1152 |
|
1153 |
-
#: includes/admin/table-printer.php:
|
1154 |
msgid "Response time"
|
1155 |
msgstr "Tempo de resposta"
|
1156 |
|
1157 |
-
#: includes/admin/table-printer.php:
|
1158 |
#, php-format
|
1159 |
msgid "%2.3f seconds"
|
1160 |
msgstr "%2.3f segundos"
|
1161 |
|
1162 |
-
#: includes/admin/table-printer.php:
|
1163 |
msgid "Final URL"
|
1164 |
msgstr "URL final"
|
1165 |
|
1166 |
-
#: includes/admin/table-printer.php:
|
1167 |
msgid "Redirect count"
|
1168 |
msgstr "Contagem de redirects"
|
1169 |
|
1170 |
-
#: includes/admin/table-printer.php:
|
1171 |
msgid "Instance count"
|
1172 |
msgstr "Contagem de casos"
|
1173 |
|
1174 |
-
#: includes/admin/table-printer.php:
|
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:
|
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:
|
1187 |
msgid "Log"
|
1188 |
msgstr "Registro"
|
1189 |
|
1190 |
-
#: includes/admin/table-printer.php:
|
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:
|
1201 |
-
|
1202 |
-
|
1203 |
-
msgstr "Eliminar este link"
|
1204 |
|
1205 |
-
#: includes/admin/table-printer.php:
|
1206 |
-
|
1207 |
-
|
1208 |
-
msgstr "Eliminar este link da lista dos links offline e marca-lo como válido"
|
1209 |
|
1210 |
-
#: includes/admin/table-printer.php:
|
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:
|
1216 |
-
|
1217 |
-
|
1218 |
-
msgstr "Editar URL"
|
1219 |
|
1220 |
-
#: includes/admin/table-printer.php:
|
1221 |
-
|
|
|
|
|
|
|
1222 |
msgid "Cancel URL editing"
|
1223 |
msgstr "Cancelar a edição do URL"
|
1224 |
|
1225 |
-
#: includes/admin/table-printer.php:
|
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:
|
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:
|
1344 |
#, php-format
|
1345 |
-
msgid "%d comment moved to the
|
1346 |
-
msgid_plural "%d comments moved to the
|
1347 |
-
msgstr[0] "%d comentário
|
1348 |
-
msgstr[1] "%d comentários
|
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
|
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
|
1392 |
|
1393 |
#: modules/extras/megaupload.php:117
|
1394 |
msgid "File Temporarily Unavailable"
|
1395 |
-
msgstr "Ficheiro
|
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
|
1404 |
|
1405 |
#: modules/extras/rapidshare.php:169
|
1406 |
msgid "File Blocked"
|
1407 |
-
msgstr "Ficheiro
|
1408 |
|
1409 |
#: modules/extras/rapidshare.php:176
|
1410 |
msgid "File Locked"
|
1411 |
-
msgstr "Ficheiro
|
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 "
|
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
|
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
|
1447 |
|
1448 |
#: modules/extras/youtube.php:83
|
1449 |
msgid "Invalid Video ID"
|
1450 |
-
msgstr "Vídeo ID
|
1451 |
|
1452 |
#: modules/extras/youtube.php:95
|
1453 |
msgid "Video OK"
|
1454 |
-
msgstr "Vídeo
|
1455 |
|
1456 |
#: modules/extras/youtube.php:109
|
1457 |
#, php-format
|
1458 |
msgid "Video status : %s%s"
|
1459 |
-
msgstr "
|
1460 |
|
1461 |
#: modules/extras/youtube.php:128
|
1462 |
msgid "Video Restricted"
|
1463 |
-
msgstr "Vídeo
|
1464 |
|
1465 |
#: modules/extras/youtube.php:145
|
1466 |
msgid "Unknown YouTube API response received."
|
1467 |
-
msgstr "Resposta YouTube
|
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 |
-
|
1478 |
-
|
1479 |
-
|
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 “%s”"
|
682 |
msgstr "Prever “%s”"
|
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 “%s”"
|
691 |
msgstr "Visualizar “%s”"
|
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 "«"
|
1156 |
msgstr "«"
|
1157 |
|
1158 |
+
#: includes/admin/table-printer.php:263
|
1159 |
msgid "»"
|
1160 |
msgstr "»"
|
1161 |
|
1162 |
+
#: includes/admin/table-printer.php:271
|
1163 |
#, php-format
|
1164 |
msgid "Displaying %s–%s of <span class=\"current-link-count\">%s</span>"
|
1165 |
msgstr "Mostrando %s–%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 "«"
|
864 |
+
msgstr "«"
|
865 |
+
|
866 |
+
#: includes/admin/table-printer.php:263
|
867 |
+
msgid "»"
|
868 |
+
msgstr "»"
|
869 |
+
|
870 |
+
#: includes/admin/table-printer.php:271
|
871 |
+
#, php-format
|
872 |
+
msgid "Displaying %s–%s of <span class=\"current-link-count\">%s</span>"
|
873 |
+
msgstr "Afi�are %s–%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 “%s”"
|
1016 |
+
msgstr "Previzualizare “%s”"
|
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 “%s”"
|
1025 |
+
msgstr "Vizualizare “%s”"
|
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 |
-
#
|
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
|
10 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/broken-link-checker\n"
|
11 |
-
"POT-Creation-Date: 2010-
|
|
|
|
|
|
|
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 |
-
#:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
msgid "Loading..."
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: core/core.php:
|
25 |
msgid "[ Network error ]"
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: core/core.php:
|
29 |
msgid "Automatically expand the widget if broken links have been detected"
|
30 |
msgstr ""
|
31 |
|
32 |
-
#: core/core.php:
|
33 |
msgid "Link Checker Settings"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: core/core.php:
|
37 |
msgid "Link Checker"
|
38 |
msgstr ""
|
39 |
|
40 |
-
#: core/core.php:
|
41 |
msgid "Broken Links"
|
42 |
msgstr ""
|
43 |
|
44 |
-
#: core/core.php:
|
45 |
msgid "View Broken Links"
|
46 |
msgstr ""
|
47 |
|
48 |
-
#: core/core.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
msgid "Settings"
|
50 |
msgstr ""
|
51 |
|
52 |
-
#: core/core.php:
|
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:
|
60 |
msgid "Settings saved."
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: core/core.php:
|
|
|
|
|
|
|
|
|
64 |
msgid "Complete site recheck started."
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: core/core.php:
|
68 |
msgid "Details"
|
69 |
msgstr ""
|
70 |
|
71 |
-
#: core/core.php:
|
72 |
msgid "General"
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: core/core.php:
|
76 |
msgid "Look For Links In"
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: core/core.php:
|
80 |
msgid "Which Links To Check"
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: core/core.php:
|
84 |
msgid "Protocols & APIs"
|
85 |
msgstr ""
|
86 |
|
87 |
-
#: core/core.php:
|
88 |
msgid "Advanced"
|
89 |
msgstr ""
|
90 |
|
91 |
-
#: core/core.php:
|
92 |
msgid "Broken Link Checker Options"
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: core/core.php:
|
96 |
msgid "Status"
|
97 |
msgstr ""
|
98 |
|
99 |
-
#: core/core.php:
|
100 |
msgid "Show debug info"
|
101 |
msgstr ""
|
102 |
|
103 |
-
#: core/core.php:
|
104 |
msgid "Check each link"
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: core/core.php:
|
108 |
-
#, php-format
|
109 |
msgid "Every %s hours"
|
110 |
msgstr ""
|
111 |
|
112 |
-
#: core/core.php:
|
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:
|
119 |
msgid "E-mail notifications"
|
120 |
msgstr ""
|
121 |
|
122 |
-
#: core/core.php:
|
123 |
msgid "Send me e-mail notifications about newly detected broken links"
|
124 |
msgstr ""
|
125 |
|
126 |
-
#: core/core.php:
|
127 |
msgid "Link tweaks"
|
128 |
msgstr ""
|
129 |
|
130 |
-
#: core/core.php:
|
131 |
msgid "Apply custom formatting to broken links"
|
132 |
msgstr ""
|
133 |
|
134 |
-
#: core/core.php:
|
135 |
msgid "Edit CSS"
|
136 |
msgstr ""
|
137 |
|
138 |
-
#: core/core.php:
|
139 |
msgid "Apply custom formatting to removed links"
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: core/core.php:
|
143 |
msgid "Stop search engines from following broken links"
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: core/core.php:
|
147 |
msgid "Look for links in"
|
148 |
msgstr ""
|
149 |
|
150 |
-
#: core/core.php:
|
151 |
msgid "Post statuses"
|
152 |
msgstr ""
|
153 |
|
154 |
-
#: core/core.php:
|
155 |
msgid "Link types"
|
156 |
msgstr ""
|
157 |
|
158 |
-
#: core/core.php:
|
159 |
msgid "Error : All link parsers missing!"
|
160 |
msgstr ""
|
161 |
|
162 |
-
#: core/core.php:
|
163 |
msgid "Exclusion list"
|
164 |
msgstr ""
|
165 |
|
166 |
-
#: core/core.php:
|
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:
|
172 |
msgid "Check links using"
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: core/core.php:
|
176 |
msgid "Timeout"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: core/core.php:
|
180 |
-
#, php-format
|
181 |
msgid "%s seconds"
|
182 |
msgstr ""
|
183 |
|
184 |
-
#: core/core.php:
|
185 |
msgid "Links that take longer than this to load will be marked as broken."
|
186 |
msgstr ""
|
187 |
|
188 |
-
#: core/core.php:
|
189 |
msgid "Link monitor"
|
190 |
msgstr ""
|
191 |
|
192 |
-
#: core/core.php:
|
193 |
msgid "Run continuously while the Dashboard is open"
|
194 |
msgstr ""
|
195 |
|
196 |
-
#: core/core.php:
|
197 |
msgid "Run hourly in the background"
|
198 |
msgstr ""
|
199 |
|
200 |
-
#: core/core.php:
|
201 |
msgid "Max. execution time"
|
202 |
msgstr ""
|
203 |
|
204 |
-
#: core/core.php:
|
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:
|
213 |
msgid "Custom temporary directory"
|
214 |
msgstr ""
|
215 |
|
216 |
-
#: core/core.php:
|
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:
|
225 |
msgid "Error : This directory doesn't exist."
|
226 |
msgstr ""
|
227 |
|
228 |
-
#: core/core.php:
|
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:
|
235 |
msgid "Server load limit"
|
236 |
msgstr ""
|
237 |
|
238 |
-
#: core/core.php:
|
239 |
-
#, php-format
|
240 |
msgid "Current load : %s"
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: core/core.php:
|
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:
|
251 |
msgid "Not available"
|
252 |
msgstr ""
|
253 |
|
254 |
-
#: core/core.php:
|
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:
|
261 |
msgid "Forced recheck"
|
262 |
msgstr ""
|
263 |
|
264 |
-
#: core/core.php:
|
265 |
msgid "Re-check all pages"
|
266 |
msgstr ""
|
267 |
|
268 |
-
#: core/core.php:
|
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:
|
275 |
msgid "Save Changes"
|
276 |
msgstr ""
|
277 |
|
278 |
-
#: core/core.php:
|
279 |
msgid "Configure"
|
280 |
msgstr ""
|
281 |
|
282 |
-
#: core/core.php:
|
283 |
-
msgid "
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: core/core.php:
|
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:
|
296 |
msgid "You must enter a filter name!"
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: core/core.php:
|
300 |
msgid "Invalid search query."
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: core/core.php:
|
304 |
-
#, php-format
|
305 |
msgid "Filter \"%s\" created"
|
306 |
msgstr ""
|
307 |
|
308 |
-
#: core/core.php:
|
309 |
msgid "Filter ID not specified."
|
310 |
msgstr ""
|
311 |
|
312 |
-
#: core/core.php:
|
313 |
msgid "Filter deleted"
|
314 |
msgstr ""
|
315 |
|
316 |
-
#: core/core.php:
|
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:
|
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:
|
331 |
msgid "None of the selected links are redirects!"
|
332 |
msgstr ""
|
333 |
|
334 |
-
#: core/core.php:
|
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:
|
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:
|
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:
|
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:
|
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:
|
374 |
msgid "Didn't find anything to delete!"
|
375 |
msgstr ""
|
376 |
|
377 |
-
#: core/core.php:
|
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:
|
385 |
msgid "This link was manually marked as working by the user."
|
386 |
msgstr ""
|
387 |
|
388 |
-
#: core/core.php:
|
389 |
-
#, php-format
|
390 |
msgid "Couldn't modify link %d"
|
391 |
msgstr ""
|
392 |
|
393 |
-
#: core/core.php:
|
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:
|
401 |
msgid "Table columns"
|
402 |
msgstr ""
|
403 |
|
404 |
-
#: core/core.php:
|
405 |
msgid "Show on screen"
|
406 |
msgstr ""
|
407 |
|
408 |
-
#: core/core.php:
|
409 |
msgid "links"
|
410 |
msgstr ""
|
411 |
|
412 |
-
#: core/core.php:
|
413 |
msgid "Apply"
|
414 |
msgstr ""
|
415 |
|
416 |
-
#: core/core.php:
|
417 |
msgid "Misc"
|
418 |
msgstr ""
|
419 |
|
420 |
-
#: core/core.php:
|
421 |
-
#, php-format
|
422 |
msgid "Highlight links broken for at least %s days"
|
423 |
msgstr ""
|
424 |
|
425 |
-
#: core/core.php:
|
426 |
msgid "Color-code status codes"
|
427 |
msgstr ""
|
428 |
|
429 |
-
#: core/core.php:
|
430 |
msgid "You're not allowed to do that!"
|
431 |
msgstr ""
|
432 |
|
433 |
-
#: core/core.php:
|
434 |
msgid "View broken links"
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: core/core.php:
|
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:
|
445 |
msgid "No broken links found."
|
446 |
msgstr ""
|
447 |
|
448 |
-
#: core/core.php:
|
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:
|
456 |
msgid "No URLs in the work queue."
|
457 |
msgstr ""
|
458 |
|
459 |
-
#: core/core.php:
|
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:
|
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:
|
474 |
msgid "and still searching..."
|
475 |
msgstr ""
|
476 |
|
477 |
-
#: core/core.php:
|
478 |
msgid "Searching your blog for links..."
|
479 |
msgstr ""
|
480 |
|
481 |
-
#: core/core.php:
|
482 |
msgid "No links detected."
|
483 |
msgstr ""
|
484 |
|
485 |
-
#: core/core.php:
|
486 |
msgctxt "current load"
|
487 |
msgid "Unknown"
|
488 |
msgstr ""
|
489 |
|
490 |
-
#: core/core.php:
|
491 |
-
#, php-format
|
492 |
msgid "Oops, I can't find the link %d"
|
493 |
msgstr ""
|
494 |
|
495 |
-
#: core/core.php:
|
496 |
msgid "Oops, couldn't modify the link!"
|
497 |
msgstr ""
|
498 |
|
499 |
-
#: core/core.php:
|
500 |
msgid "Error : link_id not specified"
|
501 |
msgstr ""
|
502 |
|
503 |
-
#: core/core.php:
|
504 |
msgid "Oops, the new URL is invalid!"
|
505 |
msgstr ""
|
506 |
|
507 |
-
#: core/core.php:
|
508 |
msgid "An unexpected error occured!"
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: core/core.php:
|
512 |
msgid "Error : link_id or new_url not specified"
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: core/core.php:
|
516 |
msgid "You don't have sufficient privileges to access this information!"
|
517 |
msgstr ""
|
518 |
|
519 |
-
#: core/core.php:
|
520 |
msgid "Error : link ID not specified"
|
521 |
msgstr ""
|
522 |
|
523 |
-
#: core/core.php:
|
524 |
-
#, php-format
|
525 |
msgid "Failed to load link details (%s)"
|
526 |
msgstr ""
|
527 |
|
528 |
-
#. #-#-#-#-# plugin.pot (Broken Link Checker
|
529 |
#. Plugin Name of the plugin/theme
|
530 |
-
#: core/core.php:
|
531 |
msgid "Broken Link Checker"
|
532 |
msgstr ""
|
533 |
|
534 |
-
#: core/core.php:
|
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:
|
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:
|
549 |
msgid "Broken Link Checker can't create a lockfile."
|
550 |
msgstr ""
|
551 |
|
552 |
-
#: core/core.php:
|
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:
|
564 |
msgid "PHP version"
|
565 |
msgstr ""
|
566 |
|
567 |
-
#: core/core.php:
|
568 |
msgid "MySQL version"
|
569 |
msgstr ""
|
570 |
|
571 |
-
#: core/core.php:
|
572 |
msgid ""
|
573 |
"You have an old version of CURL. Redirect detection may not work properly."
|
574 |
msgstr ""
|
575 |
|
576 |
-
#: core/core.php:
|
577 |
msgid "Not installed"
|
578 |
msgstr ""
|
579 |
|
580 |
-
#: core/core.php:
|
581 |
msgid "CURL version"
|
582 |
msgstr ""
|
583 |
|
584 |
-
#: core/core.php:
|
585 |
msgid "Installed"
|
586 |
msgstr ""
|
587 |
|
588 |
-
#: core/core.php:
|
589 |
msgid "You must have either CURL or Snoopy installed for the plugin to work!"
|
590 |
msgstr ""
|
591 |
|
592 |
-
#: core/core.php:
|
593 |
msgid "On"
|
594 |
msgstr ""
|
595 |
|
596 |
-
#: core/core.php:
|
597 |
msgid "Redirects may be detected as broken links when safe_mode is on."
|
598 |
msgstr ""
|
599 |
|
600 |
-
#: core/core.php:
|
601 |
msgid "Off"
|
602 |
msgstr ""
|
603 |
|
604 |
-
#: core/core.php:
|
605 |
-
#, php-format
|
606 |
msgid "On ( %s )"
|
607 |
msgstr ""
|
608 |
|
609 |
-
#: core/core.php:
|
610 |
msgid "Redirects may be detected as broken links when open_basedir is on."
|
611 |
msgstr ""
|
612 |
|
613 |
-
#: core/core.php:
|
614 |
msgid "Can't create a lockfile. Please specify a custom temporary directory."
|
615 |
msgstr ""
|
616 |
|
617 |
-
#: core/core.php:
|
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:
|
624 |
-
#, php-format
|
625 |
msgid "[%s] Broken links detected"
|
626 |
msgstr ""
|
627 |
|
628 |
-
#: core/core.php:
|
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:
|
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:
|
644 |
msgid "Here's a list of the new broken links: "
|
645 |
msgstr ""
|
646 |
|
647 |
-
#: core/core.php:
|
648 |
-
#, php-format
|
649 |
msgid "Link text : %s"
|
650 |
msgstr ""
|
651 |
|
652 |
-
#: core/core.php:
|
653 |
-
#, php-format
|
654 |
msgid "Link URL : <a href=\"%s\">%s</a>"
|
655 |
msgstr ""
|
656 |
|
657 |
-
#: core/core.php:
|
658 |
-
#, php-format
|
659 |
msgid "Source : %s"
|
660 |
msgstr ""
|
661 |
|
662 |
-
#: core/core.php:
|
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:
|
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:
|
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:
|
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:
|
810 |
-
#: includes/admin/table-printer.php:
|
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:
|
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:
|
859 |
msgid "«"
|
860 |
msgstr ""
|
861 |
|
862 |
-
#: includes/admin/table-printer.php:
|
863 |
msgid "»"
|
864 |
msgstr ""
|
865 |
|
866 |
-
#: includes/admin/table-printer.php:
|
867 |
-
#, php-format
|
868 |
msgid "Displaying %s–%s of <span class=\"current-link-count\">%s</span>"
|
869 |
msgstr ""
|
870 |
|
871 |
-
#: includes/admin/table-printer.php:
|
872 |
msgid "Bulk Edit URLs"
|
873 |
msgstr ""
|
874 |
|
875 |
-
#: includes/admin/table-printer.php:
|
876 |
msgid "Find"
|
877 |
msgstr ""
|
878 |
|
879 |
-
#: includes/admin/table-printer.php:
|
880 |
msgid "Replace with"
|
881 |
msgstr ""
|
882 |
|
883 |
-
#: includes/admin/table-printer.php:
|
884 |
msgid "Case sensitive"
|
885 |
msgstr ""
|
886 |
|
887 |
-
#: includes/admin/table-printer.php:
|
888 |
msgid "Regular expression"
|
889 |
msgstr ""
|
890 |
|
891 |
-
#: includes/admin/table-printer.php:
|
892 |
msgid "Update"
|
893 |
msgstr ""
|
894 |
|
895 |
-
#: includes/admin/table-printer.php:
|
896 |
msgid "Post published on"
|
897 |
msgstr ""
|
898 |
|
899 |
-
#: includes/admin/table-printer.php:
|
900 |
msgid "Link last checked"
|
901 |
msgstr ""
|
902 |
|
903 |
-
#: includes/admin/table-printer.php:
|
904 |
msgid "Never"
|
905 |
msgstr ""
|
906 |
|
907 |
-
#: includes/admin/table-printer.php:
|
908 |
msgid "Response time"
|
909 |
msgstr ""
|
910 |
|
911 |
-
#: includes/admin/table-printer.php:
|
912 |
-
#, php-format
|
913 |
msgid "%2.3f seconds"
|
914 |
msgstr ""
|
915 |
|
916 |
-
#: includes/admin/table-printer.php:
|
917 |
msgid "Final URL"
|
918 |
msgstr ""
|
919 |
|
920 |
-
#: includes/admin/table-printer.php:
|
921 |
msgid "Redirect count"
|
922 |
msgstr ""
|
923 |
|
924 |
-
#: includes/admin/table-printer.php:
|
925 |
msgid "Instance count"
|
926 |
msgstr ""
|
927 |
|
928 |
-
#: includes/admin/table-printer.php:
|
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:
|
936 |
-
#, php-format
|
937 |
msgid "This link has been broken for %s."
|
938 |
msgstr ""
|
939 |
|
940 |
-
#: includes/admin/table-printer.php:
|
941 |
msgid "Log"
|
942 |
msgstr ""
|
943 |
|
944 |
-
#: includes/admin/table-printer.php:
|
945 |
msgid "Show more info about this link"
|
946 |
msgstr ""
|
947 |
|
948 |
-
#: includes/admin/table-printer.php:
|
949 |
msgctxt "checked how long ago"
|
950 |
msgid "Checked"
|
951 |
msgstr ""
|
952 |
|
953 |
-
#: includes/admin/table-printer.php:
|
954 |
msgid "Broken for"
|
955 |
msgstr ""
|
956 |
|
957 |
-
#: includes/admin/table-printer.php:
|
958 |
msgid "Edit link URL"
|
959 |
msgstr ""
|
960 |
|
961 |
-
#: includes/admin/table-printer.php:
|
962 |
msgid "Remove this link from all posts"
|
963 |
msgstr ""
|
964 |
|
965 |
-
#: includes/admin/table-printer.php:
|
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:
|
970 |
msgid "Cancel URL editing"
|
971 |
msgstr ""
|
972 |
|
973 |
-
#: includes/admin/table-printer.php:
|
974 |
msgid "Update URL"
|
975 |
msgstr ""
|
976 |
|
977 |
-
#: includes/admin/table-printer.php:
|
978 |
msgid "[An orphaned link! This is a bug.]"
|
979 |
msgstr ""
|
980 |
|
981 |
-
#: includes/
|
982 |
-
|
983 |
-
msgid "Edit"
|
984 |
msgstr ""
|
985 |
|
986 |
-
#: includes/
|
987 |
-
msgid "
|
988 |
msgstr ""
|
989 |
|
990 |
-
#: includes/
|
991 |
-
msgid "
|
992 |
msgstr ""
|
993 |
|
994 |
-
#: includes/
|
995 |
-
msgid "
|
996 |
msgstr ""
|
997 |
|
998 |
-
#: includes/
|
999 |
-
|
1000 |
-
msgid "Delete"
|
1001 |
msgstr ""
|
1002 |
|
1003 |
-
#: includes/
|
1004 |
-
|
1005 |
-
msgid "Preview “%s”"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
-
#: includes/
|
1009 |
-
msgid "
|
1010 |
msgstr ""
|
1011 |
|
1012 |
-
#: includes/
|
1013 |
-
|
1014 |
-
msgid "View “%s”"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
-
#: includes/
|
1018 |
-
|
1019 |
-
msgid "View"
|
1020 |
msgstr ""
|
1021 |
|
1022 |
-
#: includes/
|
1023 |
-
msgid "
|
1024 |
msgstr ""
|
1025 |
|
1026 |
-
#: includes/
|
1027 |
-
|
1028 |
-
msgid "Nothing to update"
|
1029 |
msgstr ""
|
1030 |
|
1031 |
-
#: includes/
|
1032 |
-
|
1033 |
-
msgid "Updating post %d failed"
|
1034 |
msgstr ""
|
1035 |
|
1036 |
-
#: includes/
|
1037 |
-
|
1038 |
-
msgid "Failed to delete post \"%s\" (%d)"
|
1039 |
msgstr ""
|
1040 |
|
1041 |
-
#: includes/any-post.php:
|
1042 |
-
|
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:
|
1049 |
-
|
1050 |
-
msgid "Failed to move post \"%s\" (%d) to the trash"
|
1051 |
msgstr ""
|
1052 |
|
1053 |
-
#: includes/any-post.php:
|
1054 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1055 |
msgid "%d post deleted."
|
1056 |
msgid_plural "%d posts deleted."
|
1057 |
msgstr[0] ""
|
1058 |
msgstr[1] ""
|
1059 |
|
1060 |
-
#: includes/any-post.php:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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/
|
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:
|
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:
|
1326 |
-
#, php-format
|
1327 |
msgid "%d minute"
|
1328 |
msgid_plural "%d minutes"
|
1329 |
msgstr[0] ""
|
1330 |
msgstr[1] ""
|
1331 |
|
1332 |
-
#: includes/utility-class.php:
|
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:
|
1340 |
-
#, php-format
|
1341 |
msgid "%d hour"
|
1342 |
msgid_plural "%d hours"
|
1343 |
msgstr[0] ""
|
1344 |
msgstr[1] ""
|
1345 |
|
1346 |
-
#: includes/utility-class.php:
|
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:
|
1354 |
-
#, php-format
|
1355 |
msgid "%d day"
|
1356 |
msgid_plural "%d days"
|
1357 |
msgstr[0] ""
|
1358 |
msgstr[1] ""
|
1359 |
|
1360 |
-
#: includes/utility-class.php:
|
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:
|
1368 |
-
#, php-format
|
1369 |
msgid "%d month"
|
1370 |
msgid_plural "%d months"
|
1371 |
msgstr[0] ""
|
1372 |
msgstr[1] ""
|
1373 |
|
1374 |
-
#: includes/utility-class.php:
|
1375 |
-
#, php-format
|
1376 |
msgid "%d month ago"
|
1377 |
msgid_plural "%d months ago"
|
1378 |
msgstr[0] ""
|
1379 |
msgstr[1] ""
|
1380 |
|
1381 |
-
#:
|
1382 |
-
msgid "
|
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 |
-
#:
|
1525 |
-
msgid "
|
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 "«"
|
1132 |
msgstr ""
|
1133 |
|
1134 |
+
#: includes/admin/table-printer.php:258
|
1135 |
msgid "»"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
+
#: includes/admin/table-printer.php:266
|
|
|
1139 |
msgid "Displaying %s–%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 “%s”"
|
|
|
|
|
|
|
1303 |
msgstr ""
|
1304 |
|
1305 |
+
#: includes/any-post.php:428
|
1306 |
+
msgid "Preview"
|
|
|
1307 |
msgstr ""
|
1308 |
|
1309 |
+
#: includes/any-post.php:435
|
1310 |
+
msgid "View “%s”"
|
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 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
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 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
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 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
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 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
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 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
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 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
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 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
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 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
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',
|
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',
|
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
|
7 |
-
Stable tag:
|
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.
|